Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Module Pool Programming using Abap Objects

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes
3,122

Hi gurus.,

I need to create a module pool program with tabstrips and tablecontrols using Abap objects...plz guide me how i can achieve this... i am very much confused.. i dont know how and where to start .. plz send me documents and sample codes related to this topic..Also hoe i can implement f4 help in screen fields.. plz help me with Sample Code....

Regards.,

S.Sivakumar

1 ACCEPTED SOLUTION
Read only

marcelo_ramos1
SAP Mentor
SAP Mentor
0 Likes
2,110

Hi Sivakumar.

You can't use Full ABAP Objects in Module Pool. You can Mix ABAP and ABAP Objetcs.

In your Dynpro you must use MODULES PAI / PBO and withing this modules you can Raise the events that will be handled by an Methods definited as Event Handler.

So you can apply all ABAP Objects necessary within this 'Event Handlers'.

As Siva said take a look at [OO ABAP Dynpro Programming|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2322] [original link is broken] [original link is broken] [original link is broken];.

I'm work to release the "[SAPmvc, a new MVC for Classical ABAP Dynpro|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/9399] [original link is broken] [original link is broken] [original link is broken];", i'll do it as soon as possible with some examples.

Don't forget to close this thread once your question be answered !

Greetings,

Marcelo Ramos

13 REPLIES 13
Read only

matt
Active Contributor
0 Likes
2,110

Please search this forum - this question has been answered again and again.

Read only

Former Member
0 Likes
2,110

Hi

Check this blog

Edited by: Craig Cmehil on Jul 3, 2008 3:34 PM

Read only

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes
2,110

hi sivaprakash.,

By using this WebLog, I am unable to capture POV event .. kindly help me , how i can achieve that ..

Regards.,

S.Sivakumar

Read only

marcelo_ramos1
SAP Mentor
SAP Mentor
0 Likes
2,111

Hi Sivakumar.

You can't use Full ABAP Objects in Module Pool. You can Mix ABAP and ABAP Objetcs.

In your Dynpro you must use MODULES PAI / PBO and withing this modules you can Raise the events that will be handled by an Methods definited as Event Handler.

So you can apply all ABAP Objects necessary within this 'Event Handlers'.

As Siva said take a look at [OO ABAP Dynpro Programming|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2322] [original link is broken] [original link is broken] [original link is broken];.

I'm work to release the "[SAPmvc, a new MVC for Classical ABAP Dynpro|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/9399] [original link is broken] [original link is broken] [original link is broken];", i'll do it as soon as possible with some examples.

Don't forget to close this thread once your question be answered !

Greetings,

Marcelo Ramos

Read only

0 Likes
2,110

Hi Marcelom Ramos.,

i tried that weblog .. but in that i am unable to capture the POV event ... By using flowlogic and event handling, i achieved in my program .. thanks for ur help ... Looking forward to see the Example Programs from you using MVC for Classical Dynpro ..

Regards.,

S.Sivakumar

Read only

0 Likes
2,110

Hi Sivakumar,

How you're doing ?

Can you please place here your source code ? Maybe we can help you seeing a part of your code !

Regards,

Marcelo Ramos

Read only

0 Likes
2,109

Hi Marcelo Ramos.,

here is my code without using WebLOg ..

PROGRAM ZACR018_BOXKOD .

*----


    • TABLES DECLARATION

*----


TABLES: ZACT02_BOXKOD, ZACS018_STR, MARA.

CONTROLS TABC TYPE TABLEVIEW USING SCREEN 102.

*----


    • END OF TABLES DECLARATION

*----


DEFINE DYN_DECLARE_CREATE.

DATA: &1 TYPE REF TO &2.

CREATE OBJECT &1.

END-OF-DEFINITION.

CONSTANTS C_WERKS TYPE WERKS_D VALUE '7600'.

CONSTANTS C_REPID TYPE SY-REPID VALUE SY-REPID.

CONSTANTS C_VERID TYPE VERID VALUE '0001'.

CONSTANTS C_MDV01 TYPE MDV01 VALUE 'F3LB02'.

CLASS CL_TABLE_CONTROL DEFINITION.

PUBLIC SECTION.

CLASS-DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.

CLASS-DATA: WA_DISPLAY TYPE ZACS018_STR.

CLASS-DATA: WA_COLS LIKE LINE OF TABC-COLS.

CLASS-METHODS M1 IMPORTING WA_C_DISPLAY TYPE ZACS018_STR EXPORTING ZACS018_STR_C TYPE ZACS018_STR.

CLASS-METHODS M2 IMPORTING ZACS018_STR_C TYPE ZACS018_STR CHANGING IT_C_DISPLAY LIKE IT_C_DISPLAY.

CLASS-METHODS M3 IMPORTING SAVE_OK TYPE SY-UCOMM CHANGING C_TABC TYPE CX_TABLEVIEW.

CLASS-METHODS M4 IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

SAVE_OK TYPE SY-UCOMM

CHANGING C_TABC TYPE CX_TABLEVIEW.

ENDCLASS.

CLASS CL_TABLE_CONTROL IMPLEMENTATION.

METHOD M1.

ZACS018_STR_C = WA_C_DISPLAY.

ENDMETHOD.

METHOD M2.

DESCRIBE TABLE IT_C_DISPLAY.

IF TABC-CURRENT_LINE > SY-TFILL.

APPEND ZACS018_STR_C TO IT_C_DISPLAY.

ELSE.

MODIFY IT_C_DISPLAY FROM ZACS018_STR_C INDEX TABC-CURRENT_LINE.

ENDIF.

ENDMETHOD.

METHOD M3.

IF SAVE_OK = 'CHECK'.

LOOP AT C_TABC-COLS INTO WA_COLS.

IF WA_COLS-SCREEN-GROUP2 = 'BOT'.

WA_COLS-SCREEN-INPUT = 0.

MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT C_TABC-COLS INTO WA_COLS.

IF WA_COLS-SCREEN-GROUP2 = 'BOT'.

WA_COLS-SCREEN-INPUT = 1.

MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.

ENDIF.

ENDLOOP.

ENDIF.

ENDMETHOD.

METHOD M4.

IF MASTER_PATTERN IS INITIAL OR PATTERNSLNO IS INITIAL.

LOOP AT C_TABC-COLS INTO WA_COLS.

IF WA_COLS-SCREEN-GROUP2 = 'BOT'.

WA_COLS-SCREEN-INPUT = 0.

MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.

ENDIF.

ENDLOOP.

ELSE.

IF SAVE_OK NE 'CHECK'.

LOOP AT C_TABC-COLS INTO WA_COLS.

IF WA_COLS-SCREEN-GROUP2 = 'BOT'.

WA_COLS-SCREEN-INPUT = 1.

MODIFY C_TABC-COLS FROM WA_COLS INDEX SY-TABIX.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDMETHOD.

ENDCLASS.

INTERFACE I_DATA.

DATA: WA_MARA TYPE MARA.

DATA: WA_MARC TYPE MARC.

DATA: WA_MAST TYPE MAST.

DATA: WA_STKO TYPE STKO.

DATA: WA_MKAL TYPE MKAL.

DATA: IT_STPOX TYPE STANDARD TABLE OF STPOX.

DATA: WA_STPOX TYPE STPOX.

DATA: WA_ZACT02_BOXKOD TYPE ZACT02_BOXKOD.

DATA: IT_C_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.

DATA: IT_SORT_DISPLAY TYPE STANDARD TABLE OF ZACS018_STR.

DATA: WA_DISPLAY TYPE ZACS018_STR.

DATA: W_YIELD(5) TYPE P DECIMALS 2.

METHODS PARTNO_VAL IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE.

METHODS MAINBI_VAL IMPORTING MAINB TYPE ZACS018_STR-MAINB.

METHODS CAVITY_VAL IMPORTING CAVITY TYPE ZACS018_STR-CAVITY.

METHODS GET_COMP_WT IMPORTING PARTCODE TYPE ZACS018_STR-PARTCODE EXPORTING GROSSWT TYPE ZACS018_STR-GROSSWT.

METHODS NETWT_VAL IMPORTING NETWT TYPE ZACS018_STR-NETWT GROSSWT TYPE ZACS018_STR-GROSSWT.

METHODS MASPAT_VAL IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN.

METHODS PATSLNO_VAL IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .

METHODS MAX_REF EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO.

METHODS NOOFBOX_VAL IMPORTING BMSCH TYPE ZACT02_BOXKOD-BMSCH.

METHODS TOTTIME_VAL IMPORTING VGW01 TYPE ZACT02_BOXKOD-VGW01.

METHODS TOTRUNWT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY

EXPORTING W_SUM_RUNWT LIKE ZACS018_STR-NETWT.

