Colwidth_optimize not working for alv grid report
Hi friends,
I have developed an ALV grid report using 'REUSE_ALV_GRID_DISPLAY'. The field catalog field columns are having the heading size more than 30 characters. So, to optimize the size of the headings, I am using SLIS_LAYOUT_ALV and passing the value 'X' to colwidth_optimize.
but still the column heading is not getting fully display. Rather it is display first 20 characters only.
For your reference please find the code snippet
*bold* **************** declarations ************************ *bold*
DATA : fieldcat TYPE slis_fieldcat_alv,
t_fieldcat TYPE slis_t_fieldcat_alv,
ws_layout TYPE slis_layout_alv.
*bold* **************** field catalogue ********************** *bold*
CLEAR fieldcat.
fieldcat-fieldname = 'RFWRT_PD_MTRL'.
fieldcat-seltext_m = 'Pending Quotation Spares Value'. {quote} this heading not getting fully displayed {quote}
fieldcat-tabname = 'IT_FNL'.
*** FIELDCAT-REF_TABNAME = 'VBFA'.
fieldcat-col_pos = col_pos.
APPEND fieldcat TO t_fieldcat.
ADD 1 TO col_pos.
CLEAR fieldcat.
fieldcat-fieldname = 'RFWRT_PD_SERV'.
fieldcat-seltext_m = 'Pend Quot-JobWorkVal'.
fieldcat-tabname = 'IT_FNL'.
fieldcat-col_pos = col_pos.
APPEND fieldcat TO t_fieldcat.
ADD 1 TO col_pos.
ws_layout-colwidth_optimize = 'X'.
*bold* ****************************** alv grid function call ******************** *bold*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_buffer_active = space
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
*** i_callback_pf_status_set = 'PF_STATUS'
* I_STRUCTURE_NAME =
it_fieldcat = t_fieldcat[]
is_layout = ws_layout
TABLES
t_outtab = it_fnl
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.
CLEAR wa_fnl.
Please look into it.
Searched the forum for the similar issue. but didnt got any solution.
Thanks and regards,
Murali Krishna
Hi DaveL,
Thanks alot for your help. My problem solved.
Can you please suggest me how we can optimize the column based on the total amount which is summed up (fieldcat-do_sum)
Regards,
Murali.
Similar Messages
-
Sub:Filtering is not working in ALV Grid
Hi All,
I developed a new ALV report,where in the out put i can set filtering for other columns(ex:Date,Number),but i can'nt able to set Filtering for one of the column which is CHAR type.
But when we went to table for this field filtering is working,but not in the ALV Grid of our report.
Regards,
Seshadri Ghi,
1) for filtering, we create an internak table of type <b>LVC_T_FILT</b>,
U can assign fields to the above created internal as per u requirements.
2) passing the above internal table to CHANGING parameter of method SET_TABLE FORFIRST_DISPLAY in ALV GRID.
<b>IT_FILTER = < internal table TYPE LVC_T_FLIT>.</b>
<u><b>OR call this method for setting filter criteria as per u r requirement.</b></u>
Set current filter settings. A row of the table describes the selection conditions for column entries that are not to be displayed.
You should never manually set up the internal table with the filter settings. Use this method only to set filter criteria that you got using get_filter_criteria or a layout.
Features
CALL METHOD <ref. var. to CL_GUI_ALV_GRID > ->set_filter_criteria
EXPORTING
IT_FILTER = <internal table of type LVC_T_FILT > .
Parameter
Meaning
IT_FILTER
Table with filter settings
regards,
AshokReddy.
Message was edited by:
Ashok Reddy
Message was edited by:
Ashok Reddy -
Time out error in production server for alv grid report
hi. i have developed alv grid report using nested select statments. when i testing in development server it is giving the output but in production server if i give 4 months then it is showing time out error.please help me out..its urgent.
Thanks in advance.Hi Manu,
Don't use Nested selected statements.
Use the Following Performance Tuning Options that i have given below so that your problem can be solved.
1) Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
2) Avoid for all entries in JOINS
3) Try to avoid joins and use FOR ALL ENTRIES.
4) Try to restrict the joins to 1 level only ie only for tables
5) Avoid using Select *.
6) Avoid having multiple Selects from the same table in the same object.
7) Try to minimize the number of variables to save memory.
8) The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
9) Avoid creation of index as far as possible
10) Avoid operators like <>, > , < & like % in where clause conditions
11) Avoid select/select single statements in loops.
12) Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
13) Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
14) Avoid using ORDER BY in selects
15) Avoid Nested Selects
16) Avoid Nested Loops of Internal Tables
17) Try to use FIELD SYMBOLS.
18) Try to avoid into Corresponding Fields of
19) Avoid using Select Distinct, Use DELETE ADJACENT
<b>
Reward Points for sure if you find it useful. </b>
Regards
Babu -
Filter Not working in ALV grid
Hi All,
The filter button in ALV Grid is not working for some fields. if the filter button is selected for a particular field in the ALV grid then no entries are getting displayed in the ALV. For few fields it is working. for few fields is it not displaying any entries after selecting filter.
Please let me know what may be the possible causes for this issue.
Thanks in Advance!
Thanks & Regards,
Preethi GHi,
Ex: your output is something like this
A B C
1 2 3
4 2 5
5 3 6
When you filter B for value 2, then internally it creates one more internal table like this
A B C
1 002 3
4 002 5
5 003 6
it tries to matches value 2 to 002 and it fails to retrive the record.
The solution is try to do the conversion exit on the column/field you are trying to filter it. It will work.
Regards,
Ramesh. -
Page Format for landscape/legal paper for ALV Grid report
Hi!
I have a request to set up a particular ALV Grid report as a background job with the report output printing on legal-size paper with landscape orientation. We currently don't have any reports set up to print on legal size paper. What do I need to do to set this up? We currently use X_58_170 or X_65_255 which print on letter-size paper. I cannot seem to find a page format for landscape legal other than LEGAL which seems to be available only for SAPscript or Smart Forms. Any help will be greatly appreciated.
Best Regards,
Nik von Ruden
Edited by: Nik Von Ruden on Oct 8, 2010 1:11 AMHi,
Thanks for you reply.
I cannot control left and right margin in PDF. Also, it is a PDF file so eventhough somehow you are able to change left and right margin, the content does not adjust itself to fit the legal page (as it does in word or excel).
Let me know if there is any other option.
Thanks,
RS -
Why this code is not working for alv
Dear
Regards,
i have implemented the same program for ALV which i have used earlier in the reports. but now it is showing no output:
*& Report ZTCT1_ALV2 *
REPORT ztct1_alv2 .
CLASS lcl_event_receiver DEFINITION DEFERRED.
* INCLUDING TABLES.
TABLES: vbrk,
vbrp,
kna1,
t001w,
makt.
* DECLARATION OF INTERNAL TABLES.
DATA: BEGIN OF itab OCCURS 0, "Including the fields of VBRK and VBRP
kunag LIKE vbrk-kunag, "Customer Code
name1 LIKE kna1-name1, "Customer Name
vbeln LIKE vbrk-vbeln, "Invoice #
fkdat LIKE vbrk-fkdat, "Invoice Date
werks LIKE vbrp-werks, "Plant
name2 LIKE t001w-name1,"Plant Description
matnr LIKE vbrp-matnr, "Material #
maktx LIKE makt-maktx, "Material Description
meins LIKE vbrp-meins, "Unit of Measure
fklmg LIKE vbrp-fklmg, "Quantity
netwr LIKE vbrp-netwr, "Amount
END OF itab,
BEGIN OF itnm OCCURS 0, "Including the fields of VBRK and KNA1
kunag LIKE vbrk-kunag, "Customer Code
name1 LIKE kna1-name1, "Customer Name
END OF itnm,
BEGIN OF itpt OCCURS 0, "Including the fields of VBRP and T001W
werks LIKE vbrp-werks, "Plant
name1 LIKE t001w-name1,"Plant Description
END OF itpt,
BEGIN OF itmt OCCURS 0, "Including the fields of VBRP and MAKT
matnr LIKE vbrp-matnr, "Material #
maktx LIKE makt-maktx, "Material description
END OF itmt,
BEGIN OF itsm OCCURS 0,
kunag LIKE kna1-kunnr,
name1 LIKE kna1-name1,
fklmg LIKE vbrp-fklmg,
netwr LIKE vbrp-netwr,
END OF itsm,
ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm,
g_max TYPE i VALUE 100,
g_repid LIKE sy-repid,
gs_layout TYPE lvc_s_layo,
g_container TYPE scrfname VALUE 'CUST_CONT',
grid1 TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
grid2 TYPE REF TO cl_gui_alv_grid,
gt_sort TYPE lvc_t_sort,
gt_fieldcatalog TYPE lvc_t_fcat,
w_tot_qty LIKE vbrp-fklmg,
w_tot_amt LIKE vbrp-netwr,
* Reference to Dialogbox Container.
dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
* Reference to local class that handles events of GRID1 and
* DIALOGBOX_CONTAINER
event_receiver TYPE REF TO lcl_event_receiver.
* SELECT-OPTIONS
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
s_kunag FOR vbrk-kunag, "Customer
s_matnr FOR vbrp-matnr, "Material Number
s_fkdat FOR vbrk-fkdat. "Invoice Date
SELECTION-SCREEN END OF BLOCK input .
SELECTION-SCREEN SKIP 1.
* START-OF-SELECTION
START-OF-SELECTION.
SET SCREEN 100.
* CLEARING INTERNAL TABLES.
CLEAR: itab,
itnm,
itmt,
itpt.
* QUERY FOR JOINING TABLES VBRK AND VBRP
SELECT vbrk~kunag
vbrk~vbeln
vbrk~fkdat
vbrp~werks
vbrp~matnr
vbrp~meins
vbrp~fklmg
vbrp~netwr
INTO CORRESPONDING FIELDS OF TABLE itab
FROM vbrk
INNER JOIN vbrp
ON vbrk~vbeln = vbrp~vbeln
WHERE vbrk~kunag IN s_kunag
AND vbrk~fkdat IN s_fkdat
AND vbrp~matnr IN s_matnr
AND vbrp~werks IN s_werks.
* QUERY FOR JOINING TABLES VBRK AND KNA1
SELECT kna1~kunnr AS kunag
kna1~name1
INTO TABLE itnm
FROM kna1
WHERE kna1~kunnr IN s_kunag.
* QUERY FOR JOINING TABLES VBRP AND T001W
SELECT t001w~werks
t001w~name1
INTO TABLE itpt
FROM t001w
WHERE t001w~werks IN s_werks.
* QUERY FOR JOINING TABLES VBRP AND MAKT
SELECT makt~matnr
makt~maktx
INTO TABLE itmt
FROM makt
WHERE makt~matnr IN s_matnr.
* SORTING INTERNAL TABLES.
SORT itab BY kunag.
* LOOP AT itab.
* CLEAR: itmt, itnm, itpt.
* READ TABLE itnm WITH KEY kunag = itab-kunag.
* READ TABLE itmt WITH KEY matnr = itab-matnr.
* READ TABLE itpt WITH KEY werks = itab-werks.
* itab-name1 = itnm-name1.
* itab-maktx = itmt-maktx.
* itab-name2 = itpt-name1.
* MODIFY itab.
* ENDLOOP.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'VBELN' 'C' 'Invoice #'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKDAT' 'DATS' 'Invoice Date'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'WERKS' 'C' 'Plant'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME2' 'C' 'Plant Description'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MATNR' 'C' 'Material #'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MAKTX' 'C' 'Material Description'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MEINS' 'C' 'UoM'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
* PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
LOOP AT itab.
CLEAR itsm.
READ TABLE itnm WITH KEY kunag = itab-kunag.
itsm-kunag = itab-kunag.
itsm-name1 = itnm-name1.
itsm-fklmg = itab-fklmg.
itsm-netwr = itab-netwr.
COLLECT itsm.
ENDLOOP.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
PERFORM sort_build USING gt_sort[].
PERFORM layout_init USING gs_layout.
* LOCAL CLASSES: Definition
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
handle_close
FOR EVENT close OF cl_gui_dialogbox_container
IMPORTING sender.
PRIVATE SECTION.
DATA: dialogbox_status TYPE c. "'X': does exist, SPACE: does not ex.
ENDCLASS. "lcl_event_receiver DEFINITION
* LOCAL CLASSES: Implementation
CLASS lcl_event_receiver IMPLEMENTATION.
* §3.At doubleclick(1): The event DOUBLE_CLICK provides
* parameters of the clicked row and column.
* Use row parameter to select a line of the
* corresponding internal table.
METHOD handle_double_click.
DATA: ls_sm LIKE LINE OF itsm,
wa_itab LIKE ITAB.
* read selected row from internal table gt_sflight
READ TABLE itsm INDEX e_row-index INTO ls_sm.
* §4.At Doubleclick(2): Select booking data
* READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG. .
READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.
* §5.At doubleclick(3): Create dialogbox to show detail list
* (if not already existent)
IF dialogbox_status IS INITIAL.
dialogbox_status = 'X'.
PERFORM create_detail_list.
ELSE.
CALL METHOD dialogbox_container->set_visible
EXPORTING
visible = 'X'.
CALL METHOD grid2->refresh_table_display.
ENDIF.
ENDMETHOD. "handle_double_click
METHOD handle_close.
* §6.Handle the CLOSE-button of the dialogbox
* set dialogbox invisible
* (the dialogbox is destroyed outomatically when the user
* switches to another dynpro).
CALL METHOD sender->set_visible
EXPORTING
visible = space.
* In this example closing the dialogbox leads
* to make it invisible. It is also conceivable to destroy it
* and recreate it if the user doubleclicks a line again.
* Displaying a great amount of data has a greater impact on performance.
ENDMETHOD. "handle_close
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
* lcl_event_receiver (Implementation)
*=====================================================================
* FORM EXIT_PROGRAM *
FORM exit_program.
CALL METHOD g_custom_container->free.
CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc NE 0.
* add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in FLush'(500).
ENDIF.
LEAVE TO SCREEN 0.
ENDFORM. "exit_program
* MODULE PBO_ALV OUTPUT
MODULE pbo_alv OUTPUT.
SET PF-STATUS 'MAIN'.
SET TITLEBAR 'MAIN100'.
g_repid = sy-repid.
IF g_custom_container IS INITIAL.
READ TABLE itsm.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
IF sy-subrc NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'The control could not be created'(510).
ENDIF.
CREATE OBJECT grid1
EXPORTING
i_parent = g_custom_container.
gs_layout-grid_title = 'Invoice Summary'.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = itsm[]
it_fieldcatalog = gt_fieldcatalog
it_sort = gt_sort.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_double_click FOR grid1.
ENDIF.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid1.
ENDMODULE. "PBO_ALV OUTPUT
* MODULE PAI_ALV INPUT
MODULE pai_alv INPUT.
CALL METHOD cl_gui_cfw=>dispatch.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. "PAI_ALV INPUT
*& Form fieldcatalog_init
* text
* -->LT_FIELDCATtext
* -->VALUE(FIELDtextE)
* -->VALUE(FIELDtextE)
* -->VALUE(FIELDtextT)
FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
value(field_name) value(field_type) value(field_text).
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = field_name.
ls_fieldcatalog-datatype = field_type.
ls_fieldcatalog-reptext = field_text.
ls_fieldcatalog-coltext = field_text.
ls_fieldcatalog-seltext = field_text.
ls_fieldcatalog-tooltip = field_text.
APPEND ls_fieldcatalog TO lt_fieldcatalog.
ENDFORM. "fieldcatalog_init
*& Form sort_build
* text
* -->LT_SORT text
FORM sort_build USING lt_sort TYPE lvc_t_sort.
DATA: ls_sort TYPE lvc_s_sort.
ls_sort-fieldname = 'KUNAG'. "Fieldname on which to sort
ls_sort-up = 'X'. "Sort Ascending
APPEND ls_sort TO lt_sort.
ls_sort-fieldname = 'NAME1'. "Fieldname on which to sort
ls_sort-up = 'X'. "Sort Ascending
APPEND ls_sort TO lt_sort.
ENDFORM. "sort_build
*& Form layout_init
* text
* -->LS_LAYOUT text
FORM layout_init USING ls_layout TYPE lvc_s_layo.
ls_layout-zebra = 'X'.
ls_layout-grid_title = 'Customer Details'.
ls_layout-sel_mode = 'A'.
ls_layout-cwidth_opt = 'X'.
ENDFORM. "layout_init
*& Form create_detail_list
* text
* --> p1 text
* <-- p2 text
FORM create_detail_list.
* create dialogbox container as dynpro-instance
* When the user switches to another screen, it is
* destroyed by lifetime mangagement of CFW
CREATE OBJECT dialogbox_container
EXPORTING
top = 150
left = 150
lifetime = cntl_lifetime_dynpro
caption = 'INVOICE DETAILS'(200)
width = 800
height = 200.
CREATE OBJECT grid2
EXPORTING i_parent = dialogbox_container.
* Register ABAP OO event 'CLOSE'. It is not necessary to register this
* event at the frontend (this is done during creation).
SET HANDLER event_receiver->handle_close FOR dialogbox_container.
* display data
gs_layout-grid_title = 'Invoice Details'(100).
CALL METHOD grid2->set_table_for_first_display
EXPORTING
i_structure_name = 'itab'
is_layout = gs_layout
CHANGING
it_outtab = itab[]
it_fieldcatalog = gt_fieldcatalog
it_sort = gt_sort.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid2.
ENDFORM. " create_detail_list[code][/
code]Hi,
I also copied and pasted the same code check once again by copying this code and create screens by double clicking on 100.
CLASS lcl_event_receiver DEFINITION DEFERRED.
* INCLUDING TABLES.
TABLES: vbrk,
vbrp,
kna1,
t001w,
makt.
* DECLARATION OF INTERNAL TABLES.
DATA: BEGIN OF itab OCCURS 0, "Including the fields of VBRK and VBRP
kunag LIKE vbrk-kunag, "Customer Code
name1 LIKE kna1-name1, "Customer Name
vbeln LIKE vbrk-vbeln, "Invoice #
fkdat LIKE vbrk-fkdat, "Invoice Date
werks LIKE vbrp-werks, "Plant
name2 LIKE t001w-name1,"Plant Description
matnr LIKE vbrp-matnr, "Material #
maktx LIKE makt-maktx, "Material Description
meins LIKE vbrp-meins, "Unit of Measure
fklmg LIKE vbrp-fklmg, "Quantity
netwr LIKE vbrp-netwr, "Amount
END OF itab,
BEGIN OF itnm OCCURS 0, "Including the fields of VBRK and KNA1
kunag LIKE vbrk-kunag, "Customer Code
name1 LIKE kna1-name1, "Customer Name
END OF itnm,
BEGIN OF itpt OCCURS 0, "Including the fields of VBRP and T001W
werks LIKE vbrp-werks, "Plant
name1 LIKE t001w-name1,"Plant Description
END OF itpt,
BEGIN OF itmt OCCURS 0, "Including the fields of VBRP and MAKT
matnr LIKE vbrp-matnr, "Material #
maktx LIKE makt-maktx, "Material description
END OF itmt,
BEGIN OF itsm OCCURS 0,
kunag LIKE kna1-kunnr,
name1 LIKE kna1-name1,
fklmg LIKE vbrp-fklmg,
netwr LIKE vbrp-netwr,
END OF itsm,
ok_code LIKE sy-ucomm,
save_ok LIKE sy-ucomm,
g_max TYPE i VALUE 100,
g_repid LIKE sy-repid,
gs_layout TYPE lvc_s_layo,
g_container TYPE scrfname VALUE 'CUST_CONT',
grid1 TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
grid2 TYPE REF TO cl_gui_alv_grid,
gt_sort TYPE lvc_t_sort,
gt_fieldcatalog TYPE lvc_t_fcat,
w_tot_qty LIKE vbrp-fklmg,
w_tot_amt LIKE vbrp-netwr,
* Reference to Dialogbox Container.
dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
* Reference to local class that handles events of GRID1 and
* DIALOGBOX_CONTAINER
event_receiver TYPE REF TO lcl_event_receiver.
* SELECT-OPTIONS
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
s_kunag FOR vbrk-kunag, "Customer
s_matnr FOR vbrp-matnr, "Material Number
s_fkdat FOR vbrk-fkdat. "Invoice Date
SELECTION-SCREEN END OF BLOCK input .
SELECTION-SCREEN SKIP 1.
* START-OF-SELECTION
START-OF-SELECTION.
SET SCREEN 100.
* CLEARING INTERNAL TABLES.
CLEAR: itab,
itnm,
itmt,
itpt.
* QUERY FOR JOINING TABLES VBRK AND VBRP
SELECT vbrk~kunag
vbrk~vbeln
vbrk~fkdat
vbrp~werks
vbrp~matnr
vbrp~meins
vbrp~fklmg
vbrp~netwr
INTO CORRESPONDING FIELDS OF TABLE itab
FROM vbrk
INNER JOIN vbrp
ON vbrk~vbeln = vbrp~vbeln
WHERE vbrk~kunag IN s_kunag
AND vbrk~fkdat IN s_fkdat
AND vbrp~matnr IN s_matnr
AND vbrp~werks IN s_werks.
* QUERY FOR JOINING TABLES VBRK AND KNA1
SELECT kna1~kunnr AS kunag
kna1~name1
INTO TABLE itnm
FROM kna1
WHERE kna1~kunnr IN s_kunag.
* QUERY FOR JOINING TABLES VBRP AND T001W
SELECT t001w~werks
t001w~name1
INTO TABLE itpt
FROM t001w
WHERE t001w~werks IN s_werks.
* QUERY FOR JOINING TABLES VBRP AND MAKT
SELECT makt~matnr
makt~maktx
INTO TABLE itmt
FROM makt
WHERE makt~matnr IN s_matnr.
* SORTING INTERNAL TABLES.
SORT itab BY kunag.
LOOP AT itab.
CLEAR itsm.
READ TABLE itnm WITH KEY kunag = itab-kunag.
itsm-kunag = itab-kunag.
itsm-name1 = itnm-name1.
itsm-fklmg = itab-fklmg.
itsm-netwr = itab-netwr.
COLLECT itsm.
ENDLOOP.
* END-OF-SELECTION.
* If not itsm[] is initial.
* CALL SCREEN 100.
* endif.
* LOCAL CLASSES: Definition
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column,
handle_close
FOR EVENT close OF cl_gui_dialogbox_container
IMPORTING sender.
PRIVATE SECTION.
DATA: dialogbox_status TYPE c. "'X': does exist, SPACE: does not ex
ENDCLASS. "lcl_event_receiver DEFINITION
* LOCAL CLASSES: Implementation
CLASS lcl_event_receiver IMPLEMENTATION.
* §3.At doubleclick(1): The event DOUBLE_CLICK provides
* parameters of the clicked row and column.
* Use row parameter to select a line of the
* corresponding internal table.
METHOD handle_double_click.
DATA: ls_sm LIKE LINE OF itsm,
wa_itab LIKE ITAB.
* read selected row from internal table gt_sflight
READ TABLE itsm INDEX e_row-index INTO ls_sm.
* §4.At Doubleclick(2): Select booking data
* READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG. .
READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.
* §5.At doubleclick(3): Create dialogbox to show detail list
* (if not already existent)
IF dialogbox_status IS INITIAL.
dialogbox_status = 'X'.
PERFORM create_detail_list.
ELSE.
CALL METHOD dialogbox_container->set_visible
EXPORTING
visible = 'X'.
CALL METHOD grid2->refresh_table_display.
ENDIF.
ENDMETHOD. "handle_double_click
METHOD handle_close.
* §6.Handle the CLOSE-button of the dialogbox
* set dialogbox invisible
* (the dialogbox is destroyed outomatically when the user
* switches to another dynpro).
CALL METHOD sender->set_visible
EXPORTING
visible = space.
* In this example closing the dialogbox leads
* to make it invisible. It is also conceivable to destroy it
* and recreate it if the user doubleclicks a line again.
* Displaying a great amount of data has a greater impact on
*performance.
ENDMETHOD. "handle_close
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
* lcl_event_receiver (Implementation)
*=====================================================================
* FORM EXIT_PROGRAM *
FORM exit_program.
CALL METHOD g_custom_container->free.
CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc NE 0.
* add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in FLush'(500).
ENDIF.
LEAVE TO SCREEN 0.
ENDFORM. "exit_program
*& Module STATUS_0100 OUTPUT
* text
module STATUS_0100 output.
SET PF-STATUS 'MAIN'.
SET TITLEBAR 'MAIN100'.
g_repid = sy-repid.
IF g_custom_container IS INITIAL.
READ TABLE itsm.
CREATE OBJECT g_custom_container
EXPORTING
container_name = g_container
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
IF sy-subrc NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'The control could not be created'(510).
ENDIF.
CREATE OBJECT grid1
EXPORTING
i_parent = g_custom_container.
gs_layout-grid_title = 'Invoice Summary'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C'
'Customer Code'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C'
'Customer Name'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN'
'Quantity'.
PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR'
'Amount'.
PERFORM sort_build USING gt_sort[].
PERFORM layout_init USING gs_layout.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_layout = gs_layout
CHANGING
it_outtab = itsm[]
it_fieldcatalog = gt_fieldcatalog
it_sort = gt_sort.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_double_click FOR grid1.
ENDIF.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid1.
endmodule. " STATUS_0100 OUTPUT
* MODULE PAI_ALV INPUT
MODULE USER_COMMAND_0100.
CALL METHOD cl_gui_cfw=>dispatch.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. "PAI_ALV INPUT
*& Form fieldcatalog_init
* text
* -->LT_FIELDCATtext
* -->VALUE(FIELDtextE)
* -->VALUE(FIELDtextE)
* -->VALUE(FIELDtextT)
FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
value(field_name) value(field_type)
value(field_text).
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
CLEAR ls_fieldcatalog.
ls_fieldcatalog-fieldname = field_name.
ls_fieldcatalog-datatype = field_type.
ls_fieldcatalog-reptext = field_text.
ls_fieldcatalog-coltext = field_text.
ls_fieldcatalog-seltext = field_text.
ls_fieldcatalog-tooltip = field_text.
APPEND ls_fieldcatalog TO lt_fieldcatalog.
ENDFORM. "fieldcatalog_init
*& Form sort_build
* text
* -->LT_SORT text
FORM sort_build USING lt_sort TYPE lvc_t_sort.
DATA: ls_sort TYPE lvc_s_sort.
ls_sort-fieldname = 'KUNAG'. "Fieldname on which to sort
ls_sort-up = 'X'. "Sort Ascending
APPEND ls_sort TO lt_sort.
ls_sort-fieldname = 'NAME1'. "Fieldname on which to sort
ls_sort-up = 'X'. "Sort Ascending
APPEND ls_sort TO lt_sort.
ENDFORM. "sort_build
*& Form layout_init
* text
* -->LS_LAYOUT text
FORM layout_init USING ls_layout TYPE lvc_s_layo.
ls_layout-zebra = 'X'.
ls_layout-grid_title = 'Customer Details'.
ls_layout-sel_mode = 'A'.
ls_layout-cwidth_opt = 'X'.
ENDFORM. "layout_init
*& Form create_detail_list
* text
* --> p1 text
* <-- p2 text
FORM create_detail_list.
* create dialogbox container as dynpro-instance
* When the user switches to another screen, it is
* destroyed by lifetime mangagement of CFW
CREATE OBJECT dialogbox_container
EXPORTING
top = 150
left = 150
lifetime = cntl_lifetime_dynpro
caption = 'INVOICE DETAILS'(200)
width = 800
height = 200.
CREATE OBJECT grid2
EXPORTING i_parent = dialogbox_container.
* Register ABAP OO event 'CLOSE'. It is not necessary to register this
* event at the frontend (this is done during creation).
SET HANDLER event_receiver->handle_close FOR dialogbox_container.
* display data
gs_layout-grid_title = 'Invoice Details'(100).
CALL METHOD grid2->set_table_for_first_display
EXPORTING
i_structure_name = 'itab'
is_layout = gs_layout
CHANGING
it_outtab = itab[]
it_fieldcatalog = gt_fieldcatalog
it_sort = gt_sort.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid2.
ENDFORM. " create_detail_list
Nothing wrong in the code i am able to see the output with five records and the pop-up screen on double clicking a value.
Kindly close the thread or revert back -
Language Translation is not working for Pick slip Report (XML)
Hi All,
I have to translate the Oracle Pick slip report(XML) in other language. So I export and upload translation file for different language but still it is taking default english template. It should refer the translation file but it.s not working. Could you please suggest me if I am missing something?
Thnaks,
JoohiHi,
Looking for some help on this.
Thanks in advance!
Venkat -
Action for ENTER KEY is not working in alv grid output (Classical)
Hi Experts,
I have searched SDN around 8 hours and could not get any help on my below issue.
I am developing ALV report using function module (Classical ALV). ALV output has 4 input enable fields, if user enters data in any of those fields and clicks on enter button from key pad..the remaining fields needs to be filled automatically.
I am facing the issue with enter key, even if i press enter key in the output there is no action and hence no user command triggered. May be i am using wrong funcion code in wrong way.
Could any one tell me what function code can we assign for ENTER action in PF-STATUS?
Regards,
Murali MohanHi
Try this simple code, it works fine:
TYPE-POOLS: SLIS.
DATA: BEGIN OF ITAB1 OCCURS 0,
BUKRS LIKE T001-BUKRS,
BUTXT LIKE T001-BUTXT,
END OF ITAB1.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_REPID LIKE SY-REPID.
START-OF-SELECTION.
SELECT BUKRS BUTXT INTO TABLE ITAB1
FROM T001.
END-OF-SELECTION.
GT_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GT_REPID
I_INTERNAL_TABNAME = 'ITAB1'
I_INCLNAME = GT_REPID
CHANGING
CT_FIELDCAT = GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GT_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = GT_FIELDCAT
TABLES
T_OUTTAB = ITAB1.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'ENTER'. MESSAGE I208(00) WITH 'Pressed ENTER key'.
WHEN OTHERS.
ENDCASE.
ENDFORM. "USER_COMMAND
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'LIST_ALV' EXCLUDING RT_EXTAB.
ENDFORM. "SET_PF_STATUS
Max -
Filter not working for a Webi report
Hi There,
We have a BOBJ Webi report having variable selection screen when I run the report with default fiscal year Ex.2012 it's working fine. Then by click on refresh button and trying to change selection value to Ex. 2013 and I'm unable to see any values even though it has values for 2013.
When I click on the filter bar then the values are appearing. Could anyone please let me know what could be the reason for this issue and how can we avoid this.
We are in BOBJ 4.0 SP6.
Thank you,
Regards,
ShivaHi Jakub,
Thanks for the reply, Please find the screen shots below
1. Report initial screen running with the default prod year for 2012 and it's working.
2. Then I click on refresh and run for another prod year it's not displaying values even though it has values for that prod year.
3. When I click on filter bar then the values are appearing. Not sure why it's behaving like this?
Also note that there is no filter, under query filters. Please give me any idea about this issue.
Regards,
Shiva -
Filter is not working in ALV GRID output using FM 'REUSE_ALV_GRID_DISPLAY'
Hello Experts,
I have searched SCN before posting this thread.
In my report output (by using 'REUSE_ALV_GRID_DISPLAY'), i am trying to filter values which is of type CHAR.
Unable to filter by char30 field in the report output.
Tried to filter using the following steps:
Selected the column which i want to filter-> then selected filter symbol of ALV toolbar.
Selection screen appeared where select-option of that field displayed.
Selection screen only allows user to enter 1 character.
Even though the field contains 30 characters the filed in selection screen appeared with 1char length.
This is the same for all the fields in that ALV. Please suggest how can i change the field length to original field length.In field catalog pass:
wa_alv_fieldcat-outputlen = p_len
Set p_len as 30.
'FIELD' text-001 '01' 'X' '30' 'L' -
I need the grand total for particular coulumn for ALV grid report(OOPs).
Hello,
I have used the following code,
But i m not getting the grand total by default.No error but not getting the desired result.
Could you please help me in this regard.
FORM display_simple_alv.
DATA : lr_msg TYPE REF TO cx_salv_msg.
DATA : lv_header TYPE REF TO cl_salv_form_layout_grid,
lv_h_label TYPE REF TO cl_salv_form_label,
lv_h_flow TYPE REF TO cl_salv_form_layout_flow.
DATA: gr_sorts TYPE REF TO cl_salv_sorts.
DATA: gr_agg TYPE REF TO cl_salv_aggregations.
TRY .
cl_salv_table=>factory( IMPORTING r_salv_table = gr_salv_table
CHANGING t_table = gt_invdetails4 ).
CATCH cx_salv_msg INTO lr_msg.
ENDTRY .
Display Basic Toolbar
gr_functions = gr_salv_table->get_functions( ).
gr_functions->set_all( abap_true ).
TRY .
gr_columns = gr_salv_table->get_columns( ).
gr_columns->set_optimize( ).
CATCH cx_salv_not_found.
ENDTRY .
TRY .
gr_column ?= gr_columns->get_column( 'KUNNR' ).
gr_column->set_long_text( text-009 ).
gr_column->set_medium_text( text-009 ).
gr_column->set_short_text( text-009 ).
gr_column ?= gr_columns->get_column( 'NAME1' ).
gr_column->set_long_text( text-010 ).
gr_column->set_medium_text( text-010 ).
gr_column->set_short_text( text-011 ).
gr_column ?= gr_columns->get_column( 'AMOUNT' ).
gr_column->set_long_text( text-012 ).
gr_column->set_medium_text( text-012 ).
gr_column->set_short_text( text-012 ).
gr_column ?= gr_columns->get_column( 'TAX' ).
gr_column->set_long_text( text-013 ).
gr_column->set_medium_text( text-013 ).
gr_column->set_short_text( text-013 ).
gr_column ?= gr_columns->get_column( 'IVA' ).
gr_column->set_long_text( text-014 ).
gr_column->set_medium_text( text-014 ).
gr_column->set_short_text( text-015 ).
gr_column ?= gr_columns->get_column( 'TOTAL_AMOUNT' ).
gr_column->set_long_text( text-016 ).
gr_column->set_medium_text( text-016 ).
gr_column->set_short_text( text-017 ).
gr_column ?= gr_columns->get_column( 'CURRENCY' ).
gr_column->set_long_text( text-018 ).
gr_column->set_medium_text( text-018 ).
gr_column->set_short_text( text-018 ).
gr_column ?= gr_columns->get_column( 'ZINTERNAL_REFNO' ).
gr_column->set_long_text( text-019 ).
gr_column->set_medium_text( text-019 ).
gr_column->set_short_text( text-019 ).
gr_column ?= gr_columns->get_column( 'MATERIAL_AMOUNT' ).
gr_column->set_long_text( text-020 ).
gr_column->set_medium_text( text-020 ).
gr_column->set_short_text( text-021 ).
gr_column ?= gr_columns->get_column( 'LABOUR_VALUE' ).
gr_column->set_long_text( text-022 ).
gr_column->set_medium_text( text-022 ).
gr_column->set_short_text( text-023 ).
gr_column ?= gr_columns->get_column( 'FAILURE_COST' ).
gr_column->set_long_text( text-024 ).
gr_column->set_medium_text( text-024 ).
gr_column->set_short_text( text-021 ).
gr_sorts = gr_salv_table->get_sorts( ).
gr_sorts->add_sort( columnname = 'AMOUNT' subtotal = abap_true ). "for subtotal
gr_agg = gr_salv_table->get_aggregations( ).
gr_agg->add_aggregation( 'AMOUNT' ).
CATCH cx_salv_not_found cx_salv_data_error cx_salv_existing.
ENDTRY .
Set top of page
CREATE OBJECT lv_header.
lv_h_label = lv_header->create_label( row = 1 column = 1 ).
lv_h_label->set_text( text-001 ).
lv_h_label = lv_header->create_label( row = 1 column = 5 ).
lv_h_label->set_text( text-002 ).
lv_h_label = lv_header->create_label( row = 1 column = 14 ).
lv_h_label->set_text( text-003 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 04 ).
lv_h_flow->create_text( text = text-004 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 05 ).
lv_h_flow->create_text( text = text-005 ).
lv_h_flow = lv_header->create_flow( row = 3 column = 06 ).
lv_h_flow->create_text( text = name ).
set the top of list using the header for Online.
gr_salv_table->set_top_of_list( lv_header ).
ALV Display
gr_salv_table->display( ).
ENDFORM . " DISPLAY_SIMPLE_ALVHi Sridevi,
To get the grand total, you need to pass the SORT itab to the function module. You need to populate the internal table with the fields on which you want the total or subtotal. If you donu2019t pass this table, you wonu2019t get it.
For ex:
ls_sort_wa-spos = 1.
ls_sort_wa-fieldname = gs_plant-werks.
ls_sort_wa-up = 'X'.
ls_sort_wa-subtot = 'X'.
APPEND ls_sort_wa TO gt_sort.
So the above code, gives the sub total plant wise.
and if you want the sum(grand total) you can set the DO_SUM to u2018Xu2019 for that particular field in the field catalog.
So with this approach, you can get the sub total and grand total for a particular field.
If you donu2019t want the subtotal, just set DO_SUM, you will get the total.
Thanks,
Srini. -
Drilldown on Query not working for Transactions(SQ01--Report Assignments)
Hi !
I created for deliveries and through SQ01 -- Report assignment I added two
transactions VL03n And VA03. When I execute the query and double click on the
delievery number it takes me to the particular delivery clicked on in VL03n,
but when I clcik on the sales document and select the display sales document,
it does open the VA03 transaction but does not auto populate the transaction
with teh sales document that I clciked on. Could anyone please explain me why
it does not auto-populate with the sales document number , but when deliverey
is clciked it directly takes me to the particular delivery screen?
Thanks
Edited by: Rob Burbank on Jun 18, 2010 2:19 PMAny inputs/idea how to reslove this?
Thanks -
Dlls are not working for me in Report server
Hi,
I am using SSRS 2008 and deployed some reports to the report server. For localization purpose we are having some Dlls which need to be registered in the report server. I am using some methods from the dll.
Can someone please suggest how I can register these dlls to work in the report server for 2008, R2 and 2012.
Thanks,
sarat chandra sahooHi sarat,
Per my understanding that you have issue when you registered an dll and use the method from it, right?
Generally, You can follow steps below to make the custom assemblies works fine:
Create a custom assembly
Copy the custom assembly to the SQL Reporting Services folders
Adding a reference to the custom assembly in Reporting Services
Code access security if the custom assembly requires additional permissions
Details information about the above steps below for your reference:
How to use custom assemblies or embedded
Some similar related:
http://www.codeproject.com/Articles/294636/Localizing-SQL-Server-Reporting-Services-Reports
http://stackoverflow.com/questions/19938268/using-external-assemblys-methods-results-as-a-dataset
http://www.codeproject.com/Articles/30555/Adding-Custom-Assemblies-in-SQL-Server-Reporting-S
If you still have any problem, please feel free to ask.
Regards,
Vicky Liu
Vicky Liu
TechNet Community Support -
How to enable excel downloading in ALV grid report.
Hi all,
How to enable excal downing in ALV grid report?
Thanks in Advance.
Siva Sankar.hi
check the following code
Example of a Simple ALV Grid Report
REPORT ZTUFI091 .
*& Report ZDEMO_ALVGRID *
*& Example of a simple ALV Grid Report *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKKO table. *
*REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = z_template
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 DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
Form TOP-OF-PAGE *
ALV Report Header *
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
FORM USER_COMMAND *
--> R_UCOMM *
--> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*& Form BUILD_EVENTS
Build events table
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
*& Form BUILD_PRINT_PARAMS
Setup print parameters
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
*& Form END_OF_PAGE
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
*& Form END_OF_LIST
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform.
hope it will help you
regards
sreelatha gullapalli -
How Alternate rows to be colored in an ALV Grid report?
How Alternate rows to be colored in an ALV Grid report?
hi,
try this
TABLES: ekko.
TYPE-POOLS: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
line_color(4) TYPE c, "Used to store row color attributes
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
FORM build_fieldcatalog.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
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 DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
FORM data_retrieval.
DATA: ld_color(1) TYPE c.
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
UP TO 10 ROWS
FROM ekpo
INTO TABLE it_ekko.
*Populate field with color attributes
LOOP AT it_ekko INTO wa_ekko.
Populate color variable with colour properties
Char 1 = C (This is a color property)
Char 2 = 3 (Color codes: 1 - 7)
Char 3 = Intensified on/off ( 1 or 0 )
Char 4 = Inverse display on/off ( 1 or 0 )
i.e. wa_ekko-line_color = 'C410'
ld_color = ld_color + 1.
Only 7 colours so need to reset color value
IF ld_color = 8.
ld_color = 1.
ENDIF.
CONCATENATE 'C' ld_color '10' INTO wa_ekko-line_color.
wa_ekko-line_color = 'C410'.
MODIFY it_ekko FROM wa_ekko.
ENDLOOP.
ENDFORM. " DATA_RETRIEVAL
Maybe you are looking for
-
OIM 11g Peoplesoft Roles provisioning issue
Hi All, We have configured Peoplesoft Connector 9.1.1.6 to provision roles to Peoplesoft through access policy. We are not able to provision multiple roles into Peoplesoft. It just provisions first role to user in peoplesoft and errors when provision
-
I would like to list the user´s address book details (name and number of each contact) in my app. The user would then choose a contact and my app would send an sms. Is it possible to access a device´s address book with flash lite? If yes, how?
-
Need to remove hard coding of instance name in XML Bursting control file
Hi, We are hardcoding the instance name in the control file as <xapi:template type="rtf" location="/app/ebs/atgsidev02/gsidev02comn/java/oracle/apps/xxod/XXARPRST.rtf"> But gsidev02 is coming from the element 'INSTANCE'. So we need to place element '
-
Home Page Search Is Non-Functional / Not Possible to Restore Previous Session
After the latest update (to version 29), Firefox's default home page search bar has been completely non-functional. Whether I type enter or press Search, nothing happens. Another (possibly related) problem is that the "Restore Previous Session" butto
-
How to use existing Key figure strecture ??
Guys, I am creating a new query from the existing query on the same Multi provider. So, i created a copy of the query using RSZC and gave a new technical name. But the problem is both the query has the same Key figure strecture. and i have to modify