Selecting rows in ALV Grid using Classes
I am displaying the output in ALV grid format.
Now i am using cl_gui_alv_grid->Get_selected_ROWS to get the row index selected by User and on clicking a button it will take us to another screen which will hold the values of the selected row.
Problem Faced: But when we again go back to the first screen and select another row or same rows and click this button the selected rows index remains initial, that value is not getting captured.
I cleared the parameters and refershed grid also.
But the problem is not yet solved.
Please Give me the solution.
Regards,
Balaji.
Hi Lavanya,
I did debugging also.
First time Get_Selected_rows is working fine.
But Second time it is failed.
Similar Messages
-
Hi experts.....
I like to know How to create Editable ALV Grid using Class...
Also i like to to know how to add The contains to Z-Table...
Whether we can delete ALV grid contents........
...Thanks
..AshishHello Ashish
You may want to have a look at thread Select Row in OO-ALV programmatically
Regards
Uwe -
HOW CAN I HAVE THE NUMBER OF SELECTED ROWS IN ALV GRID?
HI.
HOW CAN I HAVE THE NUMBER OF SELECTED ROWS IN ALV GRID????
GABRY =)You need to use
data : grid1 type ref to cl_gui_alv_grid.
call method grid1->get_selected_rows
importing
et_index_rows = i_sel_alvrows[].
a® -
Header in alv grid using class
Hello All,
I developed alv grid using class method.
First I created CREATE OBJECT GR_CCONTAINER
then CREATE OBJECT GR_ALVGRID
then PERFORM FIELD_CATALOG TABLES GT_FIELDCAT----
for field catalog
PERFORM LAYOUT CHANGING GS_LAYOUT.----
for header
p_gs_layout-grid_title = 'class method'.
p_gs_layout-sel_mode = 'D'.
APPEND P_GS_LAYOUT TO IT_LAYOUT.
and finally CALL METHOD GR_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
the report is cooming fine but in header it comes only "class method".
but i need also
1. reporting date
2. reporting time.
can any body tell me how i can i put 2 more heading line
Thanks,
RakeshHi Dude,
Please refer the below link how to handle the header in alv using abap oo
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/abapObjects-ALVModel-UsingHeaderand+Footer
Hope it clears,..............
Thanks & Regards
Ramakrishna Pathi -
Is it possbile to create ALV Grid using Class & without using SE51
Is it possible to create a alv grid using Class, with out using the screen painter(SE51).
Hi Preethi,
It is possible to creat ALV grid using class, provided u have to create a custom control in the screen dialog.
Try with the foll code. This is an example for flight detail.
DATA: container TYPE REF TO cl_gui_custom_container,
alv_con TYPE REF TO cl_gui_alv_grid.
data : it_sflight like table of wa with header line,
g_fieldcat type lvc_t_fcat.
/* Paste the code the PBO
CREATE OBJECT container
EXPORTING
container_name = 'C_SPFLI'. "Specify the container name which u created in the dialog screen.
CREATE OBJECT alv_con
EXPORTING
i_parent = container.
/* Use the foll. to dislay the report
CALL METHOD cl_grid->set_table_for_first_display
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
it_outtab = it_sflight[]
IT_FIELDCATALOG = g_fieldcat.
First create the container and then place the ALV in the container and for dislaying pass the necessary table.
Hope this will useful for u.
Get back if u r unable to do it.
Regards
Router -
How to detect a selected row in ALV GRID
Hi,
Can anyone tell me how to detect and catch an event when a row is selected in an ALV GRID?
I would like to catch such event when the end user presses Ctrl + Shif + Space bar.
Thank you and best regards.
Hassane.Hi,
Use this wiki link, to have a checkbox with all the records in ALV Grid and to process those selected records at a user command, as per the requirement.
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/alv%252bgrid%252bdisplay%252bwith%252bcheckbox%252bto%252bprocess%252bselected%252brecords%252bat%252bruntime
Hope this solves your problem.
Thanks & Regards,
Tarun Gambhir -
Coulmn validation on ALV Grid (using Classes)
Hi All,
I'm creating a ALV Grid using calsses. I want to check the column value of Grid and raise some errror message. How to do this.
Regards
Jaker.have a look at sample report BCALV_EDIT_03
-
Displaying the selected rows in ALV Grid output
Hi Experts,
I am developing one interactive ALV Grid report where user can process the selected records/rows from the ALV Grid output.
for displaying the ALV Grid, I have used the class CL_GUI_ALV_GRID class. I am working on ECC 6.0 system.
when I select any records/rows from output and then press any Application Toolbar button, PAI and then PBO modules of the screen gets executed as per the normal flow.
however After PBO, when same ALV output comes, all the selected/highlighted rows appear as unselected, that means I want to retain the ALV
rows selection during the round trip.
please advise.
Regards,
JageshHi,
Feiyun Wu is correct.
Get_selected_rows and set_selected_rows are the methods to be used .
Some code:
Note the sequence of code:
FORM set_gui_alv_grid_1 .
DATA: wa_layout TYPE lvc_s_layo ,
wa_print TYPE lvc_s_prnt .
DATA: it_sort TYPE lvc_t_sort ,
wa_sort TYPE LINE OF lvc_t_sort .
DATA: it_fieldcatalog TYPE lvc_t_fcat.
IF gui_custom_container_1 IS INITIAL .
CREATE OBJECT gui_custom_container_1
EXPORTING
container_name = 'GUI_CUSTOM_CONTAINER_1'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6 .
IF sy-subrc <> 0.
ENDIF.
PERFORM get_field_catalog
USING gc_log_group_1
CHANGING it_fieldcatalog .
CREATE OBJECT gui_alv_grid_1
EXPORTING i_parent = gui_custom_container_1.
CREATE OBJECT ob_event_receiver_1
EXPORTING log_group = gc_log_group_1 .
* registers the event handlers
SET HANDLER ob_event_receiver_1->handle_toolbar FOR gui_alv_grid_1 .
SET HANDLER ob_event_receiver_1->handle_user_command FOR gui_alv_grid_1 .
SET HANDLER ob_event_receiver_1->print_top_of_page FOR gui_alv_grid_1 .
SET HANDLER ob_event_receiver_1->hotspot_click FOR gui_alv_grid_1 .
wa_layout-cwidth_opt = abap_true .
* wa_layout-excp_fname = gc_excp_fname .
* wa_layout-ctab_fname = gc_ctab_fname.
* wa_layout-excp_led = abap_true .
CALL METHOD gui_alv_grid_1->set_table_for_first_display
EXPORTING
is_layout = wa_layout
is_print = wa_print
i_save = 'A'
is_variant = gs_disvariant_1
CHANGING
it_sort = it_sort
it_fieldcatalog = it_fieldcatalog
it_outtab = it_alv_grid_1.
ELSE .
CALL METHOD gui_alv_grid_1->refresh_table_display.
* Restore selections
CALL METHOD gui_alv_grid_1->set_selected_rows
EXPORTING
it_index_rows = ob_event_receiver_1->it_rows.
* Restore position
CALL METHOD gui_alv_grid_1->set_scroll_info_via_id
EXPORTING
is_col_info = ob_event_receiver_1->wa_col
is_row_no = ob_event_receiver_1->wa_roid.
ENDIF.
ENDFORM . "set_gui_alv_grid_1
Regards. -
Problem in selecting rows in ALV Grid
Hi All,
I am doing a ALV Grid program using Classes. when i select 2 rows from that grid and executes,
it going next screen. Again when i am using back button and selecting same rows or different rows from teh same Grid and executing it is not retrieving any rows. In dedugger it is showing that the there is no selection of rows.
Please suggest me the solution.
Thanks in advance,
Regards,
Balaji.Hi chaitanya,
I am not clearing any code.
please find the code...
CALL METHOD g_grid1->get_selected_rows
IMPORTING
et_index_rows = w_lvc_t_row_1.
IF w_lvc_t_row_1 IS INITIAL.
MESSAGE e004(zmsg).
ELSE.
CLEAR it_memis1-signal.
REFRESH po_memis1.
LOOP AT w_lvc_t_row_1 INTO w_lvc_s_row_1.
READ TABLE it_memis1 INTO po_memis1 INDEX w_lvc_s_row_1-index.
SELECT SINGLE name INTO v_nam FROM icon WHERE id = po_memis1-signal.
IF v_nam = 'ICON_LED_GREEN' OR v_nam = 'ICON_LED_YELLOW'.
APPEND po_memis1.
CLEAR po_memis1-signal.
ELSE.
MESSAGE 'This item Cannot be processed due to errors' TYPE 'E'.
ENDIF.
ENDLOOP.
ENDIF.
regards,
Balaji. -
How to Calculate sum for the selected rows in ALV gird using custom button
Hi I am trying to implement an ALV Grid display where the user can select few rows in the output and if he click on some custom button he should get the sum for only those rows.
Can anyone give me some idea regarding this.
Thanks in advanceWhile building the fieldcatalog for amount field use gt_fieldcat-do_sum = 'X'. And use the below for doc type sorting and subtotal.
* ALV data declarations
data: it_sortcat type slis_sortinfo_alv occurs 1,
wa_sort like line of it_sortcat.
perform build_sortcat.
*& Form build_sortcat
* Build Sort catalog
FORM build_sortcat .
wa_sort-spos = 1.
wa_sort-fieldname = 'EBELN'.
wa_sort-SUBTOT = 'X'. "subtotals any totals column by this field
* gd_sortcat-tabname
APPEND wa_sort TO it_sortcat.
wa_sort-spos = 2.
wa_sort-fieldname = 'EBELP'.
* gd_sortcat-tabname
APPEND wa_sort TO it_sortcat.
ENDFORM. " build_sortcat
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_sort = it_sortcat
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
Regards,
Chandru -
Hi gurus,
can anyone send me sample code to develop a repot using classes with all possibilities i.e, using events and interactive, pop-up.
Best answers wil be rewarded.
Regards,
alsonREPORT zex35 MESSAGE-ID zsmg NO STANDARD PAGE HEADING.
INCLUDE <icon>.
CLASS myclass DEFINITION DEFERRED.
TABLES: vbak,kna1.
TYPE-POOLS: slis,sdydo.
DATA: BEGIN OF jtab OCCURS 0,
ch(1),
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
knumv LIKE vbak-knumv,
bstnk LIKE vbak-bstnk,
ktext LIKE vbak-ktext,
styletable TYPE lvc_t_styl,
rowcolor(4),
cellcolor TYPE lvc_t_scol,
ptype_dd_hndl TYPE int4 ,
END OF jtab.
DATA : ejtab LIKE jtab OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF vjtab OCCURS 0,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
knumv LIKE vbak-knumv,
bstnk LIKE vbak-bstnk,
ktext LIKE vbak-ktext,
END OF vjtab.
DATA: alv TYPE scrfname VALUE 'ALV',
obj_c_container_alv TYPE REF TO cl_gui_custom_container,
obj_grid TYPE REF TO cl_gui_alv_grid,
obj_myclass TYPE REF TO myclass,
i_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF i_fieldcat,
ei_fieldcat TYPE lvc_t_fcat,
ewa_fieldcat LIKE LINE OF i_fieldcat,
gs_layout TYPE lvc_s_layo.
DATA: l_rows TYPE lvc_t_row.
DATA : modi TYPE lvc_s_modi ,
rowid TYPE i,
ind TYPE i,
wjtab LIKE jtab,
it_exclude TYPE ui_functions,
it_sort TYPE lvc_t_sort,
it_filt TYPE lvc_t_filt,
gi_index_rows TYPE lvc_t_row,
g_selected_row LIKE lvc_s_row.
DATA: ls_edit TYPE lvc_s_styl,
lt_edit TYPE lvc_t_styl.
DATA: ls_outtab LIKE LINE OF jtab.
CALL SCREEN 100.
CLASS MYCLASS DEFINITION
CLASS myclass DEFINITION.
PUBLIC SECTION.
METHODS:
toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object
e_interactive,
user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING
e_ucomm.
after_user_command FOR EVENT BEFORE_user_command OF cl_gui_alv_grid
IMPORTING
e_ucomm,
handle_change_click
FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
er_data_changed.
handle_change_click
FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
er_data_changed.
ENDCLASS.
CLASS MYCLASS IMPLEMENTATION
CLASS myclass IMPLEMENTATION.
METHOD toolbar.
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'BACK' TO ls_toolbar-function.
MOVE icon_previous_object TO ls_toolbar-icon.
MOVE 'BACK' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'CLEA' TO ls_toolbar-function.
MOVE icon_refresh TO ls_toolbar-icon.
MOVE 'CLEAR' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'TEXT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'READ' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'INSERT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'INSERT' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'FCAT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'FCAT' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD after_user_command.
CASE e_ucomm.
WHEN '&LOCAL&INSERT_ROW'.
PERFORM insert_data.
ENDCASE.
ENDMETHOD.
METHOD user_command.
CASE e_ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'INSERT'.
PERFORM insert_data.
WHEN 'FCAT'.
PERFORM fcat_change.
ENDCASE.
ENDMETHOD.
METHOD handle_change_click.
LOOP AT er_data_changed->mt_mod_cells INTO modi.
rowid = modi-row_id.
READ TABLE jtab INTO wjtab INDEX rowid.
WJTAB-VBELN = MODI-VALUE.
MODIFY jtab FROM wjtab INDEX rowid.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
*& Module STATUS_0100 OUTPUT
MODULE status_0100 OUTPUT.
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
SELECT vbeln erdat kunnr ernam netwr knumv bstnk ktext
FROM vbak INTO CORRESPONDING FIELDS OF TABLE vjtab
WHERE vbeln LT '0000000500'.
PERFORM display1.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " STATUS_0100 OUTPUT
*& Form display1
FORM display1.
CREATE OBJECT obj_c_container_alv
EXPORTING
container_name = alv.
IF obj_grid IS INITIAL.
CREATE OBJECT obj_grid
EXPORTING
i_parent = obj_c_container_alv.
CREATE OBJECT obj_myclass.
SET HANDLER obj_myclass->toolbar FOR obj_grid.
SET HANDLER obj_myclass->user_command FOR obj_grid.
SET HANDLER obj_myclass->handle_change_click FOR obj_grid.
gs_layout-sel_mode = 'C'.
gs_layout-cwidth_opt = 'X'.
gs_layout-smalltitle = 'X'.
gs_layout-grid_title = 'ALV TITLE'.
gs_layout-no_headers = 'X'.
gs_layout-stylefname = 'STYLETABLE'.
gs_layout-no_hgridln = 'X'.
gs_layout-no_vgridln = 'X'.
gs_layout-NO_ROWMARK = 'X'.
gs_layout-no_toolbar = 'X'.
gs_layout-info_fname = 'ROWCOLOR'.
gs_layout-ctab_fname = 'CELLCOLOR'.
LOOP AT vjtab.
jtab-vbeln = vjtab-vbeln.
jtab-erdat = vjtab-erdat.
jtab-kunnr = vjtab-kunnr.
jtab-ernam = vjtab-ernam.
jtab-netwr = vjtab-netwr.
jtab-knumv = vjtab-knumv.
jtab-bstnk = vjtab-bstnk.
jtab-ktext = vjtab-ktext.
APPEND jtab.
CLEAR jtab.
ENDLOOP.
PERFORM build_fieldcat.
PERFORM exclude_toolbaricons CHANGING it_exclude.
PERFORM sort_table CHANGING it_sort.
PERFORM filter_table CHANGING it_filt.
PERFORM rowcolor.
PERFORM colcolor.
PERFORM drilldown_values.
CALL METHOD obj_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'JTAB'
is_layout = gs_layout
it_toolbar_excluding = it_exclude
CHANGING
it_outtab = jtab[]
it_sort = it_sort
it_filter = it_filt
it_fieldcatalog = i_fieldcat.
ELSE .
CALL METHOD obj_grid->refresh_table_display.
ENDIF.
ENDFORM. " display1
*& Form SAVE_DATA
FORM save_data.
ENDFORM. " SAVE_DATA
*& Form INSERT_DATA
FORM insert_data.
DATA:l_lines TYPE i.
REFRESH gi_index_rows.
CLEAR g_selected_row.
DATA ls_listrow LIKE LINE OF jtab .
CALL METHOD obj_grid->get_selected_rows
IMPORTING
et_index_rows = gi_index_rows.
READ TABLE gi_index_rows INTO g_selected_row INDEX 1.
ind = g_selected_row-index + 1.
INSERT INITIAL LINE INTO jtab INDEX ind.
READ TABLE jtab INDEX ind.
CLEAR ls_edit.
ls_edit-fieldname = 'VBELN'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'ERDAT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KUNNR'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'ERNAM'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'NETWR'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KNUMV'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'BSTNK'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KTEXT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR : ls_outtab.
INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
MODIFY jtab INDEX ind FROM ls_outtab TRANSPORTING
styletable .
CALL METHOD obj_grid->refresh_table_display.
GS_LAYOUT-STYLEFNAME = 'STYLETABLE'.
REFRESH : lt_edit.
ENDFORM. " INSERT_DATA
*& Form FCAT_CHANGE
FORM fcat_change.
DATA ls_fcat TYPE lvc_s_fcat .
DATA lt_fcat TYPE lvc_t_fcat .
DATA ls_layout TYPE lvc_s_layo .
CALL METHOD obj_grid->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = lt_fcat[] .
LOOP AT lt_fcat INTO ls_fcat .
IF ls_fcat-fieldname = 'ERNAM' .
ls_fcat-coltext = 'MYNAME'.
ls_fcat-no_out = 'X'.
MODIFY lt_fcat FROM ls_fcat .
ENDIF .
ENDLOOP .
CALL METHOD obj_grid->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = lt_fcat[] .
CALL METHOD obj_grid->get_frontend_layout
IMPORTING
es_layout = ls_layout .
ls_layout-grid_title = 'Changed ALV Grid Title' .
ls_layout-zebra = 'X' .
CALL METHOD obj_grid->set_frontend_layout
EXPORTING
is_layout = ls_layout .
LOOP AT jtab.
IF jtab-netwr > '400.00'.
CLEAR ls_edit.
ls_edit-fieldname = 'ERDAT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR : ls_outtab.
INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
MODIFY jtab INDEX sy-tabix FROM ls_outtab TRANSPORTING
styletable .
ENDIF.
ENDLOOP.
LOOP AT jtab.
IF jtab-netwr LE '400.00'.
ejtab-vbeln = jtab-vbeln.
ejtab-erdat = jtab-erdat.
ejtab-kunnr = jtab-kunnr.
ejtab-ernam = jtab-ernam.
ejtab-netwr = jtab-netwr.
ejtab-knumv = jtab-knumv.
ejtab-bstnk = jtab-bstnk.
ejtab-ktext = jtab-ktext.
APPEND ejtab.
CLEAR ejtab.
ENDIF.
ENDLOOP.
PERFORM ebuild_fieldcat.
CALL METHOD obj_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'EJTAB'
is_layout = gs_layout
it_toolbar_excluding = it_exclude
CHANGING
it_outtab = ejtab[]
it_sort = it_sort
it_filter = it_filt
it_fieldcatalog = ei_fieldcat.
ENDFORM. " FCAT_CHANGE
*& Form exclude_toolbaricons
FORM exclude_toolbaricons CHANGING pt_exclude TYPE ui_functions.
DATA ls_exclude TYPE ui_func.
ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_minimum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_subtot .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_find .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_average .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_sum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_subtot.
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row .
APPEND ls_exclude TO pt_exclude.
ENDFORM. " exclude_toolbaricons
*& Form sort_table
FORM sort_table CHANGING pt_sort TYPE lvc_t_sort.
DATA ls_sort TYPE lvc_s_sort .
ls_sort-spos = '1' .
ls_sort-fieldname = 'VBELN' .
ls_sort-up = 'X' .
ls_sort-down = space .
APPEND ls_sort TO pt_sort .
ls_sort-spos = '2' .
ls_sort-fieldname = 'KUNNR' .
ls_sort-up = space .
ls_sort-down = 'X' .
APPEND ls_sort TO pt_sort .
ENDFORM. " sort_table
*& Form filter_table
FORM filter_table CHANGING pt_filt TYPE lvc_t_filt.
DATA ls_filt TYPE lvc_s_filt .
ls_filt-fieldname = 'VBELN' .
ls_filt-sign = 'E' .
ls_filt-option = 'BT' .
ls_filt-low = '0000000010' .
ls_filt-high = '0000000100' .
APPEND ls_filt TO pt_filt .
ENDFORM. " filter_table
*& Form ROWCOLOR
FORM rowcolor.
CLEAR wjtab.
LOOP AT jtab INTO wjtab.
IF wjtab-netwr LE '400.00'.
wjtab-rowcolor = 'C611'.
ENDIF.
MODIFY jtab FROM wjtab.
ENDLOOP.
ENDFORM. " ROWCOLOR
*& Form colcolor
FORM colcolor.
DATA ls_cellcolor TYPE lvc_s_scol .
CLEAR ls_cellcolor.
READ TABLE jtab INDEX 8 .
ls_cellcolor-fname = 'KUNNR' .
ls_cellcolor-color-col = '0' .
ls_cellcolor-color-int = '0' .
APPEND ls_cellcolor TO jtab-cellcolor .
MODIFY jtab INDEX 8 .
CLEAR ls_cellcolor.
READ TABLE jtab INDEX 13 .
ls_cellcolor-fname = 'NETWR' .
ls_cellcolor-color-col = '5' .
ls_cellcolor-color-int = '1' .
APPEND ls_cellcolor TO jtab-cellcolor .
MODIFY jtab INDEX 13 .
ENDFORM. " colcolor
*& Form DRILLDOWN_VALUES
FORM drilldown_values.
DATA lt_ddval TYPE lvc_t_drop .
DATA ls_ddval TYPE lvc_s_drop .
ls_ddval-handle = '1' .
ls_ddval-value = 'JFK-12' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'JSF-44' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'KMDA-53' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'SS3O/N' .
APPEND ls_ddval TO lt_ddval .
CALL METHOD obj_grid->set_drop_down_table
EXPORTING
it_drop_down = lt_ddval .
ENDFORM. " DRILLDOWN_VALUES
*& Form BUILD_FIELDCAT
text
--> p1 text
<-- p2 text
FORM build_fieldcat.
CLEAR i_fieldcat[].
*CLEAR wa_fieldcat.
*wa_fieldcat-col_pos = 1.
*wa_fieldcat-fieldname = 'CH'.
**wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '2'.
**wa_fieldcat-coltext = 'CHECKBOX'.
*wa_fieldcat-checkbox = 'X'.
*wa_fieldcat-edit = 'X'.
*APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 2.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '10'.
wa_fieldcat-coltext = 'SALES ORDER'.
*wa_fieldcat-CHECKBOX = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 4.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'JTAB'.
wa_fieldcat-outputlen = '20'.
wa_fieldcat-coltext = 'CUSTOMER NO'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 3.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '8'.
wa_fieldcat-coltext = 'DATE'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 5.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '12'.
wa_fieldcat-coltext = 'NAME'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 6.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '15'.
wa_fieldcat-coltext = 'NET WEIGHT'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 7.
wa_fieldcat-fieldname = 'KNUMV'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '10'.
wa_fieldcat-coltext = 'DOC COND'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 8.
wa_fieldcat-fieldname = 'BSTNK'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '20'.
wa_fieldcat-coltext = 'CUST PO'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 9.
wa_fieldcat-fieldname = 'KTEXT'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '40'.
wa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " BUILD_FIELDCAT
*& Form ebuild_fieldcat
text
--> p1 text
<-- p2 text
FORM ebuild_fieldcat.
CLEAR ei_fieldcat[].
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 1.
ewa_fieldcat-fieldname = 'CH'.
*ewa_fieldcat-tabname = 'JTAB'.
ewa_fieldcat-outputlen = '2'.
*ewa_fieldcat-coltext = 'CHECKBOX'.
ewa_fieldcat-checkbox = 'X'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 2.
ewa_fieldcat-fieldname = 'VBELN'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '10'.
ewa_fieldcat-coltext = 'SALES ORDER'.
*ewa_fieldcat-CHECKBOX = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 4.
ewa_fieldcat-fieldname = 'KUNNR'.
ewa_fieldcat-tabname = 'JTAB'.
ewa_fieldcat-outputlen = '20'.
ewa_fieldcat-coltext = 'CUSTOMER NO'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 3.
ewa_fieldcat-fieldname = 'ERDAT'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '8'.
ewa_fieldcat-coltext = 'DATE'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 5.
ewa_fieldcat-fieldname = 'ERNAM'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '12'.
ewa_fieldcat-coltext = 'NAME'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 6.
ewa_fieldcat-fieldname = 'NETWR'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '15'.
ewa_fieldcat-coltext = 'NET WEIGHT'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 7.
ewa_fieldcat-fieldname = 'KNUMV'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '10'.
ewa_fieldcat-coltext = 'DOC COND'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 8.
ewa_fieldcat-fieldname = 'BSTNK'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '20'.
ewa_fieldcat-coltext = 'CUST PO'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 9.
ewa_fieldcat-fieldname = 'KTEXT'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '40'.
ewa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
ewa_fieldcat-edit = 'X'.
ewa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
APPEND ewa_fieldcat TO ei_fieldcat.
ENDFORM. " ebuild_fieldcat -
Getting selected rows in ALV grid output
Hi All,
As per my requirement, in the ALV output i have 3 push buttons (Display, Edit and Print).
Using the below code, I am trying to get the selected rows from the output.
CALL METHOD ob_grid->check_changed_data
CHANGING
c_refresh = w_x.
CALL METHOD ob_grid->get_selected_rows
IMPORTING
et_index_rows = is_rows.
When I execute the code wid Display/Edit push buttons it is working fine as long as Print button is not used.
If I use the Print button and then try to select any other push button, I am not getting the entries in is_rows internal table.
Kindly help me.
Thanks in Advance.Would your user actually select a row if they wanted simply to print? I don't see that you're checking to see if the user actually selected a row ( after et_index_rows = is_rows, need to be sure is_rows is not initial (zero)). Debug should show you exactly what is happening in the situation you described.
-
ALV grid using classes(displaying subtotals groupwise in ALV grid control)
Hello ,
please can any body help me its urgent tome.
displaying subtotals groupwise ..say for ex..
cost group costelement amount
10 101 100.00
10 102 200.00
10 103 300.00
20 104 400.00
20 105 500.00
20 106 600.00
101 100.00
102 200.00
103 300.00
10 600.00
104 400.00
105 500.00
106 600.00
20 1500.00
In ALV grid control using classes.
Thanks in AdvanceHi alson,
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT grid1
EXPORTING i_parent = g_custom_container.
<b>CALL METHOD grid1->set_table_for_first_display
EXPORTING IS_LAYOUT = it_LAY
CHANGING it_fieldcatalog = fieldcat
it_sort = it_sort
it_outtab = itab[].</b>
ENDIF.
ENDMODULE. " PBO OUTPUT
keep the below code
<b>CALL METHOD grid1->set_table_for_first_display
EXPORTING IS_LAYOUT = it_LAY
CHANGING it_fieldcatalog = fieldcat
it_sort = it_sort
it_outtab = itab[].</b>
here
IF pdel = 'X'.
*BEGIN OF CHANGES BY VINAY DASARI
PERFORM get_data.
<b>CALL METHOD grid1->set_table_for_first_display
EXPORTING IS_LAYOUT = it_LAY
CHANGING it_fieldcatalog = fieldcat
it_sort = it_sort
it_outtab = itab[].</b>
ENDIF. -
Refreshing of ALV Grid(using class)
Hi all,
In my program, i found that the ALV grid is displaying the same data for different criteria's. when debugging i found that the data is populated correctly in the output table that is passed to the method SET_TABLE_FOR_FIRST_DISPLAY according to the criteria's, yet i could only see the grid with the previous data.Please suggest on what could be done to correct this.
Thanks,
saranHi Saran,
There is a lifetime attribute that you have to set .
Set this when you create object container at the first time .
Here is the sample syntax :
Variable definition
DATA: grid_pr1 TYPE REF TO cl_gui_alv_grid,
g_cconth TYPE REF TO cl_gui_custom_container,
gs_layout2 TYPE lvc_s_layo,
it_alv TYPE lvc_t_fcat .
DATA: it_pr1 type table of ZP119H. " custom structure
Create the object
IF g_cconth is INITIAL.
CREATE OBJECT g_cconth
EXPORTING
container_name = 'CCONTH'
lifetime = g_cconth->lifetime_dynpro.
CREATE OBJECT grid_pr1
EXPORTING
i_parent = g_cconth .
CALL METHOD grid_pr1->set_table_for_first_display
EXPORTING
is_layout = gs_layout2
CHANGING
it_outtab = it_pr1
it_fieldcatalog = it_alv.
ENDIF. " g_cconth
Message was edited by:
TUWUHSIH WINEDYA -
Changing Values on ALV Grid (using Classes)
Hi all,
I have ALV Grid output, on which ZMENG (Target Qty) column is editable. So user will enter in value in ZMENG column and press ENTER. Then TOTAL column should be populated with ZMENG * NETWR columns. I have tried with changing/ entering values with char data type columns like MAKTX etc.. Its working fine with them. But when I entered in value in ZMENG, the actual value which I have entered is not flowing into LS_GOOD-VALUE. For char data types its been populated with user entered values.
Can anyone please tell why its not happening with Quantity or Currency fields.
method handle_data_changed.
DATA: ls_good TYPE lvc_s_modi,
l_netwr TYPE vbap-netwr,
l_total TYPE vbap-netwr,
l_zmeng TYPE vbap-zmeng.
LOOP AT er_data_changed->mt_good_cells INTO ls_good.
CASE ls_good-fieldname.
WHEN 'ZMENG'.
<<<<l_zmeng = ls_good-value.>>>>
call method er_data_changed->get_cell_value
exporting i_row_id = ls_good-row_id
i_fieldname = 'NETWR'
importing e_value = l_netwr.
l_total = l_zmeng * l_netwr.
call method er_data_changed->modify_cell
exporting i_row_id = ls_good-row_id
i_fieldname = 'TOTAL'
i_value = l_total.
ENDCASE.
ENDLOOP.
ENDMETHOD.
Fieldcatlog for Quantity field:
l_fcat-tabname = 'IT_VBAP'.
l_fcat-fieldname = 'ZMENG'.
l_fcat-coltext = 'Qty'.
l_fcat-outputlen = 17.
l_fcat-edit = 'X'.
APPEND l_fcat TO ct_fcat.
CLEAR l_fcat.Hi Jaker
Try calling cl_gui_alv_Grid->refresh_table_display.
refresh table display when ever the qty is changed.
It should work.
Venkat.
Maybe you are looking for
-
Internal error while compiling a package
When I update a view within from a pulic procedure the package compiles without any issue. However If I make the same procedure as private(no declartion in specifcation) the package gives an internal error
-
Greater Than or Less Than using String Variables
I seem to have a problem when trying to sort an ALPHABETIC LIST, seeing if one text field is greater tan or less than another. i.e. Lets say my variables are called FirstLetter and SecondLetter. FirstLetter="A", SecondLetter="B" So as an example and
-
Sender's email id in function module SO_DOCUMENT_SEND_API1
Hi All, I am fetching the sender's email id dynamically from HR database and then trying to use it while sending email via FM SO_DOCUMENT_SEND_API1. But the email does not go. The FM is erroring out with return code 6. If I maintain email id in the u
-
How assign formula to condition type??
I have a condition type with calculation type G (Formula). I know that formula is calculated in VOFM, however, how to assign this formula to Condition Type??. Thanks in advance.
-
Help! Audigy 2: 5.1 setup Subwoofer and Center tied togeth
argh this is SUPER frustrating! what is wrong with this sound card? I have had it for like 2 years and finally got a 5. setup. I have 5. correctly selected. Speakers are all set correctly. If I go do an audio test and they do the check on the CENTER