2007 Apr 23 4:13 PM
Hi alv,
I displayed the output using alv grid display.
Here i want check box before the every row of the output.
Now after displaying the output i need to select some of the rows it means i need to check the check box for some rows.
Then those rows whose chechbox is checked are updated into a table.
Please tell me how to get the check box before every or the output and i need to check the check box after displaying the output i.e selecting some rows
thanks in advance
2007 Apr 23 4:16 PM
Hello,
USe this code which is developed similar to ur reequiremnt:
* Internal table to store the final data
DATA: BEGIN OF G_T_OUTTAB OCCURS 0,
CHECK(1),
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
MATNR LIKE MARA-MATNR,
EBELN LIKE EKKO-EBELN,
INFNR LIKE EKPO-INFNR,
KBETR LIKE KONV-KBETR,
KSCHL LIKE KONV-KSCHL,
DATBI LIKE A016-DATBI,
DATAB LIKE A016-DATAB,
APLFZ LIKE EINE-APLFZ,
AEDAT LIKE EKKO-AEDAT,
STATUS(4),
END OF G_T_OUTTAB.
FORM DISPLAY_DATA.
* Populating the field catalog to the alv list
PERFORM FIELDCAT_POPULATION.
* Displaying report in ALV list format
PERFORM ALV_DISPLAY.
ENDFORM. " DISPLAY_DATA
FORM FIELDCAT_POPULATION.
DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV. " For column heading
CLEAR : IT_FIELDCAT,
IT_FIELDCAT[].
* Checkbox
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'CHECK'.
L_FIELDCAT-SELTEXT_M = TEXT-003.
L_FIELDCAT-INPUT = 'X'.
L_FIELDCAT-EDIT = 'X'.
L_FIELDCAT-CHECKBOX = 'X'.
L_FIELDCAT-COL_POS = 1.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Vendor
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'LIFNR'.
L_FIELDCAT-SELTEXT_M = TEXT-002.
L_FIELDCAT-COL_POS = 2.
L_FIELDCAT-KEY = 'X'.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Vendor Name
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'NAME1'.
L_FIELDCAT-SELTEXT_M = TEXT-004.
L_FIELDCAT-COL_POS = 3.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Material
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'MATNR'.
L_FIELDCAT-SELTEXT_M = TEXT-005.
L_FIELDCAT-COL_POS = 4.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Purchase Order
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'EBELN'.
L_FIELDCAT-SELTEXT_M = TEXT-009.
L_FIELDCAT-HOTSPOT = 'X'.
L_FIELDCAT-COL_POS = 5.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Info record
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'INFNR'.
L_FIELDCAT-SELTEXT_M = TEXT-010.
L_FIELDCAT-COL_POS = 6.
L_FIELDCAT-HOTSPOT = 'X'.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Condition
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'KSCHL'.
L_FIELDCAT-SELTEXT_M = TEXT-011.
L_FIELDCAT-COL_POS = 7.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Prices
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'KBETR'.
L_FIELDCAT-SELTEXT_M = TEXT-006.
L_FIELDCAT-COL_POS = 8.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Start date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'DATAB'.
L_FIELDCAT-SELTEXT_M = TEXT-007.
L_FIELDCAT-COL_POS = 9.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* End date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'DATBI'.
L_FIELDCAT-SELTEXT_M = TEXT-008.
L_FIELDCAT-COL_POS = 10.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Planned delivery time
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'APLFZ'.
L_FIELDCAT-SELTEXT_M = TEXT-012.
L_FIELDCAT-COL_POS = 11.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Creation Date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'AEDAT'.
L_FIELDCAT-SELTEXT_M = TEXT-013.
L_FIELDCAT-COL_POS = 12.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Status
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'STATUS'.
L_FIELDCAT-SELTEXT_M = TEXT-014.
L_FIELDCAT-COL_POS = 13.
APPEND L_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " FIELDCAT_POPULATION
*---------------------------------------------------------------------*
* FORM user_command *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA: CODE LIKE SY-UCOMM.
DATA: MODE VALUE 'N'.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: CHAR_DATE(8),
LV_LINES TYPE I,L_FIELD(50),LV_TMP(8).
DATA: LV_KBETR(13),
LV_CHAR(2).
DATA: WA_EINE LIKE EINE.
DATA: WA_EINA LIKE EINA.
DATA: LT_A017 LIKE A017 OCCURS 0 WITH HEADER LINE.
DATA: LT_KONP LIKE Z48V_KONP_DATUM OCCURS 0 WITH HEADER LINE.
DATA: L_VA_MATKL LIKE MARA-MATKL.
CLEAR: CHAR_DATE,LT_A017,LV_LINES,L_VA_MATKL.
REFRESH: LT_A017.
CASE UCOMM.
WHEN '&IC1'. "doubleclick
IF SELFIELD-FIELDNAME = 'EBELN'.
READ TABLE G_T_OUTTAB INDEX SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BES' FIELD G_T_OUTTAB-EBELN.
CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
IF SELFIELD-FIELDNAME = 'INFNR'.
READ TABLE G_T_OUTTAB INDEX SELFIELD-TABINDEX.
READ TABLE G_T_EINA WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EINE WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EKKO WITH KEY EBELN = G_T_OUTTAB-EBELN
LIFNR = G_T_OUTTAB-LIFNR
EKORG = G_T_EINE-EKORG
MATNR = G_T_OUTTAB-MATNR.
SET PARAMETER ID 'LIF' FIELD G_T_OUTTAB-LIFNR.
SET PARAMETER ID 'MAT' FIELD G_T_OUTTAB-MATNR.
SET PARAMETER ID 'EKO' FIELD G_T_EINE-EKORG.
SET PARAMETER ID 'WRK' FIELD G_T_EINE-WERKS.
SET PARAMETER ID 'INF' FIELD G_T_OUTTAB-INFNR.
CALL TRANSACTION 'ME13' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'UPDATE'.
DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF1.
CALL METHOD REF1->CHECK_CHANGED_DATA.
LOOP AT G_T_OUTTAB WHERE CHECK = 'X'.
CLEAR: BDCDATA,MESSTAB,WA_EINA,WA_EINE,LT_KONP,L_VA_MATKL.
REFRESH: BDCDATA,MESSTAB,LT_KONP.
IF G_T_OUTTAB-STATUS EQ '@0V@'.
MESSAGE I000(SU) WITH TEXT-015.
CONTINUE.
ENDIF.
IF G_T_OUTTAB-KSCHL = 'PBXX'.
G_T_OUTTAB-KSCHL = 'PB00'.
ENDIF.
READ TABLE G_T_EINA WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EINE WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EKKO WITH KEY EBELN = G_T_OUTTAB-EBELN
LIFNR = G_T_OUTTAB-LIFNR
EKORG = G_T_EINE-EKORG
MATNR = G_T_OUTTAB-MATNR.
* Warengruppe holen
SELECT SINGLE MATKL FROM MARA INTO L_VA_MATKL
WHERE MATNR = G_T_OUTTAB-MATNR.
CALL FUNCTION 'J_1A_ME_GET_INFORECORD_COND'
EXPORTING
I_EKORG = G_T_EINE-EKORG
I_ESOKZ = '0'
I_INFNR = G_T_OUTTAB-INFNR
I_LIFNR = G_T_EINA-LIFNR
I_MATKL = L_VA_MATKL
I_MATNR = G_T_EINA-MATNR
I_WERKS = G_T_EINE-WERKS
TABLES
TKONP = LT_KONP.
IF NOT LT_KONP[] IS INITIAL.
READ TABLE LT_KONP WITH KEY KSCHL = G_T_OUTTAB-KSCHL.
IF SY-SUBRC = 0.
PERFORM BDC_DYNPRO USING 'Z48M_UPD_COND_VALIDITY' '1000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PA_KNUMH'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ONLI'.
PERFORM BDC_FIELD USING 'PA_MATNR'
G_T_EINA-MATNR.
PERFORM BDC_FIELD USING 'PA_LIFNR'
G_T_EINA-LIFNR.
PERFORM BDC_FIELD USING 'PA_EKORG'
G_T_EINE-EKORG.
PERFORM BDC_FIELD USING 'PA_WERKS'
G_T_EINE-WERKS.
PERFORM BDC_FIELD USING 'PA_ESOKZ'
'0'.
PERFORM BDC_FIELD USING 'PA_KNUMH'
LT_KONP-KNUMH.
PERFORM BDC_DYNPRO USING 'SAPMV13A' '0201'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SICH'.
WRITE G_T_EKKO-AEDAT TO CHAR_DATE.
PERFORM BDC_FIELD USING 'RV13A-DATAB'
CHAR_DATE.
WRITE G_T_EKKO-AEDAT TO CHAR_DATE.
ADD 1 TO CHAR_DATE+4(4).
PERFORM BDC_FIELD USING 'RV13A-DATBI'
CHAR_DATE.
CONCATENATE 'KONP-KBETR( 'LT_KONP-KOPOS' )' INTO L_FIELD.
WRITE: G_T_OUTTAB-KBETR TO LV_KBETR.
PERFORM BDC_FIELD USING L_FIELD
LV_KBETR.
FORM ALV_DISPLAY.
* For storing the variant layout
DATA: IT_VARIANT LIKE DISVARIANT.
* For storing the events
DATA: IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS LIKE LINE OF IT_EVENTS.
REFRESH: IT_EVENTS.
CLEAR: WA_EVENTS,IT_EVENTS.
WA_EVENTS-NAME = 'PF_STATUS_SET'.
WA_EVENTS-FORM = 'STATUS'.
APPEND WA_EVENTS TO IT_EVENTS .
CLEAR WA_EVENTS.
WA_EVENTS-NAME = 'USER_COMMAND'.
WA_EVENTS-FORM = 'USER_COMMAND'.
APPEND WA_EVENTS TO IT_EVENTS .
IT_VARIANT-REPORT = SY-REPID.
G_R_LAYOUT-BOX_FIELDNAME = 'CHECK'.
CLEAR G_T_OUTTAB.
SORT G_T_OUTTAB.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = IT_VARIANT-REPORT
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
I_SAVE = 'A'
IS_VARIANT = IT_VARIANT
IS_LAYOUT = G_R_LAYOUT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = G_T_OUTTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ALV_DISPLAY
Hope this solves ur problem.#
Regards,
Vasanth
Hi alv,
I displayed the output using alv grid display.
Here i want check box before the every row of the output.
Now after displaying the output i need to select some of the rows it means i need to check the check box for some rows.
Then those rows whose chechbox is checked are updated into a table.
Please tell me how to get the check box before every or the output and i need to check the check box after displaying the output i.e selecting some rows
thanks in advance
2007 Apr 23 4:15 PM
2007 Apr 23 4:16 PM
2007 Apr 23 4:16 PM
Hello,
USe this code which is developed similar to ur reequiremnt:
* Internal table to store the final data
DATA: BEGIN OF G_T_OUTTAB OCCURS 0,
CHECK(1),
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
MATNR LIKE MARA-MATNR,
EBELN LIKE EKKO-EBELN,
INFNR LIKE EKPO-INFNR,
KBETR LIKE KONV-KBETR,
KSCHL LIKE KONV-KSCHL,
DATBI LIKE A016-DATBI,
DATAB LIKE A016-DATAB,
APLFZ LIKE EINE-APLFZ,
AEDAT LIKE EKKO-AEDAT,
STATUS(4),
END OF G_T_OUTTAB.
FORM DISPLAY_DATA.
* Populating the field catalog to the alv list
PERFORM FIELDCAT_POPULATION.
* Displaying report in ALV list format
PERFORM ALV_DISPLAY.
ENDFORM. " DISPLAY_DATA
FORM FIELDCAT_POPULATION.
DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV. " For column heading
CLEAR : IT_FIELDCAT,
IT_FIELDCAT[].
* Checkbox
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'CHECK'.
L_FIELDCAT-SELTEXT_M = TEXT-003.
L_FIELDCAT-INPUT = 'X'.
L_FIELDCAT-EDIT = 'X'.
L_FIELDCAT-CHECKBOX = 'X'.
L_FIELDCAT-COL_POS = 1.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Vendor
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'LIFNR'.
L_FIELDCAT-SELTEXT_M = TEXT-002.
L_FIELDCAT-COL_POS = 2.
L_FIELDCAT-KEY = 'X'.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Vendor Name
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'NAME1'.
L_FIELDCAT-SELTEXT_M = TEXT-004.
L_FIELDCAT-COL_POS = 3.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Material
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'MATNR'.
L_FIELDCAT-SELTEXT_M = TEXT-005.
L_FIELDCAT-COL_POS = 4.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Purchase Order
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'EBELN'.
L_FIELDCAT-SELTEXT_M = TEXT-009.
L_FIELDCAT-HOTSPOT = 'X'.
L_FIELDCAT-COL_POS = 5.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Info record
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'INFNR'.
L_FIELDCAT-SELTEXT_M = TEXT-010.
L_FIELDCAT-COL_POS = 6.
L_FIELDCAT-HOTSPOT = 'X'.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Condition
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'KSCHL'.
L_FIELDCAT-SELTEXT_M = TEXT-011.
L_FIELDCAT-COL_POS = 7.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Prices
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'KBETR'.
L_FIELDCAT-SELTEXT_M = TEXT-006.
L_FIELDCAT-COL_POS = 8.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Start date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'DATAB'.
L_FIELDCAT-SELTEXT_M = TEXT-007.
L_FIELDCAT-COL_POS = 9.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* End date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'DATBI'.
L_FIELDCAT-SELTEXT_M = TEXT-008.
L_FIELDCAT-COL_POS = 10.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Planned delivery time
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'APLFZ'.
L_FIELDCAT-SELTEXT_M = TEXT-012.
L_FIELDCAT-COL_POS = 11.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Creation Date
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'AEDAT'.
L_FIELDCAT-SELTEXT_M = TEXT-013.
L_FIELDCAT-COL_POS = 12.
APPEND L_FIELDCAT TO IT_FIELDCAT.
* Status
CLEAR L_FIELDCAT.
L_FIELDCAT-TABNAME = 'G_T_OUTTAB'.
L_FIELDCAT-FIELDNAME = 'STATUS'.
L_FIELDCAT-SELTEXT_M = TEXT-014.
L_FIELDCAT-COL_POS = 13.
APPEND L_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " FIELDCAT_POPULATION
*---------------------------------------------------------------------*
* FORM user_command *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA: CODE LIKE SY-UCOMM.
DATA: MODE VALUE 'N'.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: CHAR_DATE(8),
LV_LINES TYPE I,L_FIELD(50),LV_TMP(8).
DATA: LV_KBETR(13),
LV_CHAR(2).
DATA: WA_EINE LIKE EINE.
DATA: WA_EINA LIKE EINA.
DATA: LT_A017 LIKE A017 OCCURS 0 WITH HEADER LINE.
DATA: LT_KONP LIKE Z48V_KONP_DATUM OCCURS 0 WITH HEADER LINE.
DATA: L_VA_MATKL LIKE MARA-MATKL.
CLEAR: CHAR_DATE,LT_A017,LV_LINES,L_VA_MATKL.
REFRESH: LT_A017.
CASE UCOMM.
WHEN '&IC1'. "doubleclick
IF SELFIELD-FIELDNAME = 'EBELN'.
READ TABLE G_T_OUTTAB INDEX SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BES' FIELD G_T_OUTTAB-EBELN.
CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
IF SELFIELD-FIELDNAME = 'INFNR'.
READ TABLE G_T_OUTTAB INDEX SELFIELD-TABINDEX.
READ TABLE G_T_EINA WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EINE WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EKKO WITH KEY EBELN = G_T_OUTTAB-EBELN
LIFNR = G_T_OUTTAB-LIFNR
EKORG = G_T_EINE-EKORG
MATNR = G_T_OUTTAB-MATNR.
SET PARAMETER ID 'LIF' FIELD G_T_OUTTAB-LIFNR.
SET PARAMETER ID 'MAT' FIELD G_T_OUTTAB-MATNR.
SET PARAMETER ID 'EKO' FIELD G_T_EINE-EKORG.
SET PARAMETER ID 'WRK' FIELD G_T_EINE-WERKS.
SET PARAMETER ID 'INF' FIELD G_T_OUTTAB-INFNR.
CALL TRANSACTION 'ME13' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'UPDATE'.
DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF1.
CALL METHOD REF1->CHECK_CHANGED_DATA.
LOOP AT G_T_OUTTAB WHERE CHECK = 'X'.
CLEAR: BDCDATA,MESSTAB,WA_EINA,WA_EINE,LT_KONP,L_VA_MATKL.
REFRESH: BDCDATA,MESSTAB,LT_KONP.
IF G_T_OUTTAB-STATUS EQ '@0V@'.
MESSAGE I000(SU) WITH TEXT-015.
CONTINUE.
ENDIF.
IF G_T_OUTTAB-KSCHL = 'PBXX'.
G_T_OUTTAB-KSCHL = 'PB00'.
ENDIF.
READ TABLE G_T_EINA WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EINE WITH KEY INFNR = G_T_OUTTAB-INFNR
BINARY SEARCH.
READ TABLE G_T_EKKO WITH KEY EBELN = G_T_OUTTAB-EBELN
LIFNR = G_T_OUTTAB-LIFNR
EKORG = G_T_EINE-EKORG
MATNR = G_T_OUTTAB-MATNR.
* Warengruppe holen
SELECT SINGLE MATKL FROM MARA INTO L_VA_MATKL
WHERE MATNR = G_T_OUTTAB-MATNR.
CALL FUNCTION 'J_1A_ME_GET_INFORECORD_COND'
EXPORTING
I_EKORG = G_T_EINE-EKORG
I_ESOKZ = '0'
I_INFNR = G_T_OUTTAB-INFNR
I_LIFNR = G_T_EINA-LIFNR
I_MATKL = L_VA_MATKL
I_MATNR = G_T_EINA-MATNR
I_WERKS = G_T_EINE-WERKS
TABLES
TKONP = LT_KONP.
IF NOT LT_KONP[] IS INITIAL.
READ TABLE LT_KONP WITH KEY KSCHL = G_T_OUTTAB-KSCHL.
IF SY-SUBRC = 0.
PERFORM BDC_DYNPRO USING 'Z48M_UPD_COND_VALIDITY' '1000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PA_KNUMH'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ONLI'.
PERFORM BDC_FIELD USING 'PA_MATNR'
G_T_EINA-MATNR.
PERFORM BDC_FIELD USING 'PA_LIFNR'
G_T_EINA-LIFNR.
PERFORM BDC_FIELD USING 'PA_EKORG'
G_T_EINE-EKORG.
PERFORM BDC_FIELD USING 'PA_WERKS'
G_T_EINE-WERKS.
PERFORM BDC_FIELD USING 'PA_ESOKZ'
'0'.
PERFORM BDC_FIELD USING 'PA_KNUMH'
LT_KONP-KNUMH.
PERFORM BDC_DYNPRO USING 'SAPMV13A' '0201'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SICH'.
WRITE G_T_EKKO-AEDAT TO CHAR_DATE.
PERFORM BDC_FIELD USING 'RV13A-DATAB'
CHAR_DATE.
WRITE G_T_EKKO-AEDAT TO CHAR_DATE.
ADD 1 TO CHAR_DATE+4(4).
PERFORM BDC_FIELD USING 'RV13A-DATBI'
CHAR_DATE.
CONCATENATE 'KONP-KBETR( 'LT_KONP-KOPOS' )' INTO L_FIELD.
WRITE: G_T_OUTTAB-KBETR TO LV_KBETR.
PERFORM BDC_FIELD USING L_FIELD
LV_KBETR.
FORM ALV_DISPLAY.
* For storing the variant layout
DATA: IT_VARIANT LIKE DISVARIANT.
* For storing the events
DATA: IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS LIKE LINE OF IT_EVENTS.
REFRESH: IT_EVENTS.
CLEAR: WA_EVENTS,IT_EVENTS.
WA_EVENTS-NAME = 'PF_STATUS_SET'.
WA_EVENTS-FORM = 'STATUS'.
APPEND WA_EVENTS TO IT_EVENTS .
CLEAR WA_EVENTS.
WA_EVENTS-NAME = 'USER_COMMAND'.
WA_EVENTS-FORM = 'USER_COMMAND'.
APPEND WA_EVENTS TO IT_EVENTS .
IT_VARIANT-REPORT = SY-REPID.
G_R_LAYOUT-BOX_FIELDNAME = 'CHECK'.
CLEAR G_T_OUTTAB.
SORT G_T_OUTTAB.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = IT_VARIANT-REPORT
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELDCAT
I_SAVE = 'A'
IS_VARIANT = IT_VARIANT
IS_LAYOUT = G_R_LAYOUT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = G_T_OUTTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ALV_DISPLAY
Hope this solves ur problem.#
Regards,
Vasanth
2007 Apr 23 4:17 PM
Hi!
You have to add a new field (type char1) to the structure you use for your ALV display, and in the ALV's layout structure, you can set this field to be displayed as a checkbox and allow its modification.
Regards,
Zoltan
2007 Apr 23 4:17 PM
Hi Shweta,
YOu have to have a single character dummy field at the start of the fields in the main internal table that needs to be displayed.
Then you should populate the field catalog for that field as follows:
WA_FIELDCAT-SELTEXT_L = 'Selection'.
WA_FIELDCAT-FIELDNAME = 'DUMMY'.
WA_FIELDCAT-TABNAME = 'IT_FINAL'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-CHECKBOX = 'X'.
WA_FIELDCAT-INPUT = 'X'.
WA_FIELDCAT-OUTPUTLEN = 8.Once you dispaly the gri, and if you want the records that are checked, then do something like this:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFLD TYPE SLIS_SELFIELD.
case p_ucomm.
when '<FCODE for some button>'.
Data ref1 type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = ref1.
call method ref1->check_changed_data
* Your internal table will have the updated values
loop at itab where dummy = 'X'.
endloop.
endcase.
ENDFORM.Regards,
Ravi
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |