0% found this document useful (0 votes)
50 views5 pages

Dynpro 100

1. This SAP ABAP program defines screens and modules to maintain client classification data across two screens. It selects, inserts, and updates data in internal tables to save or clear field values when navigating between the screens. 2. The program defines two dynpro screens for input and processing. Modules are used to control screen flow and status, save commands, and insert or update underlying tables when user saves changes. 3. Data entered on the first screen is validated against existing records before navigating to the second screen. Records can then be saved to the system, or fields cleared to enter a new record.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views5 pages

Dynpro 100

1. This SAP ABAP program defines screens and modules to maintain client classification data across two screens. It selects, inserts, and updates data in internal tables to save or clear field values when navigating between the screens. 2. The program defines two dynpro screens for input and processing. Modules are used to control screen flow and status, save commands, and insert or update underlying tables when user saves changes. 3. Data entered on the first screen is validated against existing records before navigating to the second screen. Records can then be saved to the system, or fields cleared to enter a new record.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 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