10-08-2007 1:05 PM
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.
10-08-2007 1:08 PM
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.
10-08-2007 1:10 PM
10-08-2007 1:16 PM
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.