METHODS TOTCOMP_WT IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY

EXPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT.

METHODS CHECK_OK IMPORTING SAVE_OK TYPE SY-UCOMM.

METHODS SCREEN_DISPLAY IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

SAVE_OK TYPE SY-UCOMM.

METHODS DUP_CHECK IMPORTING IT_C_DISPLAY LIKE IT_C_DISPLAY.

METHODS BOX_YLD IMPORTING W_SUM_COMPWT LIKE ZACS018_STR-NETWT

W_TOT_WT LIKE ZACS018_STR-NETWT

EXPORTING W_YIELD LIKE W_YIELD.

ENDINTERFACE.

CLASS CL_CONTROL_EVENTS DEFINITION.

PUBLIC SECTION.

CLASS-DATA: C_WERKS TYPE WERKS_D VALUE C_WERKS.

INTERFACES I_DATA.

ENDCLASS.

CLASS CL_CONTROL_EVENTS IMPLEMENTATION.

METHOD I_DATA~PARTNO_VAL.

SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = PARTCODE.

IF SY-SUBRC <> 0.

MESSAGE TEXT-001 TYPE 'E'.

ELSE.

IF I_DATA~WA_MARA-MTART NE 'HALB'.

MESSAGE TEXT-002 TYPE 'E'.

ENDIF.

SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = PARTCODE AND

WERKS = C_WERKS.

IF SY-SUBRC <> 0.

MESSAGE TEXT-003 TYPE 'E'.

ELSE.

IF I_DATA~WA_MARC-FEVOR NE 'KOD'.

MESSAGE TEXT-004 TYPE 'E'.

ENDIF.

ENDIF.

ENDIF.

SELECT SINGLE * FROM MKAL INTO I_DATA~WA_MKAL WHERE MATNR = PARTCODE AND

WERKS = C_WERKS AND

VERID = C_VERID AND

MDV01 = C_MDV01.

IF SY-SUBRC <> 0.

MESSAGE TEXT-028 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~CAVITY_VAL.

SET CURSOR FIELD 'ZACS018_STR-CAVITY' LINE SY-STEPL.

IF CAVITY IS INITIAL.

MESSAGE TEXT-005 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~MAINBI_VAL.

SET CURSOR FIELD 'ZACS018_STR-MAINB' LINE SY-STEPL.

IF MAINB IS INITIAL.

MESSAGE TEXT-006 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~GET_COMP_WT.

SET CURSOR FIELD 'ZACS018_STR-PARTCODE' LINE SY-STEPL.

*SELECT SINGLE MAST~MATNR

  • MAST~WERKS

  • MAST~STLAL

  • STKO~DATUV

  • INTO (I_DATAWA_MAST-MATNR,I_DATAWA_MAST-WERKS,I_DATAWA_MAST-STLAL,I_DATAWA_STKO-DATUV)

  • FROM MAST AS MAST INNER JOIN STKO AS STKO

  • ON STKOSTLNR = MASTSTLNR AND STKOSTLAL = MASTSTLAL

  • WHERE MAST~MATNR = PARTCODE AND

  • STKO~STLST = '1' AND

  • STKO~STLTY = 'M' AND

  • STKO~LKENZ = '' AND

  • STKO~LOEKZ = ''.

SELECT SINGLE * FROM MAST INTO I_DATA~WA_MAST WHERE MATNR = PARTCODE AND

STLAN = '1' AND

STLAL = '01' AND

WERKS = C_WERKS.

IF SY-SUBRC <> 0.

MESSAGE TEXT-009 TYPE 'E'.

ENDIF.

*CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

  • EXPORTING

  • PERCENTAGE = 50

  • TEXT = TEXT-007.

*

*WAIT UP TO 2 SECONDS.

REFRESH I_DATA~IT_STPOX.

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

  • FTREL = 'X'

  • ALEKZ = ' '

  • ALTVO = ' '

  • AUFSW = ' '

  • AUMGB = ' '

  • AUMNG = 0

  • AUSKZ = 'X'

  • AMIND = ' '

  • BAGRP = ' '

  • BEIKZ = ' '

  • BESSL = ' '

  • BGIXO = 'X'

  • BREMS = 'X'

CAPID = 'PP01'

  • CHLST = ' '

  • COSPR = ' '

  • CUOBJ = 000000000000000

  • CUOVS = 0

  • CUOLS = ' '

DATUV = SY-DATUM

  • DELNL = SPACE

  • DRLDT = ' '

  • EHNDL = '1'

  • EMENG = 0

  • ERSKZ = ' '

  • ERSSL = ' '

  • FBSTP = ' '

  • KNFBA = ' '

  • KSBVO = ' '

  • MBWLS = ' '

  • MKTLS = 'X'

  • MDMPS = ' '

MEHRS = ' '

  • MKMAT = ' '

  • MMAPS = ' '

  • SALWW = ' '

  • SPLWW = ' '

MMORY = '0'

MTNRV = PARTCODE

  • NLINK = ' '

  • POSTP = ' '

  • RNDKZ = ' '

  • RVREL = ' '

  • SANFR = ' '

  • SANIN = ' '

  • SANKA = ' '

  • SANKO = ' '

  • SANVS = ' '

  • SCHGT = ' '

  • STKKZ = ' '

STLAL = '01'

STLAN = '1'

  • STPST = 0

  • SVWVO = 'X'

WERKS = C_WERKS

  • NORVL = ' '

  • MDNOT = ' '

  • PANOT = ' '

  • QVERW = ' '

  • VERID = ' '

  • VRSVO = 'X'

  • IMPORTING

  • TOPMAT =

  • DSTST =

TABLES

STB = I_DATA~IT_STPOX

  • MATCAT =

EXCEPTIONS

ALT_NOT_FOUND = 1

CALL_INVALID = 2

MATERIAL_NOT_FOUND = 3

MISSING_AUTHORIZATION = 4

NO_BOM_FOUND = 5

NO_PLANT_DATA = 6

NO_SUITABLE_BOM_FOUND = 7

CONVERSION_ERROR = 8

OTHERS = 9

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT I_DATA~IT_STPOX INTO I_DATA~WA_STPOX.

SELECT SINGLE FEVOR FROM MARC INTO I_DATA~WA_MARC-FEVOR WHERE MATNR = I_DATA~WA_STPOX-IDNRK AND

WERKS = I_DATA~WA_STPOX-WERKS AND

FEVOR = 'MLT'.

IF SY-SUBRC EQ 0.

GROSSWT = I_DATA~WA_STPOX-MNGLG.

EXIT.

ELSE.

CLEAR GROSSWT.

ENDIF.

ENDLOOP.

IF GROSSWT IS INITIAL.

MESSAGE TEXT-008 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~NETWT_VAL.

SET CURSOR FIELD 'ZACS018_STR-NETWT' LINE SY-STEPL.

IF NETWT IS INITIAL.

MESSAGE TEXT-010 TYPE 'E'.

ELSE.

IF NETWT >= GROSSWT.

MESSAGE TEXT-011 TYPE 'E'.

ENDIF.

ENDIF.

ENDMETHOD.

METHOD I_DATA~MASPAT_VAL.

IF MASTER_PATTERN IS INITIAL.

MESSAGE TEXT-014 TYPE 'E'.

ENDIF.

SELECT SINGLE * FROM MARA INTO I_DATA~WA_MARA WHERE MATNR = MASTER_PATTERN.

IF SY-SUBRC <> 0.

MESSAGE TEXT-001 TYPE 'E'.

ELSE.

IF I_DATA~WA_MARA-MTART NE 'FHMI'.

MESSAGE TEXT-012 TYPE 'E'.

ENDIF.

SELECT SINGLE * FROM MARC INTO I_DATA~WA_MARC WHERE MATNR = MASTER_PATTERN AND

WERKS = C_WERKS.

IF SY-SUBRC <> 0.

MESSAGE TEXT-003 TYPE 'E'.

ELSE.

IF I_DATA~WA_MARC-FEVOR NE 'MLD'.

MESSAGE TEXT-013 TYPE 'E'.

ENDIF.

ENDIF.

ENDIF.

ENDMETHOD.

METHOD I_DATA~PATSLNO_VAL.

IF PATTERNSLNO IS INITIAL.

MESSAGE TEXT-016 TYPE 'E'.

ENDIF.

SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN

AND PATTERNSLNO = PATTERNSLNO.

IF SY-SUBRC EQ 0.

MESSAGE TEXT-015 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~MAX_REF.

SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO.

VERSNO = VERSNO + 1.

ENDMETHOD.

METHOD I_DATA~NOOFBOX_VAL.

IF BMSCH IS INITIAL.

LOOP AT SCREEN.

IF SCREEN-GROUP2 = 'BOT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-PRD_ACT' AND SCREEN-NAME <> 'ZACT02_BOXKOD-SHOTS'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

MESSAGE TEXT-017 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~TOTTIME_VAL.

IF VGW01 IS INITIAL.

MESSAGE TEXT-018 TYPE 'E'.

ENDIF.

IF VGW01 > 480.

MESSAGE TEXT-019 TYPE 'E'.

ENDIF.

ENDMETHOD.

METHOD I_DATA~TOTRUNWT.

CLEAR W_SUM_RUNWT.

LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.

W_SUM_RUNWT = W_SUM_RUNWT + I_DATA~WA_DISPLAY-NETWT * I_DATA~WA_DISPLAY-CAVITY.

ENDLOOP.

ENDMETHOD.

METHOD I_DATA~TOTCOMP_WT.

CLEAR W_SUM_COMPWT.

LOOP AT IT_C_DISPLAY INTO I_DATA~WA_DISPLAY.

W_SUM_COMPWT = W_SUM_COMPWT + I_DATA~WA_DISPLAY-GROSSWT * I_DATA~WA_DISPLAY-CAVITY.

ENDLOOP.

ENDMETHOD.

METHOD I_DATA~CHECK_OK.

IF SAVE_OK = 'CHECK'.

LOOP AT SCREEN.

IF SCREEN-GROUP2 = 'BOT'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-GROUP2 = 'BOT'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDMETHOD.

METHOD I_DATA~SCREEN_DISPLAY.

IF MASTER_PATTERN IS INITIAL

OR PATTERNSLNO IS INITIAL.

LOOP AT SCREEN.

IF SCREEN-GROUP2 = 'BOT'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

IF SAVE_OK NE 'CHECK'.

LOOP AT SCREEN.

IF SCREEN-GROUP2 = 'BOT'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDMETHOD.

METHOD I_DATA~DUP_CHECK. " IMPORTING IT_C_DISPLAY

DATA: W_PARTCODE LIKE I_DATA~WA_DISPLAY-PARTCODE.

I_DATA~IT_SORT_DISPLAY = IT_C_DISPLAY.

SORT I_DATA~IT_SORT_DISPLAY BY PARTCODE.

CLEAR W_PARTCODE.

LOOP AT I_DATA~IT_SORT_DISPLAY INTO I_DATA~WA_DISPLAY.

IF W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.

MESSAGE TEXT-027 TYPE 'E'.

ENDIF.

W_PARTCODE = I_DATA~WA_DISPLAY-PARTCODE.

ENDLOOP.

ENDMETHOD.

METHOD I_DATA~BOX_YLD.

W_YIELD = ( W_SUM_COMPWT / W_TOT_WT ) * 100.

ENDMETHOD.

ENDCLASS.

  • inherited class for edit mode

CLASS CL_CONTROL_EDIT DEFINITION INHERITING FROM CL_CONTROL_EVENTS .

PUBLIC SECTION.

METHODS GET_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

EXPORTING VERSNO TYPE ZACT02_BOXKOD-VERSNO

CHANGING ZACT02_BOXKOD TYPE ZACT02_BOXKOD

IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY

IT_DEL_DISPLAY LIKE I_DATA~IT_C_DISPLAY

TABC TYPE CX_TABLEVIEW.

METHODS PATSLNO_VAL_CHG IMPORTING PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN .

ENDCLASS.

CLASS CL_CONTROL_EDIT IMPLEMENTATION.

METHOD GET_DATA.

IF MASTER_PATTERN IS NOT INITIAL AND PATTERNSLNO IS NOT INITIAL.

IF IT_C_DISPLAY IS INITIAL.

IF IT_DEL_DISPLAY IS INITIAL.

SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO VERSNO WHERE

MASTER_PATTERN = MASTER_PATTERN AND

PATTERNSLNO = PATTERNSLNO.

SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE

MASTER_PATTERN = MASTER_PATTERN AND

PATTERNSLNO = PATTERNSLNO AND

VERSNO = VERSNO..

SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO

CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE

MASTER_PATTERN = MASTER_PATTERN AND

PATTERNSLNO = PATTERNSLNO AND

VERSNO = VERSNO.

IT_DEL_DISPLAY[] = IT_C_DISPLAY[].

DESCRIBE TABLE IT_C_DISPLAY.

TABC-LINES = SY-TFILL.

ENDIF.

ENDIF.

ENDIF.

ENDMETHOD.

METHOD PATSLNO_VAL_CHG.

SELECT SINGLE * FROM ZACT02_BOXKOD INTO I_DATA~WA_ZACT02_BOXKOD WHERE MASTER_PATTERN = MASTER_PATTERN

AND PATTERNSLNO = PATTERNSLNO.

IF PATTERNSLNO IS INITIAL.

MESSAGE TEXT-016 TYPE 'E'.

ENDIF.

IF SY-SUBRC <> 0.

MESSAGE TEXT-022 TYPE 'E'.

ENDIF.

ENDMETHOD.

ENDCLASS.

  • inheriting for display

CLASS CL_CONTROL_DISPLAY DEFINITION INHERITING FROM CL_CONTROL_EDIT .

PUBLIC SECTION.

METHODS GET_DISPLAY_DATA IMPORTING MASTER_PATTERN TYPE ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO TYPE ZACT02_BOXKOD-PATTERNSLNO

VERSNO TYPE ZACT02_BOXKOD-VERSNO

CHANGING IT_C_DISPLAY LIKE I_DATA~IT_C_DISPLAY

ZACT02_BOXKOD TYPE ZACT02_BOXKOD

TABC TYPE CX_TABLEVIEW.

ENDCLASS.

CLASS CL_CONTROL_DISPLAY IMPLEMENTATION.

METHOD GET_DISPLAY_DATA.

SELECT SINGLE * FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD WHERE

MASTER_PATTERN = MASTER_PATTERN AND

PATTERNSLNO = PATTERNSLNO AND

VERSNO = VERSNO..

IF SY-SUBRC <> 0.

MESSAGE TEXT-026 TYPE 'E'.

ENDIF.

SELECT PARTCODE MAINB CAVITY GROSSWT NETWT FROM ZACT02_BOXKOD INTO

CORRESPONDING FIELDS OF TABLE IT_C_DISPLAY WHERE

MASTER_PATTERN = MASTER_PATTERN AND

PATTERNSLNO = PATTERNSLNO AND

VERSNO = VERSNO.

DESCRIBE TABLE IT_C_DISPLAY.

TABC-LINES = SY-TFILL.

ENDMETHOD.

ENDCLASS.

DATA: O_CONTROL_EVENTS TYPE REF TO CL_CONTROL_EVENTS.

DATA: O_CONTROL_EVENTS_EDIT TYPE REF TO CL_CONTROL_EDIT.

DATA: O_CONTROL_EVENTS_DISPLAY TYPE REF TO CL_CONTROL_DISPLAY.

*----


    • SELECTION SCREEN

*----


*----


    • END OF SELECTION SCREEN

*----


*----


    • VARIABLE DECLARATION BEGIN WITH W_

*----


DATA: OK_CODE TYPE SY-UCOMM,

SAVE_OK TYPE SY-UCOMM.

DATA: W_TOT_WT LIKE ZACS018_STR-NETWT,

W_SUM_COMPWT LIKE ZACS018_STR-NETWT,

W_SUM_RUNWT LIKE ZACS018_STR-NETWT,

W_YIELD(5) TYPE P DECIMALS 2.

DATA: W_TIMLO TYPE SY-TIMLO,

W_MODE TYPE SY-UCOMM.

DATA: W_SCREEN_NO TYPE SY-DYNNR.

*----


    • END OF VARIABLE DECLARATION

*----


*----


    • WORK AREAS DECLARATION BEGIN WITH WA_

*----


DATA: WA_DISPLAY TYPE ZACS018_STR.

*----


    • END OF WORK AREAS DECLARATION

*----


*----


    • INTERNAL TABLES BEGIN WITH IT_

*----


DATA: IT_DISPLAY TYPE ZACS018_STR OCCURS 0.

DATA: IT_DISPLAY_PRD TYPE ZACS018_STR OCCURS 0.

DATA: IT_DEL_DISPLAY TYPE ZACS018_STR OCCURS 0.

DATA: IT_ZACT02_BOXKOD TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.

DATA: IT_ZACT02_BOXKOD_DEL TYPE ZACT02_BOXKOD OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF IT_F4MASTERPAT OCCURS 0,

MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,

END OF IT_F4MASTERPAT.

DATA: BEGIN OF IT_F4PATSLNO OCCURS 0,

MASTER_PATTERN LIKE ZACT02_BOXKOD-MASTER_PATTERN,

PATTERNSLNO LIKE ZACT02_BOXKOD-PATTERNSLNO,

VERSNO LIKE ZACT02_BOXKOD-VERSNO,

END OF IT_F4PATSLNO.

DATA: IT_EXCLUDE TYPE TABLE OF SY-UCOMM..

DATA : IT_DYNPRO LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.

*----


    • END OF INTERNAL TABLES DECLARATIONS

*----


LOAD-OF-PROGRAM.

CREATE OBJECT O_CONTROL_EVENTS.

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

SAVE_OK = OK_CODE.

CLEAR OK_CODE.

W_MODE = SAVE_OK.

CASE SAVE_OK.

WHEN 'CREATE'.

CALL SCREEN 101.

WHEN 'CHANGE'.

CREATE OBJECT O_CONTROL_EVENTS_EDIT.

CALL SCREEN 101.

WHEN 'DISPLAY'.

APPEND 'SAVE' TO IT_EXCLUDE.

APPEND 'CHECK' TO IT_EXCLUDE.

APPEND 'ADD' TO IT_EXCLUDE.

CREATE OBJECT O_CONTROL_EVENTS_DISPLAY.

CALL SCREEN 101.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module STATUS_0102 OUTPUT

&----


  • text

----


MODULE STATUS_0102 OUTPUT.

CALL METHOD CL_TABLE_CONTROL=>M3 EXPORTING SAVE_OK = SAVE_OK CHANGING C_TABC = TABC.

CALL METHOD O_CONTROL_EVENTS->I_DATA~CHECK_OK EXPORTING SAVE_OK = SAVE_OK.

CALL METHOD O_CONTROL_EVENTS->I_DATA~SCREEN_DISPLAY EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

SAVE_OK = SAVE_OK.

CALL METHOD CL_TABLE_CONTROL=>M4 EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

SAVE_OK = SAVE_OK

CHANGING C_TABC = TABC.

DESCRIBE TABLE IT_DISPLAY.

IF TABC-LINES <= 1.

IF SY-TFILL = 0.

TABC-LINES = 1.

ENDIF.

ENDIF.

IF SAVE_OK NE 'CHECK'.

IF ZACT02_BOXKOD-TOOL_ACT <> 'X'.

CLEAR ZACT02_BOXKOD-PRD_ACT.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ZACT02_BOXKOD-PRD_ACT'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTRUNWT EXPORTING IT_C_DISPLAY = IT_DISPLAY

IMPORTING W_SUM_RUNWT = W_SUM_RUNWT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTCOMP_WT EXPORTING IT_C_DISPLAY = IT_DISPLAY

IMPORTING W_SUM_COMPWT = W_SUM_COMPWT.

CLEAR W_TOT_WT.

W_TOT_WT = W_SUM_RUNWT + W_SUM_COMPWT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~BOX_YLD EXPORTING W_SUM_COMPWT = W_SUM_COMPWT

W_TOT_WT = W_TOT_WT

IMPORTING W_YIELD = W_YIELD.

IF W_MODE <> 'CREATE'.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ZACT02_BOXKOD-SHOTS'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF W_MODE = 'DISPLAY'.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ADD' OR SCREEN-NAME = 'ICON_DELETE'.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDMODULE. " STATUS_0102 OUTPUT

&----


*& Module STATUS_0101 OUTPUT

&----


  • text

----


MODULE STATUS_0101 OUTPUT.

SET PF-STATUS 'STANDARD' EXCLUDING 'SAVE'.

IF W_MODE = 'CREATE'.

SET TITLEBAR 'STANDARD'.

ELSEIF W_MODE = 'DISPLAY'.

SET TITLEBAR 'STD_DIS'.

ELSE.

SET TITLEBAR 'STD_EDIT'.

ENDIF.

IF SAVE_OK = 'CHECK'.

DESCRIBE TABLE IT_DISPLAY.

IF SY-TFILL > 0.

SET PF-STATUS 'STANDARD'.

ENDIF.

ENDIF.

IF W_MODE = 'DISPLAY'.

SET PF-STATUS 'STANDARD' EXCLUDING IT_EXCLUDE.

ENDIF.

IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND

ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'TOP'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF W_MODE = 'DISPLAY'.

IF ZACT02_BOXKOD-VERSNO IS INITIAL.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.

SCREEN-INPUT = 1.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-NAME = 'ZACT02_BOXKOD-VERSNO'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDMODULE. " STATUS_0101 OUTPUT

&----


*& Module USER_COMMAND_0102 INPUT

&----


  • text

----


MODULE USER_COMMAND_0102 INPUT.

SAVE_OK = OK_CODE.

CLEAR OK_CODE.

CASE SAVE_OK.

WHEN 'ADD'.

DESCRIBE TABLE IT_DISPLAY.

IF SY-TFILL >= TABC-LINES.

IF TABC-LINES < 16.

TABC-LINES = SY-TFILL + 1.

ENDIF.

ENDIF.

WHEN 'DEL'.

LOOP AT IT_DISPLAY INTO WA_DISPLAY WHERE MARK = 'X'.

DELETE IT_DISPLAY INDEX SY-TABIX.

ENDLOOP.

DESCRIBE TABLE IT_DISPLAY.

IF SY-TFILL >= 1.

TABC-LINES = SY-TFILL.

ELSE.

TABC-LINES = 1.

ENDIF.

WHEN 'CHECK'.

CALL METHOD O_CONTROL_EVENTS->I_DATA~DUP_CHECK EXPORTING IT_C_DISPLAY = IT_DISPLAY.

WHEN 'SAVE'.

W_TIMLO = SY-TIMLO.

IF W_MODE = 'CREATE'.

PERFORM CREATE_SAVE.

ENDIF.

IF W_MODE = 'CHANGE'.

PERFORM EDIT_SAVE.

ENDIF.

ENDCASE.

IF W_MODE = 'DISPLAY'.

SAVE_OK = 'CHECK'.

ENDIF.

ENDMODULE. " USER_COMMAND_0102 INPUT

&----


*& Module MOD_TABLE INPUT

&----


  • text

----


MODULE MOD_TABLE INPUT.

CALL METHOD CL_TABLE_CONTROL=>M2 EXPORTING ZACS018_STR_C = ZACS018_STR CHANGING IT_C_DISPLAY = IT_DISPLAY.

ENDMODULE. " MOD_TABLE INPUT

&----


*& Module ASSIGN OUTPUT

&----


  • text

----


MODULE ASSIGN OUTPUT.

CALL METHOD CL_TABLE_CONTROL=>M1 EXPORTING WA_C_DISPLAY = WA_DISPLAY IMPORTING ZACS018_STR_C = ZACS018_STR.

ENDMODULE. " ASSIGN OUTPUT

&----


*& Module CHK_PARTCODE INPUT

&----


  • text

----


MODULE CHK_PARTCODE INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~PARTNO_VAL EXPORTING PARTCODE = ZACS018_STR-PARTCODE.

ENDMODULE. " CHK_PARTCODE INPUT

&----


*& Module CHK_CAVITY INPUT

&----


  • text

----


MODULE CHK_CAVITY INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~CAVITY_VAL EXPORTING CAVITY = ZACS018_STR-CAVITY.

ENDMODULE. " CHK_CAVITY INPUT

&----


*& Module CHK_MAINB INPUT

&----


  • text

----


MODULE CHK_MAINB INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~MAINBI_VAL EXPORTING MAINB = ZACS018_STR-MAINB.

ENDMODULE. " CHK_MAINB INPUT

&----


*& Module GET_COMP_WT INPUT

&----


  • text

----


MODULE GET_COMP_WT INPUT.

IF W_MODE <> 'DISPLAY'.

CALL METHOD O_CONTROL_EVENTS->I_DATA~GET_COMP_WT EXPORTING PARTCODE = ZACS018_STR-PARTCODE

IMPORTING GROSSWT = ZACS018_STR-GROSSWT.

ENDIF.

ENDMODULE. " GET_COMP_WT INPUT

&----


*& Module CHK_NETWT INPUT

&----


  • text

----


MODULE CHK_NETWT INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~NETWT_VAL EXPORTING NETWT = ZACS018_STR-NETWT

GROSSWT = ZACS018_STR-GROSSWT.

ENDMODULE. " CHK_NETWT INPUT

&----


*& Module CHK_MPAT INPUT

&----


  • text

----


MODULE CHK_MPAT INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~MASPAT_VAL EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

ENDMODULE. " CHK_MPAT INPUT

&----


*& Module CHK_SLNO INPUT

&----


  • text

----


MODULE CHK_SLNO INPUT.

IF W_MODE = 'CREATE'.

CALL METHOD O_CONTROL_EVENTS->I_DATA~PATSLNO_VAL EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .

ELSEIF W_MODE = 'CHANGE' .

CALL METHOD O_CONTROL_EVENTS_EDIT->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .

CALL METHOD O_CONTROL_EVENTS_EDIT->GET_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO

CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD

IT_C_DISPLAY = IT_DISPLAY

IT_DEL_DISPLAY = IT_DEL_DISPLAY

TABC = TABC.

ELSE.

CALL METHOD O_CONTROL_EVENTS_DISPLAY->PATSLNO_VAL_CHG EXPORTING PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN .

ENDIF.

ENDMODULE. " CHK_SLNO INPUT

&----


*& Module MAX_VER INPUT

&----


  • text

----


MODULE MAX_VER INPUT.

IF W_MODE = 'CREATE'.

CALL METHOD O_CONTROL_EVENTS->I_DATA~MAX_REF IMPORTING VERSNO = ZACT02_BOXKOD-VERSNO.

ENDIF.

IF W_MODE = 'DISPLAY'.

IF ZACT02_BOXKOD-VERSNO IS INITIAL.

MESSAGE TEXT-023 TYPE 'E'.

ENDIF.

IF ZACT02_BOXKOD-MASTER_PATTERN IS NOT INITIAL AND

ZACT02_BOXKOD-PATTERNSLNO IS NOT INITIAL AND

ZACT02_BOXKOD-VERSNO IS NOT INITIAL.

CALL METHOD O_CONTROL_EVENTS_DISPLAY->GET_DISPLAY_DATA EXPORTING MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO

VERSNO = ZACT02_BOXKOD-VERSNO

CHANGING ZACT02_BOXKOD = ZACT02_BOXKOD

IT_C_DISPLAY = IT_DISPLAY

TABC = TABC.

ENDIF.

ENDIF.

ENDMODULE. " MAX_VER INPUT

&----


*& Module CHK_NOBOXES INPUT

&----


  • text

----


MODULE CHK_NOBOXES INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~NOOFBOX_VAL EXPORTING BMSCH = ZACT02_BOXKOD-BMSCH.

ENDMODULE. " CHK_NOBOXES INPUT

&----


*& Module CHK_TOTTIME INPUT

&----


  • text

----


MODULE CHK_TOTTIME INPUT.

CALL METHOD O_CONTROL_EVENTS->I_DATA~TOTTIME_VAL EXPORTING VGW01 = ZACT02_BOXKOD-VGW01.

ENDMODULE. " CHK_TOTTIME INPUT

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'INITIAL'.

SET TITLEBAR 'STANDARD_MAIN'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module EXIT_PROGRAM INPUT

&----


  • text

----


MODULE EXIT_PROGRAM INPUT.

LEAVE TO TRANSACTION 'ZAC16'.

ENDMODULE. " EXIT_PROGRAM INPUT

&----


*& Module USER_COMMAND_0101 INPUT

&----


  • text

----


MODULE USER_COMMAND_0101 INPUT.

CASE SAVE_OK.

WHEN 'BACK'.

LEAVE TO TRANSACTION 'ZAC16'.

ENDCASE.

ENDMODULE. " USER_COMMAND_0101 INPUT

&----


*& Module F4_MASTPAT INPUT

&----


  • text

----


MODULE F4_MASTPAT INPUT.

REFRESH IT_F4MASTERPAT.

SELECT DISTINCT MASTER_PATTERN FROM ZACT02_BOXKOD INTO TABLE IT_F4MASTERPAT.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'MASTER_PATTERN'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'ZACT02_BOXKOD-MASTER_PATTERN'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_F4MASTERPAT

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDMODULE. " F4_MASTPAT INPUT

&----


*& Module F4_PATSLNO INPUT

&----


  • text

----


MODULE F4_PATSLNO INPUT.

PERFORM DYN_PRO_READ.

SELECT DISTINCT MASTER_PATTERN PATTERNSLNO VERSNO FROM ZACT02_BOXKOD

INTO CORRESPONDING FIELDS OF TABLE IT_F4PATSLNO

WHERE MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN

GROUP BY

MASTER_PATTERN

PATTERNSLNO

VERSNO ORDER BY PATTERNSLNO DESCENDING VERSNO DESCENDING.

DELETE ADJACENT DUPLICATES FROM IT_F4PATSLNO COMPARING MASTER_PATTERN PATTERNSLNO .

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'PATTERNSLNO'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'ZACT02_BOXKOD-PATTERNSLNO'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_F4PATSLNO

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

.

ENDMODULE. " F4_PATSLNO INPUT

FORM CREATE_SAVE.

LOOP AT IT_DISPLAY INTO WA_DISPLAY.

IT_ZACT02_BOXKOD-VERSNO = ZACT02_BOXKOD-VERSNO.

IT_ZACT02_BOXKOD-MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

IT_ZACT02_BOXKOD-PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

IT_ZACT02_BOXKOD-PARTCODE = WA_DISPLAY-PARTCODE.

IT_ZACT02_BOXKOD-MAINB = WA_DISPLAY-MAINB.

IT_ZACT02_BOXKOD-CAVITY = WA_DISPLAY-CAVITY.

IT_ZACT02_BOXKOD-GROSSWT = WA_DISPLAY-GROSSWT.

IT_ZACT02_BOXKOD-NETWT = WA_DISPLAY-NETWT.

IT_ZACT02_BOXKOD-ZDATE = SY-DATUM.

IT_ZACT02_BOXKOD-TOOL_ACT = ZACT02_BOXKOD-TOOL_ACT.

IT_ZACT02_BOXKOD-PRD_ACT = ZACT02_BOXKOD-PRD_ACT.

*IT_ZACT02_BOXKOD-SCRAPCODE <----


What is it ???

IT_ZACT02_BOXKOD-UNAME = SY-UNAME.

IT_ZACT02_BOXKOD-TIMLO = W_TIMLO.

IT_ZACT02_BOXKOD-BMSCH = ZACT02_BOXKOD-BMSCH.

IT_ZACT02_BOXKOD-VGW01 = ZACT02_BOXKOD-VGW01.

IT_ZACT02_BOXKOD-SHOTS = ZACT02_BOXKOD-SHOTS.

APPEND IT_ZACT02_BOXKOD.

CLEAR IT_ZACT02_BOXKOD.

CLEAR WA_DISPLAY.

ENDLOOP.

INSERT ZACT02_BOXKOD FROM TABLE IT_ZACT02_BOXKOD ACCEPTING DUPLICATE KEYS.

IF SY-SUBRC EQ 0.

COMMIT WORK.

MESSAGE TEXT-020 TYPE 'S'.

LEAVE TO TRANSACTION 'ZAC16'.

ELSE.

ROLLBACK WORK.

MESSAGE TEXT-021 TYPE 'I'.

LEAVE TO TRANSACTION 'ZAC16'.

ENDIF.

ENDFORM.

FORM EDIT_SAVE.

  • If no changes have been done in the table control

IF IT_DEL_DISPLAY[] NE IT_DISPLAY.

  • for making the previous values tool & prod active unchecked

SELECT * FROM ZACT02_BOXKOD INTO TABLE IT_ZACT02_BOXKOD_DEL WHERE

VERSNO = ZACT02_BOXKOD-VERSNO AND

MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN AND

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

LOOP AT IT_ZACT02_BOXKOD_DEL.

IT_ZACT02_BOXKOD_DEL-TOOL_ACT = SPACE.

IT_ZACT02_BOXKOD_DEL-PRD_ACT = SPACE.

MODIFY IT_ZACT02_BOXKOD_DEL INDEX SY-TABIX.

ENDLOOP.

*LOOP AT IT_DEL_DISPLAY INTO WA_DISPLAY.

*IT_ZACT02_BOXKOD_DEL-VERSNO = ZACT02_BOXKOD-VERSNO.

*IT_ZACT02_BOXKOD_DEL-MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

*IT_ZACT02_BOXKOD_DEL-PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

*IT_ZACT02_BOXKOD_DEL-PARTCODE = WA_DISPLAY-PARTCODE.

*IT_ZACT02_BOXKOD_DEL-MAINB = WA_DISPLAY-MAINB.

*IT_ZACT02_BOXKOD_DEL-CAVITY = WA_DISPLAY-CAVITY.

*IT_ZACT02_BOXKOD_DEL-GROSSWT = WA_DISPLAY-GROSSWT.

*IT_ZACT02_BOXKOD_DEL-NETWT = WA_DISPLAY-NETWT.

*IT_ZACT02_BOXKOD_DEL-ZDATE = SY-DATUM.

*IT_ZACT02_BOXKOD_DEL-TOOL_ACT = SPACE.

*IT_ZACT02_BOXKOD_DEL-PRD_ACT = SPACE.

**IT_ZACT02_BOXKOD_DEL-SCRAPCODE <----


What is it ???

*IT_ZACT02_BOXKOD_DEL-UNAME = SY-UNAME.

*IT_ZACT02_BOXKOD_DEL-TIMLO = W_TIMLO.

*IT_ZACT02_BOXKOD_DEL-BMSCH = ZACT02_BOXKOD-BMSCH.

*IT_ZACT02_BOXKOD_DEL-VGW01 = ZACT02_BOXKOD-VGW01.

*IT_ZACT02_BOXKOD_DEL-SHOTS = ZACT02_BOXKOD-SHOTS.

*APPEND IT_ZACT02_BOXKOD_DEL.

*CLEAR IT_ZACT02_BOXKOD_DEL.

*CLEAR WA_DISPLAY.

*ENDLOOP.

SELECT SINGLE MAX( VERSNO ) FROM ZACT02_BOXKOD INTO ZACT02_BOXKOD-VERSNO.

*VERSNO = VERSNO + 1.

LOOP AT IT_DISPLAY INTO WA_DISPLAY.

IT_ZACT02_BOXKOD-VERSNO = ZACT02_BOXKOD-VERSNO + 1. " <----- To get the next version

IT_ZACT02_BOXKOD-MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

IT_ZACT02_BOXKOD-PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

IT_ZACT02_BOXKOD-PARTCODE = WA_DISPLAY-PARTCODE.

IT_ZACT02_BOXKOD-MAINB = WA_DISPLAY-MAINB.

IT_ZACT02_BOXKOD-CAVITY = WA_DISPLAY-CAVITY.

IT_ZACT02_BOXKOD-GROSSWT = WA_DISPLAY-GROSSWT.

IT_ZACT02_BOXKOD-NETWT = WA_DISPLAY-NETWT.

IT_ZACT02_BOXKOD-ZDATE = SY-DATUM.

IT_ZACT02_BOXKOD-TOOL_ACT = ZACT02_BOXKOD-TOOL_ACT.

IT_ZACT02_BOXKOD-PRD_ACT = ZACT02_BOXKOD-PRD_ACT.

*IT_ZACT02_BOXKOD-SCRAPCODE <----


What is it ???

IT_ZACT02_BOXKOD-UNAME = SY-UNAME.

IT_ZACT02_BOXKOD-TIMLO = W_TIMLO.

IT_ZACT02_BOXKOD-BMSCH = ZACT02_BOXKOD-BMSCH.

IT_ZACT02_BOXKOD-VGW01 = ZACT02_BOXKOD-VGW01.

IT_ZACT02_BOXKOD-SHOTS = ZACT02_BOXKOD-SHOTS.

APPEND IT_ZACT02_BOXKOD.

CLEAR IT_ZACT02_BOXKOD.

CLEAR WA_DISPLAY.

ENDLOOP.

MODIFY ZACT02_BOXKOD FROM TABLE IT_ZACT02_BOXKOD_DEL.

INSERT ZACT02_BOXKOD FROM TABLE IT_ZACT02_BOXKOD ACCEPTING DUPLICATE KEYS.

IF SY-SUBRC EQ 0.

COMMIT WORK.

MESSAGE TEXT-020 TYPE 'S'.

LEAVE TO TRANSACTION 'ZAC16'.

ELSE.

ROLLBACK WORK.

MESSAGE TEXT-021 TYPE 'I'.

LEAVE TO TRANSACTION 'ZAC16'.

ENDIF.

ELSE.

LOOP AT IT_DEL_DISPLAY INTO WA_DISPLAY.

IT_ZACT02_BOXKOD_DEL-VERSNO = ZACT02_BOXKOD-VERSNO.

IT_ZACT02_BOXKOD_DEL-MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

IT_ZACT02_BOXKOD_DEL-PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

IT_ZACT02_BOXKOD_DEL-PARTCODE = WA_DISPLAY-PARTCODE.

IT_ZACT02_BOXKOD_DEL-MAINB = WA_DISPLAY-MAINB.

IT_ZACT02_BOXKOD_DEL-CAVITY = WA_DISPLAY-CAVITY.

IT_ZACT02_BOXKOD_DEL-GROSSWT = WA_DISPLAY-GROSSWT.

IT_ZACT02_BOXKOD_DEL-NETWT = WA_DISPLAY-NETWT.

IT_ZACT02_BOXKOD_DEL-ZDATE = SY-DATUM.

IT_ZACT02_BOXKOD_DEL-TOOL_ACT = ZACT02_BOXKOD-TOOL_ACT.

IT_ZACT02_BOXKOD_DEL-PRD_ACT = ZACT02_BOXKOD-PRD_ACT.

*IT_ZACT02_BOXKOD_DEL-SCRAPCODE <----


What is it ???

IT_ZACT02_BOXKOD_DEL-UNAME = SY-UNAME.

IT_ZACT02_BOXKOD_DEL-TIMLO = W_TIMLO.

IT_ZACT02_BOXKOD_DEL-BMSCH = ZACT02_BOXKOD-BMSCH.

IT_ZACT02_BOXKOD_DEL-VGW01 = ZACT02_BOXKOD-VGW01.

IT_ZACT02_BOXKOD_DEL-SHOTS = ZACT02_BOXKOD-SHOTS.

APPEND IT_ZACT02_BOXKOD_DEL.

CLEAR IT_ZACT02_BOXKOD_DEL.

CLEAR WA_DISPLAY.

ENDLOOP.

LOOP AT IT_DISPLAY INTO WA_DISPLAY.

IT_ZACT02_BOXKOD-VERSNO = ZACT02_BOXKOD-VERSNO.

IT_ZACT02_BOXKOD-MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN.

IT_ZACT02_BOXKOD-PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

IT_ZACT02_BOXKOD-PARTCODE = WA_DISPLAY-PARTCODE.

IT_ZACT02_BOXKOD-MAINB = WA_DISPLAY-MAINB.

IT_ZACT02_BOXKOD-CAVITY = WA_DISPLAY-CAVITY.

IT_ZACT02_BOXKOD-GROSSWT = WA_DISPLAY-GROSSWT.

IT_ZACT02_BOXKOD-NETWT = WA_DISPLAY-NETWT.

IT_ZACT02_BOXKOD-ZDATE = SY-DATUM.

IT_ZACT02_BOXKOD-TOOL_ACT = ZACT02_BOXKOD-TOOL_ACT.

IT_ZACT02_BOXKOD-PRD_ACT = ZACT02_BOXKOD-PRD_ACT.

*IT_ZACT02_BOXKOD-SCRAPCODE <----


What is it ???

IT_ZACT02_BOXKOD-UNAME = SY-UNAME.

IT_ZACT02_BOXKOD-TIMLO = W_TIMLO.

IT_ZACT02_BOXKOD-BMSCH = ZACT02_BOXKOD-BMSCH.

IT_ZACT02_BOXKOD-VGW01 = ZACT02_BOXKOD-VGW01.

IT_ZACT02_BOXKOD-SHOTS = ZACT02_BOXKOD-SHOTS.

APPEND IT_ZACT02_BOXKOD.

CLEAR IT_ZACT02_BOXKOD.

CLEAR WA_DISPLAY.

ENDLOOP.

MODIFY ZACT02_BOXKOD FROM TABLE IT_ZACT02_BOXKOD.

COMMIT WORK.

MESSAGE TEXT-020 TYPE 'S'.

LEAVE TO TRANSACTION 'ZAC16'.

ENDIF.

ENDFORM.

&----


*& Module F4_VERSNO INPUT

&----


  • text

----


MODULE F4_VERSNO INPUT.

PERFORM DYN_PRO_READ.

REFRESH IT_F4PATSLNO.

SELECT DISTINCT VERSNO

MASTER_PATTERN

PATTERNSLNO

FROM ZACT02_BOXKOD

INTO CORRESPONDING FIELDS OF TABLE IT_F4PATSLNO WHERE

MASTER_PATTERN = ZACT02_BOXKOD-MASTER_PATTERN AND

PATTERNSLNO = ZACT02_BOXKOD-PATTERNSLNO.

SORT IT_F4PATSLNO BY VERSNO DESCENDING.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'VERSNO'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'ZACT02_BOXKOD-VERSNO'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_F4PATSLNO

  • FIELD_TAB =

  • RETURN_TAB =

  • DYNPFLD_MAPPING =

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDMODULE. " F4_VERSNO INPUT

&----


*& Module EXIT_PROGRAM_MAIN INPUT

&----


  • text

----


MODULE EXIT_PROGRAM_MAIN INPUT.

LEAVE PROGRAM.

ENDMODULE. " EXIT_PROGRAM_MAIN INPUT

FORM DYN_PRO_READ.

W_SCREEN_NO = SY-DYNNR.

IT_DYNPRO-FIELDNAME ='ZACT02_BOXKOD-MASTER_PATTERN'.

APPEND IT_DYNPRO.

IT_DYNPRO-FIELDNAME = 'ZACT02_BOXKOD-PATTERNSLNO'.

APPEND IT_DYNPRO.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = C_REPID

DYNUMB = SY-DYNNR

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

PERFORM_CONVERSION_EXITS = 'X'

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

TABLES

DYNPFIELDS = IT_DYNPRO

EXCEPTIONS

INVALID_ABAPWORKAREA = 1

INVALID_DYNPROFIELD = 2

INVALID_DYNPRONAME = 3

INVALID_DYNPRONUMMER = 4

INVALID_REQUEST = 5

NO_FIELDDESCRIPTION = 6

INVALID_PARAMETER = 7

UNDEFIND_ERROR = 8

DOUBLE_CONVERSION = 9

STEPL_NOT_FOUND = 10

OTHERS = 11

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT IT_DYNPRO.

CASE IT_DYNPRO-FIELDNAME.

WHEN 'ZACT02_BOXKOD-MASTER_PATTERN'.

MOVE IT_DYNPRO-FIELDVALUE TO ZACT02_BOXKOD-MASTER_PATTERN.

WHEN 'ZACT02_BOXKOD-PATTERNSLNO'.

MOVE IT_DYNPRO-FIELDVALUE TO ZACT02_BOXKOD-PATTERNSLNO.

ENDCASE.

ENDLOOP.

ENDFORM.

FLOW LOGIC FOR 3 SCREENS :

101 SCREEN:

PROCESS BEFORE OUTPUT.

MODULE STATUS_0101.

CALL SUBSCREEN SUB_AREA INCLUDING SY-REPID '0102'.

PROCESS AFTER INPUT.

FIELD ZACT02_BOXKOD-MASTER_PATTERN MODULE CHK_MPAT.

FIELD ZACT02_BOXKOD-PATTERNSLNO MODULE CHK_SLNO.

FIELD ZACT02_BOXKOD-VERSNO MODULE MAX_VER.

MODULE EXIT_PROGRAM AT EXIT-COMMAND.

CALL SUBSCREEN SUB_AREA.

MODULE USER_COMMAND_0101.

PROCESS ON VALUE-REQUEST.

FIELD ZACT02_BOXKOD-MASTER_PATTERN MODULE F4_MASTPAT.

FIELD ZACT02_BOXKOD-PATTERNSLNO MODULE F4_PATSLNO.

FIELD ZACT02_BOXKOD-VERSNO MODULE F4_VERSNO.

102 SCREEN:

PROCESS BEFORE OUTPUT.

MODULE STATUS_0102.

LOOP AT IT_DISPLAY INTO WA_DISPLAY WITH CONTROL TABC CURSOR

TABC-CURRENT_LINE.

MODULE ASSIGN.

ENDLOOP.

PROCESS AFTER INPUT.

FIELD ZACT02_BOXKOD-TOOL_ACT.

FIELD ZACT02_BOXKOD-BMSCH MODULE CHK_NOBOXES.

FIELD ZACT02_BOXKOD-VGW01 MODULE CHK_TOTTIME.

FIELD ZACT02_BOXKOD-SHOTS.

LOOP AT IT_DISPLAY.

FIELD ZACS018_STR-PARTCODE MODULE CHK_PARTCODE.

CHAIN.

FIELD ZACS018_STR-GROSSWT.

FIELD ZACS018_STR-PARTCODE MODULE GET_COMP_WT. "ON REQUEST.

FIELD ZACS018_STR-MAINB MODULE CHK_MAINB.

FIELD ZACS018_STR-CAVITY MODULE CHK_CAVITY.

FIELD ZACS018_STR-NETWT MODULE CHK_NETWT.

*FIELD ZACS018_STR-GROSSWT.

ENDCHAIN.

MODULE MOD_TABLE.

ENDLOOP.

MODULE USER_COMMAND_0102.

100 SCREEN:

PROCESS BEFORE OUTPUT.

MODULE STATUS_0100.

*

PROCESS AFTER INPUT.

MODULE EXIT_PROGRAM_MAIN AT EXIT-COMMAND.

MODULE USER_COMMAND_0100.

Regards.,

S.Sivakumar

Read only

0 Likes
2,110

Hi Marcelo Ramos.,

How r u doing .. i am fine here .. I also tried the weblog created by Thomas Jung .. In that i am unable to Capture the POV Event ... I followed the steps as it without any change as there in the weblog ...if possible plz try that weblog and tell me how can i capture the POV event .... My screen flowlogic is a standard one ..

screen 100 .

PROCESS BEFORE OUTPUT.

MODULE d0000_pbo_set_status.

MODULE d0000_pbo.

PROCESS AFTER INPUT.

MODULE d0000_pai_fcode AT EXIT-COMMAND.

MODULE d0000_pai.

MODULE d0000_pai_fcode.

PROCESS ON VALUE-REQUEST.

screen 200 .

PROCESS BEFORE OUTPUT.

MODULE d0000_pbo_set_status.

MODULE d0000_pbo.

PROCESS AFTER INPUT.

MODULE d0000_pai_fcode AT EXIT-COMMAND.

MODULE d0000_pai.

MODULE d0000_pai_fcode.

The flowlogic for all the screens is one and the same because it is system include file ...

&----


*& Include LLFGR_SCREEN_FRAMEWORKO00

&----


&----


*& Module d0000_pbo_set_status OUTPUT

&----


  • text

----


module d0000_pbo_set_status output. "#EC *

perform d0000_handle_event using cl_screen_window=>c_event_pfstatus.

endmodule. " d0000_pbo_set_status OUTPUT

&----


*& Module d0000_pbo OUTPUT

&----


  • text

----


module d0000_pbo output. "#EC *

perform d0000_handle_event using cl_screen=>c_event_pbo.

endmodule. " d0000_pbo OUTPUT

&----


*& Module d0000_pbo_get_subscreen OUTPUT

&----


  • text

----


module d0000_pbo_get_subscreen output. "#EC *

perform d0000_get_subscreen.

endmodule. " d0000_pbo_get_subscreen OUTPUT

&----


*& Include LLFGR_SCREEN_FRAMEWORKI00

&----


&----


*& Module d0000_pai INPUT

&----


  • text

----


module d0000_pai input. "#EC *

perform d0000_handle_event using cl_screen=>c_event_pai.

endmodule. " d0000_pai INPUT

&----


*& Module d0000_pai_fcode INPUT

&----


  • text

----


module d0000_pai_fcode input. "#EC *

perform d0000_handle_event using cl_screen=>c_event_fcode.

endmodule. " d0000_pai_fcode INPUT

&----


*& Module d0000_pai_get_cursor INPUT

&----


  • text

----


module d0000_pai_get_cursor input. "#EC *

perform d0000_pai_get_cursor.

endmodule. " d0000_pai_get_cursor INPUT

Main Program .

FUNCTION-POOL ZESU_BC640_OO_DYNPRO_LEG. "MESSAGE-ID ..

INCLUDE LSALV_DYNPRO_FRAMEWORKDEF.

INCLUDE LSALV_DYNPRO_FRAMEWORKI00.

INCLUDE LSALV_DYNPRO_FRAMEWORKO00.

INCLUDE LSALV_DYNPRO_FRAMEWORKF00.

&----


*& Include LLFGR_SCREEN_FRAMEWORKDEF

&----


data: gr_framework type ref to cl_screen_framework,

gr_view type ref to cl_screen,

g_repid type syrepid,

g_dynnr type sydynnr,

g_okcode type syucomm. "#EC NEEDED

data: g_pov_field type dynfnam.

&----


*& Include LLFGR_SCREEN_FRAMEWORKI00

&----


&----


*& Module d0000_pai INPUT

&----


  • text

----


module d0000_pai input. "#EC *

perform d0000_handle_event using cl_screen=>c_event_pai.

endmodule. " d0000_pai INPUT

&----


*& Module d0000_pai_fcode INPUT

&----


  • text

----


module d0000_pai_fcode input. "#EC *

perform d0000_handle_event using cl_screen=>c_event_fcode.

endmodule. " d0000_pai_fcode INPUT

&----


*& Module d0000_pai_get_cursor INPUT

&----


  • text

----


module d0000_pai_get_cursor input. "#EC *

perform d0000_pai_get_cursor.

endmodule. " d0000_pai_get_cursor INPUT

&----


*& Include LLFGR_SCREEN_FRAMEWORKO00

&----


&----


*& Module d0000_pbo_set_status OUTPUT

