2006 Sep 06 10:03 AM
hi all,
I am trying to use <b>alv_grid_display</b> and in this grid display iam using a checkbox.when we tick on a check box iam pressing a print button and after that i want my smartform to be called..but using a <b>alv_grid_dispaly</b>..iam not able to check the value of the checkbox..like i am not able to cath the ticked order nos.can u please tell me how can i populate this value using an <b>alv_grid_display</b>
hi all,
I am trying to use <b>alv_grid_display</b> and in this grid display iam using a checkbox.when we tick on a check box iam pressing a print button and after that i want my smartform to be called..but using a <b>alv_grid_dispaly</b>..iam not able to check the value of the checkbox..like i am not able to cath the ticked order nos.can u please tell me how can i populate this value using an <b>alv_grid_display</b>
2006 Sep 06 10:06 AM
hi all,
I am trying to use alv_grid_display and in this grid display iam using a checkbox.when we tick on a check box iam pressing a print button and after that i want my smartform to be called..but using a alv_grid_dispaly..iam not able to check the value of the checkbox..like i am not able to cath the ticked order nos.can u please tell me how can i populate this value using an alv_grid_display
below is my code.
&----
*& Report ZTEST_DRIVERPROG_FIANL
*&
&----
*&
*&
&----
REPORT ztest_driverprog_fianl.
Tables : vbak,vbap.
TYPE-POOLS : slis.
DATA : LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA :
ls_fieldcat type slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
ls_fieldcat1 type slis_t_fieldcat_alv,
wa_fieldcat1 TYPE slis_fieldcat_alv.
DATA : import_variant LIKE disvariant.
DATA : events TYPE slis_t_event WITH HEADER LINE.
**********VBAK**********
TYPES :BEGIN OF ty_vbak.
TYPES : flag TYPE c.
INCLUDE STRUCTURE vbak.
TYPES : END OF ty_vbak.
DATA : i_vbak TYPE STANDARD TABLE OF ty_vbak.
DATA : wa_vbak TYPE ty_vbak.
******************************
******VBAP******************
TYPES : BEGIN OF ty_vbap.
INCLUDE STRUCTURE vbap.
TYPES : END OF ty_vbap.
DATA : i_vbap TYPE STANDARD TABLE OF ty_vbap.
*****************************
SELECTION-SCREEN BEGIN OF BLOCK test WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
SELECTION-SCREEN END OF BLOCK test.
START-OF-SELECTION.
PERFORM data_popu.
PERFORM display_data.
End-of-selection.
&----
*& Form data_popu
&----
text
----
--> p1 text
<-- p2 text
----
FORM data_popu .
SELECT * FROM vbak
INTO CORRESPONDING FIELDS OF TABLE i_vbak
WHERE vbeln IN s_vbeln.
ENDFORM. " data_popu
&----
*& Form display_data
&----
text
----
--> p1 text
<-- p2 text
----
form display_data .
wa_fieldcat-col_pos = '01'.
wa_FIELDCAT-FIELDNAME = 'FLAG'.
wa_FIELDCAT-TABNAME = 'I_VBAK'.
wA_fieldcat-hotspot = 'X' .
wA_fieldcat-emphasize = 'C100'.
wa_FIELDCAT-INPUT = 'X'.
wa_FIELDCAT-EDIT = 'X'.
wa_FIELDCAT-CHECKBOX = 'X'.
wa_fieldcat-seltext_m = 'SELECT'.
append wa_FIELDCAT to ls_FIELDCAT.
CLEAR wa_FIELDCAT.
wa_fieldcat-col_pos = '02'.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_m = 'ORDER'.
wa_fieldcat-hotspot = 'X' .
wa_fieldcat-emphasize = 'C100' .
APPEND wa_fieldcat TO ls_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '03'.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-tabname = 'I_VBAK'.
wa_fieldcat-seltext_l = 'Record Created'.
APPEND wa_fieldcat TO ls_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = '04'.
wa_fieldcat-fieldname = 'AUART'.
wa_fieldcat-tabname = 'I_VBAK'.
wa_fieldcat-seltext_l = 'ORDER TYPE'.
APPEND wa_fieldcat TO ls_fieldcat.
CLEAR wa_fieldcat.
DATA : w_command TYPE slis_formname,
w_pfsta TYPE slis_formname.
w_command = 'USER_COMMAND'.
w_pfsta = 'SET_PF_STAT'.
DATA v_repid TYPE repid.
v_repid = sy-repid.
LS_LAYOUT-BOX_FIELDNAME = 'FLAG'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = w_pfsta
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LS_LAYOUT
IT_FIELDCAT = LS_FIELDCAT
TABLES
t_outtab = I_VBAK
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. " display_data
***************PF STATUS************************
FORM set_pf_stat USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD'.
ENDFORM. "SET_PF_STAT
****************************************************
***********INTERACTIVE DISPLAY********************
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE i_vbak INTO wa_vbak WITH KEY vbeln = rs_selfield-value.
SELECT * FROM vbap
INTO TABLE i_vbap
WHERE vbeln = wa_vbak-vbeln.
IF NOT i_vbap[] IS INITIAL.
wa_fieldcat1-col_pos = '01'.
wa_fieldcat1-fieldname = 'VBELN'.
wa_fieldcat1-tabname = 'I_VBAP'.
wa_fieldcat1-seltext_l = 'ORDER'.
APPEND wa_fieldcat1 TO ls_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '02'.
wa_fieldcat1-fieldname = 'POSNR'.
wa_fieldcat1-tabname = 'I_VBAP'.
wa_fieldcat1-seltext_l = 'ITEM NO.'.
APPEND wa_fieldcat1 TO ls_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '03'.
wa_fieldcat1-fieldname = 'MATNR'.
wa_fieldcat1-tabname = 'I_VBAP'.
wa_fieldcat1-seltext_l = 'MAT NO.'.
APPEND wa_fieldcat1 TO ls_fieldcat1.
CLEAR wa_fieldcat1.
wa_fieldcat1-col_pos = '04'.
wa_fieldcat1-fieldname = 'ARKTX'.
wa_fieldcat1-tabname = 'I_VBAP'.
wa_fieldcat1-seltext_l = 'Short text for sales order item'.
APPEND wa_fieldcat1 TO ls_fieldcat1.
CLEAR wa_fieldcat1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_bypassing_buffer = 'X'
i_buffer_active = ' '
i_callback_program = sy-cprog
i_callback_user_command = w_command
it_fieldcat = ls_fieldcat1[]
i_save = 'A'
is_variant = import_variant
it_events = events[]
TABLES
t_outtab = i_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDIF.
********FORM PRINTING************
WHEN 'PRINT'.
PERFORM print_invoice.
data: vbeln1 like vbak-vbeln.
loop at i_vbak into wa_vbak where flag = 'X'.
message wa_vbak-vbeln type 'I'.
endloop.
ENDCASE.
ENDFORM. "user_command
2006 Sep 06 10:06 AM
if u r using the conventional method it will nto work out, in case u use clasees only it works,
if u wnt to use it in Conventional method try using ALV_LIST_DISPLAY because grid display can not be edited unless used by classes and methods
2006 Sep 06 10:07 AM
After calling the method o_alvgrid->set_table_for_first_display
Register events
CALL METHOD o_alvgrid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD o_alvgrid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
SET HANDLER o_event_receiver->handle_data_changed FOR o_alvgrid.
2006 Sep 06 10:09 AM
hi prakash, seema is using the conventional method not the classes OOPS
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |