Application Development 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: 

remove check box

Former Member
0 Kudos

hi ,

sap community

my problem

I had created a report in which i want to display check box only on different article no. or u can assume same as control break (at new) functionality for checkbox .

i had tried both with simple alv as well as oops alv.

please help me in any of the form of alv.

regards

Gaurav

1 ACCEPTED SOLUTION

former_member555112
Active Contributor
0 Kudos

Hi,

Please find the code with respect to oops ALV.

Moderator message - Please respect the 2,500 character maximum when posting. Post only the relevant portions of code

Edited by: Rob Burbank on Feb 21, 2010 5:25 PM

3 REPLIES 3

former_member555112
Active Contributor
0 Kudos

Hi,

Please find the code with respect to oops ALV.

Moderator message - Please respect the 2,500 character maximum when posting. Post only the relevant portions of code

Edited by: Rob Burbank on Feb 21, 2010 5:25 PM

0 Kudos

thanks Ankur,

Your help solved my problem.

regards gaurav.

0 Kudos

&----


*& Report ZERROR_LOG

*&

&----


*&

*&

&----


REPORT zerror_log2 NO STANDARD PAGE HEADING.

TABLES: zcmm_error_log.

TYPE-POOLS: slis.

TYPES: BEGIN OF ty_output,

checkbox TYPE c,

matnr TYPE zcmm_error_log-matnr,

message(100) TYPE c,

ext_id TYPE balhdr-extnumber,

styl TYPE lvc_t_styl,

END OF ty_output,

BEGIN OF ty_text,

text(100) TYPE c,

END OF ty_text,

BEGIN OF ty_matnr,

mstnr TYPE zcmm_error_log-matnr,

END OF ty_matnr.

DATA: it_output TYPE STANDARD TABLE OF ty_output,

wa_output TYPE ty_output.

DATA: wa_output_temp LIKE LINE OF it_output.

DATA: it_output1 TYPE STANDARD TABLE OF ty_output,

wa_output1 TYPE ty_output.

DATA: it_data TYPE STANDARD TABLE OF zcmm_error_log,

wa_data TYPE zcmm_error_log.

DATA: msg TYPE zcmm_error_log-message,

it_matnr TYPE STANDARD TABLE OF ty_matnr.

DATA: it_text TYPE STANDARD TABLE OF ty_text,

wa_text TYPE ty_text.

DATA: it_mat TYPE STANDARD TABLE OF ddshretval,

wa_mat TYPE ddshretval.

DATA: it_msg TYPE STANDARD TABLE OF balm,

wa_msg TYPE balm.

DATA: y_wa_styl TYPE lvc_s_styl.

DATA: v_tabix TYPE sy-tabix.

DATA:

ty_lay1 TYPE lvc_s_layo,

it_fieldcat TYPE lvc_t_fcat ,

wa_fieldcat TYPE lvc_s_fcat ,

c_alv1 TYPE REF TO cl_gui_alv_grid,

c_cont TYPE REF TO cl_gui_custom_container.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_matnr FOR zcmm_error_log-matnr.

SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-low.

SELECT matnr

FROM zcmm_error_log

INTO TABLE it_matnr

WHERE status = 'E'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 's_matnr'

dynpprog = sy-repid

dynpnr = sy-dynnr

window_title = 'Article Number'

value_org = 'S'

TABLES

value_tab = it_matnr

return_tab = it_mat.

CLEAR wa_mat.

READ TABLE it_mat INTO wa_mat INDEX 1.

IF sy-subrc EQ 0.

s_matnr-low = wa_mat-fieldval.

ENDIF.

CLEAR: wa_mat,it_mat[].

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-high.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 's_matnr'

dynpprog = sy-repid

dynpnr = sy-dynnr

window_title = 'Article Number'

value_org = 'S'

TABLES

value_tab = it_matnr

return_tab = it_mat.

READ TABLE it_mat INTO wa_mat INDEX 1.

IF sy-subrc EQ 0.

