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

checkbox selection

Former Member
0 Likes
1,024

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

10 REPLIES 10
Read only

Former Member
0 Likes
974

Hi,

Tell me what is the reason you do have two check box in the output.

I can able to see your code for filling the check box by comparing the Quantity.

IF L_AVAILQTY GT WA_EBAN-MENGE.

WA_FINAL-CHECKBOX = 'X'.

ELSE.

WA_FINAL-CHECKBOX1 = 'X'.

ENDIF.

Check above condition properly. I am sure anyone condition any one of the check box will get set X.

I am not sure how come you get two check box filled?

Read only

Former Member
0 Likes
974

hi, plz write only check box code not entire program then only some one can help u.

Read only

Former Member
0 Likes
974

If Available Qty is more than the PR Qty we will automatically select the Checkbox for Release for all the items. Otherwise, select the checkbox for Delete. this is my requirement.. so please check the code once... suggest the possibilities...

thanku..

anusha.

Read only

0 Likes
974

Hi Anusha,

Your code is not properly formatted. try to put your code in between

Make sure that you wont exceed the limit of posting more than 2500 characters.

Regards,

Lakshman.

Edited by: Lakshman N on Apr 20, 2010 8:09 AM

Read only

Former Member
0 Likes
974

Hi,

I came to see that the code which is shown below is the incorrect for the fieldcatlog definition for the field.

*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.

The correct code you need to pass as shown below. The above place has been set for flag X for the both the check boxex in the output. just you need to pass the data content for the field but setting two places as a X. This wrong.

Corrected code

*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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox. modify the place not 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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox. .* Modify the place not X

WA_FIELDCAT-EDIT = 'X'.

*Filling The Fieldcatalog

APPEND WA_FIELDCAT TO LT_FIELDCAT.

CLEAR : WA_FIELDCAT.

let me know if you any issues

Edited by: Thiruibm on Apr 20, 2010 8:14 AM

Read only

Former Member
0 Likes
974

thanku,

Thiruibm.

i have done that.. am getting dump,,...

actually my requirment is to select only 1 checkbox.. but in my output i am able toselect both the checkboses.

thanks,

anusha.

Read only

0 Likes
974

Hi

Pls paste the new code now. Please check my code again. I have corrected few things like Edit has to come one time for both places. find the below piece of code again.

Corrected code

*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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox. modify the place not 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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox1. . Modify the place not X*

WA_FIELDCAT-EDIT = 'X'.

*Filling The Fieldcatalog

APPEND WA_FIELDCAT TO LT_FIELDCAT.

CLEAR : WA_FIELDCAT.

Regards

Thiru

Edited by: Thiruibm on Apr 20, 2010 8:29 AM

Read only

0 Likes
974

Hi,

Check my code again.

Unknowingly I have been called two time for the same field for the fieldcatalog.

WA_FIELDCAT-CHECKBOX = T_FINAL-CHECKBOX or WA_FINAL-checkbox. .* Modify the place not X

One will be checkbox anothe will be the checkbox1.

Find the below corrected code.

*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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox. modify the place not 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 = T_FINAL-CHECKBOX or WA_FINAL-checkbox1. . Modify the place not X*

WA_FIELDCAT-EDIT = 'X'.

*Filling The Fieldcatalog

APPEND WA_FIELDCAT TO LT_FIELDCAT.

CLEAR : WA_FIELDCAT.

Read only

Former Member
0 Likes
974

WA_FIELDCAT-FIELDNAME = 'CHECKBOX'.

WA_FIELDCAT-SELTEXT_M = TEXT-010.

WA_FIELDCAT-OUTPUTLEN = 10.

WA_FIELDCAT-CHECKBOX = WA_FINAL-checkbox.

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 = WA_FINAL-checkbox.

WA_FIELDCAT-EDIT = 'X'.

*Filling The Fieldcatalog

APPEND WA_FIELDCAT TO LT_FIELDCAT.

CLEAR : WA_FIELDCAT.

hopu you get my requirement.

Read only

0 Likes
974

Hi,

I have bolled what you need to correct the code.

WA_FIELDCAT-FIELDNAME = 'CHECKBOX'.

WA_FIELDCAT-SELTEXT_M = TEXT-010.

WA_FIELDCAT-OUTPUTLEN = 10.

WA_FIELDCAT-CHECKBOX = WA_FINAL-checkbox.

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 = WA_FINAL-checkbox1. "Not WA_FINAL-checkbox should be WA_FINAL-checkbox1.

WA_FIELDCAT-EDIT = 'X'.

*Filling The Fieldcatalog

APPEND WA_FIELDCAT TO LT_FIELDCAT.

CLEAR : WA_FIELDCAT.