Application Development 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: 

query in module pool

Former Member
0 Kudos

hi

plz solve this ..

give code related to module pool for getting the values corresponding to clicked buttons like NEXT , PREVIOUS , LAST etc. from database table into fields of screen i.e , textbox .

values should get dcremented in textboxes as we click previous button.

plz help.

3 REPLIES 3

Former Member
0 Kudos

Hi Arrora,

TABLES : MARA,
         MAKT.

DATA :  SAVE_OK LIKE SY-UCOMM.

DATA : BEGIN OF STR_MAT,
       MATNR LIKE MARA-MATNR,            " MATERIAL NUMBER
       MAKTX LIKE MAKT-MAKTX,            " MATERIAL DESCRIPTION
       MBRSH LIKE MARA-MBRSH,            " INDUSTRY SECTOR
       MATKL LIKE MARA-MATKL,            " MATERIAL GROUP
       BISMT LIKE MARA-BISMT,            " OLD MATERIAL NO
       MEINS LIKE MARA-MEINS,            " BASE UNIT OF MEASURE
       BRGEW LIKE MARA-BRGEW,            " GROSS WEIGHT
       GEWEI LIKE MARA-GEWEI,            " WEIGHT UNIT
       EAN11 LIKE MARA-EAN11,            " INTERNATIONAL ARTICLE NUMBER
       NUMTP LIKE MARA-NUMTP,            " CATEGORY OF INTERNATIONAL ARTICLE NUMBER
       END OF STR_MAT.


DATA : BEGIN OF STR_PLNT,
       WERKS LIKE MARC-WERKS,            " PLANT
       XMCNG LIKE MARC-XMCNG,            " NEGATIVE STOCK ALLOWED IN PLANT
       LOGGR LIKE MARC-LOGGR,            " LOGISTIC HANDLING GROUP FOR WORKLOAD CALC
       FPRFM LIKE MARC-FPRFM,            " DISTRIBUTION PROFILE OF MATERIAL IN PLANT
       EPRIO LIKE MARC-EPRIO,            " STOCK DETERMINATION GROUP
       XCHAR LIKE MARC-XCHAR,            " BATCH MANAGEMENT REQUIREMENT INDICATOR
       ABCIN LIKE MARC-ABCIN,            " PHYSICAL INVENTORY INDICATOR FOR CYCLE COUNTING
       CCFIX LIKE MARC-CCFIX,            " CC INDICATOR IS FIXED
       END OF STR_PLNT.

DATA : BEGIN OF STR_PURCH,
       WERKS LIKE MARC-WERKS,            " PLANT
       XFELD TYPE C,                     " CREATE/CHANGE PURCHASE VIEW INDICATOR
       MMSTA LIKE MARC-MMSTA,            " PLANT-SPECIFIC MATERIAL STATUS
       MMSTD LIKE MARC-MMSTD,            " DATE FROM WHICH THE PLANT-SPECIFIC MATERIAL STATUS IS VALID
       KAUTB LIKE MARC-KAUTB,            " INDICATOR PURCHASE ORDER IS ALLOWED
       WEBAZ LIKE MARC-WEBAZ,            " GOODS RECEIPT PROCESSING TIME IN DELAY
       USEQU LIKE MARC-USEQU,            " QUOTA ARRANGEMENT USAGE
       FABKZ LIKE MARC-FABKZ,            " INDICATOR:ITEM RELEVENT TO JIT DELIVERY SCHEDULE
       KORDB LIKE MARC-KORDB,            " INDICATOR SOURCE LIST REQUIREMENT
       END OF STR_PURCH.


DATA : IT_MAT LIKE TABLE OF STR_MAT WITH HEADER LINE,
       IT_MAT1 LIKE TABLE OF STR_MAT WITH HEADER LINE,
       IT_PLNT  LIKE TABLE OF STR_PLNT WITH HEADER LINE,
       IT_PURCH LIKE TABLE OF STR_PURCH WITH HEADER LINE.

DATA : WA_MAT LIKE LINE OF IT_MAT.

CLASS CLICK_EVENT DEFINITION DEFERRED.

DATA : P_CUSTGRID TYPE REF TO CL_GUI_ALV_GRID,            " GRID CLASS
       P_CUSTCONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER,    " CONTAINER CLASS
       P_TEXT TYPE REF TO CL_GUI_TEXTEDIT,
       C_LAYOUT TYPE LVC_S_LAYO,                      " GRID LAYOUT
       CP_LAYOUT TYPE LVC_S_LAYO,                      " GRID LAYOUT
       CPU_LAYOUT TYPE LVC_S_LAYO.                     " GRID LAYOUT

DATA : POPUPMSG(50), INPUT(1), G_CELL_VALUE(50), G_LINES TYPE I,G_PLANTSTR(70), LBL(100),
       G_MATNR(20),G_MATKL(20),G_FLAG(1) TYPE C VALUE 0.
*
*data : scr type sy-dynnr.

DATA : CL_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,  "Material Grid
       CL_ALV_CONTAINER TYPE REF TO CL_GUI_ALV_GRID.

DATA : CL_CONTAINER_EDITOR TYPE REF TO CL_GUI_CUSTOM_CONTAINER, "Editor Grid
       CL_TEXT_EDIT TYPE REF TO CL_GUI_TEXTEDIT.


DATA:  IT_ALV_ROW  TYPE LVC_S_ROW,  "get row cell value
       IT_ALV_COL  TYPE LVC_S_COL,  "get col cell value
       IT_ALV_ROID TYPE LVC_S_ROID. "get row id

DATA : F_CAT TYPE LVC_T_FCAT,
       WA_FCAT LIKE LINE OF F_CAT,
       F_CAT1 TYPE LVC_T_FCAT,
       WA_FCAT1 LIKE LINE OF F_CAT,
       F_CAT2 TYPE LVC_T_FCAT,
       WA_FCAT2 LIKE LINE OF F_CAT.

TYPE-POOLS VRM.
DATA : VRM_TEXT TYPE VRM_VALUES WITH HEADER LINE.



SELECTION-SCREEN : BEGIN OF SCREEN 6000.
SELECT-OPTIONS : MATNO FOR MARA-MATNR,
                 ISECTOR FOR MARA-MBRSH,
                 MATGRP FOR MARA-MATKL.
SELECTION-SCREEN : END OF SCREEN 6000.

CALL SELECTION-SCREEN 6000.



CLASS TOOLBAR_CLICK_EVENT DEFINITION.
  PUBLIC SECTION.
   METHODS : TOOLBAR_CLICK FOR EVENT BEFORE_USER_COMMAND OF CL_GUI_ALV_GRID IMPORTING E_UCOMM.
ENDCLASS.


CLASS TOOLBAR_CLICK_EVENT IMPLEMENTATION.
     METHOD TOOLBAR_CLICK.
         CASE E_UCOMM.
              WHEN '&DETAIL'.
              CLEAR : G_CELL_VALUE, G_MATNR.
              CALL METHOD P_CUSTGRID->GET_CURRENT_CELL
              IMPORTING
                     E_VALUE   = G_CELL_VALUE
                     ES_ROW_ID = IT_ALV_ROW
                     ES_COL_ID = IT_ALV_COL.

                     G_MATNR = G_CELL_VALUE.


              PERFORM CALL_TRANSACTION.
              CALL METHOD P_CUSTGRID->SET_USER_COMMAND
              EXPORTING
              I_UCOMM = SPACE.
         ENDCASE.
     ENDMETHOD.
ENDCLASS.

FORM CALL_TRANSACTION.
  DATA : L_T132 TYPE T132.
         L_T132-STATM = 'K'.
         SET PARAMETER ID : 'MAT' FIELD G_MATNR, 'MXX' FIELD L_T132-STATM.
         CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDFORM.


