Dynpro 100

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

*&---------------------------------------------------------------------*

*& Include MZMITCCLSAPTOP


*&
*
*&---------------------------------------------------------------------*

PROGRAM SAPMZMITCCLSAP MESSAGE-ID Z_MANT_INT.


TABLES: ZTCCLCOSAP,
ZSTRTCCLCOSAP.
* defino un registro para configurar la pantalla
TYPES: BEGIN OF REG,
FCODE LIKE RSMPE-FUNC,
END OF REG.
DATA: OKCODE LIKE SY-UCOMM,
SAVE_OKCODE LIKE SY-UCOMM.
* creo una tabla interna con el registro anterior
DATA: ITAB TYPE STANDARD TABLE OF REG
WITH HEADER LINE.

*********************************************
dynpro 100
*********************************************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
MODULE SAVECODE.
CHAIN.
FIELD: ZSTRTCCLCOSAP-ENTORN,
ZSTRTCCLCOSAP-COEM,
ZSTRTCCLCOSAP-COCL.
MODULE USER_COMMAND_0100.
ENDCHAIN.

******************************************
dynpro 200
******************************************
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
MODULE SAVECODE.
MODULE USER_COMMAND_0200.
*----------------------------------------------------------------------*
***INCLUDE MZMITCCLSAPO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STAT0100'.
SET TITLEBAR '100'.
CASE SY-TCODE.
WHEN 'ZMICLSAP01'.
SET TITLEBAR '100' WITH TEXT-001.

WHEN 'ZMICLSAP02'.
SET TITLEBAR '100' WITH TEXT-002.
WHEN 'ZMICLSAP03'.
SET TITLEBAR '100' WITH TEXT-003.
ENDCASE.
ENDMODULE.

" STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*
*&
Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
* Meto en un itab el botn SAVE, para no sacarlo en visualizar
REFRESH ITAB.
ITAB-FCODE = 'SAVE'.
APPEND ITAB.
CASE SY-TCODE.
WHEN 'ZMICLSAP03'.
SET PF-STATUS 'STAT0200' EXCLUDING ITAB.
WHEN OTHERS.
SET PF-STATUS 'STAT0200'.
ENDCASE.
* CASE SY-TCODE.
* WHEN 'ZMICLSAP01'.
*
SET TITLEBAR '200' WITH TEXT-001.
* WHEN 'ZMICLSAP02'.
*
SET TITLEBAR '200' WITH TEXT-002.
* WHEN 'ZMICLSAP03'.
*
SET TITLEBAR '200' WITH TEXT-003.
* ENDCASE.
* Configuro la dynpro 200,oculto(en visualizar) o no el campo CODSAP)
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZSTRTCCLCOSAP-CODSAP'.
CASE SY-TCODE.
WHEN 'ZMICLSAP01'.
SCREEN-INPUT = '1'.
WHEN 'ZMICLSAP02'.
SCREEN-INPUT = '1'.
WHEN 'ZMICLSAP03'.
SCREEN-INPUT = '0'.
ENDCASE.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDMODULE.

" STATUS_0200 OUTPUT

*----------------------------------------------------------------------*
***INCLUDE MZMITCCLSAPI01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Module EXIT INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.
IF OKCODE = 'XBACK' OR
OKCODE = 'EXIT' OR
OKCODE = 'CANC'.
LEAVE TO SCREEN 0.

ENDIF.
ENDMODULE.

" EXIT INPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
SELECT SINGLE * FROM ZTCCLCOSAP
WHERE ENTORN = ZSTRTCCLCOSAP-ENTORN AND
COEM = ZSTRTCCLCOSAP-COEM AND
COCL = ZSTRTCCLCOSAP-COCL.
CLEAR ZSTRTCCLCOSAP-CODSAP.
IF SY-SUBRC = 0.
ZSTRTCCLCOSAP-CODSAP = ZTCCLCOSAP-CODSAP.
* Para controlar el chain, si los campos introducidos en
* la dynpro 100 son iguales ERROR (porque ya existe no puedo
* insertar) y dejo cambiar los campos
IF ZSTRTCCLCOSAP-ENTORN = ZTCCLCOSAP-ENTORN AND
ZSTRTCCLCOSAP-COEM = ZTCCLCOSAP-COEM AND
ZSTRTCCLCOSAP-COCL = ZTCCLCOSAP-COCL.
CASE SY-TCODE.
WHEN 'ZMICLSAP01'.
MESSAGE E012 WITH ZSTRTCCLCOSAP-COCL
ZSTRTCCLCOSAP-COEM
ZSTRTCCLCOSAP-ENTORN.
ENDCASE.
ENDIF.
ELSE. "del sy-subrc
* En siguiente if para controlar el chain, algun campo introducido
* en la dynpro 100 es distinto ERROR (porque no existe, no puedo
* modificar ni visualizar) y dejo cambiar los campos
IF ZSTRTCCLCOSAP-ENTORN <> ZTCCLCOSAP-ENTORN OR
ZSTRTCCLCOSAP-COEM <> ZTCCLCOSAP-COEM OR
ZSTRTCCLCOSAP-COCL <> ZTCCLCOSAP-COCL.
CASE SY-TCODE.
WHEN 'ZMICLSAP02'.
MESSAGE E013 WITH ZSTRTCCLCOSAP-COCL
ZSTRTCCLCOSAP-COEM
ZSTRTCCLCOSAP-ENTORN.
WHEN 'ZMICLSAP03'.
MESSAGE E013 WITH ZSTRTCCLCOSAP-COCL
ZSTRTCCLCOSAP-COEM
ZSTRTCCLCOSAP-ENTORN.
ENDCASE.
ENDIF.
ENDIF. "del sy-subrc
LEAVE TO SCREEN 200.
ENDMODULE.

" USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*
*&
Module SAVECODE INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE SAVECODE INPUT.
SAVE_OKCODE = OKCODE.

CLEAR OKCODE.
ENDMODULE.

" SAVECODE INPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SAVE_OKCODE.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'SAVE'.
PERFORM GUARDAR.
IF SY-BINPT = 'X'.
LEAVE TO SCREEN 0.
ELSE.
PERFORM BORRAR_CAMPOS.
LEAVE TO SCREEN 100.
ENDIF.
ENDCASE.

ENDMODULE.

" USER_COMMAND_0200 INPUT

*&---------------------------------------------------------------------*
*&
Module SAVECODE INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE SAVECODE INPUT.
SAVE_OKCODE = OKCODE.
CLEAR OKCODE.
ENDMODULE.

" SAVECODE INPUT

*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
CASE SAVE_OKCODE.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'SAVE'.
PERFORM GUARDAR.
IF SY-BINPT = 'X'.
LEAVE TO SCREEN 0.
ELSE.
PERFORM BORRAR_CAMPOS.
LEAVE TO SCREEN 100.
ENDIF.
ENDCASE.

ENDMODULE.

" USER_COMMAND_0200 INPUT

*----------------------------------------------------------------------*
***INCLUDE MZMITCCLSAPF01 .

*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form GUARDAR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GUARDAR.
CASE SY-TCODE.
WHEN 'ZMICLSAP01'.
MOVE-CORRESPONDING ZSTRTCCLCOSAP TO ZTCCLCOSAP.
INSERT ZTCCLCOSAP.
IF SY-SUBRC <> 0.
MESSAGE A011.
ELSE.
MESSAGE S010.
ENDIF.
WHEN 'ZMICLSAP02'.
SELECT SINGLE * FROM ZTCCLCOSAP
WHERE ENTORN = ZSTRTCCLCOSAP-ENTORN AND
COEM = ZSTRTCCLCOSAP-COEM AND
COCL = ZSTRTCCLCOSAP-COCL.
MOVE-CORRESPONDING ZSTRTCCLCOSAP TO ZTCCLCOSAP.
UPDATE ZTCCLCOSAP.
IF SY-SUBRC <> 0.
MESSAGE A011.
ELSE.
MESSAGE S014.
ENDIF.
ENDCASE.
ENDFORM.

" GUARDAR

*&---------------------------------------------------------------------*
*&
Form BORRAR_CAMPOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM BORRAR_CAMPOS.
CLEAR: ZSTRTCCLCOSAP-ENTORN,
ZSTRTCCLCOSAP-COEM,
ZSTRTCCLCOSAP-COCL,
ZSTRTCCLCOSAP-CODSAP.
ENDFORM.

" BORRAR_CAMPOS

You might also like