&----


  • text

----


module d0000_pbo_set_status output. "#EC *

perform d0000_handle_event using cl_screen_window=>c_event_pfstatus.

endmodule. " d0000_pbo_set_status OUTPUT

&----


*& Module d0000_pbo OUTPUT

&----


  • text

----


module d0000_pbo output. "#EC *

perform d0000_handle_event using cl_screen=>c_event_pbo.

endmodule. " d0000_pbo OUTPUT

&----


*& Module d0000_pbo_get_subscreen OUTPUT

&----


  • text

----


module d0000_pbo_get_subscreen output. "#EC *

perform d0000_get_subscreen.

endmodule. " d0000_pbo_get_subscreen OUTPUT

&----


*& Include LLFGR_SCREEN_FRAMEWORKF00

&----


&----


*& Form d0000_get_screen

&----


  • text

----


form d0000_get_screen .

gr_framework = cl_screen_framework=>get_instance( ).

gr_view = gr_framework->get_view( repid = sy-repid

dynnr = sy-dynnr ).

check not gr_view is initial.

g_repid = gr_view->repid.

g_dynnr = gr_view->dynnr.

endform. " d0000_get_screen

&----


*& Form d0000_handle_event

&----


  • text

----


form d0000_handle_event using i_event type syucomm.

perform d0000_get_screen.

case i_event.

when cl_screen=>c_event_fcode.

gr_framework->set_fcode( g_okcode ).

clear g_okcode.

when others.

endcase.

if not gr_view is initial.

case i_event.

when cl_screen=>c_event_pov.

gr_view->set_pov_field( g_pov_field ).

endcase.

gr_view->on_event( i_event ).

endif.

case i_event.

when cl_screen=>c_event_fcode.

g_okcode = gr_framework->fcode.

when cl_screen=>c_event_pov.

field-symbols:

<l_value> type any.

assign (g_pov_field) to <l_value>.

<l_value> = gr_view->pov_value.

clear g_pov_field.

when others.

endcase.

endform. " d0000_handle_event

&----


*& Form d0000_get_subscreen

&----


  • text

----


form d0000_get_subscreen .

perform d0000_get_screen.

data: lr_view type ref to cl_screen,

lr_comp type ref to cl_screen_composite.

check not gr_view is initial.

lr_comp ?= gr_view.

lr_view = lr_comp->get_next_view( ).

g_repid = lr_view->repid.

g_dynnr = lr_view->dynnr.

endform. " d0000_get_subscreen

&----


*& Form d0000_pai_get_cursor

&----


  • text

----


form d0000_pai_get_cursor .

perform d0000_get_screen.

check not gr_view is initial.

data: ls_cursor type salv_dynpro_s_cursor.

get cursor field ls_cursor-field line ls_cursor-line value ls_cursor-value.

gr_view->set_cursor( ls_cursor ).

gr_framework->set_cursor( r_view = gr_view

s_cursor = ls_cursor ).

endform. " d0000_pai_get_cursor

Function Module :

function z_dynpro_call_screen .

*"----


""Local Interface:

*" IMPORTING

*" REFERENCE(I_DYNNR) TYPE SYDYNNR

*" REFERENCE(I_POPUP) TYPE SAP_BOOL OPTIONAL

*" REFERENCE(I_STARTING_X) TYPE I OPTIONAL

*" REFERENCE(I_ENDING_X) TYPE I OPTIONAL

*" REFERENCE(I_STARTING_Y) TYPE I OPTIONAL

*" REFERENCE(I_ENDING_Y) TYPE I OPTIONAL

*"----


data: l_starting_x type i,

l_ending_x type i,

l_starting_y type i,

l_ending_y type i.

case i_popup.

when space.

call screen i_dynnr.

when others.

l_starting_x = i_starting_x.

l_ending_x = i_ending_x.

l_starting_y = i_starting_y.

l_ending_y = i_ending_y.

if l_starting_x is initial.

l_starting_x = 1.

endif.

if l_ending_x is initial.

endif.

if l_starting_y is initial.

l_starting_y = 1.

endif.

if l_ending_y is initial.

endif.

call screen i_dynnr starting at l_starting_x l_starting_y

ending at l_ending_x l_ending_y.

endcase.

endfunction.

Regards.,

S.Sivakumar

Read only

Former Member
0 Likes
2,110

Hiii!

Check out this link

http://www.abapprogramming.net/search/label/MODULE%20POOL%20PROGRAMMING

Regards

Abhijeet Kulshreshtha

Read only

marcelo_ramos1
SAP Mentor
SAP Mentor
0 Likes
2,110

Hi Sivakumar,

How've you been ?

Sorry for answer you so late !

Try to create a class with event and a method to raise this event. Do as Follow:


*----------------------------------------------------------------------*
*       CLASS cl_events DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_events DEFINITION.

  PUBLIC SECTION.
*   Event for Value Request
    EVENTS process_on_value_request EXPORTING VALUE(field) TYPE DYNFNAM.
*   Method to Raise the event process_on_value_request
    METHODS trigger_pov IMPORTING field TYPE DYNFNAM.

ENDCLASS.                    "cl_events DEFINITION


*----------------------------------------------------------------------*
*       CLASS cl_events IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_events IMPLEMENTATION.

  METHOD trigger_pov.
*   Raise the event process_on_value_request for File <Field Name like MARA_MATNR>
    RAISE EVENT process_on_value_request EXPORTING field = field.

  ENDMETHOD.                    "trigger_pov

ENDCLASS.                    "cl_events IMPLEMENTATION

Now you need an event handler for event of previous class. do as follow:



*----------------------------------------------------------------------*
*       CLASS cl_fieldEvents DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_fieldEvents DEFINITION.

  PUBLIC SECTION.
*   Event Handler 
    METHODS process_on_value_request
      FOR EVENT process_on_value_request OF cl_events IMPORTING FIELD .

ENDCLASS.                    "cl_fieldEvents DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_fieldEvents IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_fieldEvents IMPLEMENTATION.

  METHOD process_on_value_request.

    CASE field.
      WHEN 'SPFLI-CARRID'.
*       Open Value Help for field SPFLI-CARRID
        CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'
          EXPORTING
            doklangu         = sy-langu
            called_for_tab   = 'SPFLI'
            called_for_field = 'CARRID'.

      WHEN OTHERS.
*        ...
    ENDCASE.

  ENDMETHOD.                    "process_on_value_request

ENDCLASS.                    "cl_fieldEvents IMPLEMENTATION

Once all classes be definited and implemented we need the objects:



* Objects Data
DATA: view       TYPE REF TO cl_events,
          controller TYPE REF TO cl_fieldEvents.

We need to instantiate this objects.


* Instance creation 
  CREATE OBJECT: view, controller.

* Activate the event process_on_value_request handler for event of class view
  SET HANDLER controller->process_on_value_request FOR view.

Now we need to implement it in screen.



* In Screen 001 call module value_request in PROCESS ON VALUE-REQUEST event section 
PROCESS AFTER INPUT.
 
 ...
 
PROCESS ON VALUE-REQUEST.
  FIELD spfli-carrid MODULE value_request.

For finish your Module need to call the method who raise the event.



* Within Module call method view->trigger_pov to raise event
* thus, the event handler process_on_value_request of instance 
* controller is callled automatically
MODULE value_request INPUT.

  view->trigger_pov( EXPORTING field = 'SPFLI-CARRID' ).

ENDMODULE.                    "value_request INPUT

Try to adapt the code into your application.

I Hope this help you.

Grettings.

Marcelo Ramos

Read only

marcelo_ramos1
SAP Mentor
SAP Mentor
0 Likes
2,110

Sivakumar,

IF you need to implement Value Help( F1 ) do the same as Value Request and just use the function module "HELP_OBJECT_SHOW_FOR_FIELD" as follow:


    CALL FUNCTION 'HELP_OBJECT_SHOW_FOR_FIELD'
      EXPORTING
        doklangu         = sy-langu
        called_for_tab   = 'SPFLI'
        called_for_field = 'CARRID'.

Best Regards.

Marcelo Ramos

Read only

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes
2,110

Hi Marcelo Ramos.,

Thank u for ur reply .. its very helpful for me .. Eagerly waiting for ur Classical dynpro Framework ..I am also tring to Concentrate on Webdynpros .. Will get back to u if any doubts ..

keep in touch .. Take care and bye ..

Thanks & Regards.,

S.Sivakumar

Read only

Sivakumar_Subramaniam
Product and Topic Expert
Product and Topic Expert
0 Likes
2,110

Hi Marcelo Ramos.,

Has the Classical Dynpro using MVC Architecture released.. send me the link to know about it.. I am very eager to have a look at it ..