* CLASS CLICK_EVENT FOR DOUBLE CLICK
CLASS CLICK_EVENT DEFINITION.
PUBLIC SECTION.
METHODS : DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID IMPORTING E_ROW E_COLUMN.
ENDCLASS.

 CLASS CLICK_EVENT IMPLEMENTATION.

METHOD DOUBLE_CLICK.
READ TABLE IT_MAT INTO WA_MAT INDEX E_ROW.
SELECT * FROM MARC INTO CORRESPONDING FIELDS OF TABLE IT_PLNT WHERE MATNR = WA_MAT-MATNR.
SELECT WERKS MMSTA MMSTD KAUTB WEBAZ USEQU FABKZ KORDB
         INTO CORRESPONDING FIELDS OF TABLE IT_PURCH
            FROM MARC
                WHERE MATNR = WA_MAT-MATNR.

READ TABLE IT_PLNT INTO STR_PLNT INDEX 1.
*
*BREAK-POINT.
IF  STR_PLNT-WERKS = ' ' OR WA_MAT-MATKL = ' '.
MESSAGE  'Material does not contain Plant' TYPE 'S'.
ENDIF.
CALL METHOD P_CUSTGRID->REFRESH_TABLE_DISPLAY.
ENDMETHOD.
ENDCLASS.

*CLASS FOR CHOOSE.
DATA : OB_TOOLBAR TYPE REF TO TOOLBAR_CLICK_EVENT.

AT SELECTION-SCREEN.

SELECT MARA~MATNR MAKT~MAKTX MARA~MBRSH MARA~MATKL MARA~BISMT
       MARA~MEINS MARA~BRGEW MARA~GEWEI MARA~EAN11 MARA~NUMTP
          INTO TABLE  IT_MAT FROM  MARA
                INNER JOIN MAKT ON MARA~MATNR = MAKT~MATNR
                         WHERE MARA~MATNR IN MATNO AND
                               MARA~MBRSH IN ISECTOR AND
                               MARA~MATKL IN MATGRP AND
                               MAKT~SPRAS = 'EN' AND
                               MARA~MTART = 'FERT'.
*BREAK-POINT.
CALL SCREEN 9000.


*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
  SET PF-STATUS 'MATSTATUS'.
  SET TITLEBAR 'T1'.

PERFORM F_CAT1 USING 'Material No' 'MATNR' .
PERFORM F_CAT1 USING 'Material Description' 'MAKTX' .
PERFORM F_CAT1 USING 'Industry Sector' 'MBRSH'.
PERFORM F_CAT1 USING 'Material Group' 'MATKL'.
PERFORM F_CAT1 USING 'Old material No' 'BISMT'.
PERFORM F_CAT1 USING 'Base Unit Of Measure' 'MEINS'.
PERFORM F_CAT1 USING 'GrossWeight' 'BRGEW' .
PERFORM F_CAT1 USING 'WeightUnit' 'GEWEI'.
PERFORM F_CAT1 USING 'International Article Number' 'EAN11'.
PERFORM F_CAT1 USING 'Cattegory Of International Artical Number' 'NUMTP'.

PERFORM F_CAT USING 'Plant' 'WERKS' ' '.
PERFORM F_CAT USING 'Neg stocks' 'XMCNG' 'X'.
PERFORM F_CAT USING 'Logistics group' 'LOGGR' ' '.
PERFORM F_CAT USING 'Distribution Profile' 'FPRFM' ' '.
PERFORM F_CAT USING 'SDG' 'EPRIO' ' '.
PERFORM F_CAT USING 'BMR' 'XCHAR' 'X'.
PERFORM F_CAT USING 'CC Physical Inventory Indicator' 'ABCIN' ' '.
PERFORM F_CAT USING 'CC  Fixed' 'CCFIX' 'X'.