s_matnr-high = wa_mat-fieldval.

ENDIF.

START-OF-SELECTION.

SELECT *

FROM zcmm_error_log

INTO TABLE it_data

WHERE matnr IN s_matnr

AND status = 'E'.

DATA: w_fm TYPE balhdr-extnumber.

DATA: i_flag TYPE i.

SORT it_data ASCENDING BY matnr.

LOOP AT it_data INTO wa_data.

AT NEW matnr.

CLEAR i_flag.

ENDAT.

CLEAR: w_fm, it_msg[].

w_fm = wa_data-status2.

CALL FUNCTION 'APPL_LOG_READ_DB'

EXPORTING

external_number = w_fm

TABLES

messages = it_msg.

IF it_msg IS INITIAL.

SELECT SINGLE message

FROM zcmm_error_log

INTO msg

WHERE status2 = wa_data-status2.

IF i_flag IS INITIAL.

wa_output-matnr = wa_data-matnr.

wa_output-ext_id = wa_data-status2.

i_flag = 1.

ENDIF.

wa_output-message = msg.

APPEND wa_output TO it_output.

CLEAR wa_output.

ELSEIF it_msg IS NOT INITIAL.

LOOP AT it_msg INTO wa_msg WHERE msgty EQ 'E'.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = wa_msg-msgid

lang = 'E'

no = wa_msg-msgno

v1 = wa_msg-msgv1

v2 = wa_msg-msgv2

v3 = wa_msg-msgv3

v4 = wa_msg-msgv4

IMPORTING

msg = wa_text-text.

IF i_flag IS INITIAL.

wa_output-matnr = wa_data-matnr.

wa_output-ext_id = wa_data-status2.

i_flag = 1 .

ENDIF.

wa_output-message = wa_text-text.

APPEND wa_output TO it_output.

CLEAR wa_output.

ENDLOOP.

ENDIF.

ENDLOOP.

  • SORT it_output BY matnr ASCENDING.

CALL SCREEN 100.

----


  • MODULE STATUS_0100 OUTPUT

----


*

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ZERROR'.

IF c_alv1 IS NOT INITIAL.

CALL METHOD c_alv1->free

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc NE 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

FREE c_alv1.

ENDIF.

ENDIF.

IF c_cont IS NOT INITIAL.

CALL METHOD c_cont->free

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

OTHERS = 3.

IF sy-subrc NE 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

FREE c_cont.

ENDIF.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

DATA: rspar_tab TYPE TABLE OF rsparams,

rspar_line LIKE LINE OF rspar_tab.

CASE sy-ucomm.

WHEN 'SEL'.

LOOP AT it_output INTO wa_output.

if wa_output-matnr is not initial.

wa_output-checkbox = 'X'.

MODIFY it_output INDEX sy-tabix FROM wa_output TRANSPORTING checkbox.

endif.

ENDLOOP.

CLEAR wa_output.

CALL METHOD c_alv1->refresh_table_display.

WHEN 'DSEL'.

LOOP AT it_output INTO wa_output.

wa_output-checkbox = ' '.

MODIFY it_output INDEX sy-tabix FROM wa_output TRANSPORTING checkbox.

ENDLOOP.

CLEAR wa_output.

CALL METHOD c_alv1->refresh_table_display.

WHEN 'RPROCESS'.

rspar_line-selname = 'R_NEW'.

rspar_line-kind = 'R'.

rspar_line-sign = 'I'.

rspar_line-option = 'EQ'.

rspar_line-low = ''.

APPEND rspar_line TO rspar_tab.

rspar_line-selname = 'R_RET'.

rspar_line-kind = 'R'.

rspar_line-sign = 'I'.

rspar_line-option = 'EQ'.

rspar_line-low = 'X'.

APPEND rspar_line TO rspar_tab.

CALL METHOD c_alv1->check_changed_data.

LOOP AT it_output INTO wa_output WHERE checkbox EQ 'X'.

