Problems with ALV-TREE
Hi,
i have copied SALV_DEMO_TREE_SIMPLE into an own report.
i use an simple itab and try to get an output, but i have an endless-loop.
Has anyone an idea which error i do?
Here my Report:
REPORT ZGRO_ABAP_OBJ_TREE.
CONSTANTS: GC_TRUE TYPE SAP_BOOL VALUE 'X'.
TYPE-POOLS: ICON.
TYPES: BEGIN OF TREE_ITAB,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
MENGE LIKE MSEG-MENGE,
END OF TREE_ITAB.
DATA: ITAB TYPE TABLE OF TREE_ITAB.
DATA: WA_ITAB TYPE TREE_ITAB.
DATA: GR_TREE TYPE REF TO CL_SALV_TREE.
DATA: REPID type syrepid.
DATA: GR_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: OK_CODE TYPE SYUCOMM.
START-OF-SELECTION.
REPID = SY-REPID.
END-OF-SELECTION.
PERFORM DISPLAY_TREE.
FORM EINLESEN_DATEN.
WA_ITAB-MATNR = '16186'. WA_ITAB-WERKS = '1000'. WA_ITAB-MENGE = 10. APPEND WA_ITAB TO ITAB.
WA_ITAB-MATNR = '16186'. WA_ITAB-WERKS = '2000'. WA_ITAB-MENGE = 11. APPEND WA_ITAB TO ITAB.
WA_ITAB-MATNR = '16185'. WA_ITAB-WERKS = '2000'. WA_ITAB-MENGE = 12. APPEND WA_ITAB TO ITAB.
WA_ITAB-MATNR = '16184'. WA_ITAB-WERKS = '3000'. WA_ITAB-MENGE = 13. APPEND WA_ITAB TO ITAB.
PERFORM HIERARCHIE_AUFBAUEN.
ENDFORM.
FORM DISPLAY_FULLSCREEN .
TRY.
CL_SALV_TREE=>FACTORY(
IMPORTING
R_SALV_TREE = GR_TREE
CHANGING
T_TABLE = ITAB ).
CATCH CX_SALV_NO_NEW_DATA_ALLOWED CX_SALV_ERROR.
EXIT.
ENDTRY.
PERFORM CREATE_TREE.
GR_TREE->SET_SCREEN_STATUS(
PFSTATUS = 'SALV_STANDARD'
REPORT = REPID
SET_FUNCTIONS = GR_TREE->C_FUNCTIONS_ALL ).
DATA: LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TREE.
LR_COLUMNS = GR_TREE->GET_COLUMNS( ).
LR_COLUMNS->SET_OPTIMIZE( GC_TRUE ).
PERFORM SET_COLUMNS_TECHNICAL.
GR_TREE->DISPLAY( ).
ENDFORM.
FORM DISPLAY_TREE.
CALL SCREEN 100.
ENDFORM.
MODULE PBO OUTPUT.
PERFORM PBO.
ENDMODULE.
MODULE PAI INPUT.
PERFORM PAI.
ENDMODULE.
FORM PBO .
SET PF-STATUS 'MAIN100'.
IF GR_CONTAINER IS NOT BOUND.
IF CL_SALV_TREE=>IS_OFFLINE( ) EQ IF_SALV_C_BOOL_SAP=>FALSE.
CREATE OBJECT GR_CONTAINER
EXPORTING
CONTAINER_NAME = 'BOX'.
ENDIF.
TRY.
CL_SALV_TREE=>FACTORY(
EXPORTING
R_CONTAINER = GR_CONTAINER
IMPORTING
R_SALV_TREE = GR_TREE
CHANGING
T_TABLE = ITAB ).
CATCH CX_SALV_NO_NEW_DATA_ALLOWED CX_SALV_ERROR.
EXIT.
ENDTRY.
PERFORM CREATE_TREE.
DATA: LR_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS_TREE.
LR_FUNCTIONS = GR_TREE->GET_FUNCTIONS( ).
LR_FUNCTIONS->SET_ALL( GC_TRUE ).
DATA: LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TREE.
LR_COLUMNS = GR_TREE->GET_COLUMNS( ).
LR_COLUMNS->SET_OPTIMIZE( GC_TRUE ).
PERFORM SET_COLUMNS_TECHNICAL.
GR_TREE->DISPLAY( ).
ENDIF.
ENDFORM.
FORM PAI .
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT' OR 'QUIT'.
CLEAR OK_CODE.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
ENDFORM.
FORM SET_COLUMNS_TECHNICAL.
DATA: LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS,
LR_COLUMN TYPE REF TO CL_SALV_COLUMN.
LR_COLUMNS = GR_TREE->GET_COLUMNS( ).
LR_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).
TRY.
LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'MATNR' ).
LR_COLUMN->SET_VISIBLE( ABAP_FALSE ).
LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'WERKS' ).
LR_COLUMN->SET_VISIBLE( ABAP_FALSE ).
LR_COLUMN ?= LR_COLUMNS->GET_COLUMN( 'MENGE' ).
LR_COLUMN->SET_TOOLTIP( 'Einsatzmenge' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
ENDFORM.
FORM CREATE_TREE .
PERFORM TREE_HEADER.
PERFORM EINLESEN_DATEN.
ENDFORM.
FORM TREE_HEADER.
DATA: SETTINGS TYPE REF TO CL_SALV_TREE_SETTINGS.
SETTINGS = GR_TREE->GET_TREE_SETTINGS( ).
SETTINGS->SET_HIERARCHY_HEADER( 'MaterialNr' ).
SETTINGS->SET_HIERARCHY_TOOLTIP( 'Materialnummer' ).
SETTINGS->SET_HIERARCHY_SIZE( 30 ).
DATA: TITLE TYPE SALV_DE_TREE_TEXT.
TITLE = SY-TITLE.
SETTINGS->SET_HEADER( TITLE ).
ENDFORM.
FORM HIERARCHIE_AUFBAUEN.
DATA: MATNR_KEY TYPE LVC_NKEY,
WERKS_KEY TYPE LVC_NKEY,
LAST_KEY TYPE LVC_NKEY.
LOOP AT ITAB INTO WA_ITAB.
ON CHANGE OF WA_ITAB-MATNR.
PERFORM ADD_MATNR_LINE USING WA_ITAB
CHANGING MATNR_KEY.
ENDON.
ON CHANGE OF WA_ITAB-WERKS.
PERFORM ADD_WERKS_LINE USING WA_ITAB
MATNR_KEY
CHANGING WERKS_KEY.
ENDON.
PERFORM ADD_LINE USING WA_ITAB
WERKS_KEY
CHANGING LAST_KEY.
ENDLOOP.
ENDFORM.
FORM ADD_MATNR_LINE USING P_LS_DATA TYPE TREE_ITAB
P_KEY
CHANGING P_L_CARRID_KEY.
DATA: NODES TYPE REF TO CL_SALV_NODES,
NODE TYPE REF TO CL_SALV_NODE,
ITEM TYPE REF TO CL_SALV_ITEM,
TEXT TYPE LVC_VALUE.
NODES = GR_TREE->GET_NODES( ).
TEXT = P_LS_DATA-MATNR.
TRY.
NODE = NODES->ADD_NODE( RELATED_NODE = P_KEY
DATA_ROW = P_LS_DATA
TEXT = TEXT
RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD ).
P_L_CARRID_KEY = NODE->GET_KEY( ).
CATCH CX_SALV_MSG.
ENDTRY.
ENDFORM.
FORM ADD_WERKS_LINE USING P_LS_DATA TYPE TREE_ITAB
P_L_CARRID_KEY
CHANGING P_L_CONNID_KEY.
DATA: NODES TYPE REF TO CL_SALV_NODES,
NODE TYPE REF TO CL_SALV_NODE,
TEXT TYPE LVC_VALUE.
NODES = GR_TREE->GET_NODES( ).
TEXT = P_LS_DATA-WERKS.
TRY.
NODE = NODES->ADD_NODE( RELATED_NODE = P_L_CARRID_KEY
DATA_ROW = P_LS_DATA
RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
TEXT = TEXT ).
P_L_CONNID_KEY = NODE->GET_KEY( ).
CATCH CX_SALV_MSG.
ENDTRY.
ENDFORM.
FORM ADD_LINE USING P_LS_DATA TYPE TREE_ITAB
P_L_CONNID_KEY
CHANGING P_L_LAST_KEY.
DATA: NODES TYPE REF TO CL_SALV_NODES,
NODE TYPE REF TO CL_SALV_NODE.
NODES = GR_TREE->GET_NODES( ).
TRY.
NODE = NODES->ADD_NODE( RELATED_NODE = P_L_CONNID_KEY
DATA_ROW = P_LS_DATA
RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD ).
P_L_LAST_KEY = NODE->GET_KEY( ).
CATCH CX_SALV_MSG.
ENDTRY.
ENDFORM.
In the routines ADD_MATNR_LINE, ADD_WERKS_LINE and ADD_LINE
are new records inserted in my itab, therefore i get an endless-lopp.
I don't know, why these insertations are made.
Has anyone an idea????
Thanks for help.
Regards, Dieter
Hi Tamas,
i fill the itab very simple, but not in a loop (see apove).
The problem is that in the routine with i call in a loop, there must be an append
but i don't know why and i cannot see tzhe append.
FORM HIERARCHIE_AUFBAUEN.
DATA: MATNR_KEY TYPE LVC_NKEY,
WERKS_KEY TYPE LVC_NKEY,
LAST_KEY TYPE LVC_NKEY.
LOOP AT ITAB INTO WA_ITAB.
<b>ON CHANGE OF WA_ITAB-MATNR.
PERFORM ADD_MATNR_LINE USING WA_ITAB
CHANGING MATNR_KEY.
ENDON.</b>
ON CHANGE OF WA_ITAB-WERKS.
PERFORM ADD_WERKS_LINE USING WA_ITAB
MATNR_KEY
CHANGING WERKS_KEY.
ENDON.
PERFORM ADD_LINE USING WA_ITAB
WERKS_KEY
CHANGING LAST_KEY.
ENDLOOP.
ENDFORM.
FORM ADD_MATNR_LINE USING P_LS_DATA TYPE TREE_ITAB
P_KEY
CHANGING P_L_CARRID_KEY.
DATA: NODES TYPE REF TO CL_SALV_NODES,
NODE TYPE REF TO CL_SALV_NODE,
ITEM TYPE REF TO CL_SALV_ITEM,
TEXT TYPE LVC_VALUE.
NODES = GR_TREE->GET_NODES( ).
TEXT = P_LS_DATA-MATNR.
TRY.
<b>NODE = NODES->ADD_NODE( RELATED_NODE = P_KEY
DATA_ROW = P_LS_DATA
TEXT = TEXT
RELATIONSHIP = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD ).</b>
P_L_CARRID_KEY = NODE->GET_KEY( ).
CATCH CX_SALV_MSG.
ENDTRY.
ENDFORM.
i the bold marked statements there is an appen, but i don't know why and where.
Regards, Dieter
Similar Messages
-
Report with ALV tree and ALV list?
I need to create a report with layout as same as this one
[http://trangiegie.com/MyFile/output.JPG]
It looks like a report with combination of ALV tree and list. The tree works like a navigation bar. Wonder if there are any demo programs like this. Will appreciate any help.For Tree alone - You can check program : BCALV_TREE_02
Program Name Report title
BCALV_GRID_DND_TREE ALV Grid: Drag and Drop with ALV Tree
BCALV_GRID_DND_TREE_SIMPLE ALV GRID: Drag and drop with ALV tree (simple)
BCALV_TEST_COLUMN_TREE Program BCALV_TEST_COLUMN_TREE
BCALV_TEST_SIMPLE_TREE Program BCALV_TEST_SIMPLE_TREE
BCALV_TREE_01 ALV Tree Control: Build Up the Hierarchy Tree
BCALV_TREE_02 ALV Tree Control: Event Handling
BCALV_TREE_03 ALV Tree Control: Use an Own Context Menu
BCALV_TREE_04 ALV Tree Control: Add a Button to the Toolbar
BCALV_TREE_05 ALV Tree Control: Add a Menu to the Toolbar
BCALV_TREE_06 ALV tree control: Icon column and icon for nodes/items
BCALV_TREE_DEMO Demo for ALV tree control
BCALV_TREE_DND ALV tree control: Drag & Drop within a hierarchy tree
BCALV_TREE_DND_MULTIPLE ALV tree control: Drag & Drop within a hierarchy tree
BCALV_TREE_EVENT_RECEIVER Include BCALV_TREE_EVENT_RECEIVER
BCALV_TREE_EVENT_RECEIVER01
BCALV_TREE_ITEMLAYOUT ALV Tree: Change Item Layouts at Runtime
BCALV_TREE_MOVE_NODE_TEST Demo for ALV tree control
BCALV_TREE_SIMPLE_DEMO Program BCALV_TREE_SIMPLE_DEMO
BCALV_TREE_VERIFY Verifier for ALV Tree and Simple ALV Tree -
I have a problem with ALV Grid User Command?
Hi Experts,
I have a problem with ALV GRID User Command.
I am calling TCODE IW33 (Order Display) from the ALV output at first time by selecting an order. But, User command is calling IW33 Initial screen with blank value of order. Even I checked in debugging the value what I selected is passing properly, but once that screen (IW33 Initial) displays, value doesn't appear. Then, Manually, I created another session and gone to TCODE IW33 and displayed an order. After that I came out from that order. Then again run my ALV program and selected another order, now order is displaying, but not what I selected current order instead of displaying previous order what I just displayed manually. If I selected any other order, system will display the same order what I dislayed manually.
Here is my code.
FORM user_command_alv USING u_ucomm TYPE sy-ucomm
us_self_field TYPE slis_selfield.
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE it_final INDEX us_self_field-tabindex INTO wa_final.
WHEN 'ORDER'.
IF NOT wa_final-order IS INITIAL.
SET PARAMETER ID 'COK' FIELD wa_final-order.
CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN.
ENDIF.
endform.
PARAMETER ID 'COK' also the standard one.
Could you please help me out, Where I did wrong?
If I select any order, that order only should display.
Thanks in advance.
Regards,
Sarayu.
Code Formatted by: Alvaro Tejada Galindo on Jan 8, 2009 2:33 PMhi,
Please check it once the Paramater ID is 'ANR' for IW33 order number.
Hope this may help.
Regards,
Sravanthi -
Problem with ALV grid in edit mode
Hello, gurus!
I have a problem with ALV-grid. Sometimes when I call F4 help for a cell, data is inserted in a different cell. And when I call check_changed_data method, my internal table (passed to ALV-control in set_table_for_first_display) does not updates properly. In what can be a problem?
Thanks,
MikhailHi Prabhu,
MODULE pbo_100 OUTPUT.
SET PF-STATUS 'MAIN100'.
title_of_report = text-010.
SET TITLEBAR '0100' WITH title_of_report.
DATA: g_event_receiver TYPE REF TO lcl_event_handler.
IF z_custom_container IS INITIAL .
CREATE OBJECT z_custom_container
EXPORTING
container_name = 'ALV_ZAC'.
CREATE OBJECT alv_grid
EXPORTING
i_parent = z_custom_container.
g_repid = sy-repid.
gs_variant-report = g_repid.
x_save = 'A'.
PERFORM check_alv_grid_fields.
ps_layout-cwidth_opt = 'X'.
ps_layout-edit = 'X'.
CALL METHOD alv_grid->set_ready_for_input
EXPORTING
i_ready_for_input = '1'.
* CALL METHOD alv_grid->register_edit_event
* EXPORTING
* i_event_id = cl_gui_alv_grid=>mc_evt_enter.
APPEND s_list_rec to it_list_rec.
CALL METHOD alv_grid->set_table_for_first_display
EXPORTING
is_layout = ps_layout
is_variant = gs_variant
i_save = x_save
CHANGING
it_fieldcatalog = pt_fieldcat
it_outtab = it_list_rec[].
CALL METHOD alv_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
CALL METHOD alv_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
ENDIF.
FORM check_alv_grid_fields .
DATA: ls_fcat LIKE LINE OF pt_fieldcat.
REFRESH pt_fieldcat .
CLEAR: ps_layout, ls_fcat.
ls_fcat-fieldname = 'VBELN'.
ls_fcat-ref_field = 'VBELN'. ls_fcat-ref_table = 'LIPS'. " .
ls_fcat-outputlen = 9.
* ls_fcat-datatype = 'CHAR'.
* ls_fcat-inttype = 'C'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR: ls_fcat.
ls_fcat-fieldname = 'ERDAT'.
ls_fcat-ref_field = 'ERDAT'. ls_fcat-ref_table = 'LIPS'.
ls_fcat-outputlen = 9.
* ls_fcat-f4availabl = 'X' .
* ls_fcat-datatype = 'DATS'.
* ls_fcat-inttype = 'D'.
APPEND ls_fcat TO pt_fieldcat.
CLEAR: ls_fcat.
ENDFORM. " check_alv_grid_fields
FORM save_p .
CLEAR l_valid.
CALL METHOD alv_grid->check_changed_data
IMPORTING
e_valid = l_valid.
IF l_valid IS INITIAL.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = text-i01
txt1 = text-i02
txt2 = text-i03
txt3 = text-i04.
ELSE.
i_dat_reg = zrumm_prr-cdprr.
CLEAR is_temp_otc.
freshit i_prrpus_fax.
freshit i_list2_ot.
LOOP AT it_list_rec INTO s_list_rec.
MOVE-CORRESPONDING s_list_rec TO i_list2_ot.
i_list2_ot-fgrup = 'RECE'.
i_list2_ot-prrnu = i_num_prr.
APPEND i_list2_ot.
MOVE-CORRESPONDING s_list_rec TO i_prrpus_fax.
APPEND i_prrpus_fax.
ENDLOOP.
ENDIF.
Edited by: Mikhail Sarychev on Mar 16, 2011 6:41 AM
Edited by: Mikhail Sarychev on Mar 16, 2011 6:49 AM
Edited by: Mikhail Sarychev on Mar 16, 2011 6:49 AM -
Problem with ALV filter functionality when filtered for multiple values
Hi,
I am facing a problem with ALV filter functionality.
I have displayed an ALV with some columns col_A, col_B and col_C
col_A---- col_B -
col_C
1----
a -
abc
2----
b -
pqr
3----
c -
lmn
4----
d -
xyz
5----
f -
stu
From the settings link I am applying filter on column col_C and selected multiple values say 'pqr', 'xyz' and 'lmn'.
Now the ALV is showing rows only for last selection i.e . results are fetched only for value 'lmn'.
i.e. after applying the filter the ALV table looks as below:
col_A---- col_B -
col_C
3----
c -
lmn
But ideally it should be:
col_A---- col_B -
col_C
2----
b -
pqr
3----
c -
lmn
4----
d -
xyz
I could not find any OSS note related to this issue.
Please help me resolve this issue.
Thanks,
FerozHi,
I am facing a problem with ALV filter functionality.
I have displayed an ALV with some columns col_A, col_B and col_C
col_A---- col_B -
col_C
1----
a -
abc
2----
b -
pqr
3----
c -
lmn
4----
d -
xyz
5----
f -
stu
From the settings link I am applying filter on column col_C and selected multiple values say 'pqr', 'xyz' and 'lmn'.
Now the ALV is showing rows only for last selection i.e . results are fetched only for value 'lmn'.
i.e. after applying the filter the ALV table looks as below:
col_A---- col_B -
col_C
3----
c -
lmn
But ideally it should be:
col_A---- col_B -
col_C
2----
b -
pqr
3----
c -
lmn
4----
d -
xyz
I could not find any OSS note related to this issue.
Please help me resolve this issue.
Thanks,
Feroz -
Problem with ALV search help Dictionary Search Help
Hello experts
I have a problem with ALV search help.
I use DDIC table ZXXX with text table ZXXX_T. I created DDIC search help form table ZXXX. In my WD application, in context on COMPONENTCONTROLLER i set on attribute: 'Input help mode' as 'Dictionary Search Help' and in 'Dictionary Search Help' I pass name of new created DDIC search help.
I create a input field from that atrribute and search help works fine (there was a value and description for value from text table). So I created ALV witch contains that attribute too.
Next I set column for this attribute in ALV as editable but on Serch help for this collumn I have only value. I DON'T HAVE TEXT DESCRIPTION FOR VALUE.
Please help me and tell me what I do wrong?
MikoHello,
Thank's for your help. I create DDic Search help for all fields from my ALV. Next I changed 'TYPE' for all ALV fields in COMPONENTCONTROLLER from ZXXX-Zfield to Zfield, and I changed 'Input help mode' from 'Automatic' to 'Dictionary Search Help'. Now I see Value and Description for value in Search Help in my ALV.
Regards
Miko -
Problems with ALV - Excel after changing from 640 to 710
Hi all,
first i have to say, that i have tried to set this thread in the SAPGUI-Forum,
but i didn't get any answers, therefore i try it here.
I have changed our SAPGUI from 640 to 710. Now i get problems
with ALV-GRID display.
When i change the output to EXCEL-Inplace i get the Error-Message:
0K000
View cannot be switched: Product is not installed or integration is not active.
In 640 i don't have any problems. We have ECC6.
When i use GUI710 and SAP 4.6C i don't have any problems.
Simple Test is possible with SE16N and change ALV output to excel-inplace.
Can anybody help?
Thanks.
Regards, DieterHi Dieter,
we had a similar problem who we resolved installing path the GUI710_1-10002995.EXE.
Have you tried to install the patch?
Bye
Giovanni Mortati -
Problems with ALV - Excel after changin from 640 to 710
Hi all,
i have changed our SAPGUI from 640 to 710. Now i get problems
with ALV-GRID display.
When i change to EXCEL-Inplace i get the Error-Message:
0K000
View cannot be switched: Product is not installed or integration is not active.
in 640 i don't have any problems.
Can anybody help?
Thanks.
Regards, DieterHi Roman,
in Service.sap.com there is the first patch-level of the new GUI7.10.
i have install it without any problems.
The problem i had with excal-inplace is solved.
Regards, Dieter -
Hello Friends,
I am using ALV Tree to display a report.
In this report for a particular input.2 nodes are cerated.
On clicking on the 2nd node the details for the same are shown .
However on clicking the 1st node , the system automatically logs off closing all the SAP sessions and even the SAP Logon pad.
Suppose i am on executing the program on development server,even the sessions of test server are closed.
Can anyone please help me in this.....
its a bit urgent.
i am attaching my code for reference.
REPORT ZPRPROUTOPERATIONS1 .
tables : mapl,t001w,zroutpromast.
TYPE-POOLS: slis,kkblo.
include <icon>.
data : it_zrouteledtl like zrouteledtl occurs 0 with header line.
data : it_zeledtl type zeledtl occurs 0 with header line.
data : conv_sec(5) type c value '0.036'.
types : begin of it_output2,
Srno like zrouteledtl-srno,
srno1 type p decimals 8,
subgid like zrouteledtl-subgid,
subopn like zrouteledtl-subopn,
movetype type zeledtl-movetype,
DESC type zeledtl-description,
Add_desc like zrouteledtl-DESCRIPTION,
Freq type p decimals 2,
div_freq type p decimals 2,
men type p decimals 2,
offline(3),
CT type p decimals 2,
CW type p decimals 2,
Ideal_ct type p decimals 2,
ideal_cw type p decimals 2,
A_trg type p decimals 2,
b_Trg type p decimals 2,
g_Trg type p decimals 2,
p_Trg type p decimals 2,
m_Trg type p decimals 2,
t_Trg type p decimals 2,
i_Trg type p decimals 2,
Autocycle type p decimals 2,
online_time type p decimals 2,
offline_time type p decimals 2,
online_p_time type p decimals 2,
offline_p_time type p decimals 2,
end of it_output2.
*types : begin of it_output3,
Srno like zrouteledtl-srno,
mop_gid like zroutdetails-MOP_GID,
MOp_opn like zroutdetails-MOP_OPN,
sub_gid like zpromast-subgid,
subopn like zpromast-subopn,
DESC like zpromast-description,
Add_desc like zroutdetails-ADD_INFO,
Freq type p decimals 2,
batch type p decimals 2,
mix type p decimals 2,
offline(3),
CT type p decimals 2,
CW type p decimals 2,
Ideal_ct type p decimals 2,
ideal_cw type p decimals 2,
A_trg type p decimals 2,
b_Trg type p decimals 2,
g_Trg type p decimals 2,
p_Trg type p decimals 2,
m_Trg type p decimals 2,
t_Trg type p decimals 2,
i_Trg type p decimals 2,
Autocycle type p decimals 2,
online_time type p decimals 2,
offline_time type p decimals 2,
online_p_time type p decimals 2,
offline_p_time type p decimals 2,
end of it_output3.
data : it_output type it_output2 occurs 0 with header line,
it_output1 type it_output2 occurs 0 with header line,
it_emptytab type standard table of it_output2 INITIAL SIZE 0.
data : a_trg type f,b_trg type f,g_trg type f,p_trg type f,m_trg type f,t_trg type f,i_trg type f,
autocycle type f,online_p_time type f,offline_p_time type f.
data : ch1 type c,ch2.
DATA: ok_code like sy-ucomm, "OK-Code
save_ok like sy-ucomm.
data : ct_fieldcat type KKBLO_T_FIELDCAT.
*ALV data declarations
DATA: fieldcatalog TYPE lvc_t_fcat WITH HEADER LINE.
DATA: gd_fieldcat TYPE lvc_t_fcat,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv.
*ALVtree data declarations
CLASS cl_gui_column_tree DEFINITION LOAD.
CLASS cl_gui_cfw DEFINITION LOAD.
DATA: gd_tree TYPE REF TO cl_gui_alv_tree,
gd_hierarchy_header TYPE treev_hhdr,
gd_report_title TYPE slis_t_listheader,
gd_logo TYPE sdydo_value,
gd_variant TYPE disvariant.
*Create container for alv-tree
DATA: gd_tree_container_name(30) TYPE c,
gd_custom_container TYPE REF TO cl_gui_custom_container.
*data mr_toolbar type ref to cl_gui_toolbar. "Add to top include
selection-screen begin of block start with frame title text-001.
select-options: p_gid for zroutpromast-mop_gid obligatory no-extension no intervals,
p_opn for zroutpromast-mop_opn obligatory no-extension no intervals,
p_werks for t001w-werks obligatory no-extension no intervals.
selection-screen end of block start.
*selection-screen begin of block detail with frame title text-002.
*parameter : radio1 radiobutton group dept default 'X',
radio2 radiobutton group dept.
*selection-screen end of block detail.
include ZTEST_TOOLBAR_EVENT_RECEIVER.
start-of-selection.
ALVtree setup data
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.
PERFORM build_report_title USING gd_report_title gd_logo.
PERFORM build_variant.
Display ALVtree report
call screen 100.
*& Form data_retrieval
text
--> p1 text
<-- p2 text
FORM data_retrieval .
select * from zrouteledtl into table it_zrouteledtl where mop_gid in p_gid and
mop_opn in p_opn
and werks in p_werks.
if sy-subrc ne 0.
message i001(0) with 'No Records Found'.
leave program.
endif.
select * from zeledtl into table it_zeledtl for all entries in it_zrouteledtl
where subgid = it_zrouteledtl-subgid
and subopn = it_zrouteledtl-subopn
and werks = it_zrouteledtl-werks.
loop at it_zeledtl.
it_output1-srno = it_zeledtl-srno.
it_output1-srno1 = it_zeledtl-srno.
it_output1-subgid = it_zeledtl-subgid.
it_output1-subopn = it_zeledtl-subopn.
it_output1-movetype = it_zeledtl-movetype.
it_output1-desc = it_zeledtl-DESCRIPTION.
it_output1-freq = it_zeledtl-frequency.
it_output1-div_freq = it_zeledtl-div_freq.
it_output1-men = it_zeledtl-men.
it_output1-offline = it_zeledtl-offline1.
it_output1-ct = it_zeledtl-cy_time * conv_sec.
it_output1-cw = it_zeledtl-wc_time * conv_sec.
it_output1-ideal_ct = it_zeledtl-cy_trg_time * conv_sec.
it_output1-ideal_cw = it_zeledtl-wc_trg_time * conv_sec.
if it_zeledtl-men = 0.
it_output-autocycle = it_zeledtl-cy_time * conv_sec.
endif.
if it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'NO'
and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).
case it_zeledtl-movetype.
when 'A'.
if it_zeledtl-SIM_AUTO = 'TRUE'.
ch2 = 0.
else.
ch2 = 1.
endif.
it_output-online_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.
when 'C'.
if it_zeledtl-sim5 = 'TRUE'.
ch1 = 0.
else.
ch1 = 1.
endif.
it_output-online_p_time = ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1
it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq .
endcase.
elseif it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'YES'
and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).
case it_zeledtl-movetype.
when 'A'.
if it_zeledtl-SIM_AUTO = 'TRUE'.
ch2 = 0.
else.
ch2 = 1.
endif.
it_output1-offline_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.
when 'C'.
if it_zeledtl-sim5 = 'TRUE'.
ch1 = 0.
else.
ch1 = 1.
endif.
it_output-offline_p_time = ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1
it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq .
endcase.
endif.
it_output1-a_trg = it_zeledtl-TARGET_A * conv_sec.
it_output1-b_trg = it_zeledtl-target_B * conv_sec.
it_output1-g_trg = it_zeledtl-TARGET_G * conv_sec.
it_output1-p_trg = it_zeledtl-TARGET_P * conv_sec.
it_output1-M_trg = it_zeledtl-TARGET_M * conv_sec.
it_output1-t_trg = it_zeledtl-TARGET_T * conv_sec.
it_output1-i_trg = it_zeledtl-TARGET_I * conv_sec.
append it_output1.
endloop.
sort it_output1 ascending by subgid subopn srno1.
clear ch1.
loop at it_zrouteledtl.
move-corresponding it_zrouteledtl to it_output.
select single description from zpromast into it_output-desc
where subgid = it_zrouteledtl-subgid and
subopn = it_zrouteledtl-subopn and
werks in p_werks.
it_output-add_desc = it_zrouteledtl-description.
it_output-freq = it_zrouteledtl-frequency.
it_output-div_freq = it_zrouteledtl-div_freq.
it_output-men = it_zrouteledtl-men.
it_output-ct = it_zrouteledtl-cy_time * conv_sec.
it_output-cw = it_zrouteledtl-wc_time * conv_sec.
it_output-ideal_ct = it_zrouteledtl-cy_trg_time * conv_sec.
it_output-ideal_cw = it_zrouteledtl-wc_trg_time * conv_sec.
if it_zrouteledtl-offline1 = '1'.
it_output-offline = 'No'.
else.
it_output-offline = 'Yes'.
endif.
append it_output.
endloop.
loop at it_output.
if it_output-offline = 'Yes'.
ch1 = 0.
else.
ch1 = 1.
endif.
loop at it_output1 where subgid = it_output-subgid and
subopn = it_output-subopn.
a_trg = A_trg + it_output1-A_trg.
b_Trg = b_Trg + it_output1-b_Trg.
g_Trg = g_Trg + it_output1-g_Trg.
p_Trg = p_Trg + it_output1-p_Trg.
m_Trg = m_Trg + it_output1-m_Trg.
t_Trg = t_Trg + it_output1-t_Trg.
i_Trg = i_Trg + it_output1-i_Trg.
autocycle = autocycle + it_output1-Autocycle.
online_p_time = online_p_time + it_output1-online_p_time.
offline_p_time = offline_p_time + it_output1-offline_p_time.
endloop.
it_output-autocycle = ( autocycle * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-a_trg = ( a_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-b_trg = ( b_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-g_trg = ( g_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-p_trg = ( p_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-m_trg = ( m_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-t_trg = ( t_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-i_trg = ( i_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-online_time = ( it_output-ct - it_output-autocycle ) * ch1.
it_output-offline_time = ( it_output-ct - it_output-cw ) + it_output-autocycle.
it_output-online_p_time = ( online_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
it_output-offline_p_time = ( offline_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.
clear : a_trg,b_trg,g_trg,p_trg,m_trg,t_trg,i_trg,online_p_time,offline_p_time,ch1,ch2,it_zeledtl,
autocycle,online_p_time,offline_p_time,zroutpromast.
modify it_output.
endloop.
ENDFORM. " data_retrieval
*& Form build_fieldcatalog
text
--> p1 text
<-- p2 text
FORM build_fieldcatalog .
Please not there are a number of differences between the structure of
ALVtree fieldcatalogs and ALVgrid fieldcatalogs.
For example the field seltext_m is replace by scrtext_m in ALVtree.
DATA: COL_POS TYPE I VALUE 0.
fieldcatalog-fieldname = 'SRNO'.
fieldcatalog-SCRTEXT_L = 'Sr No.'.
fieldcatalog-SCRTEXT_m = 'Sr No.'.
fieldcatalog-SCRTEXT_s = 'Sr No.'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'SUBGID'. "Field name in itab
fieldcatalog-SCRTEXT_L = 'Sub Opn GID'. "Column text
fieldcatalog-SCRTEXT_m = 'Sub Opn GID'. "Column text
fieldcatalog-SCRTEXT_s = 'Sub Opn GID'. "Column text
fieldcatalog-col_pos = COL_POS. "Column position
fieldcatalog-outputlen = 15. "Column width
fieldcatalog-emphasize = 'X'. "Emphasize (X or SPACE)
fieldcatalog-key = 'X'. "Key Field? (X or SPACE)
fieldcatalog-do_sum = 'X'. "Sum Column?
fieldcatalog-no_zero = 'X'. "Don't display if zero
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'SUBOPN'.
fieldcatalog-SCRTEXT_L = 'Sub Opn'.
fieldcatalog-SCRTEXT_m = 'Sub Opn'.
fieldcatalog-SCRTEXT_s = 'Sub Opn'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-emphasize = 'X'. "Emphasize (X or SPACE)
fieldcatalog-key = 'X'. "Key Field? (X or SPACE)
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'MOVETYPE'.
fieldcatalog-SCRTEXT_L = 'Movetype'.
fieldcatalog-SCRTEXT_m = 'Movetype'.
fieldcatalog-SCRTEXT_s = 'Movetype'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'DESC'.
fieldcatalog-SCRTEXT_L = 'Description'.
fieldcatalog-SCRTEXT_m = 'Description'.
fieldcatalog-SCRTEXT_s = 'Description'.
fieldcatalog-outputlen = 600.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'ADD_DESC'.
fieldcatalog-SCRTEXT_L = 'Add. Description'.
fieldcatalog-SCRTEXT_m = 'Add. Description'.
fieldcatalog-SCRTEXT_s = 'Add. Description'.
fieldcatalog-outputlen = 100.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'FREQ'.
fieldcatalog-SCRTEXT_L = 'Frequency'.
fieldcatalog-SCRTEXT_m = 'Frequency'.
fieldcatalog-SCRTEXT_s = 'Frequency'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'DIV_FREQ'.
fieldcatalog-SCRTEXT_L = 'Div Freq'.
fieldcatalog-SCRTEXT_m = 'Div Freq'.
fieldcatalog-SCRTEXT_s = 'Div Freq'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'MEN'.
fieldcatalog-SCRTEXT_L = 'Men'.
fieldcatalog-SCRTEXT_m = 'Men'.
fieldcatalog-SCRTEXT_s = 'Men'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat..
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'BATCH'.
fieldcatalog-SCRTEXT_L = 'Batch/Div Freq'.
fieldcatalog-SCRTEXT_m = 'Batch/Div Freq'.
fieldcatalog-SCRTEXT_s = 'Batch/Div Freq'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'OFFLINE'.
fieldcatalog-SCRTEXT_L = 'Offline'.
fieldcatalog-SCRTEXT_m = 'Offline'.
fieldcatalog-SCRTEXT_s = 'Offline'.
fieldcatalog-outputlen = 6.
fieldcatalog-col_pos = COL_POS.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'CT'.
fieldcatalog-SCRTEXT_L = 'Cycle Time'.
fieldcatalog-SCRTEXT_m = 'Cycle Time'.
fieldcatalog-SCRTEXT_s = 'Cycle Time'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'CW'.
fieldcatalog-SCRTEXT_L = 'Work Content'.
fieldcatalog-SCRTEXT_m = 'Work Content'.
fieldcatalog-SCRTEXT_s = 'Work Content'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'IDEAL_CT'.
fieldcatalog-SCRTEXT_L = 'Ideal CT'.
fieldcatalog-SCRTEXT_m = 'Ideal CT'.
fieldcatalog-SCRTEXT_s = 'Ideal CT'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'IDEAL_CW'.
fieldcatalog-SCRTEXT_L = 'Ideal CW'.
fieldcatalog-SCRTEXT_m = 'Ideal CW'.
fieldcatalog-SCRTEXT_s = 'Ideal CW'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'A_TRG'.
fieldcatalog-SCRTEXT_L = 'Target A'.
fieldcatalog-SCRTEXT_m = 'Target A'.
fieldcatalog-SCRTEXT_s = 'Target A'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'B_TRG'.
fieldcatalog-SCRTEXT_L = 'Target B'.
fieldcatalog-SCRTEXT_m = 'Target B'.
fieldcatalog-SCRTEXT_s = 'Target B'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'G_TRG'.
fieldcatalog-SCRTEXT_L = 'Target G'.
fieldcatalog-SCRTEXT_m = 'Target G'.
fieldcatalog-SCRTEXT_s = 'Target G'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'P_TRG'.
fieldcatalog-SCRTEXT_L = 'Target P'.
fieldcatalog-SCRTEXT_m = 'Target P'.
fieldcatalog-SCRTEXT_s = 'Target P'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'M_TRG'.
fieldcatalog-SCRTEXT_L = 'Target M'.
fieldcatalog-SCRTEXT_m = 'Target M'.
fieldcatalog-SCRTEXT_s = 'Target M'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'T_TRG'.
fieldcatalog-SCRTEXT_L = 'Target T'.
fieldcatalog-SCRTEXT_m = 'Target T'.
fieldcatalog-SCRTEXT_s = 'Target T'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'I_TRG'.
fieldcatalog-SCRTEXT_L = 'Target I'.
fieldcatalog-SCRTEXT_m = 'Target I'.
fieldcatalog-SCRTEXT_s = 'Target I'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'AUTOCYCLE'.
fieldcatalog-SCRTEXT_L = 'AutoCycle'.
fieldcatalog-SCRTEXT_m = 'AutoCycle'.
fieldcatalog-SCRTEXT_s = 'AutoCycle'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'ONLINE_TIME'.
fieldcatalog-SCRTEXT_L = 'Online Time'.
fieldcatalog-SCRTEXT_m = 'Online Time'.
fieldcatalog-SCRTEXT_s = 'Online Time'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'OFFLINE_TIME'.
fieldcatalog-SCRTEXT_L = 'Offline Time'.
fieldcatalog-SCRTEXT_m = 'Offline Time'.
fieldcatalog-SCRTEXT_s = 'Offline Time'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'ONLINE_P_TIME'.
fieldcatalog-SCRTEXT_L = 'Online Process Time'.
fieldcatalog-SCRTEXT_m = 'Online Process Time'.
fieldcatalog-SCRTEXT_s = 'Online Process Time'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
COL_POS = COL_POS + 1.
fieldcatalog-fieldname = 'OFFLINE_P_TIME'.
fieldcatalog-SCRTEXT_L = 'Offline Process Time'.
fieldcatalog-SCRTEXT_m = 'Offline Process Time'.
fieldcatalog-SCRTEXT_s = 'Offline Process Time'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = COL_POS.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO gd_fieldcat.
CLEAR fieldcatalog.
ENDFORM. " build_fieldcatalog
*& Form build_layout
text
--> p1 text
<-- p2 text
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 build_hierarchy_header
text
<--P_GD_HIERARCHY_HEADER text
FORM build_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Drill Down For Detail'(022).
p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
ENDFORM. " build_hierarchy_header
*& Form build_report_title
text
-->P_GD_REPORT_TITLE text
-->P_GD_LOGO text
FORM build_report_title using
pt_report_title TYPE slis_t_listheader
pa_logo TYPE sdydo_value.
DATA: ls_line TYPE slis_listheader,
ld_date(10) TYPE c,
string1 type string,string2 type string.
List Heading Line(TYPE H)
concatenate 'Material: ' p_matnr-low into string1 separated by space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-key = 'MOST Operation'.
concatenate p_gid-low p_opn-low into string2 separated by space.
ls_line-info = string2.
APPEND ls_line TO pt_report_title.
ls_line-typ = 'S'.
ls_line-key = 'Text'.
select single DESCRIPTION from zroutpromast into string1 where mop_gid = p_gid-low
and mop_opn = p_opn-low
and werks = p_werks-low.
ls_line-info = string1.
APPEND ls_line TO pt_report_title.
ls_line-typ = 'S'.
ls_line-key = 'Routing Counter:'.
ls_line-info = counter.
APPEND ls_line TO pt_report_title.
Status Line(TYPE S)
ld_date(2) = sy-datum+6(2).
ld_date+2(1) = '/'.
ld_date3(2) = sy-datum4(2).
ld_date+5(1) = '/'.
ld_date+6(4) = sy-datum(4).
ls_line-typ = 'S'.
ls_line-key = 'Date'.
ls_line-info = ld_date.
APPEND ls_line TO pt_report_title.
Action Line(TYPE A)
CLEAR ls_line.
ls_line-typ = 'A'.
CONCATENATE 'Report: ' sy-repid INTO ls_line-info SEPARATED BY space.
APPEND ls_line TO pt_report_title.
ENDFORM. " build_report_title
*& Form build_variant
text
--> p1 text
<-- p2 text
FORM build_variant .
gd_variant-report = sy-repid.
ENDFORM. " build_variant
*& Module STATUS_0100 OUTPUT
text
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'STATUS1'.
SET TITLEBAR 'ZTITLE'.
IF gd_tree IS INITIAL.
Create ALVtree (must be performed within screen PBO module)
PERFORM create_alvtree_container.
PERFORM create_object_in_container.
PERFORM create_empty_alvtree_control.
perform change_toolbar.
PERFORM create_alvtree_hierarchy.
ENDIF.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
MODULE USER_COMMAND_0100 INPUT.
case sy-ucomm.
when 'EXIT' or 'BACK' or 'CANC'.
call method gd_tree->free.
leave program.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
call method cl_gui_cfw=>flush.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form create_alvtree_container
text
--> p1 text
<-- p2 text
FORM create_alvtree_container .
gd_tree_container_name = 'SCREEN_CONTAINER'.
create object gd_custom_container
exporting
container_name = gd_tree_container_name
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc <> 0.
message x208(00) with 'ERROR'.
endif.
ENDFORM. " create_alvtree_container
*& Form create_object_in_container
text
--> p1 text
<-- p2 text
FORM create_object_in_container .
create object gd_tree
exporting
parent = gd_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
if sy-subrc <> 0.
message x208(00) with 'ERROR'.
endif.
ENDFORM. " create_object_in_container
*& Form create_empty_alvtree_control
text
--> p1 text
<-- p2 text
FORM create_empty_alvtree_control .
CLEAR: it_emptytab.
REFRESH: it_emptytab.
CALL METHOD gd_tree->set_table_for_first_display
EXPORTING
is_hierarchy_header = gd_hierarchy_header
it_list_commentary = gd_report_title
i_logo = gd_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = gd_variant
CHANGING
it_outtab = it_emptytab "Must be empty
it_fieldcatalog = gd_fieldcat.
ENDFORM. " create_empty_alvtree_control
*& Form create_alvtree_hierarchy
text
--> p1 text
<-- p2 text
FORM create_alvtree_hierarchy .
data: ls_sflight type sflight,
lt_sflight type sflight occurs 0.
data: ld_mop_gid_key type lvc_nkey,
ld_mop_opn_key type lvc_nkey.
loop at it_output.
perform add_ekko_node using it_output
changing ld_mop_gid_key.
loop at it_output1 where subgid eq it_output-subgid
and subopn eq it_output-subopn.
perform add_ekpo_line using it_output1
ld_mop_gid_key
changing ld_mop_opn_key.
endloop.
endloop.
calculate totals
call method gd_tree->update_calculations.
this method must be called to send the data to the frontend
call method gd_tree->frontend_update.
ENDFORM. " create_alvtree_hierarchy
*& Form add_ekko_node
text
-->P_IT_OUTPUT text
-->P_2478 text
<--P_LD_MOP_GID_KEY text
FORM add_ekko_node USING ps_output like it_output
VALUE(p_relate_key)
CHANGING p_node_key.
data: ld_node_text type lvc_value,
ls_sflight type sflight.
data : text128(128).
Set item-layout
concatenate ps_output-subgid ps_output-subopn into text128 separated by space.
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name.
ls_item_layout-style = cl_gui_column_tree=>style_default.
ld_node_text = text128.
append ls_item_layout to lt_item_layout.
Add node
call method gd_tree->add_node
exporting
i_relat_node_key = p_relate_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = ld_node_text
is_outtab_line = ps_output
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
ENDFORM. " add_ekko_node
*& Form add_ekpo_line
text
-->P_IT_OUTPUT1 text
-->P_LD_MOP_GID_KEY text
<--P_LD_MOP_OPN_KEY text
FORM add_ekpo_line USING Ps_OUTPUT1 like it_output1
value(p_relate_key)
CHANGING p_node_key.
data: ld_node_text type lvc_value,
ls_sflight type sflight.
data : text128(128).
concatenate ps_output1-srno ps_output1-movetype into text128 separated by space.
Set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = gd_tree->c_hierarchy_column_name.
ls_item_layout-style = cl_gui_column_tree=>style_default.
ld_node_text = text128.
append ls_item_layout to lt_item_layout.
Add node
call method gd_tree->add_node
exporting
i_relat_node_key = p_relate_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = ld_node_text
is_outtab_line = ps_output1
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
ENDFORM. " add_ekpo_line
*& Form change_toolbar
text
--> p1 text
<-- p2 text
FORM change_toolbar .
get toolbar control
call method gd_tree->get_toolbar_object
importing
er_toolbar = mr_toolbar.
check not mr_toolbar is initial.
add seperator to toolbar
call method mr_toolbar->add_button
exporting
fcode = ''
icon = ''
butn_type = cntb_btype_sep
text = ''
quickinfo = 'This is a Seperator'. "#EC NOTEXT
add Standard Button to toolbar (for Delete Subtree)
call method mr_toolbar->add_button
exporting
fcode = 'EXPORT' "Function code of button
icon = '@49@' "Icon ID (see )
butn_type = cntb_btype_button "Button type
text = '' "Button text
quickinfo = 'Download To Excel'. "Quick info text
add Dropdown Button to toolbar (for Insert Line)
call method mr_toolbar->add_button
exporting
fcode = 'INSERT_LC' "Function code of button
icon = '@17@' "Icon ID (see )
butn_type = cntb_btype_dropdown "Button type
text = '' "Button text
quickinfo = 'Insert Line'. "Quick info text
set event-handler for toolbar-control
data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
create object toolbar_event_receiver.
set handler toolbar_event_receiver->on_function_selected
for mr_toolbar.
set handler toolbar_event_receiver->on_toolbar_dropdown
for mr_toolbar.
ENDFORM. " change_toolbar
Edited by: Darshan Shah on Jan 2, 2008 1:31 PMGui patch was not available on my pc
-
Hi ,
I am having a problem with Hotspot <<removed_by_moderator>>
I need to Open up SE16 and need to skip the first screen of the Table 'ZLE_WH01' and display the selection screen with the MATNR passed from my ALV Report.
I tried using Call Transaction and Submit commands, but couldn't achive my target.
when I used SUBMIT and pass the MATNR Value to the SE16 selection screen for the corresponding Table, the value is appearing in the MATNR field of the Selection screen but the Execute button is not working.
When I try the Call Transaction Method, the value is not capturing in the 2nd screen. Table name is capturing in the first screen.
Kindly advice me how to resolve this issue.
Regards,
Srinivas
Edited by: Vijay Babu Dudla on Feb 25, 2009 11:08 PMFor se16
Use fm SE16N_INTERFACE
a® -
Background task problem with alv grid display
Hello !
I have a problem when executing my program in background.
In foreground I have no problem, my ALV appears. In the background I have a dump.
The current ABAP program "SAPLKKBL" had to be terminated because one of the statements could not be executed.
I use the function module 'REUSE_ALV_GRID_DISPLAY'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
i_callback_user_command = 'F533_USER_COMMAND'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = i_fgroup[]
i_save = 'X'
it_sort = gd_sort
i_buffer_active = ' '
i_callback_pf_status_set = 'F534_SET_PF_STATUS'
TABLES
t_outtab = mytab
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.
I don't understand where the problem is. Please help me.
Thank you.I love replying to old threads:
Try this link
http://scn.sap.com/people/prashant.patil12/blog/2007/02/20/displaying-alv-grid-in-background-job -
Is it possible to create a pop up screen with alv tree within it?
I was wondering whether it is possible to create a pop up screen where an ALV tree is within the pop up screen and the user may select a record from it..
is there a function module for such function?you may use class cl_gui_alv_tree and display it in a popup screen. Look at RSDEMO_DIALOGBOX_CONTROL program (popup + cl_gui_picture control), and you combine it with BCALV_TREE_04 (cl_gui_alv_tree) to replace cl_gui_picture. You may access all demos from menu SE38, Environment, Examples (and finally Controls Examples in your case)
-
TRIAL BALANCE WITH ALV TREE CONTROL
Hi Friends,
My manager wants to see trial balance with cost centers like ALV tree control display.
Does SAP have any Std trial balance report which can show cost centers also for accounts and activities within those cost centers.
Please help.
ThanksNelow message will appear and not possible technically
Output option ALV Tree Control: Parameter Scaling set to 0/0
Message no. FR098
Diagnosis
You selected output option ALV Tree Control. For technical reasons, only the value 0/0 is possible for the parameter Scaling.
System Response
Parameter Scaling set to the value 0/0.
Procedure
If you want to compare the program output for output options ALV Tree Control and Classical list, you have to also set the parameter Scaling to '0/0' when running the program with output option Classical list. -
Hi friends,
I have created one program with alv list, but i am unable to add one header and footer, also i have to add one logo to the program. Plese some one tell me a easy procedure to add a header, footer and also a logo. If you can show me one with example that would be very helpful.
This is my program, plz add the necessary parts.
*& Report Y_BOM2_ALV
REPORT y_bom2_alv LINE-SIZE 350 LINE-COUNT 350.
*& Include YINCLUDE1
TABLES : mast, stko, stpo.
TYPE-POOLS : slis.
DATA : BEGIN OF iall OCCURS 10,
matnr LIKE mast-matnr,
werks LIKE mast-werks,
stlan LIKE mast-stlan,
stlal LIKE mast-stlal,
stlst LIKE stko-stlst,
posnr LIKE stpo-posnr,
idnrk LIKE stpo-idnrk,
menge LIKE stpo-menge,
meins LIKE stpo-meins,
ausch LIKE stpo-ausch,
lgort LIKE stpo-lgort,
END OF iall.
DATA : i_repid LIKE sy-repid,
i_lines LIKE sy-tabix.
DATA : int_fcat TYPE slis_t_fieldcat_alv.
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE title1.
PARAMETER : p_werks LIKE mast-werks.
SELECT-OPTIONS : s_matnr FOR mast-matnr.
SELECTION-SCREEN END OF BLOCK a1.
INITIALIZATION.
title1(50) = ' Bill Of Material Input Screen '.
*& Include YINCLUDE2
START-OF-SELECTION.
SELECT mastmatnr mastwerks maststlan maststlal stko~stlst
stpoposnr stpoidnrk stpomenge stpomeins stpo~ausch
stpo~lgort INTO TABLE iall FROM stpo INNER JOIN stko ON
stpostlnr = stkostlnr INNER JOIN mast ON
stpostlnr = maststlnr WHERE mast~werks EQ
p_werks AND mast~matnr IN s_matnr.
IF sy-subrc <> 0 OR p_werks EQ ' ' OR s_matnr EQ ' '.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel = 'ERROR MESSAGE ( INPUT ERROR / WRONG INPUT ) '
textline1 = ' PLANT / MATERIAL Invalid or Empty '
textline2 = ' Plese enter plant no / material no again '
start_column = 20
start_row = 5.
EXIT.
ENDIF.
CLEAR i_lines.
DESCRIBE TABLE iall LINES i_lines.
IF i_lines LT 1.
WRITE: /
'No materials found.'.
EXIT.
ENDIF.
END-OF-SELECTION.
i_repid = sy-repid.
*& Include YINCLUDE3
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = i_repid
i_internal_tabname = 'IALL'
i_inclname = i_repid
CHANGING
ct_fieldcat = int_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: /
'Returncode',
sy-subrc,
'from FUNCTION REUSE_ALV_FIELDCATALOG_MERGE'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = i_repid
it_fieldcat = int_fcat
i_save = 'A'
TABLES
t_outtab = iall
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
WRITE: /
'Returncode',
sy-subrc,
'from FUNCTION REUSE_ALV_LIST_DISPLAY'.
ENDIF.Hi Tapodipta,
See below example and modify ur code according to ur requirement..
REPORT ZTEST_ALV_CHECK .
TYPE-POOLS: SLIS.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
END OF ITAB.
SELECT VBELN
POSNR
FROM VBAP
UP TO 20 ROWS
INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
x_events-NAME = SLIS_EV_END_OF_PAGE.
x_events-FORM = 'END_OF_PAGE'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
x_events-NAME = SLIS_EV_TOP_OF_PAGE.
x_events-FORM = 'TOP_OF_PAGE'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
x_events-NAME = slis_ev_end_of_list.
x_events-FORM = 'END_OF_LIST'.
APPEND x_events TO iT_EVENTS.
CLEAR x_events .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events
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.
FORM TOP_OF_PAGE.
* BREAK-POINT.
WRITE: / 'TOP_OF_PAGE'.
ENDFORM.
FORM END_OF_LIST.
* BREAK-POINT.
"here you can use this for footer
WRITE: / 'FOR FOOTER'.
ENDFORM.
FORM END_OF_PAGE.
* BREAK-POINT.
WRITE: / 'END_OF_PAGE'.
ENDFORM.
Go through the link as well..
Re: ALV Footer
Hope it will solve ur problem..
<b>Reward points if useful..</b>
Thanks & Regards
ilesh 24x7 -
Hi,
I am using alv grid, there is a problem with print, when i look at print preview it shows only 1 row and even the values in that row are incorrect.
Please help me solv the problem.
Thanks,
Sai.Here is the code
*& Form DISPLAY
text
FORM display.
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
*data : wa_fieldcat type slis_fieldcat_alv.
DATA : t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
DATA : cnt(3) TYPE c VALUE 0.
cnt = cnt + 1.
fieldcatalog-fieldname = 'XBLNR'.
fieldcatalog-seltext_m = 'Invoice No'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 8.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'BLDAT'.
fieldcatalog-seltext_m = 'Invoice Date'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 9.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
*CT3 No.
cnt = cnt + 1.
fieldcatalog-fieldname = 'SGTXT'.
fieldcatalog-seltext_m = 'CT3 No'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 8.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'MBLNR'.
fieldcatalog-seltext_m = 'GRR No.'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 10.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'BUDAT'.
fieldcatalog-seltext_m = 'GRR DATE'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 9.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'NAME1'.
fieldcatalog-seltext_m = 'Vendor Name'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 30.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material No'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 18.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-no_zero = 'X'.
fieldcatalog-key = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
cnt = cnt + 1.
fieldcatalog-fieldname = 'MAKTX'.
fieldcatalog-seltext_m = 'Matdesc'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 30.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-key = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
**Excise Duty
cnt = cnt + 1.
fieldcatalog-fieldname = 'EDUTY'.
fieldcatalog-seltext_m = 'EXCISE DUTY '.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 30.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
*Excise Duty
cnt = cnt + 1.
fieldcatalog-fieldname = 'DBDTY'.
fieldcatalog-seltext_m = 'DEBIT DUTY '.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 12.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
*Excise Duty
cnt = cnt + 1.
fieldcatalog-fieldname = 'CRDTY'.
fieldcatalog-seltext_m = 'CREDIT DUTY '.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 12.
fieldcatalog-tabname = 'it_final'.
fieldcatalog-do_sum = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
*Credit Date
cnt = cnt + 1.
fieldcatalog-fieldname = 'CRDAT'.
fieldcatalog-seltext_m = 'Cr. DATE'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 9.
fieldcatalog-tabname = 'it_final'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
*Closing Balance
cnt = cnt + 1.
fieldcatalog-fieldname = 'CL_BALANCE'.
fieldcatalog-seltext_m = 'BALANCE AMT'.
fieldcatalog-col_pos = cnt.
fieldcatalog-outputlen = 15.
fieldcatalog-tabname = 'it_final1'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_top_of_page = 'TOP-OF-PAGE'
it_fieldcat = fieldcatalog[]
i_save = 'X'
TABLES
t_outtab = it_final[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "DISPLAY
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,
v_date1(10),
v_date2(10).
Title
wa_header-typ = 'H'.
wa_header-info = 'B-17 BOND REGISTER - INDIGENOUS RAW MATERIALS'.
APPEND wa_header TO t_header.
CLEAR wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = ' Report generated on 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.
opening balance
wa_header-typ = 'S'.
wa_header-key = ' Opening Amount: '.
wa_header-info = gv_op_balance. "Opening amount
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'.
ENDFORM. "top-of-page
Maybe you are looking for
-
Can not update to Camera Raw 6.7
I can't open Canon Raw Files so I tried to update Camera Raw in Photoshop CS5. On screen I see the updating process but ultimately I get a message saying: "There was an error downloading this update. Please quit and try again later" I've tried severa
-
My old address book is missing
I had to replace my modem & when bought my computer back up address book was empty!! How do I get my addresses back?
-
ORA-01000 while EXPORT DATABASE - 1.5.1 MAIN 5440
I am using the following version of Sql Developer Oracle SQL Developer 1.5.1 Version 1.5.1 Build MAIN-5440 IDE Version: 11.1.1.0.22.49.42 Product ID: oracle.sqldeveloper Product Version: 11.1.1.54.40 I tried to export a database to a file but I got t
-
Can't install Flash Player 64 Bit
I'm using Firefox on Windows 7. When I go to download Adobe Flash Player it detects that I have 64 bit but when I download it only gives me 32 bit version. Every 64 bit version I try to download seems to fail and needless to say it is starting to fru
-
TS3899 unable to open my mail messages
How do open your mail and view the entire message?