PERFORM F_CAT2 USING 'PLANT' 'WERKS' ' '.
PERFORM F_CAT2 USING 'CREATE/CHANGE PUR INDICATOR' 'XFELD' ' '.
PERFORM F_CAT2 USING 'PLANT-SPECIFIC MATERIAL STATUS' 'MMSTA' ' '.
PERFORM F_CAT2 USING 'DATE PLANT SPECIFIC MATTERIAL VALID' 'MMSTD' ' '.
PERFORM F_CAT2 USING 'INDICATOR AUTOMATIC PUR ALLOWED' 'KAUTB' ' '.
PERFORM F_CAT2 USING 'GOODS RECEIPT' 'WEBAZ' ' '.
PERFORM F_CAT2 USING 'QUOTA ARRANGEMENT USAGE' 'USEQU' ' '.
PERFORM F_CAT2 USING 'INDICATOR ITEM RELEVENT TO JIT' 'FABKZ' ' '.
PERFORM F_CAT2 USING 'INDICATOR SOURCE LIST REQT' 'KORDB' ' '.

PERFORM CONTAINER USING 'CC_MATERIAL'  IT_MAT[] F_CAT1 C_LAYOUT.
PERFORM CONTAINER USING 'CC_CHILD'  IT_PLNT[] F_CAT C_LAYOUT.
DATA : OB_EVENT TYPE REF TO CLICK_EVENT.
CREATE OBJECT : OB_EVENT , OB_TOOLBAR.
SET HANDLER : OB_EVENT->DOUBLE_CLICK FOR ALL INSTANCES.
SET HANDLER : OB_TOOLBAR->TOOLBAR_CLICK FOR ALL INSTANCES.


ENDMODULE.                 " STATUS_9000  OUTPUT


*FORM FOR MATERIAL CUSTOM CONTROL

FORM CONTAINER USING CONTNAME ITABNAME F_CAT LAYOUT.
          CREATE OBJECT P_CUSTCONT
            EXPORTING
              CONTAINER_NAME    = CONTNAME .

          CREATE OBJECT P_CUSTGRID
            EXPORTING
              I_PARENT          =  P_CUSTCONT.

          CALL METHOD P_CUSTGRID->SET_TABLE_FOR_FIRST_DISPLAY
            EXPORTING
              IS_LAYOUT         =  LAYOUT
            CHANGING
              IT_OUTTAB         =  ITABNAME
              IT_FIELDCATALOG   =  F_CAT.


     IF CONTNAME = 'CC_MATERIAL'.
         IT_MAT1[] = IT_MAT[].
     ENDIF.


ENDFORM.

FORM F_CAT1 USING TEXT FNAME.
   WA_FCAT1-FIELDNAME = FNAME.
   WA_FCAT1-SCRTEXT_L = TEXT.
   WA_FCAT1-OUTPUTLEN = '10'.
   WA_FCAT1-ROW_POS = '0'.
   WA_FCAT1-COL_POS = '0'.
   APPEND WA_FCAT1 TO F_CAT1.
ENDFORM.

FORM F_CAT2 USING TEXT FNAME CHK.
  WA_FCAT2-FIELDNAME = FNAME.
  WA_FCAT2-SCRTEXT_L = TEXT.
  WA_FCAT2-CHECKBOX = CHK.
  WA_FCAT2-OUTPUTLEN = '10'.
  WA_FCAT2-ROW_POS = '0'.
  WA_FCAT2-COL_POS = '0'.
  APPEND WA_FCAT2 TO F_CAT2.
ENDFORM.

*&SPWIZARD: FUNCTION CODES FOR TABSTRIP 'TAB1'
CONSTANTS: BEGIN OF C_TAB1,
             TAB1 LIKE SY-UCOMM VALUE 'TAB1_FC1',
             TAB2 LIKE SY-UCOMM VALUE 'TAB1_FC2',
             TAB3 LIKE SY-UCOMM VALUE 'TAB1_FC3',
           END OF C_TAB1.
