Reg: ALV (REUSE_ALV_GRID_DISPLAY)
Hi Experts,
I need to know how to give drop down list in one of the field in my ALV.
I found some posting in sdn, but that are related to OOPS concepts.
But i am using REUSE function module.
Can you please provide me the solution how to achecive drop down list in ALV using REUSE_ALV_GRID_DISPLAY.
Thanks
Vijay.R
Hi Vijayendran,
There is only oops method available to create drop down list in ALV.
Go through the program below and modify your program accordingly.
Only thing that you have to do is to create container for your alv and use this container for displaying drop down list.
This program displays a dropdown list in one of the fields of the ALV.
*& Report Z_LISTBOX_ALV
*& Program to display a dropdown list in ALV.
REPORT z_listbox_alv.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_rating,
task(20) TYPE c,
rating TYPE i,
weightage(2) TYPE c,
comments(40) TYPE c,
END OF ty_rating.
DATA: g_alvgrid TYPE REF TO cl_gui_alv_grid,
g_alv_container TYPE REF TO cl_gui_custom_container,
int_fieldcat TYPE lvc_t_fcat,
ok_code TYPE sy-ucomm.
DATA: int_outputdata TYPE TABLE OF ty_rating.
INITIALIZATION.
START-OF-SELECTION.
* call new screen for displaying the oop alv
CALL SCREEN 1100.
* Double click on the screen, it takes you the screen painter (SE51). Create
* Custom Container on the screen and name is as u2018CONTAINERu2019. Set the Ok-Code
* the screen as u2018OK_CODEu2019. Also create a GUI status named 'STANDARD' and
* in set Ok-code '&F03' for the back button.
* The screen 1100 thus gets created to hold the grid ALV.
* In the PBO of the screen, call the modules to set pf-status, title and
* to display the ALV list.
* In case we have an interactive ALV or for additional functionalities we can
* create OK-CODES and based on the user command we do the coding in the PAI.
*& Module STATUS_0600 OUTPUT
* set the PF status of the screen. Called in PBO of screen.
MODULE status_0600 OUTPUT.
SET PF-STATUS 'STANDARD'.
ENDMODULE. " STATUS_0600 OUTPUT
*& Module DISPLAY_ALV OUTPUT
* Displays the alv list. Called in PBO of screen.
MODULE display_alv OUTPUT.
* get the data.
PERFORM retrieve_data.
* prepare fieldcatalog for displaying the alv
PERFORM prepare_fieldcatalog.
* create a container to display the list
CREATE OBJECT g_alv_container
EXPORTING
container_name = 'CONTAINER'.
* create a reference for the alv
CREATE OBJECT g_alvgrid
EXPORTING
i_parent = g_alv_container.
* prepare a listbox for the rating column
PERFORM fill_dropdown.
* call the method to display the list
CALL METHOD g_alvgrid->set_table_for_first_display
EXPORTING
i_bypassing_buffer = 'X'
i_save = 'X'
CHANGING
it_outtab = int_outputdata
it_fieldcatalog = int_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. "DISPLAY_ALV OUTPUT
*& Form PREPARE_FIELDCATALOG
* prepares fieldcatalog
FORM prepare_fieldcatalog .
DATA: lws_fieldcat TYPE lvc_s_fcat.
CLEAR int_fieldcat.
CLEAR lws_fieldcat.
lws_fieldcat-col_pos = 1.
lws_fieldcat-fieldname = 'TASK'.
lws_fieldcat-scrtext_m = 'TASK'.
APPEND lws_fieldcat TO int_fieldcat.
CLEAR lws_fieldcat.
lws_fieldcat-col_pos = 2.
lws_fieldcat-fieldname = 'RATING'.
lws_fieldcat-edit = 'X'.
lws_fieldcat-scrtext_m = 'RATING'.
lws_fieldcat-just = 'L'.
lws_fieldcat-outputlen = '6'.
lws_fieldcat-drdn_hndl = '1'. "handle for listbox
APPEND lws_fieldcat TO int_fieldcat.
CLEAR lws_fieldcat.
lws_fieldcat-col_pos = 3.
lws_fieldcat-fieldname = 'WEIGHTAGE'.
lws_fieldcat-scrtext_m = 'WEIGHTAGE'.
lws_fieldcat-outputlen = '9'.
APPEND lws_fieldcat TO int_fieldcat.
CLEAR lws_fieldcat.
lws_fieldcat-col_pos = 4.
lws_fieldcat-fieldname = 'COMMENTS'.
lws_fieldcat-scrtext_m = 'COMMENTS'.
lws_fieldcat-edit = 'X'.
APPEND lws_fieldcat TO int_fieldcat.
ENDFORM. " PREPARE_FIELDCATALOG
*& Form RETRIEVE_DATA
* retreives the data to be displayed
FORM retrieve_data .
DATA: lws_outputdata TYPE ty_rating.
CLEAR int_outputdata.
CLEAR lws_outputdata.
lws_outputdata-task = 'proj. related'.
lws_outputdata-weightage = '20'.
APPEND lws_outputdata TO int_outputdata.
CLEAR lws_outputdata.
lws_outputdata-task = 'process. related'.
lws_outputdata-weightage = '10'.
APPEND lws_outputdata TO int_outputdata.
CLEAR lws_outputdata.
lws_outputdata-task = 'knowledge mgnt.'.
lws_outputdata-weightage = '30'.
APPEND lws_outputdata TO int_outputdata.
ENDFORM. " RETRIEVE_DATA
*& Form FILL_DROPDOWN
* prepares the listbox to be displayed and assigns it to the alv
FORM fill_dropdown .
DATA: lint_dropdown TYPE lvc_t_drop,
lws_dropdown TYPE lvc_s_drop.
CLEAR lint_dropdown.
CLEAR lws_dropdown.
lws_dropdown-handle = '1'.
lws_dropdown-value = '5'.
APPEND lws_dropdown TO lint_dropdown.
CLEAR lws_dropdown.
lws_dropdown-handle = '1'.
lws_dropdown-value = '4'.
APPEND lws_dropdown TO lint_dropdown.
CLEAR lws_dropdown.
lws_dropdown-handle = '1'.
lws_dropdown-value = '3'.
APPEND lws_dropdown TO lint_dropdown.
CLEAR lws_dropdown.
lws_dropdown-handle = '1'.
lws_dropdown-value = '2'.
APPEND lws_dropdown TO lint_dropdown.
CLEAR lws_dropdown.
lws_dropdown-handle = '1'.
lws_dropdown-value = '1'.
APPEND lws_dropdown TO lint_dropdown.
CALL METHOD g_alvgrid->set_drop_down_table
EXPORTING
it_drop_down = lint_dropdown.
ENDFORM. " FILL_DROPDOWN
*& Module HANDLE_GOBACK INPUT
* handles 'back' button. Called in PAI of the screen.
MODULE handle_goback INPUT.
IF ok_code EQ '&F03'.
LEAVE PROGRAM.
ENDIF.
ENDMODULE.
Get back to me for any clarification.
Regards,
Bhavesh
Similar Messages
-
Hi Friends,
We have one Z report that output is displayed in ALV. We are using the standard FM 'REUSE_ALV_GRID_DISPLAY.
We have requirement to remove leading zeros for the field like Material Number (MATNR), Equipment Number (EQUNR) etc. We did the changes by applying the field catalog properties as below.
lw_fieldcat-lzero = space.
lw_fieldcat-no_zero = 'X'.
After this, the MATNR and EQUNR is displayed correctly in the ALV. (Leading zeros are suppressed). But, when we do filter for these fields, in the filter window it displays all the values with leading zeros.
1. We don't understand why it is showing in the Filter widow with all leading zeros. All it shows all the records instead of unique items.
Later on, we removed the above fieldcat coding. Then, we have called the CONVERSION_EXIT routines (in the domain) for the fields to remove leading zeros.
Now, the MATNR and EQUNR is displayed correctly (without leading zeros) in ALV. When we do filter, it is also doing filtering correctly. But, when we do filter which have EQUNR having long values (after zero suppression), it is not working correctly. i.e no items are displayed in the ALV.
Not only for this items. If we filter character columns which have long text, it is not filtering correctly.
2. It is not able to understand why the filtering is not working for long items. But in the standard report, the filtering is working correctly.
We are using SAP ECC 6.0.
Friends, can you clarify the about doubts. It is surprising for me.
Kind regards,
Jegathees P.
Our customer is asked to remove the leading zeros for the numeric fieldHi Clemens Li
I agreed on your point. When we define the Internal table the type for element EQUNR & QUMNR , we are referring the SAP data element for EQUNR, QMNUM field.
Our doubt is even though we refer the standard data element, in the ALV display, it shows with leading zeros and also it creates problems in the filtering and in the filter window all values instead of unique nos.
Hi Abhii
I have given below the fieldcat coding.
Friends, can you kindly clarify the above said problems. Since we use SAP ECC 6.0 any notes or patches apply is required. ( this is the basic functionality in ALV, that is my doubt).
wls_fieldcat-col_pos = wpv_pos.
wls_fieldcat-fieldname = wpv_champ.
wls_fieldcat-tabname = wlc_tabname.
wls_fieldcat-seltext_s = wls_fieldcat-seltext_m
wls_fieldcat-seltext_l = wpv_libelle.
wls_fieldcat-ddictxt = 'L'.
wls_fieldcat-no_out = wv_no_out.
APPEND wls_fieldcat TO gt_fieldcat.
Kind regards,
Jegathees P. -
Hi Expert,
I am facing simple problem regarding alv display.
While retrieving data, records are shown in internal table (It_final), but it doesn't goes to alv display in output.
The code is:
FORM merge_data .
SORT it_qasr BY probenr prueflos vorglfnr.
LOOP AT it_qasr INTO wa_qasr.
w_mittelwert = wa_qasr-mittelwert.
READ TABLE it_qapp INTO wa_qapp WITH KEY prueflos = wa_qasr-prueflos
vorglfnr = wa_qasr-vorglfnr
probenr = wa_qasr-probenr.
wa_final-userd1 = wa_qapp-userd1.
wa_final-usert1 = wa_qapp-usert1.
wa_final-userc1 = wa_qapp-userc1.
SHIFT wa_final-userc1 LEFT DELETING LEADING '0'.
wa_final-userc2 = wa_qapp-userc2.
READ TABLE it_plmk INTO wa_plmk WITH KEY merknr = wa_qasr-merknr
plnnr = wa_mapl-plnnr.
plnkn = wa_qasr-vorglfnr " changed by DEVK909452
READ TABLE it_qpmt INTO wa_qpmt WITH KEY mkmnr = wa_plmk-verwmerkm.
READ TABLE it_qpct INTO wa_qpct WITH KEY codegruppe = wa_qasr-gruppe1
code = wa_qasr-code1.
TRANSLATE wa_qpmt-mkmnr TO UPPER CASE.
IF wa_qpmt-mkmnr CS 'RQZMOI'.
wa_qpmt-mkmnr = 'MOIS_Q'.
ENDIF.
IF wa_qpmt-mkmnr CS 'RIOSI+AL'.
wa_qpmt-mkmnr = 'SIAL_IR'.
ENDIF.
CASE wa_qpmt-mkmnr.
WHEN 'MOIS_Q'.
wa_final-MOIS_Q = w_mittelwert.
WHEN 'SIAL_IR'.
wa_final-SiAl_IR = w_mittelwert.
WHEN 'SHIFT'.
wa_final-shift = wa_qpct-kurztext.
WHEN 'MATERIAL'.
wa_final-material = wa_qpct-kurztext.
ENDCASE.
APPEND wa_final TO it_final.
CLEAR wa_final.
FORM alv_display .
*fieldcatalog template with 105 fields
PERFORM sub_make_field_cat1 USING :
'1' 'USERD1' 'DATE',
'2' 'MATERIAL' 'MATERIAL',
'3' 'USERC2' 'SOURCE',
'4' 'USERC1' 'LOCATION',
'5' 'USERT1' 'TIME',
'6' 'SHIFT' 'SHIFT',
'7' 'MATERIAL' 'MATERIAL',
'8' 'SHIFT' 'SHIFT',
'9' 'MOIS_Q' 'MOISTURE-Q',
'10' 'SI_Q' 'SILICA-Q',
'11' 'AL_Q' 'ALUMINA-Q',
'12' 'FO_Q' 'FERRIC OXIDE-Q',
'13' 'SIZE_Q' 'SIZE-Q',
'14' 'MOIS_IR' 'MOISTURE-IR',
'15' 'TIRON_IR' 'TOTAL IRON-IR',
'16' 'SI_IR' 'SILICA-IR',
'17' 'AL_IR' 'ALUMINA-IR',
'18' 'SIAL_IR' 'SILICA + ALUMINA-IR',
'19' 'P_IR' 'PHOSPHOROUS-IR',
'20' 'L_O_I_IR' 'LOSS ON IGNITION-IR',
'21' 'MN_IR' 'MANGANESS-IR',
'22' 'TITOX_IR' 'TITANIUM OXIDE-IR',
'23' 'ALK_IR' 'ALKALIES-IR',
'24' 'SUL_IR' 'SULPHUR-IR',
'25' 'TIND_IR' 'TUMBLER INDEX-IR',
'26' 'ABBIND_IR' 'ABBRATION INDEX-IR',
'27' 'BDEN_IR' 'BULK DENSITY-IR',
'28' 'SIZE_IR' 'SIZE-IR',
'29' 'MOIS_IRF' 'MOISTURE-IRF',
'30' 'TIRON_IRF' 'TOTAL IRON-IRF',
'31' 'SI_IRF' 'SILICA-IRF',
'32' 'AL_IRF' 'ALUMINA-IRF',
'33' 'P_IRF' 'PHOSPHOROUS-IRF',
'34' 'L_O_I_IRF' 'LOSS ON IGNITION-IRF',
'35' 'MOIS_COKE' 'MOISTURE-COKE',
'36' 'VOL_MAT_COKE' 'VOLATILE MATTER-COKE',
'37' 'ASH_COKE' 'ASH-COKE',
'38' 'FIX_CA_COKE' 'FIXED CARBON-COKE',
'39' 'SUL_COKE' 'SULPHUR-COKE',
'40' 'P_COKE' 'PHOSPHOROUS-COKE',
'41' 'ALK_COKE' 'ALKALIES-COKE',
'42' 'SI_COKE' 'SILICA-COKE',
'43' 'AL_COKE' 'ALUMINA-COKE',
'44' 'FEO_COKE' 'FERRIC OXIDE-COKE',
'45' 'CAO_COKE' 'CALCIUM OXIDE-COKE',
'46' 'MGO_COKE' 'MAGNESIUM OXIDE-COKE',
'47' 'PPOX_COKE' 'PHOSPHOROUS PENTAOXIDE-COKE',
'48' 'SIZE_COKE' 'SIZE-COKE',
'49' 'MOIS_LS' 'MOISTURE-LS',
'50' 'SI_LS' 'SILICA-LS',
'51' 'AL_LS' 'ALUMINA-LS',
'52' 'FEO_LS' 'FERRIC OXIDE-LS',
'53' 'CAO_LS' 'CALCIUM OXIDE-LS',
'54' 'MGO_LS' 'MAGNESIUM OXIDE-LS',
'55' 'ALK_LS' 'ALKALIES-LS',
'56' 'SIZE_LS' 'SIZE-LS',
'57' 'MOIS_LSF' 'MOISTURE-LSF',
'58' 'SI_LSF' 'SILICA-LSF',
'59' 'AL_LSF' 'ALUMINA-LSF',
'60' 'FEO_LSF' 'FERRIC OXIDE-LSF',
'61' 'CAO_LSF' 'CALCIUM OXIDE-LSF',
'62' 'MGO_LSF' 'MAGNESIUM OXIDE-LSF',
'63' 'SIZE_LSF' 'SIZE-LSF',
'64' 'MOIS_D' 'MOISTURE-D',
'65' 'SI_D' 'SILICA-D',
'66' 'AL_D' 'ALUMINA-D',
'67' 'FEO_D' 'FERRIC OXIDE-D',
'68' 'CAO_D' 'CALCIUM OXIDE-D',
'69' 'MGO_D' 'MAGNESIUM OXIDE-D',
'70' 'ALK_D' 'ALKALIES-D',
'71' 'SIZE_D' 'SIZE-D',
'72' 'MOIS_DF' 'MOISTURE-DF',
'73' 'SI_DF' 'SILICA-DF',
'74' 'AL_DF' 'ALUMINA-DF',
'75' 'FEO_DF' 'FERRIC OXIDE-DF',
'76' 'CAO_DF' 'CALCIUM OXIDE-DF',
'77' 'MGO_DF' 'MAGNESIUM OXIDE-DF',
'78' 'SIZE_DF' 'SIZE-DF',
'79' 'MOIS_MO' 'MOISTURE-MO',
'80' 'SI_MO' 'SILICA-MO',
'81' 'AL_MO' 'ALUMINA-MO',
'82' 'TIRON_MO' 'TOTAL IRON-MO',
'83' 'MN_MO' 'MANGENESE-MO',
'84' 'P_MO' 'PHOSPHAROUS-MO',
'85' 'ALK_MO' 'ALKALIES-MO',
'86' 'SIZE_MO' 'SIZE-MO',
'87' 'MOIS_STR' 'MOISTURE-STR',
'88' 'SI_STR' 'SILICA-STR',
'89' 'AL_STR' 'ALUMINA-STR',
'90' 'TIRON_STR' 'TOTAL IRON-STR',
'91' 'FO_STR' 'FERROUS OXOIDE-STR',
'92' 'P_STR' 'PHOSPHAROUS-STR',
'93' 'CAO_STR' 'CALCIUM OXIDE-STR',
'94' 'MGO_STR' 'MAGNESIUM OXIDE-STR',
'95' 'TIND_STR' 'TUMBLER INDEX-STR',
'96' 'ABBIND_STR' 'ABBRATION INDEX-STR',
'97' 'CAOSIO2_STR' 'CAO / SIO2-STR',
'98' 'SI_SLG' 'SILICA-SLG',
'99' 'AL_SLG' 'ALUMINA-SLG',
'100' 'FEO_SLG' 'FERRIC OXIDE-SLG',
'101' 'CAO_SLG' 'CALCIUM OXIDE-SLG',
'102' 'MGO_SLG' 'MAGNESIUM OXIDE-SLG',
'103' 'MNO_SLG' 'MANGANESE OXIDE-SLG',
'104' 'FO_SLG' 'FERROUS OXIDE-SLG',
'105' 'BAS_SLG' 'BASICITY-SLG'.
is_layout-zebra = 'X'.
is_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = is_layout
it_fieldcat = it_fieldcat
i_save = 'X'
is_variant = gs_variant
TABLES
t_outtab = it_final
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
form SUB_MAKE_FIELD_CAT1 using p_col TYPE char3
p_fnam TYPE char30
p_text TYPE char30.
is_fieldcat-col_pos = p_col.
is_fieldcat-fieldname = p_fnam.
is_fieldcat-seltext_m = p_text.
APPEND is_fieldcat TO it_fieldcat.
endform. " SUB_MAKE_FIELD_CAT1
This is the code i have.
In debugging, i found data in internal table (it_final). But, it doesn't display in output.
Please help me in this regard?
Thanks in advance....
Sai..
Edited by: Sai Babu on Sep 16, 2008 3:07 PMSai Babu wrote:
> Any experts.........
no,No,NO....
There is no expert(active since last 3months or so) beyond him
Specially in ALV moreover in OOPS ALV
Edited by: Ámit Güjärgoüd on Sep 16, 2008 3:19 PM -
ALV REUSE_ALV_GRID_DISPLAY in new screen.
Hello Friends,
I have a small problem and would appreciate any input.
I have an ALV grid, where I click a button and another ALV grid pops up.
My problem is the GUI status. When I leave the screen of the second ALV, the first ALV shows the same GUI status. How do I get the first gui_status not to be changed when I return??
best regards BREPORT ZALV_SECONDSCREEN.
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = &2.
ls_fieldcat-cfieldname = &3.
ls_fieldcat-qfieldname = &4.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
TYPE-POOLS: slis. " ALV Global types
TYPES:
BEGIN OF ty_vbak,
vkorg TYPE vbak-vkorg, " Sales organization
kunnr TYPE vbak-kunnr, " Sold-to party
vbeln TYPE vbak-vbeln, " Sales document
netwr TYPE vbak-netwr, " Net Value of the Sales Order
waerk TYPE vbak-waerk, " Currency
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document item
matnr TYPE vbap-matnr, " Material number
arktx TYPE vbap-arktx, " Short text for sales order item
kwmeng TYPE vbap-kwmeng, " Order quantity
vrkme TYPE vbap-vrkme, " Quantity Unit
netwr TYPE vbap-netwr, " Net value of the order item
waerk TYPE vbap-waerk, " Currency
END OF ty_vbap.
DATA :
gs_vbak TYPE ty_vbak,
Data displayed in the first list
gt_vbak TYPE TABLE OF ty_vbak,
Data displayed in the second list
gt_vbap TYPE TABLE OF ty_vbap.
SELECT-OPTIONS :
s_vkorg FOR gs_vbak-vkorg, " Sales organization
s_kunnr FOR gs_vbak-kunnr, " Sold-to party
s_vbeln FOR gs_vbak-vbeln. " Sales document
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
INITIALIZATION.
v_1 = 'Maximum of records to read'.
START-OF-SELECTION.
PERFORM f_read_data_vbak.
PERFORM f_display_data_vbak.
Form f_read_data_vbak
FORM f_read_data_vbak.
SELECT vkorg kunnr vbeln netwr waerk
INTO CORRESPONDING FIELDS OF TABLE gt_vbak
UP TO p_max ROWS
FROM vbak
WHERE kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg
and vbtyp = 'C'. " C = Sales Orders.
ENDFORM. " F_READ_DATA_VBAK
Form f_display_data_vbak
FORM f_display_data_vbak.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
m_fieldcat 'VKORG' 'VBAK' '' ''.
m_fieldcat 'KUNNR' 'VBAK' '' ''.
m_fieldcat 'VBELN' 'VBAK' '' ''.
m_fieldcat 'NETWR' 'VBAK' 'WAERK' ''.
m_fieldcat 'WAERK' 'VBAK' '' ''.
Display the first list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA_VBAK
FORM USER_COMMAND *
FORM user_command USING u_ucomm TYPE syucomm
us_selfield TYPE slis_selfield. "#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbap. " Read data from VBAP
PERFORM f_display_data_vbap.
ENDCASE.
ENDFORM. " USER_COMMAND
Form f_read_data_vbap
FORM f_read_data_vbap.
SELECT vbeln posnr matnr arktx kwmeng vrkme netwr waerk
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FROM vbap
WHERE vbeln = gs_vbak-vbeln.
ENDFORM. " F_READ_DATA_VBAP
Form f_display_data_vbap
FORM f_display_data_vbap.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
m_fieldcat 'VBELN' 'VBAP' '' ''.
m_fieldcat 'POSNR' 'VBAP' '' ''.
m_fieldcat 'MATNR' 'VBAP' '' ''.
m_fieldcat 'ARKTX' 'VBAP' '' ''.
m_fieldcat 'KWMENG' 'VBAP' '' 'VRKME'.
m_fieldcat 'VRKME' 'VBAP' '' ''.
m_fieldcat 'NETWR' 'VBAP' 'WAERK' ''.
m_fieldcat 'WAERK' 'VBAP' '' ''.
Display the second list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbap.
ENDFORM. " F_DISPLAY_DATA_VBAP -
Hi All,
I have an issue with ALV report.I have basic list and secondary list.The problem is the layout selection of one list is effecting the other list display.Could you please let me know some body what parameters I have to pass for IS_LAYOUT parameter in the ALV_Griddisplay ?what is the purpose of IS_Variant--handle parameter?
Regards
MaheshHi,
Check the sample Interactive ALV Grid Report.
REPORT z_demo_3_alv_list.
This program is an example with 3 ALV Grid lists *
The customers are displayed in the first list *
When a line is selected, the customer's orders are displayed in *
the second list *
When a line is selected in the second list, the items orders are *
displayed in the second list *
Macro definition
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = &2.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
TYPE-POOLS: slis. " ALV Global types
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
TYPES:
Data displayed in the first list
BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr, " Customer number
name1 TYPE kna1-name1, " Customer name
ort01 TYPE kna1-ort01, " Customer city
END OF ty_kna1,
Data displayed in the second list
BEGIN OF ty_vbak,
vkorg TYPE vbak-vkorg, " Sales organization
kunnr TYPE vbak-kunnr, " Sold-to party
vbeln TYPE vbak-vbeln, " Sales document
netwr TYPE vbak-netwr, " Net Value of the Sales Order
END OF ty_vbak,
Data displayed in the third list
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document item
matnr TYPE vbap-matnr, " Material number
arktx TYPE vbap-arktx, " Short text for sales order item
kwmeng TYPE vbap-kwmeng, " Order quantity
netwr TYPE vbap-netwr, " Net value of the order item
END OF ty_vbap.
DATA:
gs_kna1 TYPE ty_kna1,
gt_kna1 TYPE TABLE OF ty_kna1,
gs_vbak TYPE ty_vbak,
gt_vbak TYPE TABLE OF ty_vbak,
gt_vbap TYPE TABLE OF ty_vbap.
INITIALIZATION.
v_1 = 'Maximum of records to read'.
START-OF-SELECTION.
PERFORM f_read_data_kna1.
END-OF-SELECTION.
PERFORM f_display_data_kna1.
Form f_read_data_kna1
FORM f_read_data_kna1.
Read customer data with a least one order
SELECT kunnr name1 ort01 INTO TABLE gt_kna1
FROM kna1 AS k
UP TO p_max ROWS
WHERE EXISTS
( SELECT kunnr FROM vbak WHERE kunnr = k~kunnr ).
ENDFORM. " F_READ_DATA_KNA1
Form f_display_data_kna1
FORM f_display_data_kna1.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
m_fieldcat 'KUNNR' 'KNA1'.
m_fieldcat 'NAME1' 'KNA1'.
m_fieldcat 'ORT01' 'KNA1'.
Display the first list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND_KNA1'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_kna1.
ENDFORM. " F_DISPLAY_DATA_KNA1
FORM USER_COMMAND_KNA1 *
FORM user_command_kna1 USING u_ucomm TYPE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE gt_kna1 INDEX us_selfield-tabindex INTO gs_kna1.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbak. " Read data from VBAK
PERFORM f_display_data_vbak. " Display orders
ENDCASE.
ENDFORM. " USER_COMMAND_KNA1
Form f_read_data_vbak
FORM f_read_data_vbak.
SELECT vkorg kunnr vbeln netwr
INTO TABLE gt_vbak
FROM vbak
UP TO p_max ROWS
WHERE kunnr = gs_kna1-kunnr.
ENDFORM. " F_READ_DATA_VBAK
Form f_display_data_vbak
FORM f_display_data_vbak.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
m_fieldcat 'VKORG' 'VBAK'.
m_fieldcat 'KUNNR' 'VBAK'.
m_fieldcat 'VBELN' 'VBAK'.
m_fieldcat 'NETWR' 'VBAK'.
Display the second list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND_VBAK'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA_VBAK
FORM USER_COMMAND_VBAK *
FORM user_command_vbak USING u_ucomm TYPE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbap. " Read data from VBAP
PERFORM f_display_data_vbap. " Display items
ENDCASE.
ENDFORM. " USER_COMMAND_VBAK
Form f_read_data_vbap
FORM f_read_data_vbap.
SELECT vbeln posnr matnr arktx kwmeng netwr
INTO TABLE gt_vbap
FROM vbap
WHERE vbeln = gs_vbak-vbeln.
ENDFORM. " F_READ_DATA_VBAP
Form f_display_data_vbap
FORM f_display_data_vbap.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
m_fieldcat 'VBELN' 'VBAP'.
m_fieldcat 'POSNR' 'VBAP'.
m_fieldcat 'MATNR' 'VBAP'.
m_fieldcat 'ARKTX' 'VBAP'.
m_fieldcat 'KWMENG' 'VBAP'.
m_fieldcat 'NETWR' 'VBAP'.
Display the third list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbap.
ENDFORM. " F_DISPLAY_DATA_VBAP
END OF PROGRAM Z_DEMO_3_ALV_LIST ******************
Regards,
Raj. -
Reg: ALV report - output download
Hi Friends,
I am having one issue reg download of ALV (Grid display) report output. we are having vendor number at 1st colomn. It's displaying correctly in output.
(eg:0000100069). But, when I download the output into a excel file, last digit of the vendor number getting truncated. (eg: 100069 becomes 10006).
Kindly help me regarding this ..
Thanks in advance.
Regards,
Bharat.Hi,
The problem is in formatting in Excel. U download the data. Then select the column u want to format, right click and select format cells. In that, choose Number and assign decimal places to 0. U will get according to the format u needed.
I worked in this, and got as per the specified format.
Reward if found useful. -
Total number lines, in an alv (REUSE_ALV_GRID_DISPLAY)
Hi,
i want to know, if it´s possible to show the total number of lines displayed in an alv. I´not not sure if that, is an event of the table gt_events[] (maybe the end_of_list one???)
I would like to show this total, like an status message...
Thanks in advance
Carlesreport ztest_alv1 .
type-pools: slis.
data:
ls_fieldcat type slis_fieldcat_alv,
lt_fieldcat type slis_t_fieldcat_alv,
lt_sort type slis_t_sortinfo_alv,
ls_sort type slis_sortinfo_alv.
data: v_line type i,
lines(3) type c.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
data: it_events type slis_t_event,
x_events type slis_alv_event.
data: begin of itab occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of itab.
itab-vbeln = '12345'.
itab-posnr = '10'.
append itab.
clear itab.
itab-vbeln = '12345'.
itab-posnr = '11'.
append itab.
clear itab.
itab-vbeln = '12345'.
itab-posnr = '12'.
append itab.
clear itab.
itab-vbeln = '12356'.
itab-posnr = '10'.
append itab.
clear itab.
itab-vbeln = '12356'.
itab-posnr = '11'.
append itab.
clear itab.
itab-vbeln = '12356'.
itab-posnr = '12'.
append itab.
clear itab.
describe table itab lines v_line.
lines = v_line.
PERFORM E04_COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
x_events-name = 'TOP_OF_PAGE'.
x_events-form = 'TOP_OF_PAGE'.
append x_events to it_events.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = sy-repid
i_internal_tabname = 'ITAB'
i_inclname = sy-repid
changing
ct_fieldcat = lt_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
ls_sort-fieldname = 'VBELN'.
ls_sort-up = 'X'.
*ls_sort-group = 'UL'.
append ls_sort to lt_sort.
clear ls_sort.
ls_sort-fieldname = 'POSNR'.
ls_sort-up = 'X'.
*ls_sort-group = '*'.
append ls_sort to lt_sort.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
it_fieldcat = lt_fieldcat
it_sort = lt_sort
it_events = it_events
tables
t_outtab = itab.
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'NO of lines'.
LS_LINE-INFO = lines.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
ENDFORM.
* FORM TOP_OF_PAGE *
form top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
endform. "top_of_page
check this code..
regards
vijay -
Reg: Alv and selection-screen
Hi,
I created a ALV report,
I gave the user provision delete rows and dispalyed the new list without the deleted rows( one row at a time)
when i deleted few rows and when i press the back button i am getting all the rows deleted, but i want to jump directly to selection screen
please help me how to jump to selection screen after pressing the back button
i tried set screen 0 leave to screen 0 but of no use,
please help in this regard
thnxHi learner,
After deleting a row in ur internal tab u hav to refresh the display to remove dat row from display rite .....how r u doing it...??
Are u calling the ALV FM again... if ur doin so !! its a wrong way and der lies de problem....
check the sample code below in which if u double click on a row dat row gets deleted and the screen is refreshed.....also if u click back it goes to the selection-screen and not the previous alv display with deleted rows......
TYPE-POOLS: slis.
PARAMETERS rows TYPE i DEFAULT 20.
DATA: itab TYPE TABLE OF mara WITH HEADER LINE,
ls_layout TYPE slis_layout_alv.
START-OF-SELECTION.
SELECT * UP TO rows ROWS
FROM mara
INTO CORRESPONDING FIELDS OF TABLE itab.
ls_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'MARA'
is_layout = ls_layout
i_callback_program = sy-repid
i_grid_title = 'Double click on a row'
i_callback_user_command = 'EVENT_HANDLER'
TABLES
t_outtab = itab[].
*& Form event_handler
FORM event_handler USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CLEAR itab.
DELETE itab INDEX rs_selfield-tabindex.
MOVE 'X' TO rs_selfield-refresh . " this automatically refreshes the display
ENDFORM. "event_handler
Cheers,
jose. -
Hi,
In ALV report How to change enable mode for particular field and If I change any field that will reflect in Database? Can any one send me the sample coding for this?
Thanks,
M.ManickamHello,
Check this code:
*& Form ALV_DISPLAY
* text
* --> p1 text
* <-- p2 text
FORM ALV_DISPLAY.
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 .
*--- ALV List Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_PROGNAME
I_CALLBACK_USER_COMMAND = G_CALLBACK_USER_COMMAND
IT_FIELDCAT = GT_FIELDCAT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = G_T_EKPO
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
*& Form USER_COMMAND_ALV
* text
* --> p1 text
* <-- p2 text
FORM ALV_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
*--- Hotspot selektion
CASE RS_SELFIELD-FIELDNAME.
WHEN 'NOTE'.
SELECT * FROM Z48M_NOTE_LIST INTO TABLE IT_TC01.
READ TABLE G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
SELECT SINGLE * FROM Z48M_LIEF_NOTE
WHERE EBELN = G_T_EKPO-EBELN
AND EBELP = G_T_EKPO-EBELP.
IF SY-SUBRC = 0.
LOOP AT IT_TC01.
IF IT_TC01-KRITER = 'QUALITÄT'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-QUALI.
ENDIF.
IF IT_TC01-KRITER = 'KOSTEN'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-KOSTE.
ENDIF.
IF IT_TC01-KRITER = 'LIEFERTERMIN'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-LIEFE.
ENDIF.
IF IT_TC01-KRITER = 'FLEXIBILITÄT'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-FLEXI.
ENDIF.
IF IT_TC01-KRITER = 'ZUSAMMENARBEIT'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-ZUSAM.
ENDIF.
IF IT_TC01-KRITER = 'SCHWIERIGKEITSGRAD'.
IT_TC01-NOTE = Z48M_LIEF_NOTE-SCHWI.
ENDIF.
MODIFY IT_TC01.
ENDLOOP.
* MESSAGE I999(Z48MM) WITH TEXT-004 G_T_EKPO-EBELN
* G_T_EKPO-EBELP.
CALL SCREEN 0100 STARTING AT 20 05 ENDING AT 80 14.
G_T_EKPO-NOTE = G_F_AVG.
G_T_EKPO-FLAG = 'X'.
MODIFY G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
RS_SELFIELD-REFRESH = 'X'.
ELSE.
CALL SCREEN 0100 STARTING AT 20 05 ENDING AT 80 14.
G_T_EKPO-NOTE = G_F_AVG.
G_T_EKPO-FLAG = 'X'.
MODIFY G_T_EKPO INDEX RS_SELFIELD-TABINDEX.
RS_SELFIELD-REFRESH = 'X'.
ENDIF.
ENDCASE.
WHEN '&EMAIL'.
PERFORM BUILD_XLS_DATA_TABLE.
PERFORM MAIL_SEND.
ENDCASE.
ENDFORM. "USER_COMMAND_ALV
If useful reward.
Vasanth -
ALV Reuse_alv_grid_display
Hi ,
I am running a small report.
Now i enter some values on the selection screen.
And the results i am able to display in an ALV using the FM Reuse_alv_grid_display.
I am trying to have a Push Button & i have added the following code in my program.
REPORT Z_TABLE_UPLOAD.
SET PF-STATUS 'XYZ'.
LL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = WA_FIELD
I_GRID_TITLE = 'ZTDA DETAILS'
I_CALLBACK_PF_STATUS_SET = 'XYZ'
TABLES
T_OUTTAB = IT_ZTDA[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
I have added a push button in XYZ.
But i am not getting any push button in the application toolbar.
pls suggest.
regards,
Kevin.Hi,
See this code snippet:
FORM alv_display.
DATA: l_repid TYPE sy-repid.
l_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_pf_status_set = 'SET_PF_STATUS' "pass subroutine name not status name here
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = wa_alv_layout
it_fieldcat = it_alv_fieldcat[]
it_sort = it_alv_sortinfo[]
i_default = 'X'
i_save = 'A'
it_events = it_alv_events[]
TABLES
t_outtab = ft_alv_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.
FORM set_pf_status USING ft_extab TYPE slis_t_extab. "subroutine must have this signature
SET PF-STATUS 'ALV_STATUS'. "here you set your status
ENDFORM.
Regards
Marcin -
Reg: ALV Field catalog refresh
Hello All,
Initially I have to display an ALV grid. Upon a buttons click(User Command) , an additional col should be displayed for which the field catalog of the ALV needs to be changed. Iam using FM ''REUSE_ALV_GRID_DISPLAY'.My question is , how cld v refresh filedcatalog ? To refresh the grid data , we use selfield-refresh = 'X'. Is there any thing some thing like that to refresh fieldcat or v have to build the fieldcat again?
I have pasted part of code below:
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = 'TRIGS_IGT_WRKLIST'
CHANGING
ct_fieldcat = c_tab_fieldcat_main.
LOOP AT c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>.
IF <l_wa_fieldcat_main>-fieldname = 'BUSTRANSCAT_TEXT' OR
<l_wa_fieldcat_main>-fieldname = 'VALUATION_AREA' OR
<l_wa_fieldcat_main>-fieldname = 'VALUATION_CLASS' OR
<l_wa_fieldcat_main>-fieldname = 'COMPANY_CODE' OR
<l_wa_fieldcat_main>-fieldname = 'PRODUCT_TYPE' OR
<l_wa_fieldcat_main>-fieldname = 'SECURITY_ACCOUNT' OR
<l_wa_fieldcat_main>-fieldname = 'SECURITY_ID' OR
<l_wa_fieldcat_main>-fieldname = 'IGT_STATUS_TEXT' OR
<l_wa_fieldcat_main>-fieldname = 'POSDATE' OR
<l_wa_fieldcat_main>-fieldname = 'TRLDATE' OR
<l_wa_fieldcat_main>-fieldname = 'COMPANY_ID' OR
<l_wa_fieldcat_main>-fieldname = 'COUNTERPARTY' OR
<l_wa_fieldcat_main>-fieldname = 'UNITS' OR
<l_wa_fieldcat_main>-fieldname = 'POSITION_CURR' OR
<l_wa_fieldcat_main>-fieldname = 'DEAL_NUMBER' OR
<l_wa_fieldcat_main>-fieldname = 'POSITION_AMT' .
ELSE.
<l_wa_fieldcat_main>-no_out = 'X'.
ENDIF.
Assign postion
IF <l_wa_fieldcat_main>-fieldname = 'BUSTRANSCAT_TEXT'.
<l_wa_fieldcat_main>-col_pos = 2.
<l_wa_fieldcat_main>-ddictxt = 'M'.
<l_wa_fieldcat_main>-outputlen = '5'.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'COMPANY_CODE'.
<l_wa_fieldcat_main>-col_pos = 3.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'VALUATION_AREA'.
<l_wa_fieldcat_main>-col_pos = 4.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'PRODUCT_TYPE'.
<l_wa_fieldcat_main>-col_pos = 5.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'SECURITY_ID'.
<l_wa_fieldcat_main>-col_pos = 6.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'SECURITY_ACCOUNT'.
<l_wa_fieldcat_main>-col_pos = 7.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'DEAL_NUMBER'.
<l_wa_fieldcat_main>-col_pos = 8.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'IGT_STATUS_TEXT'.
<l_wa_fieldcat_main>-col_pos = 9.
<l_wa_fieldcat_main>-ddictxt = 'M'.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'POSDATE'.
<l_wa_fieldcat_main>-col_pos = 10.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'TRLDATE'.
<l_wa_fieldcat_main>-col_pos = 11.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'COMPANY_ID'.
<l_wa_fieldcat_main>-col_pos = 12.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'UNITS'.
<l_wa_fieldcat_main>-col_pos = 13.
ENDIF.
IF <l_wa_fieldcat_main>-fieldname = 'POSITION_AMT'.
<l_wa_fieldcat_main>-col_pos = 14.
ENDIF.
ENDLOOP.
CASE sy-ucomm.
WHEN 'MATCH'.
READ TABLE c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>
WITH KEY fieldname = 'MATCHED'.
CHECK sy-subrc EQ 0.
<l_wa_fieldcat_main>-col_pos = 1.
<l_wa_fieldcat_main>-seltext_s = 'Matched Pairs'.
<l_wa_fieldcat_main>-seltext_m = 'Matched Pairs'.
<l_wa_fieldcat_main>-seltext_l = 'Matched Pairs'.
<l_wa_fieldcat_main>-no_out = ' '.
WHEN 'REVERSAL'.
READ TABLE c_tab_fieldcat_main ASSIGNING <l_wa_fieldcat_main>
WITH KEY fieldname = 'ICON_REVERSAL'.
CHECK sy-subrc EQ 0.
<l_wa_fieldcat_main>-col_pos = 1.
<l_wa_fieldcat_main>-icon = 'X'.
<l_wa_fieldcat_main>-outputlen = 3.
<l_wa_fieldcat_main>-no_out = ' '.
ENDCASE.
Thanks,
SriHi
U need to use the fm REUSE_ALV_GRID_LAYOUT_INFO_SET, here you can change the catalog table.
Max -
how can u maintain top-of -page end-of -page ,at-line selection,at user command all in one alv report program?
hi,
try like this
TYPE-POOLS : slis.
TABLES : mara,
makt,
marc.
DATA : BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
werks LIKE marc-werks,
END OF itab.
DATA : t_fcat TYPE slis_t_fieldcat_alv,
t_eve TYPE slis_t_event,
st_line TYPE slis_listheader,
t_list_top_page TYPE slis_t_listheader,
t_list_end_page TYPE slis_t_listheader.
DATA : t_mat LIKE mara-matnr.
SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : mat FOR mara-matnr.
SELECTION-SCREEN : END OF BLOCK blk1.
INITIALIZATION.
PERFORM build_cat USING t_fcat.
PERFORM build_eve.
START-OF-SELECTION.
PERFORM get_data.
PERFORM build_header USING t_list_top_page[].
PERFORM build_footer USING t_list_end_page[].
PERFORM dis_data.
*& Form buils_cat
text
-->TEMP_FCAT text
FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
DATA : wa_fcat TYPE slis_fieldcat_alv.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-seltext_m = 'Material'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MAKTX'.
wa_fcat-seltext_m = 'Material Description'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'WERKS'.
wa_fcat-seltext_m = 'Plant'.
wa_fcat-row_pos = 2.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
ENDFORM. "build_cat
*& Form build_eve
text
FORM build_eve.
DATA : wa_eve TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = t_eve
EXCEPTIONS
LIST_TYPE_WRONG = 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.
READ TABLE t_eve INTO wa_eve WITH KEY name = 'END_OF_LIST'.
IF sy-subrc = 0.
wa_eve-form = 'END_OF_PAGE'.
MODIFY t_eve FROM wa_eve INDEX sy-tabix.
ENDIF.
ENDFORM. "build_eve
*& Form get_data
text
FORM get_data.
SELECT maramatnr maktmaktx marc~werks INTO CORRESPONDING FIELDS OF TABLE itab
FROM mara INNER JOIN makt ON
maramatnr = maktmatnr
INNER JOIN marc ON
maramatnr = marcmatnr
WHERE mara~matnr IN mat.
ENDFORM. "get_data
*& Form dis_data
text
FORM dis_data.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZALV_PRDS'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = t_fcat
i_save = 'A'
it_events = t_eve
TABLES
t_outtab = itab
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. "dis_data
*& Form build_header
text
-->TEMP_LIST text
-->TTYPE text
-->SLIS_T_LISTHEADER text
FORM build_header USING temp_list TYPE slis_t_listheader.
CLEAR st_line.
st_line-typ = 'H'.
st_line-info = 'Material Info'.
APPEND st_line TO temp_list.
CLEAR st_line.
st_line-typ = 'H'.
st_line-info = '----
APPEND st_line TO temp_list.
CLEAR st_line.
st_line-typ = 'H'.
st_line-info = 'Material Info1'.
APPEND st_line TO temp_list.
ENDFORM. "build_header
*& Form build_footer
text
-->TEMP_LIST text
FORM build_footer USING temp_list TYPE slis_t_listheader.
CLEAR st_line.
st_line-typ = 'H'.
st_line-info = 'Dhwani Shah'.
APPEND st_line TO temp_list.
ENDFORM. "build_header
*& Form top_Of_page
text
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_list_top_page.
ENDFORM. "top_Of_page
*& Form end_of_page
text
FORM end_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_list_end_page.
ENDFORM. "end_of_page
*& Form user_command
text
FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
CASE u_com.
WHEN '&IC1'.
IF sel_field-fieldname = 'MATNR'.
READ TABLE itab INDEX sel_field-tabindex.
IF sy-subrc = 0.
t_mat = itab-matnr.
SET PARAMETER ID 'MAT' FIELD t_mat.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "user_command
In this
END-OF-page, top-of-page, user_commamnd (&IC1 for double click like line selection) used
reward if usefull. -
Hi,
I am displaying 14 fields as output using ALV grid display. Now the new request is that when you click on the PO number field it has to go the ME23N for the PO.
Could you plz give tell me how to proceed in detail.
Thanks
ReddyHi,
Thanks for assisting, But still i am not able to resolve. I have made the changes as suggested. and i have doubt how system will recognise the subroutine. No where we are using perform. Please suggest necessary changes to resolve this.. THis is very urgent.
Syntax error: Statement is not accessible.
data : w_callback_subroutine TYPE slis_formname.
w_callback_subroutine = 'USER_COMMAND'.
w_program = sy-repid.
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE P_UCOMM.
WHEN '&IC1'.
SET PARAMETER ID 'BES' FIELD p_selfield-value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
CLEAR: P_UCOMM.
ENDCASE.
ENDFORM.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_PROGRAM
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = w_callback_subroutine I_GRID_TITLE = GV_GRID_TITLE
IS_LAYOUT = LAYOUT
IT_FIELDCAT = GT_FIELDCAT
IT_EVENT_EXIT =
TABLES
T_OUTTAB = GT_OUT
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. -
Hi Guru's,
A Very Good Morning,
I am doing ALV interactive reports . In that i want to show the details in column wise like ,if i click it in any column like 1,2,3,.........it will display that particular column only. can any body could give the logic of this issue.
Please put lights on this issue.
Thanks & regards,
kalyan.Kalyan,
This is the right report for your requirement.
An Interactive ALV Report
*& Report ZZ_22038_22098_002 *
*& This is an Interactive ALV report, where on line slection we can see
*& the secondry list
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
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_alv_report
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 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. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Interactive with calling transaction code.
report zrich_0001.
Global ALV Data Declarations
type-pools: slis.
Internal Tables
data: begin of itab occurs 0,
matnr type mara-matnr,
maktx type makt-maktx,
end of itab.
start-of-selection.
perform get_data.
perform call_alv.
Form GET_DATA
form get_data.
select maramatnr maktmaktx
into corresponding fields of table itab
from mara
inner join makt
on maramatnr = maktmatnr
up to 20 rows.
endform.
CALL_ALV
form call_alv.
data: ifc type slis_t_fieldcat_alv.
data: xfc type slis_fieldcat_alv.
data: repid type sy-repid.
repid = sy-repid.
clear xfc. refresh ifc.
clear xfc.
xfc-reptext_ddic = 'Material Number'.
xfc-fieldname = 'MATNR'.
xfc-tabname = 'ITAB'.
xfc-outputlen = '18'.
append xfc to ifc.
clear xfc.
xfc-reptext_ddic = 'Material Description'.
xfc-fieldname = 'MAKTX'.
xfc-tabname = 'ITAB'.
xfc-outputlen = '40'.
append xfc to ifc.
Call ABAP List Viewer (ALV)
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = repid
i_callback_user_command = 'HANDLE_USER_COMMAND'
it_fieldcat = ifc
tables
t_outtab = itab.
endform.
FORM handle_User_Command *
form handle_user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when '&IC1'.
case rs_selfield-FIELDNAME.
when 'MATNR'.
set parameter id 'MAT' field rs_selfield-value.
call transaction 'MD04' and skip first screen.
endcase.
endcase.
endform.
Don't forget to reward if useful.... -
Hai,
I am working on alvs i want to display top-of page heading but its not displaying the heading i am sending my code just go through that
*& Report ZPROG1
REPORT zprog1.
TABLES:kna1,vbak.
TYPE-POOLS: slis.
*parameters:cust like kna1-kunnr.
DATA:BEGIN OF it_kna1 ,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
ort01 LIKE kna1-ort01,
END OF it_kna1.
DATA:BEGIN OF it_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
netwr LIKE vbak-netwr,
kunnr LIKE vbak-kunnr,
END OF it_vbak.
DATA:i_kna1 LIKE TABLE OF it_kna1 WITH HEADER LINE.
DATA:i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
i_fieldcat1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
it_event TYPE slis_t_event WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:cust FOR kna1-kunnr.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
SELECT kunnr land1 name1 ort01 FROM kna1 INTO CORRESPONDING FIELDS OF
TABLE i_kna1 WHERE kunnr IN cust.
i_fieldcat-fieldname = 'KUNNR'.
i_fieldcat-col_pos = 1.
i_fieldcat-seltext_l = 'Customer NO'.
APPEND i_fieldcat.
*CLEAR i_fieldcat.
i_fieldcat-fieldname = 'LAND1'.
i_fieldcat-col_pos = 2.
i_fieldcat-seltext_l = 'Country'.
APPEND i_fieldcat.
*CLEAR i_fieldcat.
i_fieldcat-fieldname = 'NAME1'.
i_fieldcat-col_pos = 3.
i_fieldcat-seltext_l = 'Customer Name'.
APPEND i_fieldcat.
*CLEAR i_fieldcat.
i_fieldcat-fieldname = 'ORT01'.
i_fieldcat-col_pos = 4.
i_fieldcat-seltext_l = 'City'.
APPEND i_fieldcat.
IT_EVENT-form = 'interractive'.
IT_EVENT-name = 'USER_COMMAND'.
append it_event.
PERFORM TOP-OF-PAGE.
PERFORM eventcall.
PERFORM populate_event.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
i_callback_pf_status_set = 'STATUS'
i_callback_user_command = 'PROCESS_USER_COMMANDS'
i_callback_top_of_page = 'TOP-OF-PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
i_grid_title = 'CUSTOMER GRID DISPLAY'
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = l_layout
it_fieldcat = i_fieldcat[]
IT_EXCLUDING = l_exculd
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
i_default = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = i_graphic
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = i_kna1
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.
*perform top_of_page.
FORM TOP-OF-PAGE.
DATA: t_header type slis_t_listheader,
wa_header TYPE slis_listheader.
Title
wa_header-typ = 'A'.
wa_header-info = ' KNA1 Table Report '.
APPEND wa_header TO t_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
i_logo = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = I_END_OF_LIST_GRID
I_ALV_FORM = I_ALV_FORM
ENDFORM. "top-of-page
*FORM PROCESS_USER_COMMANDS USING syst_ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
case syst-ucomm.
*DATA:repid LIKE sy-repid.
*data:&IC1 like sy-ucomm.
*data:field like selfield-fieldname.
*data:i_index like selfield-tabindex.
repid = sy-repid.
*data:ls_kna1 like i_kna1.
*data:field1 like selfield-fieldname.
*i_index = selfield-tabindex.
*read table i_kna1 index i_index into ls_kna1.
*field = ls_kna1-kunnr.
if field = ls_kna1-kunnr.
*field1 = field.
SELECT * FROM vbak INTO CORRESPONDING FIELDS OF table it_vbak WHERE
*kunnr = field1.
i_fieldcat1-fieldname = 'VBELN'.
i_fieldcat1-col_pos = 1.
i_fieldcat1-seltext_l = 'BILLING DO'.
APPEND i_fieldcat1.
i_fieldcat1-fieldname = 'ERDAT'.
i_fieldcat1-col_pos = 2.
i_fieldcat1-seltext_l = 'CREATED ON'.
APPEND i_fieldcat1.
i_fieldcat1-fieldname = 'NETWR'.
i_fieldcat1-col_pos = 3.
i_fieldcat1-seltext_l = 'AMOUNT'.
APPEND i_fieldcat1.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
i_callback_program = repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = IS_LAYOUT
it_fieldcat = i_fieldcat1[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_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.
perform display2.
endif.
**endloop.
*endform.
**& Form eventcall
text
**FORM eventcall.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
et_events = it_event[]
EXCEPTIONS
LIST_TYPE_WRONG = 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. "eventcall
**& Form populate_event
text
**FORM populate_event.
it_event-form = 'interractive'.
it_event-name = 'USER_COMMAND'.
APPEND it_event.
**ENDFORM. "populate_event
**FORM STATUS USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTATUS' EXCLUDING p_extab.
*ENDFORM. "status
could any body suggest me.
thanks in advance.
regards,
ChaitanyaHI,
use yout top of page like this.
FORM TOP-OF-PAGE.
DATA: t_header type slis_t_listheader,
wa_header TYPE slis_listheader.
Title
wa_header-typ = 'H'.
wa_header-info = ' KNA1 Table Report '.
APPEND wa_header TO t_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header
i_logo = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = space.
I_ALV_FORM = I_ALV_FORM
ENDFORM. "top-of-page
Thanks,
Chandra.
****Please reward if helpful.
Maybe you are looking for
-
How to suppress duplicate records in rtf templates
Hi All, I am facing issue with payment reason comments in check template. we are displaying payment reason comments. Now the issue is while making batch payment we are getting multiple payment reason comments from multiple invoices with the same name
-
OLT 12.2.0.1 & ADF 11g R2 (11.1.2.3)
Hi, I am evaluating the OLT ADF Module for testing applications developed with JDeveloper/ADF 11g R2. Unfortunately, the latest version of JDeveloper/ADF 11.1.2.3(PS3) looks like not compatible with OLT release 12.2.0.1 (Openscript 12.2.0.1 Build 238
-
<i>Locking duplicate thread.<br>Please continue here: [[/questions/1056930]]</i> Dear reader, Since a week my firefox experiences strange image loading behavior. The problem is seen on various pages, in particular when there are more images/pictures
-
Adcfgclone.pl dbTier is not prompting for ORACLE_HOME variable
hi, adcfgclone.pl is not prompting for ORACLE_HOME variable. and erroring out with Checking the port pool 12 done: Port Pool 12 is free Report file located at /appsutil/out/portpool.lst RC-00203: Unable to create/write to file /appsutil/out/portpool.
-
Hello every one... from where to start abap.
dear all i come to know that there is a minisap by which we can know about... from where i can get this free download how to instal mnisap & work as beginner in abap.... pls do reply me soon i am eagerly waithin for u r suggestion