rspar_line-selname = 'SO_MATNR'.

rspar_line-kind = 'S'.

rspar_line-sign = 'I'.

rspar_line-option = 'EQ'.

rspar_line-low = wa_output-matnr.

APPEND rspar_line TO rspar_tab.

ENDLOOP.

SUBMIT zrmm_art_master_create_copy USING SELECTION-SCREEN '1000'

WITH SELECTION-TABLE rspar_tab AND RETURN.

CALL METHOD c_alv1->refresh_table_display.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module alv_0100 OUTPUT

&----


  • text

----


MODULE alv_0100 OUTPUT.

CREATE OBJECT c_alv1

EXPORTING

i_parent = c_cont.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ty_lay1-grid_title = 'Error Log'.

ty_lay1-zebra = 'X'.

ty_lay1-no_toolbar = 'X'.

ty_lay1-stylefname = 'STYL'.

PERFORM fieldcat.

LOOP AT it_output INTO wa_output.

MOVE sy-tabix TO v_tabix .

y_wa_styl-style = cl_gui_alv_grid=>mc_style_disabled.

IF wa_output-matnr IS NOT INITIAL.

y_wa_styl-style = cl_gui_alv_grid=>mc_style_enabled.

ENDIF.

y_wa_styl-fieldname = 'CHECKBOX'.

clear: wa_output-styl, wa_output-styl[].

APPEND y_wa_styl TO wa_output-styl.

CLEAR: y_wa_styl.

    • y_wa_styl-style = cl_gui_alv_grid=>mc_style_disabled.

    • y_wa_styl-fieldname = 'MATNR'.

    • APPEND y_wa_styl TO wa_output-styl.

    • CLEAR: y_wa_styl.

**

    • y_wa_styl-style = cl_gui_alv_grid=>mc_style_disabled.

    • y_wa_styl-fieldname = 'MESSAGE'.

    • APPEND y_wa_styl TO wa_output-styl.

    • CLEAR: y_wa_styl.

  • y_wa_styl-style = cl_gui_alv_grid=>mc_style_disabled.

  • y_wa_styl-fieldname = 'EXT_ID'.

  • APPEND y_wa_styl TO wa_output-styl.

  • CLEAR: y_wa_styl.

MODIFY it_output FROM wa_output INDEX v_tabix

TRANSPORTING styl.

ENDLOOP.

CALL METHOD c_alv1->set_table_for_first_display

EXPORTING

is_layout = ty_lay1

CHANGING

it_outtab = it_output[]

it_fieldcatalog = it_fieldcat.

CALL METHOD c_alv1->set_ready_for_input

EXPORTING

i_ready_for_input = 1.

REFRESH: it_fieldcat.

ENDMODULE. " alv_0100 OUTPUT

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat .

wa_fieldcat-col_pos = '1'.

wa_fieldcat-tabname = 'IT_OUTPUT'.

wa_fieldcat-fieldname = 'CHECKBOX'.

wa_fieldcat-checkbox = 'X'.

  • wa_fieldcat-input = 'X'.

wa_fieldcat-edit = 'X'.

wa_fieldcat-outputlen = 3.

wa_fieldcat-coltext = 'Chk'.

wa_fieldcat-just = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = '2'.

wa_fieldcat-tabname = 'IT_OUTPUT'.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-outputlen = 20.

wa_fieldcat-coltext = 'Article Number'.

wa_fieldcat-just = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = '3'.

wa_fieldcat-tabname = 'IT_OUTPUT'.

wa_fieldcat-fieldname = 'MESSAGE'.

wa_fieldcat-outputlen = 100.

wa_fieldcat-coltext = 'Message'.

wa_fieldcat-just = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = '4'.

wa_fieldcat-tabname = 'IT_OUTPUT'.

wa_fieldcat-fieldname = 'EXT_ID'.

wa_fieldcat-coltext = 'External ID'.

wa_fieldcat-outputlen = 16.

wa_fieldcat-just = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. " fieldcat