*&SPWIZARD: DATA FOR TABSTRIP 'TAB1'
CONTROLS:  TAB1 TYPE TABSTRIP.
DATA:      BEGIN OF G_TAB1,
             SUBSCREEN   LIKE SY-DYNNR,
             PROG        LIKE SY-REPID VALUE 'Z256_KA_FE_15',
             PRESSED_TAB LIKE SY-UCOMM VALUE C_TAB1-TAB1,
           END OF G_TAB1.
DATA:      OK_CODE LIKE SY-UCOMM.

*&SPWIZARD: OUTPUT MODULE FOR TS 'TAB1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: SETS ACTIVE TAB
MODULE TAB1_ACTIVE_TAB_SET OUTPUT.
  TAB1-ACTIVETAB = G_TAB1-PRESSED_TAB.
  CASE G_TAB1-PRESSED_TAB.
    WHEN C_TAB1-TAB1.
      G_TAB1-SUBSCREEN = '9001'.
    WHEN C_TAB1-TAB2.
      G_TAB1-SUBSCREEN = '9002'.
       PERFORM CONTAINER USING 'CC_PURCH'  IT_PURCH[] F_CAT2 C_LAYOUT.
    WHEN C_TAB1-TAB3.
      G_TAB1-SUBSCREEN = '9003'.
    WHEN OTHERS.
*&SPWIZARD:      DO NOTHING
  ENDCASE.
ENDMODULE.

*&SPWIZARD: INPUT MODULE FOR TS 'TAB1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GETS ACTIVE TAB
MODULE TAB1_ACTIVE_TAB_GET INPUT.
  OK_CODE = SY-UCOMM.
  CASE OK_CODE.
    WHEN C_TAB1-TAB1.
      G_TAB1-PRESSED_TAB = C_TAB1-TAB1.
    WHEN C_TAB1-TAB2.
      G_TAB1-PRESSED_TAB = C_TAB1-TAB2.
    WHEN C_TAB1-TAB3.
      G_TAB1-PRESSED_TAB = C_TAB1-TAB3.
    WHEN OTHERS.
*&SPWIZARD:      DO NOTHING
  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.

CASE SY-UCOMM.

WHEN 'BACK'.
LEAVE PROGRAM.

WHEN 'EXIT'.
LEAVE PROGRAM.

WHEN 'UPLOAD'.
POPUPMSG = 'Are u sure to Restore Grid Values'.

PERFORM POPUP USING 'UPDATE' POPUPMSG.
*LEAVE TO LIST-PROCESSING.
*WRITE : 'UPDATE'.

WHEN 'RESTORE'.
POPUPMSG = 'Are u sure to Restore Grid Values'.

PERFORM POPUP  USING  'RESTORE' POPUPMSG.
*LEAVE TO LIST-PROCESSING.
*WRITE : 'RESTORE'.

WHEN 'POST'.
LEAVE TO LIST-PROCESSING.
WRITE : 'POST'.
ENDCASE.

ENDMODULE.                 " USER_COMMAND_9000  INPUT


FORM F_CAT USING TEXT FNAME CHK.
   WA_FCAT-FIELDNAME = FNAME.
   WA_FCAT-SCRTEXT_L = TEXT.
   WA_FCAT-CHECKBOX = CHK.
   WA_FCAT-OUTPUTLEN = '10'.
   WA_FCAT-ROW_POS = '0'.
   WA_FCAT-COL_POS = '0'.
   APPEND WA_FCAT TO F_CAT.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  POPUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
*FORM POPUP .
FORM POPUP USING TITLEMSG DISPMSG.
CLEAR INPUT.

    CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      TITLEBAR                    = TITLEMSG
      TEXT_QUESTION               = DISPMSG
      TEXT_BUTTON_1               = 'Yes'
      TEXT_BUTTON_2               = 'No'
      DEFAULT_BUTTON              = '1'
      DISPLAY_CANCEL_BUTTON       = 'X'
    IMPORTING
      ANSWER                      = INPUT.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0110  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0110 OUTPUT.
CLEAR : VRM_TEXT,VRM_TEXT[].
*****VRM values for list box
VRM_TEXT-KEY = 'Material'.
APPEND VRM_TEXT.

VRM_TEXT-KEY = 'PURCHASE'.
APPEND VRM_TEXT.

 CALL FUNCTION 'VRM_SET_VALUES'
   EXPORTING
     ID                    = 'TEXT'
     VALUES                = VRM_TEXT[].

CREATE OBJECT CL_CONTAINER_EDITOR
       EXPORTING
         CONTAINER_NAME   = 'CC_TEXT'.

    CREATE OBJECT CL_TEXT_EDIT
      EXPORTING
        PARENT          = CL_CONTAINER_EDITOR.


ENDMODULE.                 " STATUS_0110  OUTPUT

Thanks,

Reward If Helpful.

Former Member
0 Kudos

what is your actual requirement?

thnkx

bhanu

Former Member
0 Kudos

wat is correct coding to get first and last rows in database tables.. to display on screen in textboxes..

and also for previous and next values ...

this is code ..

here ZSTUDENT99 is database table

ITAB is internal table.

and textboxes name is again ZSTUDENT99 and then its fiedld..

thanx

WHEN 'FFIRST'.

SELECT SINGLE STU_ID STU_NAME STU_COURSE STU_ADDRESS STU_RESULT FROM ZSTUDENT99

INTO CORRESPONDING FIELDS OF ITAB WHERE STU_ID = '3'.

ZSTUDENT99-STU_ID = ITAB-STU_ID.

ZSTUDENT99-STU_NAME = ITAB-STU_NAME.

ZSTUDENT99-STU_COURSE = ITAB-STU_COURSE.

ZSTUDENT99-STU_RESULT = ITAB-STU_RESULT.

ZSTUDENT99-STU_ADDRESS = ITAB-STU_ADDRESS.

WHEN 'FLAST'.

SELECT STU_ID STU_NAME STU_COURSE STU_ADDRESS STU_RESULT FROM ZSTUDENT99 INTO ITAB .

ZSTUDENT99-STU_ID = ITAB-STU_ID.

ZSTUDENT99-STU_NAME = ITAB-STU_NAME.

ZSTUDENT99-STU_COURSE = ITAB-STU_COURSE.

ZSTUDENT99-STU_RESULT = ITAB-STU_RESULT.

ZSTUDENT99-STU_ADDRESS = ITAB-STU_ADDRESS.

ENDSELECT.

WHEN 'FPREVIOUS'.

ITAB-STU_ID = ITAB-STU_ID - 1 .

SELECT STU_ID STU_NAME STU_COURSE STU_RESULT STU_ADDRESS FROM ZSTUDENT99 INTO ITAB WHERE STU_ID = ITAB-STU_ID .

ZSTUDENT99-STU_ID = ITAB-STU_ID.

ZSTUDENT99-STU_NAME = ITAB-STU_NAME.

ZSTUDENT99-STU_COURSE = ITAB-STU_COURSE.

ZSTUDENT99-STU_RESULT = ITAB-STU_RESULT.

ZSTUDENT99-STU_ADDRESS = ITAB-STU_ADDRESS.

ENDSELECT.

WHEN 'FNEXT'.

ITAB-STU_ID = ZSTUDENT99-STU_ID + 1.

SELECT SINGLE STU_ID STU_NAME STU_COURSE STU_RESULT STU_ADDRESS FROM ZSTUDENT99 INTO CORRESPONDING FIELDS OF ITAB WHERE STU_ID = ITAB-STU_ID.

ZSTUDENT99-STU_ID = ITAB-STU_ID.

ZSTUDENT99-STU_NAME = ITAB-STU_NAME.

ZSTUDENT99-STU_COURSE = ITAB-STU_COURSE.

ZSTUDENT99-STU_RESULT = ITAB-STU_RESULT.

ZSTUDENT99-STU_ADDRESS = ITAB-STU_ADDRESS.