2008 Aug 04 8:32 AM
hai!
i want to display an ALV list, the first column should be checkbox, next colum( lifnr )should be in sorted order, so tht same lifnr should not repeat in all of the rows ...& the checkbox won't get display in rows with contains lifnr value..
how can i do this?
2008 Aug 04 9:15 AM
It is working for me, There is no Straight forward solution. There is a work around.
REPORT ztest_check_box .
TYPE-POOLS: slis,icon.
DATA: BEGIN OF it_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
matnr LIKE vbap-matnr,
posnr LIKE vbap-posnr,
kunnr LIKE vbak-kunnr,
kwmeng LIKE vbap-kwmeng,
check TYPE c,
id TYPE icon-id,
END OF it_vbap.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: x_fieldcat TYPE slis_fieldcat_alv.
DATA: it_sort TYPE slis_t_sortinfo_alv,
x_sort TYPE slis_sortinfo_alv.
SELECT vbak~vbeln
vbak~kunnr
vbap~posnr
vbap~matnr
vbap~kwmeng
INTO CORRESPONDING FIELDS OF TABLE it_vbap
FROM vbak JOIN vbap
ON vbak~vbeln = vbap~vbeln.
SORT it_vbap BY matnr.
DELETE it_vbap WHERE matnr IS INITIAL.
LOOP AT it_vbap.
it_vbap-id = '@T9@'.
MODIFY it_vbap.
ENDLOOP.
x_fieldcat-fieldname = 'ID'.
x_fieldcat-seltext_l = 'CHECK'.
x_fieldcat-outputlen = 4.
x_fieldcat-icon = 'X'.
x_fieldcat-col_pos = 1.
x_fieldcat-hotspot = 'X'.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'MATNR'.
x_fieldcat-seltext_l = 'MATNR'.
x_fieldcat-col_pos = 2.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'KUNNR'.
x_fieldcat-seltext_l = 'KUNNR'.
x_fieldcat-col_pos = 3.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-seltext_l = 'VBELN'.
x_fieldcat-col_pos = 4.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-seltext_l = 'POSNR'.
x_fieldcat-col_pos = 5.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'KWMENG'.
x_fieldcat-seltext_l = 'KWMENG'.
x_fieldcat-col_pos = 6.
x_fieldcat-do_sum = 'X'.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_sort-fieldname = 'MATNR'.
x_sort-spos = 1.
x_sort-up = 'X'.
x_sort-group = 'X'.
x_sort-subtot = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
x_sort-fieldname = 'KUNNR'.
x_sort-spos = 2.
x_sort-up = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
x_sort-fieldname = 'VBELN'.
x_sort-spos = 3.
x_sort-up = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
*DATA:x_layout TYPE lvc_s_layo.
*x_layout-box_fname = 'CHECK'.
*x_layout-no_rowmark = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* is_layout = x_layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcat
it_sort = it_sort
TABLES
t_outtab = it_vbap[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc ne 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*&--------------------------------------------------------------------*
*& Form itab_user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->WHATCOMM text
* -->WHATROW text
*---------------------------------------------------------------------*
FORM user_command USING whatcomm TYPE sy-ucomm selfield TYPE
slis_selfield.
IF selfield-fieldname = 'ID'.
READ TABLE it_vbap INDEX selfield-tabindex.
IF sy-subrc = 0.
IF it_vbap-check = ''.
it_vbap-id = '@R7@'.
it_vbap-check = 'X'.
ELSE.
it_vbap-id = '@T9@'.
it_vbap-check = ''.
ENDIF.
MODIFY it_vbap INDEX selfield-tabindex.
ENDIF.
ENDIF.
selfield-refresh = 'X'.
ENDFORM. "itab_user_command*
if you want to make the above code to work in lower versions then you have to do this..
then maintain the ICON using the view V_ICON from SM30 add the New Entry.
get the properties from the below screen shot.
hai!
i want to display an ALV list, the first column should be checkbox, next colum( lifnr )should be in sorted order, so tht same lifnr should not repeat in all of the rows ...& the checkbox won't get display in rows with contains lifnr value..
how can i do this?
2008 Aug 04 9:15 AM
It is working for me, There is no Straight forward solution. There is a work around.
REPORT ztest_check_box .
TYPE-POOLS: slis,icon.
DATA: BEGIN OF it_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
matnr LIKE vbap-matnr,
posnr LIKE vbap-posnr,
kunnr LIKE vbak-kunnr,
kwmeng LIKE vbap-kwmeng,
check TYPE c,
id TYPE icon-id,
END OF it_vbap.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: x_fieldcat TYPE slis_fieldcat_alv.
DATA: it_sort TYPE slis_t_sortinfo_alv,
x_sort TYPE slis_sortinfo_alv.
SELECT vbak~vbeln
vbak~kunnr
vbap~posnr
vbap~matnr
vbap~kwmeng
INTO CORRESPONDING FIELDS OF TABLE it_vbap
FROM vbak JOIN vbap
ON vbak~vbeln = vbap~vbeln.
SORT it_vbap BY matnr.
DELETE it_vbap WHERE matnr IS INITIAL.
LOOP AT it_vbap.
it_vbap-id = '@T9@'.
MODIFY it_vbap.
ENDLOOP.
x_fieldcat-fieldname = 'ID'.
x_fieldcat-seltext_l = 'CHECK'.
x_fieldcat-outputlen = 4.
x_fieldcat-icon = 'X'.
x_fieldcat-col_pos = 1.
x_fieldcat-hotspot = 'X'.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'MATNR'.
x_fieldcat-seltext_l = 'MATNR'.
x_fieldcat-col_pos = 2.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'KUNNR'.
x_fieldcat-seltext_l = 'KUNNR'.
x_fieldcat-col_pos = 3.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-seltext_l = 'VBELN'.
x_fieldcat-col_pos = 4.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-seltext_l = 'POSNR'.
x_fieldcat-col_pos = 5.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_fieldcat-fieldname = 'KWMENG'.
x_fieldcat-seltext_l = 'KWMENG'.
x_fieldcat-col_pos = 6.
x_fieldcat-do_sum = 'X'.
x_fieldcat-tabname = 'IT_VBAP'.
APPEND x_fieldcat TO it_fieldcat.
CLEAR x_fieldcat.
x_sort-fieldname = 'MATNR'.
x_sort-spos = 1.
x_sort-up = 'X'.
x_sort-group = 'X'.
x_sort-subtot = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
x_sort-fieldname = 'KUNNR'.
x_sort-spos = 2.
x_sort-up = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
x_sort-fieldname = 'VBELN'.
x_sort-spos = 3.
x_sort-up = 'X'.
APPEND x_sort TO it_sort.
CLEAR x_sort.
*DATA:x_layout TYPE lvc_s_layo.
*x_layout-box_fname = 'CHECK'.
*x_layout-no_rowmark = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* is_layout = x_layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcat
it_sort = it_sort
TABLES
t_outtab = it_vbap[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc ne 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*&--------------------------------------------------------------------*
*& Form itab_user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->WHATCOMM text
* -->WHATROW text
*---------------------------------------------------------------------*
FORM user_command USING whatcomm TYPE sy-ucomm selfield TYPE
slis_selfield.
IF selfield-fieldname = 'ID'.
READ TABLE it_vbap INDEX selfield-tabindex.
IF sy-subrc = 0.
IF it_vbap-check = ''.
it_vbap-id = '@R7@'.
it_vbap-check = 'X'.
ELSE.
it_vbap-id = '@T9@'.
it_vbap-check = ''.
ENDIF.
MODIFY it_vbap INDEX selfield-tabindex.
ENDIF.
ENDIF.
selfield-refresh = 'X'.
ENDFORM. "itab_user_command*
if you want to make the above code to work in lower versions then you have to do this..
then maintain the ICON using the view V_ICON from SM30 add the New Entry.
get the properties from the below screen shot.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |