Print headings using RSBTCHH0 on ALV grids
Most reports I have developed use the list processing event top-of-page to print headings for the report listing by calling standard SAP subroutine BATCH-HEADING in program RSBTCHH0 when structure BHDGD has been populated. Field BHDGD-LINES contains the line size used for printing the report headings. When we use ABAP objects to print data in the ALV grid we can add the same processing to print page headings to event PRINT_TOP_OF_PAGE. It appears as if the heading data is printed until the position of last column of the grid before the text is wrapped, creating a new line. Is there anyway of controlling the default line-size when doing grid printing.
Thanks in advance
Colin
Hi,
Refer to this document for all your ALV queries:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an easy reference for alv grid control.pdf
regards
Aveek
Similar Messages
-
Maximum number of character we can print in a column uing ALV grid display
Hi frnds,
My requirment is to print 500 charcter data in a column using ALV grid display.
Could any body tell me is it possible and the maximum character it can i print in a column using ALV grid dispaly.
Regards,
SandipanHi Sandipan,
refer notes 857823, 910300 and 959775. All these say there is a limitation of 128 characters.
857823 - ALV grid: Strings with a maximum of 128 characters
Symptom
Entries in cells of the type CHAR or string are truncated after 128
characters in the SAP GUI.
also refer,
ALV Grid Control (cl_gui_alv_grid), function module (Full-screen) Grid
(Reuse_alv_grid_display, SAPLSLVC_FULLSCREEN), SAPGUI, back end, front end
Cause and Prerequisites
The data table that is sent to the front end only allows character values
with the length 128.
Solution
This is the standard system behavior and cannot be changed. -
How to print top of page while displaying data in ALV Grid ........as i m passing subroutine for top of page' in parameter i_callback_html_top_of_page
i_callback_html_top_of_page is different than i_callback_top_of_page...
if you want to use callback_html you will need to define a form routine something like this:
form html_top_of_page using r_top type ref to cl_dd_document.
data: text type sdydo_text_element.
* data: s_table type ref to cl_dd_table_element.
* data: col_key type ref to cl_dd_area.
* data: col_info type ref to cl_dd_area.
data: a_logo type ref to cl_dd_area.
data:
l_string_with_html type string, "WA Html String Handling
l_text_wa(20) type c. "WA String Handling
call method r_top->initialize_document.
** Set Background Color on TOP-document = small white square works well
* this should be a graphic stored in BDS
call method r_top->set_document_background
exporting picture_id = 'SmWhiteSquare'.
** split TOP-Document to make space for the logo on the right
call method r_top->vertical_split
exporting split_area = r_top
split_width = '70%'
importing right_area = a_logo.
** and add a Company logo - stored in BDS as above
call method a_logo->add_picture
exporting picture_id = 'YourLogoHere'.
** fill TOP-Document space on the left with data
* first the title
text = sy-repid. " 'Var with My report name'.
call method r_top->add_text exporting text = text
sap_style = 'HEADING'.
call method r_top->new_line.
* your code here (may list report selections params or whatever)...
endform. -
Printing a Report from a ALV Grid
We just did a kenrel upgrade from 6.20 to 6.40
Now, when we go to run a report using an ALV grid it will not print the subtotals. I can see the information fine on the screen but will only print lines with no data!
Any help will be great! thanks...
-DJHi,
Try with this FM
REUSE_ALV_GRID_DISPLAY_LVC" not "REUSE_ALV_GRID_DISPLAY".
Thanks,
Neelima. -
Printing a Table Control AND ALV grid from same report
Hello,
I am trying to figure out how to print the output of my report, which consist of a table control and a OO-driven ALV grid under it. i tried several possibilities but I only get the ALV in my spool....?
Answers will be rewarded !Keep a break point in that method. Press print in the ALV, check it stops in the break point. If yes then you can use write statement, the values what ever u r writing it come in the print-out. If the control doesn't stop in the break point then there is some problem in the method declartion.
Check my code - I written every thing in the global declaration.
ALV Class Definition
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_top_of_list
FOR EVENT print_top_of_list OF cl_gui_alv_grid,
handle_end_of_list
FOR EVENT print_end_of_list OF cl_gui_alv_grid.
ENDCLASS. "lcl_event_receiver DEFINITION
DATA: o_event_receiver TYPE REF TO lcl_event_receiver.
ALV Class Implementation
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_top_of_list.
DATA: lws_top1(20) TYPE c,
lws_top2(150) TYPE c,
lws_top3(150) TYPE c,
lws_len_file TYPE i,
lws_file(80) TYPE c,
lws_file1(100) TYPE c,
lws_file2(100) TYPE c,
lws_file3(100) TYPE c.
WRITE: / text-001.
*Date
CONCATENATE text-008 ws_date INTO lws_top1 SEPARATED BY space.
WRITE : /1 lws_top1.
Source File Name
WRITE: / text-009.
lws_len_file = STRLEN( p_upload ).
IF lws_len_file < 80.
MOVE p_upload TO lws_top2.
WRITE : /1 lws_top2.
ELSE.
MOVE p_upload TO lws_file.
MOVE p_upload+80(48) TO lws_file1.
DO.
IF lws_file+79(1) EQ '\'.
EXIT.
ELSE.
CONCATENATE lws_file+79(1) lws_file2 INTO lws_file2.
SHIFT lws_file RIGHT.
ENDIF.
ENDDO.
IF lws_file2 IS INITIAL.
MOVE lws_file TO lws_top2.
WRITE : /1 lws_top2.
WRITE : /1 lws_file1.
ELSE.
CONDENSE lws_file.
MOVE lws_file TO lws_top2.
WRITE : /1 lws_top2.
CONCATENATE lws_file2 lws_file1 INTO lws_file3.
WRITE : /1 lws_file3.
ENDIF.
ENDIF.
ENDMETHOD. "handle_top_of_list
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
Regards,
Prakash. -
Hi,
I have a singleton node setup and I wish for that subnode to be the data in an ALV grid. When I try to do this, I get an error saying that node does not exist.
When I bind the same data to a regular table control, it works fine.
Am I doing something wrong in the setup, or does this work in later enhancements of WD4A?
Thanks,
JoshHi,
As per my understanding your query, There are 2nodes one is parent and other is child node.
And you want to achieve showing both the parent and child node data in ALV.
Then you can use the ALV hierarchy tree to show both of them.
Please elaborate your requirement.
Regards,
Lekha. -
How to use IT_special_groups in ALV Grid ?
Hi Abapers,
Am new to ALv's
am passing almost all parameters to ALV_GRID FM..!
i dont no how to use of options Groups , Filters and I_sel_hide .
event i find an Demo example related to Groups ..
but while displaying the out put i didnt find any Changes ?
could any one give an Example with using GROUPS , Filters and SEL_INFO ?
Pls help me out to resolve this problem ..!
Thanks & Regrds
RajeshkHi,
you can group your ALV columns into various groups using field SP_GROUP in field catalog. You assign name to these groups in the table IT_SPECIAL_GROUPS. User can restrict column selection to one of these groups (using name from the table) on the current layout window. More info can be found in [SAP documentation|http://help.sap.com/saphelp_nw04/helpdata/en/a2/64f7a2ee4f11d2b484006094192fe3/frameset.htm]
Probably as you know you can filter selected records in ALV (icon with funnel). You can use table IT_FILTER to set up this filter.
I am not sure about I_SEL_HIDE but as far as I remember ALV can display selection criteria from report which call ALV FM. So I assume that you can use this table to control displaying of them.
BTW there is a really nice [reference for ALV|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907?overridelayout=true].
Cheers -
How to find the check box selected while using Class in ALV grid display
hi,
I am displaying the ALV report using Class
For Example: CALL METHOD MYGRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'ACC1'
IS_VARIANT = GS_VARIANT
I_SAVE = 'A' "XSAVE
IS_LAYOUT = LOUT
CHANGING IT_FIELDCATALOG = IT_FIELD
IT_OUTTAB = ACC_NO[].
In output i am getting 10 customer with check box, how do i find that customer number is selected.HI,
Once user selects a check box, he would CLICK on a button ( say PROCESS )inorder to do the processing for the selected records. So in the PAI, under the EVENT ( OK CODE ) of the Button ( say PROCESS ), write the following code.
CALL METHOD MYGRID->check_changed_data.
Now,
Loop at acc_no where check = `X`.
Do the processing.
endloop.
Best regards,
Prashant -
How can we use the saved alv grid layout in a report?
I have a requirement where I go to se16n transaction and select a few fields of a table and extract the data of the table. Again I re-arrange the columns in the report and save it as a variant along with this new layout. Now how to call this variant in a report wherein I want only the re arranged positions of the column(fields) of the field catalog? Is there any function module available?
hi,
you can have selection screen field : "parameters : p_disvar like disvariant-variant." and at event selection scree you can call the below function and select the variant create for the report.
"at selection-screen on value-request for p_disvar.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = g_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
i_save = g_variant_save
importing
e_exit = h_exit
es_variant = gx_variant
exceptions
not_found = 1
program_error = 2
others = 3.
if sy-subrc is initial and h_exit is initial.
g_variant-variant = gx_variant-variant.
p_disvar = gx_variant-variant.
else.
message id sy-msgid type 'S'
number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
Atul -
Printing Selection-Screen while printing ALV Grid output display
Hi,
I have a requirement wherein I want to print the Selection Screen also while printing the output in simple ALV grid Display.
Currently when I print the ALV output report, only the header and the Body of the ALV is getting printed. But the requirement is that I also want to print Selection screen along with this.
If anyone has faced a similar situation, plz let me know what needs to be done in order to print the selection screen also while printing the ALV report output.
Rgds,
NitinHi,
You can use given function module to print your
selection screen
RS_REFRESH_FROM_SELECTOPTIONS
>This will get Current contents of selection screen
RS_LIST_SELECTION_TABLE
>This will Generates list according to values in selection table(RSPARAMS)
Sample
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = p_repid
TABLES
selection_table = it_int_tab
EXCEPTIONS
not_found = 1
no_report = 2
OTHERS = 3.
IF sy-subrc EQ 0.
WRITE:1 'Selection Criteria'(i19),
/1 sy-uline(18),
/1 'Variant Name'(i21),
23 sy-slset.
*-- This function module lists the Selection Screen contents
CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
EXPORTING
report = p_repid
seltext = 'X'
newpage = space
TABLES
sel_tab = it_int_tab
EXCEPTIONS
sel_tab_empty = 1
OTHERS = 2.
Mark all helpful answers -
Error in field catalog in ALV grid display using classes at do_sum = "X'.
Hi,
I'm using classes in ALV Grid display.
the code for the field catalog is going to dump because of the statement in the field catalog for field 'netwr',do_sum = 'X'.
that do_sum = 'X' is not working and going to dump when executed.with out that do_sum it is working fine. the error in dump analysys is showing sap standard incude LSLVCF01.
assign component
<ls_fieldcat>-fieldname of structure rt_data to <g_field>.
if sy-subrc ne 0.
message x000(0k).
endif.
sy-subrc is 4 when the program is being executed.
CODE:
FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat.
DATA ls_fcat TYPE lvc_s_fcat.
ls_fcat-fieldname = 'VBELN1'.
ls_fcat-ref_field = 'VBELN'.
ls_fcat-ref_table = 'VBRK'.
ls_fcat-coltext = 'Invoice No'.
ls_fcat-seltext = 'Invoice No'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'BUDAT'.
ls_fcat-ref_table = 'BKPF'.
ls_fcat-coltext = 'Invoice Date'.
ls_fcat-seltext = 'Invoice Date'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'NETWR'.
ls_fcat-ref_field = 'NETWR'.
ls_fcat-ref_table = 'VBRK'.
ls_fcat-coltext = 'Value of Invoice'.
ls_fcat-seltext = 'Value of Invoice'.
ls_fcat-datatype = 'CURR'.
ls_fcat-do_sum = 'X'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ENDFORM.
can u please look in the code and rectify the error,
would appeciate ur response.
regards,
veera.Hi,
try this..
ls_fcat-fieldname = 'NETWR'.
ls_fcat-ref_field = 'NETWR'.
ls_fcat-ref_table = 'VBRK'.
ls_fcat-coltext = 'Value of Invoice'.
ls_fcat-seltext = 'Value of Invoice'.
ls_fcat-datatype = 'CURR'.
ls_fcat-do_sum = 'X'.
<b>ls_fcat-cfieldname = 'WAERS'.</b>
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
Regards
vijay -
Downloading ALV Grid (using objects) output to Excel
Hi all,
I'm using objects for ALV Grid. I have few other fields (few are above and few are below the custom control) on screen other than custom control. I want to download the entire screen to excel (including other fields). But using Export option I'm able to download only ALV Grid. I did tried with Excel in place option which is not pulling data from ALV Grid control.
Please suggest me the solution.
Regards
Jaker.hi
use this code in ALV format
TABLES USR03.
DATA: BEGIN OF ISAPDAT OCCURS 0,
BNAME LIKE USR03-BNAME,
NAME1 LIKE USR03-NAME1,
NAME2 LIKE USR03-NAME2,
END OF ISAPDAT.
PARAMETERS P_FNAME LIKE RLGRAP-FILENAME
DEFAULT 'd:\sapdata.xls' OBLIGATORY.
SELECT * FROM USR03 INTO CORRESPONDING FIELDS OF TABLE ISAPDAT.
SORT ISAPDAT.
CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'
EXPORTING
I_FILENAME = P_FNAME
TABLES
I_TAB_SAP_DATA = ISAPDAT
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2.
IF SY-SUBRC EQ 0.
WRITE:/ 'Download to Excel complete'.
ELSE.
WRITE:/ 'Error with download'.
ENDIF.
Code Formatted by: Alvaro Tejada Galindo on Jan 8, 2009 2:34 PM -
Reg alv grid using module pool programming
Dear Friends,
I have a situation where i am using alv grid in module programming where in when i click the total button in the tool bar for any numeric column, the screen goes for a run time error.
I have giving all conditions such as made the column in the field structure of lvc_field_catalog as do_sum = 'X',
still goes for a dump...can anyone throw some hints to do more or the reason behind this and also have not excluded the function code for this total pushbutton while passing to the method set_table_for_first_display
thanks...hi,
check this up
internal tables
DATA: i_tab TYPE TABLE OF zchangereq,
w_tab TYPE zchangereq.
display field details
DATA: w_field_cat_wa TYPE lvc_s_fcat. " Field Catalog work area
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-020.
PARAMETERS: p_outs RADIOBUTTON GROUP g1,
p_comp RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.
*MACROS
DEFINE add_field.
&1 = FIELDNAME &2 = HEADING &3 = Key field flag
clear w_field_cat_wa.
w_field_cat_wa-fieldname = &1.
lw_field_cat_wa-ref_table = p_ref_table.
lw_field_cat_wa-inttype = p_inttype.
lw_field_cat_wa-decimals = p_decimals.
lw_field_cat_wa-coltext = p_coltext.
lw_field_cat_wa-seltext = p_seltext.
lw_field_cat_wa-do_sum = p_do_sum.
lw_field_cat_wa-no_out = p_no_out.
lw_field_cat_wa-col_pos = p_col_pos.
lw_field_cat_wa-reptext = p_coltext.
lw_field_cat_wa-colddictxt = p_colddictxt.
w_field_cat_wa-scrtext_m = &2.
w_field_cat_wa-key = &3.
append w_field_cat_wa to i_field_cat.
END-OF-DEFINITION.
ALV specific Declarations...........................................
ALV specific Internal table declarations.............................
DATA: i_field_cat TYPE lvc_t_fcat, " Field catalogue
i_alv_sort TYPE lvc_t_sort. " Sort table
ALV variables........................................................
DATA: w_alv_layout TYPE lvc_s_layo, " ALV Layout
w_alv_save TYPE c, " ALV save
w_alv_variant TYPE disvariant. " ALV Variant
ALV Class definitions................................................
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS: handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
METHODS: handle_hotspot
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id.
ENDCLASS. " CLASS LCL_EVENT_HANDLER DEF..
ALV Class implementation............................................
In the Event of a Double Click drill down to the corresponding CHANGE REQUEST
CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_double_click.
DATA: l_tab LIKE LINE OF i_tab.
CHECK e_row-rowtype(1) EQ space.
READ TABLE i_tab INDEX e_row-index INTO l_tab.
SET PARAMETER ID 'ZTY' FIELD l_tab-ztype.
SET PARAMETER ID 'ZCR' FIELD l_tab-zcref.
CALL TRANSACTION 'ZCRT' AND SKIP FIRST SCREEN.
ENDMETHOD. " HANDLE_DOUBLE_CLICK
not working yet - hotspot seems to stay in the gui!!
METHOD handle_hotspot.
DATA: l_tab LIKE LINE OF i_tab.
CHECK e_row_id-rowtype(1) EQ space.
READ TABLE i_tab INDEX e_row_id-index INTO l_tab.
SET PARAMETER ID 'ZTY' FIELD l_tab-ztype.
SET PARAMETER ID 'ZCR' FIELD l_tab-zcref.
CALL TRANSACTION 'ZCRT' AND SKIP FIRST SCREEN.
ENDMETHOD. " HANDLE_DOUBLE_CLICK
ENDCLASS. " CLASS LCL_EVENT_HANDLER IMPL...
ALV Grid Control definitions........................................
DATA:
ALV Grid Control itself
o_grid TYPE REF TO cl_gui_alv_grid,
Container to hold the ALV Grid Control
o_custom_container TYPE REF TO cl_gui_custom_container,
Event handler (defined in the class above)
o_event_handler TYPE REF TO lcl_event_handler.
INITIALIZATION.
PERFORM create_field_catalogue. " Create ALV Field Catalog
START-OF-SELECTION.
Outstanding requests
IF p_outs = 'X'.
SELECT * FROM zchangereq
INTO TABLE i_tab
WHERE zstatus < 99.
ELSE.
completed requests
SELECT * FROM zchangereq
INTO TABLE i_tab
WHERE zstatus = 99.
ENDIF.
END-OF-SELECTION.
PERFORM list_output_to_alv. " Perform ALV Output operations
FORM LIST_OUTPUT_TO_ALV *
This subroutine is used to call the screen for ALV Output. *
There are no interface parameters to be passed to this subroutine. *
FORM list_output_to_alv.
CALL SCREEN 100.
ENDFORM. " LIST_OUTPUT_TO_ALV
Module STATUS_0100 OUTPUT *
This is the PBO module which will be processed befor displaying the *
ALV Output. *
MODULE status_0100 OUTPUT.
SET PF-STATUS '0100'. " PF Status for ALV Output Screen
IF p_outs = 'X'.
SET TITLEBAR 'STD'.
ELSE.
completed requests
SET TITLEBAR 'COMP'.
ENDIF.
CREATE OBJECT: o_custom_container
EXPORTING container_name = 'SC_GRID',
o_grid
EXPORTING i_parent = o_custom_container.
PERFORM define_alv_layout. " ALV Layout options definitions
PERFORM save_alv_layout_options. " save ALV layout options
PERFORM call_alv_grid. " Call ALV Grid Control
ENDMODULE. " STATUS_0100 OUTPUT
Module USER_COMMAND_0100 INPUT *
This is the PAI module which will be processed when the user performs*
any operation from the ALV output. *
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
may need to do this so display is refreshed if other report selected
CALL METHOD o_custom_container->free.
SET SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
FORM DEFINE_ALV_LAYOUT *
This subroutine is used to Define the ALV layout. *
FORM define_alv_layout .
w_alv_layout-numc_total = 'X'. " Numc total line
w_alv_layout-cwidth_opt = 'X'. " Optimal column width
w_alv_layout-detailinit = 'X'. " Show values that are initial in
" detail list.
w_alv_layout-sel_mode = 'A'. " Column selection mode
w_alv_layout-no_merging = 'X'. " No merging while sorting columns
w_alv_layout-keyhot = 'X'.
ENDFORM. " DEFINE_ALV_LAYOUT
FORM SAVE_ALV_LAYOUT_OPTIONS *
This subroutine is used to Save the ALV layout options. *
FORM save_alv_layout_options.
See the ALV grid control documentation for full list of options
w_alv_save = 'A'.
w_alv_variant-report = sy-repid.
ENDFORM. " SAVE_ALV_LAYOUT_OPTIONS
FORM CALL_ALV_GRID *
This subroutine is used to call ALV Grid control for processing. *
FORM call_alv_grid.
CALL METHOD o_grid->set_table_for_first_display
EXPORTING
is_layout = w_alv_layout
i_save = w_alv_save
is_variant = w_alv_variant
CHANGING
it_outtab = i_tab[]
it_sort = i_alv_sort
it_fieldcatalog = i_field_cat.
Link used Events and Event Handler Methods
CREATE OBJECT o_event_handler.
Set handler o_event_handler->handle_top_of_page for o_grid.
SET HANDLER o_event_handler->handle_double_click FOR o_grid.
ENDFORM. " CALL_ALV_GRID
*& Form create_field_catalogue
set up field catalogue
FORM create_field_catalogue .
Fieldname Heading Key?
*eg add_field 'ZTYPE' 'Type' 'X'.
ENDFORM. " create_field_catalogue -
HI all,
Is it necessary to use container for ALV grid using classes.If not then please help me with a sample code.REPORT z_alv_using_oops_conepts MESSAGE-ID z_OOPS.
TABLES: ekko, ekpo.
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: ok_code TYPE sy-ucomm,
gx_fcat1 TYPE lvc_s_fcat,
gt_fcat1 TYPE STANDARD TABLE OF lvc_s_fcat,
gx_fcat2 TYPE lvc_s_fcat,
gt_fcat2 TYPE STANDARD TABLE OF lvc_s_fcat,
gx_layout1 TYPE lvc_s_layo,
gx_layout2 TYPE lvc_s_layo,
gx_variant TYPE disvariant,
g_custom_container1 TYPE REF TO cl_gui_custom_container,
g_custom_container2 TYPE REF TO cl_gui_custom_container,
grid1 TYPE REF TO cl_gui_alv_grid,
grid2 TYPE REF TO cl_gui_alv_grid,
g_container1 TYPE scrfname VALUE 'MAIN_REPORT_LIST',
g_container2 TYPE scrfname VALUE 'SECOND_REPORT_LIST',
gv_event_rec1 TYPE REF TO lcl_event_receiver,
gv_event_rec2 TYPE REF TO lcl_event_receiver,
gv_repid TYPE sy-repid,
gt_final1 TYPE STANDARD TABLE OF ekko,
gt_final2 TYPE STANDARD TABLE OF ekpo,
gt_final3 TYPE STANDARD TABLE OF ekpo,
gx_final TYPE ekko,
gx_final1 TYPE ekpo.
INITIALIZATION.
SELECTION-SCREEN *
SELECTION-SCREEN BEGIN OF BLOCK blk3 WITH FRAME .
SELECT-OPTIONS:
s_ebeln FOR ekko-ebeln obligatory,
s_ebelp FOR ekpo-ebelp,
s_bukrs FOR ekko-bukrs,
s_bsart FOR ekko-bsart.
SELECTION-SCREEN END OF BLOCK blk3.
LOCAL CLASSES: Definition
*===============================================================
class lcl_event_receiver: local class to
define and handle own functions.
Definition:
~~~~~~~~~~~
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
hotspot_click1
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id
e_column_id,
hotspot_click2
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id
e_column_id.
PRIVATE SECTION.
ENDCLASS. "lcl_event_receiver DEFINITION
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD hotspot_click1.
DATA: lv_tabix TYPE sy-tabix,
lx_final TYPE ekko.
READ TABLE gt_final1 INTO gx_final INDEX e_row_id.
IF sy-subrc = 0.
gt_final3 = gt_final2.
DELETE gt_final3 WHERE ebeln NE gx_final-ebeln.
IF NOT g_custom_container2 IS INITIAL.
CALL METHOD grid2->refresh_table_display.
CALL METHOD grid1->refresh_table_display.
ENDIF.
ELSE.
MESSAGE s000 WITH text-003.
LEAVE LIST-PROCESSING.
ENDIF.
ENDMETHOD. "hotspot_click1
METHOD hotspot_click2.
READ TABLE gt_final3 INTO gx_final1 INDEX e_row_id.
IF sy-subrc = 0.
SET PARAMETER ID 'BES' FIELD gx_final-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDMETHOD. "button_click1
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
START-OF-SELECTION *
START-OF-SELECTION.
SELECT * FROM ekko INTO TABLE gt_final1 WHERE ebeln IN s_ebeln
AND bukrs IN s_bukrs
AND bsart IN s_bsart.
IF sy-subrc = 0.
SELECT * FROM ekpo INTO TABLE gt_final2 FOR ALL ENTRIES IN gt_final1
WHERE ebeln = gt_final1-ebeln
AND ebelp IN s_ebelp.
IF sy-subrc = 0.
gt_final3 = gt_final2.
ENDIF.
ENDIF.
PERFORM sub_get_fieldcat CHANGING gt_fcat1.
PERFORM sub_get_fieldcat CHANGING gt_fcat2.
END-OF-SELECTION *
END-OF-SELECTION.
PERFORM display_process.
CALL SCREEN 9000.
MODULE pbo OUTPUT
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
gx_layout1-grid_title = 'Purchase Order Header'.
gx_layout1-zebra = 'X'.
gx_layout1-info_fname = 'COLOR_LINE'.
gx_layout1-sel_mode = 'X'.
gx_layout2-grid_title = 'Purchase Order Items'.
gx_layout2-zebra = 'X'.
gx_layout1-stylefname = 'CB'.
gs_layout1-excp_led = gc_check.
gs_layout1-excp_group = gc_check.
gv_repid = sy-repid.
gx_variant-report = gv_repid.
READ TABLE gt_final1 INTO gx_final INDEX 1.
IF sy-subrc = 0.
DELETE gt_final3 WHERE ebeln NE gx_final-ebeln.
ENDIF.
IF g_custom_container1 IS INITIAL.
CREATE OBJECT g_custom_container1
EXPORTING
container_name = g_container1.
CREATE OBJECT grid1
EXPORTING
i_parent = g_custom_container1.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_layout = gx_layout1
is_variant = gx_variant
i_save = 'U'
i_default = 'X'
i_structure_name = 'EKKO'
CHANGING
it_outtab = gt_final1
it_fieldcatalog = gt_fcat1.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid1.
ENDIF.
IF g_custom_container2 IS INITIAL.
CREATE OBJECT g_custom_container2
EXPORTING
container_name = g_container2.
CREATE OBJECT grid2
EXPORTING
i_parent = g_custom_container2.
CALL METHOD grid2->set_table_for_first_display
EXPORTING
is_layout = gx_layout2
is_variant = gx_variant
i_save = 'U'
i_default = 'X'
i_structure_name = 'EKPO'
CHANGING
it_outtab = gt_final3
it_fieldcatalog = gt_fcat2.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid2.
ENDIF.
CREATE OBJECT gv_event_rec1.
SET HANDLER gv_event_rec1->hotspot_click1 FOR grid1.
CREATE OBJECT gv_event_rec2.
SET HANDLER gv_event_rec1->hotspot_click2 FOR grid2.
IF gt_final2 IS INITIAL.
MESSAGE i000 WITH 'No Items exist for the Purchase Order'.
ENDIF.
ENDMODULE. "PBO OUTPUT
MODULE PAI INPUT *
MODULE pai INPUT.
To react on oi_custom_events:
CALL METHOD cl_gui_cfw=>dispatch.
CASE ok_code.
WHEN 'EXIT'.
PERFORM exit_program.
LEAVE PROGRAM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
CLEAR ok_code.
ENDMODULE. "PAI INPUT
FORM EXIT_PROGRAM *
FORM exit_program.
CALL METHOD grid1->free.
CALL METHOD grid2->free.
CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = gv_repid
txt2 = sy-subrc
txt1 = 'Error in Flush'(009).
ENDIF.
ENDFORM. "EXIT_PROGRAM
*& Form display_process
text
--> p1 text
<-- p2 text
FORM display_process .
DATA: a LIKE sy-ucomm.
DO 100 TIMES.
DO 300 TIMES.
GET TIME.
ENDDO.
a(3) = sy-index.a+3 = '%'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = sy-index
text = a.
ENDDO.
ENDFORM. " display_process
*& Form sub_get_fieldcat
text
<--P_GT_FCAT1 text
FORM sub_get_fieldcat CHANGING lt_fcat TYPE lvc_t_fcat.
gx_fcat1-fieldname = 'EBELN'.
gx_fcat1-tabname = 'gt_final1'.
gx_fcat1-hotspot = 'X'.
APPEND gx_fcat1 TO lt_fcat.
ENDFORM. " sub_get_fieldcat -
ALV Grid - Printnig field names.
Hi Gurus,
I have a requirement for a report which has the format for display as shown below.
Sr. No | Mat No. | Material grp | some material types | COLUMN HEADINGS
|*********|*************** | 10g | 20g | 30g | 40g | COLUMN HEADINGS
000001 |xyz*****|ABCDEFGHIJ | 005 | 0004| 002 | 003 | From this data start
As u can see, there is two level fields description printing... We can do it in List,
I want to know whether we can achieve it using ALV.
As shown above, field column "some material types" having sub types as 10g, 20g, 30g and 40g. So I want one column to be split into four or five columns.
*Points will be granted.
Regards,
Shailesh.Hi Shailesh,
The short answer is no, you cannot.
It would not make sense to do such a thing, anyway. After all, "some material types" is there as a heading for a group of four columns, but using the usual ALV-grid functionality, the user would be able, for instance, to move the 30g column to the left of the Mat No column, say.
The requirement may make sense in an ABAP list, where the columns are fixed, but not in an ALV, where the columns can be moved.
They will have to change the requirement!
John
Maybe you are looking for
-
[solved]black screen with xorg 1.6 after resume (intel)
after upgrading to xorg-server 1.6 no matter if i use s2ram or s2disk, first resume works fine, the second suspend and resume results in a black screen without any chance to swich to any tty. i have read about bug like this which was resolved with us
-
Unable to change members of AD security groups who have access to shared mailboxes
I have an exchange 2013 running for over a year now and never had any problems with it. Until recently. A request came in to make a new shared mailbox. So I did just that and gave rights to a security (not mail enabled) AD group. Just like I Always d
-
Error while integrating BEx Query with Cognos
Hi all, we have made 999 rows and 150 columns.. but we r unable to integrate it with cognos if we remove free characteristics.... and it thows me the following error 1.BAP-ERR-0002 a BAPI error has occured in the function module RFC_READ_TABLE. NOT_
-
Just upgraded to ML Why doesn't yahoo video work
If yahoo video doesn't work, how do I go back to older version
-
Stabilization performed but not recognized due to system crash
I was in the middle of analyzing all of my iMovie '09 video for stabilization when my computer crashed. At the time it said I had about 270 hours left to go (sheesh!). When I rebooted after the crash I could tell that about half of my video had been