Skip to Content
0
Former Member
Apr 20, 2010 at 05:43 AM

checkbox selection

50 Views

i have done with my code, but am not able to check single checkbox at a time.. both are being selected... please helpme.

BEGIN OF TY_FINAL, BANFN TYPE BANFN, " BNFPO TYPE BNFPO, MATNR TYPE MATNR, MENGE TYPE BAMNG, MVGR4 TYPE MVGR4, " LABST TYPE LABST, QTYDEL TYPE OMENG, QTYORD TYPE OMENG, AVAILQTY TYPE BAPRE, CHECKBOX TYPE CHAR01, CHECKBOX1 TYPE CHAR01, END OF TY_FINAL, *Internal Table CreationS DATA : LT_EBAN TYPE TABLE OF TY_EBAN, LT_EBAN_TEMP TYPE TABLE OF TY_EBAN, LT_MVKE TYPE TABLE OF TY_MVKE, LT_MARD TYPE TABLE OF TY_MARD, LT_VBBE TYPE TABLE OF TY_VBBE, LT_VBBE_TEMP TYPE TABLE OF TY_VBBE, LT_FINAL TYPE TABLE OF TY_FINAL, LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. "Fieldcat for GRID display *Work Area Declaration DATA : WA_EBAN TYPE TY_EBAN, WA_MVKE TYPE TY_MVKE, WA_MARD TYPE TY_MARD, WA_VBBE TYPE TY_VBBE, WA_VBBE_TEMP TYPE TY_VBBE, WA_FINAL TYPE TY_FINAL, WA_FIELDCAT LIKE LINE OF LT_FIELDCAT. DATA : L_LABST TYPE BAPRE, L_MENGE TYPE BAPRE, L_QTYORD TYPE BAPRE, L_AVAILQTY TYPE BAPRE. *Constants Declaration CONSTANTS : C_STATUS TYPE C VALUE 'N', C_WERKS TYPE WERKS VALUE 'TBMS', C_VKORG TYPE VKORG VALUE 'BMS', C_VTWEG TYPE VTWEG VALUE '50', C_WERKS1 TYPE WERKS VALUE 'TENN', C_LGORT TYPE LGORT_D VALUE 'TJUS'. ************************************************************** **START-OF-SELECTION ************************************************************** START-OF-SELECTION. REFRESH : LT_EBAN,LT_MVKE,LT_MARD,LT_VBBE,LT_FINAL. *Fetching Data From EBAN Table Into Internal Table EBAN SELECT BANFN BNFPO STATU MATNR MENGE INTO TABLE LT_EBAN FROM EBAN WHERE STATU = C_STATUS AND WERKS = C_WERKS. IF LT_EBAN IS NOT INITIAL. LT_EBAN_TEMP[] = LT_EBAN[]. SORT LT_EBAN_TEMP BY MATNR. DELETE ADJACENT DUPLICATES FROM LT_EBAN_TEMP COMPARING MATNR. *Fetching Data From MVKE Table Into Internal Table MVKE SELECT MATNR MVGR4 INTO TABLE LT_MVKE FROM MVKE FOR ALL ENTRIES IN LT_EBAN_TEMP WHERE MATNR = LT_EBAN_TEMP-MATNR AND VKORG = C_VKORG AND VTWEG = C_VTWEG . *Fetching Data From MARD Table Into Internal Table MARD SELECT MATNR LABST INTO TABLE LT_MARD FROM MARD FOR ALL ENTRIES IN LT_EBAN_TEMP WHERE MATNR = LT_EBAN_TEMP-MATNR AND WERKS = C_WERKS1 AND LGORT = C_LGORT. *Fetching Data From VBBE Table Into Internal Table VBBE SELECT MATNR VBELN VBTYP OMENG FROM VBBE INTO TABLE LT_VBBE FOR ALL ENTRIES IN LT_EBAN_TEMP WHERE MATNR = LT_EBAN_TEMP-MATNR AND WERKS = C_WERKS1 AND LGORT = C_LGORT. ENDIF. LT_VBBE_TEMP[] = LT_VBBE[]. SORT LT_VBBE_TEMP BY MATNR. LOOP AT LT_EBAN INTO WA_EBAN. WA_FINAL-BANFN = WA_EBAN-BANFN. WA_FINAL-BNFPO = WA_EBAN-BNFPO. WA_FINAL-MATNR = WA_EBAN-MATNR. WA_FINAL-MENGE = WA_EBAN-MENGE. READ TABLE LT_MVKE INTO WA_MVKE WITH KEY MATNR = WA_EBAN-MATNR. IF SY-SUBRC = 0. WA_FINAL-MVGR4 = WA_MVKE-MVGR4. ENDIF. READ TABLE LT_MARD INTO WA_MARD WITH KEY MATNR = WA_EBAN-MATNR. IF SY-SUBRC = 0. WA_FINAL-LABST = WA_MARD-LABST. L_LABST = WA_MARD-LABST. ENDIF. LOOP AT LT_VBBE_TEMP INTO WA_VBBE_TEMP WHERE MATNR = WA_EBAN-MATNR AND VBTYP = 'J'. AT END OF MATNR. SUM. WA_FINAL-QTYDEL = WA_VBBE_TEMP-OMENG. L_MENGE = WA_VBBE_TEMP-OMENG. ENDAT. ENDLOOP. LOOP AT LT_VBBE_TEMP INTO WA_VBBE_TEMP WHERE MATNR = WA_EBAN-MATNR AND VBTYP = 'C'. AT END OF MATNR. SUM. WA_FINAL-QTYORD = WA_VBBE_TEMP-OMENG. L_MENGE = WA_VBBE_TEMP-OMENG. ENDAT. ENDLOOP. L_AVAILQTY = L_LABST - L_MENGE - L_QTYORD. WA_FINAL-AVAILQTY = L_AVAILQTY. IF L_AVAILQTY GT WA_EBAN-MENGE. WA_FINAL-CHECKBOX = 'X'. ELSE. WA_FINAL-CHECKBOX1 = 'X'. ENDIF. COLLECT WA_FINAL INTO LT_FINAL. ENDLOOP. REFRESH : LT_FIELDCAT. *Preparing Fieldcat PERFORM BUILD_FIELDCAT. IF LT_EBAN IS NOT INITIAL. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND' IT_FIELDCAT = LT_FIELDCAT I_DEFAULT = 'X' I_SAVE = 'A' TABLES T_OUTTAB = LT_FINAL. IF SY-UCOMM = 'BACK' OR SY-UCOMM = 'EXIT' OR SY-UCOMM = 'CANCEL'. LEAVE TO SCREEN 0. ENDIF. ENDIF. FREE : LT_EBAN. ******************************************************************** *FORM BUILD_FIELDCAT ******************************************************************** FORM BUILD_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'BANFN'. WA_FIELDCAT-SELTEXT_M = TEXT-001. WA_FIELDCAT-OUTPUTLEN = 15. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'BNFPO'. WA_FIELDCAT-SELTEXT_M = TEXT-002. WA_FIELDCAT-OUTPUTLEN = 12. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'MATNR'. WA_FIELDCAT-SELTEXT_M = TEXT-003. WA_FIELDCAT-OUTPUTLEN = 10. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'MENGE'. WA_FIELDCAT-SELTEXT_M = TEXT-004. WA_FIELDCAT-OUTPUTLEN = 10. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'MVGR4'. WA_FIELDCAT-SELTEXT_M = TEXT-005. WA_FIELDCAT-OUTPUTLEN = 10. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'LABST'. WA_FIELDCAT-SELTEXT_M = TEXT-006. WA_FIELDCAT-OUTPUTLEN = 15. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'QTYDEL'. WA_FIELDCAT-SELTEXT_M = TEXT-007. WA_FIELDCAT-OUTPUTLEN = 10. WA_FIELDCAT-EDIT = ' '. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'QTYORD'. WA_FIELDCAT-SELTEXT_M = TEXT-008. WA_FIELDCAT-OUTPUTLEN = 14. WA_FIELDCAT-EDIT = ' '. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'AVAILQTY'. WA_FIELDCAT-SELTEXT_M = TEXT-009. WA_FIELDCAT-OUTPUTLEN = 12. WA_FIELDCAT-EDIT = ' '. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'CHECKBOX'. WA_FIELDCAT-SELTEXT_M = TEXT-010. WA_FIELDCAT-OUTPUTLEN = 10. WA_FIELDCAT-CHECKBOX = 'X'. WA_FIELDCAT-EDIT = 'X'. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. WA_FIELDCAT-FIELDNAME = 'CHECKBOX1'. WA_FIELDCAT-SELTEXT_M = TEXT-011. WA_FIELDCAT-OUTPUTLEN = 10. WA_FIELDCAT-CHECKBOX = 'X'. WA_FIELDCAT-EDIT = 'X'. *Filling The Fieldcatalog APPEND WA_FIELDCAT TO LT_FIELDCAT. CLEAR : WA_FIELDCAT. ENDFORM. " BUILD_FIELdcat &----


*& Form SET_PF_STATUS &----
* text ----
FORM SET_PF_STATUS USING EXCLUDETAB TYPE SLIS_T_EXTAB. SET PF-STATUS 'ZSTA' EXCLUDING EXCLUDETAB. ENDFORM. "SET_PF_STATUS &----
*& Form HANDLE_USER_COMMAND * &----
* text ----
FORM HANDLE_USER_COMMAND USING FU_UCOMM LIKE SY-UCOMM FU_SELFIELD TYPE SLIS_SELFIELD. DATA : REF_GRID TYPE REF TO CL_GUI_ALV_GRID. CASE FU_UCOMM. WHEN '&RELEASE'. * CLEAR GT_SELECTED. * REFRESH GT_SELECTED. ** to reflect the data changed into internal table * IF REF_GRID IS INITIAL. * CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' * IMPORTING * E_GRID = REF_GRID. * ENDIF. * * IF NOT REF_GRID IS INITIAL. * CALL METHOD REF_GRID->CHECK_CHANGED_DATA. * ENDIF. WHEN '&IC1'. IF REF_GRID IS INITIAL. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING E_GRID = REF_GRID. ENDIF. IF NOT REF_GRID IS INITIAL. CALL METHOD REF_GRID->CHECK_CHANGED_DATA. ENDIF. READ TABLE LT_FINAL INTO WA_FINAL INDEX FU_SELFIELD-TABINDEX. IF SY-SUBRC = 0. CASE FU_SELFIELD-FIELDNAME. WHEN 'CHECKBOX'. IF WA_FINAL-CHECKBOX = ' ' AND WA_FINAL-CHECKBOX1 = 'X'. WA_FINAL-CHECKBOX = 'X'. WA_FINAL-CHECKBOX1 = ' '. MODIFY LT_FINAL FROM WA_FINAL INDEX FU_SELFIELD-TABINDEX TRANSPORTING CHECKBOX CHECKBOX1. ELSEIF WA_FINAL-CHECKBOX = 'X' AND WA_FINAL-CHECKBOX = ' '. WA_FINAL-CHECKBOX = ''. WA_FINAL-CHECKBOX1 = 'X '. MODIFY LT_FINAL FROM WA_FINAL INDEX FU_SELFIELD-TABINDEX TRANSPORTING CHECKBOX CHECKBOX1. ENDIF. WHEN 'CHECKBOX1'. IF WA_FINAL-CHECKBOX1 = ' ' AND WA_FINAL-CHECKBOX = 'X'. WA_FINAL-CHECKBOX = ' '. WA_FINAL-CHECKBOX1 = 'X'. MODIFY LT_FINAL FROM WA_FINAL INDEX FU_SELFIELD-TABINDEX TRANSPORTING CHECKBOX CHECKBOX1. ELSEIF WA_FINAL-CHECKBOX = 'X' AND WA_FINAL-CHECKBOX1 = ' '. WA_FINAL-CHECKBOX = 'X'. WA_FINAL-CHECKBOX1 = ''. MODIFY LT_FINAL FROM WA_FINAL INDEX FU_SELFIELD-TABINDEX TRANSPORTING CHECKBOX CHECKBOX1. ENDIF. FU_SELFIELD-REFRESH = 'X'. ENDCASE. ENDIF. ENDCASE. ENDFORM. "HANDLE_USER_COMMAND