Create fieldcatalog
Hi folks,
I need to create the field catlog such that i can see column 2 of my grid display to be divided into 4 new columns.
it's like...column1 column2 column 7 column 8
c3 c4 c5 c6
can i do this in alv report....
thanks in advance..
Hi Singh,
Try this way.
DATA: BEGIN OF it_data OCCURS 0,
header1 TYPE char50,
header2 TYPE char50,
color TYPE char3,
arbgb TYPE t100-arbgb,
msgnr TYPE t100-msgnr,
text TYPE t100-text,
END OF it_data.
*ALV Declarations
TYPE-POOLS:slis.
TYPES:
ty_fieldcat TYPE slis_fieldcat_alv,
ty_events TYPE slis_alv_event,
ty_layout TYPE slis_layout_alv.
DATA:
wa_fieldcat TYPE ty_fieldcat,
wa_events TYPE ty_events,
wa_layout TYPE ty_layout.
DATA:
it_events TYPE STANDARD TABLE OF ty_events,
it_fieldcat TYPE STANDARD TABLE OF ty_fieldcat.
DATA:
g_program TYPE sy-repid.
START-OF-SELECTION.
SELECT * FROM t100 INTO CORRESPONDING FIELDS OF TABLE it_data
UP TO 20 ROWS WHERE sprsl = sy-langu.
LOOP AT it_data.
IF sy-tabix > 10.
it_data-color = 'C31'.
MODIFY it_data INDEX sy-tabix.
ENDIF.
ENDLOOP.
*Fieldcatalog.
PERFORM fieldcatalog
USING:
1 1 'HEADER1' 'IT_DATA' 'HEADER1',
1 2 'HEADER2' 'IT_DATA' 'HEADER2',
2 3 'COLOR' 'IT_DATA' 'COLOR',
2 4 'ARBGB' 'IT_DATA' 'ARBGB',
2 5 'MSGNR' 'IT_DATA' 'MSGNR',
2 6 'TEXT' 'IT_DATA' 'TEXT'.
wa_layout-info_fieldname = 'COLOR'.
g_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_program
is_layout = wa_layout
it_fieldcat = it_fieldcat
it_events = it_events
TABLES
t_outtab = it_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form FIELDCATALOG
FORM fieldcatalog USING row_pos col_pos field table f_txt.
wa_fieldcat-row_pos = row_pos.
wa_fieldcat-col_pos = col_pos.
wa_fieldcat-fieldname = field.
wa_fieldcat-tabname = table.
wa_fieldcat-seltext_l = f_txt.
IF field = 'HEADER1'.
wa_fieldcat-outputlen = '200'.
ENDIF.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " FIELDCATALOG
Thanks
Venkat.O
Similar Messages
-
Create Fieldcatalog based on internal table (dynamic)
Hi ,
Is there a way to create Create Fieldcatalog based on internal table (dynamic).
while creating fieldcat we usually many give the fields "fieldname" and "tabname".
is there a way to get the fieldname from the main table ?
Eg ..
I have i_tab as the output table. It has 3 fields "a", "b" and "c"
Now when i created fieldcat manually ( in case i cannot use fieldcat_merge FM) , i have to append 3 throws in fieldcat table.
These rows would have "a", "b" and "c".
Now i want to know if there is a way in which i can find "a" "b" and "c" fieldnames from the createdd internal tables.
i can then append the same to fieldcat.Hi Anuj,
I created a FORM routine for this 4 or 5 years ago and made a couple of refinements. Meanwhile it has prooved as very useful.
The disadvantag is that it creates the oldfashioned field catalog for the function calls. But I already used it for OO fieldcatalog of LVC type - there is a function module for this but I do not have the name here.
You need the two forms (second called in first) to build the field catalog from any internal table that can be used for ALV display.
*& Form ALV_FIELDCAT_FOR_ITAB
* Feldkatalog from (arbitrary) internal Table (c) Clemens Li
* * build field catalog from type description
form alv_fieldcat_for_itab "#EC *
tables pt_outtab type table "#EC *
changing pt_alv_fieldcat type slis_t_fieldcat_alv."#EC *
data:
lv_desc type sydes_desc,
ls_alv_fieldcat type slis_fieldcat_alv,
lv_longfield type text80."CRM<=R/3 fname.
field-symbols:
<typeinfo> type sydes_typeinfo,
<nameinfo> type sydes_nameinfo.
describe field pt_outtab into lv_desc. "#EC *
loop at lv_desc-types
assigning <typeinfo>
where not idx_name is initial
and table_kind is initial "no entries for deep table like color
and back = 1. "top-level-entries only.
read table lv_desc-names index <typeinfo>-idx_name
assigning <nameinfo>.
check <nameinfo>-name <> 'INCLUDE'.
ls_alv_fieldcat-fieldname = <nameinfo>-name.
while not <nameinfo>-continue is initial.
add 1 to <typeinfo>-idx_name.
read table lv_desc-names index <typeinfo>-idx_name
assigning <nameinfo>.
concatenate
ls_alv_fieldcat-fieldname
<nameinfo>-name
into ls_alv_fieldcat-fieldname.
endwhile." not <nameinfo>-continue IS INITIAL.
read table lv_desc-names index <typeinfo>-idx_help_id
assigning <nameinfo>.
if sy-subrc = 0.
* Caution: Help-ID may be Tablename-Fieldname and thus longer
* than 30 Chars; ls_alv_fieldcat-rollname is 30 Chars only
ls_alv_fieldcat-rollname = <nameinfo>-name.
lv_longfield = <nameinfo>-name.
while not <nameinfo>-continue is initial.
add 1 to <typeinfo>-idx_help_id.
read table lv_desc-names index <typeinfo>-idx_help_id
assigning <nameinfo>.
concatenate
lv_longfield
<nameinfo>-name
into lv_longfield.
endwhile." not lv_desc-continue is initial.
* help id may be data element or <table>-<field>
if lv_longfield ca '-'.
* get data type for table field
perform get_rollname_4_tabfield
using lv_longfield changing ls_alv_fieldcat.
endif." lv_longfield ca '-'.
else.
* No Help-ID: Use Fieldname as text
ls_alv_fieldcat-seltext_s =
ls_alv_fieldcat-seltext_m =
ls_alv_fieldcat-seltext_l =
ls_alv_fieldcat-reptext_ddic =
<nameinfo>-name.
endif." sy-subrc = 0.
* Starting 4.7: get edit mask
if not <typeinfo>-idx_edit_mask is initial.
read table lv_desc-names index <typeinfo>-idx_edit_mask
assigning <nameinfo>.
ls_alv_fieldcat-edit_mask = <nameinfo>-name.
if not <nameinfo>-continue is initial.
add 1 to <typeinfo>-idx_edit_mask.
read table lv_desc-names index <typeinfo>-idx_edit_mask
assigning <nameinfo>.
concatenate
ls_alv_fieldcat-edit_mask
<nameinfo>-name
into ls_alv_fieldcat-edit_mask.
endif." not <nameinfo>-continue IS INITIAL.
endif." not <typeinfo>-IDX_EDIT_MASK is initial.
* assign length, output length and decimals
ls_alv_fieldcat-intlen = <typeinfo>-length.
ls_alv_fieldcat-outputlen = <typeinfo>-output_length.
ls_alv_fieldcat-decimals_out = <typeinfo>-decimals.
ls_alv_fieldcat-inttype = <typeinfo>-type.
append ls_alv_fieldcat to pt_alv_fieldcat.
clear: "prevent anything 2 B taken for subsequent fields
ls_alv_fieldcat.
endloop." at lv_desc-types where not IDX_NAME is in initial.
endform. " ALV_FIELDCAT_FOR_ITAB
*& Form get_rollname_4_tabfield
* Get Data type for Table field
form get_rollname_4_tabfield
using p_fname type text80 ""CRM<=R/3 fname
changing p_alv_fieldcat type slis_fieldcat_alv.
field-symbols:
<dfies> type dfies.
data:
lv_tabname type tabname,
lt_dfies type table of dfies,
lv_fieldname type fieldname.
split p_fname at '-'
into lv_tabname lv_fieldname.
clear p_alv_fieldcat-rollname.
call function 'DDIF_FIELDINFO_GET'
exporting
tabname = lv_tabname
fieldname = lv_fieldname
* LANGU = SY-LANGU
* LFIELDNAME = ' '
* ALL_TYPES = ' '
* IMPORTING
* X030L_WA =
* DDOBJTYPE =
* DFIES_WA =
* LINES_DESCR =
tables
dfies_tab = lt_dfies
* FIXED_VALUES =
exceptions
not_found = 1
internal_error = 2
others = 3
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
read table lt_dfies assigning <dfies> index 1.
p_alv_fieldcat-rollname = <dfies>-rollname.
* Und wenn keinerlei Twexte gepflegt sind?
if <dfies>-reptext is initial and
<dfies>-scrtext_s is initial and
<dfies>-scrtext_m is initial and
<dfies>-scrtext_l is initial.
* No Text: Use Fieldname as text
p_alv_fieldcat-seltext_s =
p_alv_fieldcat-seltext_m =
p_alv_fieldcat-seltext_l =
p_alv_fieldcat-reptext_ddic =
p_alv_fieldcat-fieldname.
endif." <dfies>-reptext IS INITIAL AND
endif.
endform. " get_rollname_4_tabfield
Regards,
Clemens -
To create a deep structure for dynamic internal table.
Hello
My ALV has fields which are defined dynamically during execution.
so, i did it in the following way,
Declared Field symbolds, DREF and fieldcatalog as,
FIELD-SYMBOLS: <t_dyntable> TYPE STANDARD TABLE,
<fs_dyntable>.
DATA: dref_dyntab TYPE REF TO data,
dref_dynwa TYPE REF TO data.
DATA: ts_fieldcatalog TYPE lvc_t_fcat.
DATA: wa_fieldcatalog TYPE lvc_s_fcat.
Updated Fieldcatalog dynamically as,
*function module to read segment structure
CALL FUNCTION 'SEGMENT_READ'
EXPORTING
segmenttyp = v_segment_name
TABLES
segmentstructure = ts_seg_structure
EXCEPTIONS
no_authority = 1
segment_not_existing = 2
OTHERS = 3.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN '1'.
MESSAGE e024.
STOP.
WHEN '2'.
MESSAGE e025 WITH v_segment_name.
STOP.
WHEN OTHERS.
MESSAGE e023.
ENDCASE.
ENDIF.
*FETCH FIELDS FROM STRUCTURE OF SEGMENT AND CREATE FIELDCATALOG FOR
EACH FIELD OF SEGMENT (DYNAMIC FIELD CATALOG)
LOOP AT ts_seg_structure INTO wa_seg_structure.
ADD 1 TO v_counter.
wa_fieldcatalog-fieldname = wa_seg_structure-fieldname.
wa_fieldcatalog-col_pos = v_counter.
wa_fieldcatalog-ref_table = wa_seg_structure-segtyp.
APPEND wa_fieldcatalog TO ts_fieldcatalog.
CLEAR wa_fieldcatalog.
ENDLOOP.
and generated dynamic internal table using fieldcatalog as,
*--Method to get the structure of table using fieldcatalog.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ts_fieldcatalog
IMPORTING
*--Variable of type REF TO DATA.
ep_table = dref_dyntab.
IF sy-subrc <> 0.
MESSAGE e023.
ENDIF.
*--Dynamic internal tables required when show segments selected
IF p_selseg IS NOT INITIAL.
ASSIGN dref_dyntab->* TO <t_dyntable>.
*--Create dynamic work area and assign to FS
CREATE DATA dref_dynwa LIKE LINE OF <t_dyntable>.
ASSIGN dref_dynwa->* TO <fs_dyntable>.
And then i populated this <t_dyntable> which is being passed as data-table to method
CL_GUI_ALV_GRID => SET_TABLE_FOR_FIRST_DISPLAY
for ALV grid Display along with above used filedcatalog ts_fieldcatalog.
Things are fine till here, but now i have the requirement to edit selected rows of the ALV display..
As you might be aware, we need a field
TS_STYLEROW TYPE lvc_t_styl, (i.e, a field of type 'h' and we can say as an internal table inside an internal table or else as a deep structure)
in the output internal table <t_dyntable> to meet our requirement.
My issue is about declaring one such field of type 'h' in this dynamically created internal table ''<t_dyntable>".
I tried in the following way by adding one such field to fieldcatalog :
*Field for Styling
ADD 1 TO v_counter.
wa_fieldcatalog-fieldname = 'TS_STYLEROW'.
wa_fieldcatalog-tabname = 'TS_STYLE'.
wa_fieldcatalog-col_pos = v_counter.
wa_fieldcatalog-no_out = 'X'.
wa_fieldcatalog-inttype = 'h'. " I even mentioned this
APPEND wa_fieldcatalog TO ts_fieldcatalog.
CLEAR wa_fieldcatalog.
But this is creating a field of type 'C' in the table <t_dyntable> instead of what i was expecting
Guyz and respected,
Please advice me with the solution or ur ideas....
Note : The overall requirement is create a deep structure for dynamically generated internal table.
Your help is highly appreciated and unforgettable..!!!!!!!hi,
Dynamic append
Dynamic internal table
Dynamic internal table
dynamic columns in ALV
Variant for dynamic selection
thanks -
How to Create Field Catalogs (More than one Source Table)
Hi Data Archiving Experts,
Could you please help me how to create the Field Catalogs (More than one Source Table). If any one is having example that will help.
My scenario:
Currently we are archiving on CRM Data archiving project. We are facing one issue on creating field catalog with more than one source table.
Ex: ST -- BP1
BP2
BP3
ST info store in one table and BP1 -- BP 3 info sotre in another table. with current field catalog we are getting ST -- BP1. Our requirment is we need to show the ST -- BP3 How we can achive this.
Regards,
SriniHi,
I don't think its possible to create fieldcatalog for different tables,
but if you want to do so create a dummy table which has all the fields which you want in fieldcatalog.
populate the data from different table to that dummy table
then create fieldcatalog for that table and pass it in the function module...
Regards,
Siddarth -
How to create Criterian For more than one table
Hi,
I have one problem how to create criteria for more than one table in that using one criteria hot to get the values from database in that more than onetable for getting these values .Please send me the exampke code.
reagrds,
raghuHi,
I don't think its possible to create fieldcatalog for different tables,
but if you want to do so create a dummy table which has all the fields which you want in fieldcatalog.
populate the data from different table to that dummy table
then create fieldcatalog for that table and pass it in the function module...
Regards,
Siddarth -
How to create tree structure in abap
hi,
I am mohan. Please send the how to create the tree structure. how to insert the child nodes in root node. actually our requirement is we have list transaction codes. We are planning to put all transaction codes in tree level.
please tell me how to do the program in tree structure.Hi Mohan,
Check the following program on ALV tree.
REPORT zalvtree.
CLASS cl_gui_column_tree DEFINITION LOAD.
CLASS cl_gui_cfw DEFINITION LOAD.
DATA: go_grid TYPE REF TO cl_gui_alv_grid.
DATA: ro_grid TYPE REF TO cl_gui_alv_grid.
DATA tree1 TYPE REF TO cl_gui_alv_tree.
DATA mr_toolbar TYPE REF TO cl_gui_toolbar.
DATA : gt_checked TYPE lvc_t_chit,
gs_checked LIKE LINE OF gt_checked,
l_part_key TYPE lvc_nkey,
gt_node TYPE lvc_s_chit-nodekey.
INCLUDE <icon>.
INCLUDE zamit_alv_tree_toolbar_event.
INCLUDE zbcalv_tree_event_receiver.
*DATA: toolbar_event_receiver TYPE REF TO lcl_toolbar_event_receiver.
DATA: gt_sflight TYPE sflight OCCURS 0, "Output-Table
gt_fieldcatalog TYPE lvc_t_fcat, "Fieldcatalog
ok_code LIKE sy-ucomm. "OK-Code
START-OF-SELECTION.
END-OF-SELECTION.
CALL SCREEN 100.
*& Module PBO OUTPUT
process before output
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
IF tree1 IS INITIAL.
PERFORM init_tree.
else.
CALL METHOD me->refresh_table_display
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.
ENDIF.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PBO OUTPUT
*& Module PAI INPUT
process after input
MODULE pai INPUT.
CASE ok_code.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
PERFORM exit_program.
*mrk
WHEN 'MOVE'.
PERFORM check_selection.
WHEN 'MBAK'.
PERFORM another_selection.
WHEN 'ALL'.
PERFORM select_all.
WHEN 'CLEAR'.
PERFORM clear_all.
WHEN 'DELETE'.
PERFORM delete_all.
WHEN 'EXPAND'.
PERFORM expand_all.
WHEN 'COLLAPSE'.
PERFORM collapse_all.
WHEN OTHERS.
CALL METHOD cl_gui_cfw=>dispatch.
ENDCASE.
CLEAR ok_code.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PAI INPUT
*& Form build_fieldcatalog
build fieldcatalog for structure sflight
FORM build_fieldcatalog.
get fieldcatalog
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
ct_fieldcat = gt_fieldcatalog.
change fieldcatalog
DATA: ls_fieldcatalog TYPE lvc_s_fcat.
LOOP AT gt_fieldcatalog INTO ls_fieldcatalog.
CASE ls_fieldcatalog-fieldname.
WHEN 'CARRID' OR 'CONNID' OR 'FLDATE'.
ls_fieldcatalog-no_out = 'X'.
ls_fieldcatalog-key = ''.
WHEN 'PRICE' OR 'SEATSOCC' OR 'SEATSMAX' OR 'PAYMENTSUM'.
ls_fieldcatalog-do_sum = 'X'.
ENDCASE.
MODIFY gt_fieldcatalog FROM ls_fieldcatalog.
ENDLOOP.
ENDFORM. " build_fieldcatalog
*& Form build_hierarchy_header
build hierarchy-header-information
-->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
FORM build_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'This is the Hierarchy Header !'. "#EC NOTEXT
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
ENDFORM. " build_hierarchy_header
*& Form exit_program
free object and leave program
FORM exit_program.
CALL METHOD tree1->free.
LEAVE PROGRAM.
ENDFORM. " exit_program
*& Form check_selection
text
--> p1 text
<-- p2 text
FORM check_selection .
create container for alv-tree
DATA: l_tree_container_name(30) TYPE c,
l_custom_container2 TYPE REF TO cl_gui_custom_container.
l_tree_container_name = 'TREE2'.
IF sy-batch IS INITIAL.
CREATE OBJECT l_custom_container2
EXPORTING
container_name = l_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'. "#EC NOTEXT
ENDIF.
ENDIF.
CREATE OBJECT go_grid
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
i_parent = l_custom_container2
I_APPL_EVENTS = space
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others = 5
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
PERFORM load_data_into_grid.
*data: lt_nodes type LVC_T_NKEY,
ls_nodes like line of lt_nodes,
ls_checked like line of gt_checked.
*loop at gt_checked into ls_checked.
ls_nodes = ls_checked-nodekey.
append ls_nodes to lt_nodes.
*endloop.
*CALL METHOD tree1->unselect_nodes
EXPORTING
it_node_key = lt_nodes
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
DP_ERROR = 2
MULTIPLE_NODE_SELECTION_ONLY = 3
ERROR_IN_NODE_KEY_TABLE = 4
FAILED = 5
others = 6
*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. " check_selection
*& Form another_selection
text
--> p1 text
<-- p2 text
FORM another_selection .
create container for alv-tree
DATA: l_tree_container_name(30) TYPE c,
l_custom_container2 TYPE REF TO cl_gui_custom_container.
l_tree_container_name = 'TREE2'.
IF sy-batch IS INITIAL.
CREATE OBJECT l_custom_container2
EXPORTING
container_name = l_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'. "#EC NOTEXT
ENDIF.
ENDIF.
CREATE OBJECT ro_grid
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
i_parent = l_custom_container2
I_APPL_EVENTS = space
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others = 5
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
PERFORM load_data_into_grid1.
DATA: lt_unsel TYPE lvc_t_nkey,
ls_unsel LIKE LINE OF lt_unsel.
LOOP AT gt_checked INTO gs_checked.
ls_unsel = gs_checked-nodekey.
APPEND ls_unsel TO lt_unsel.
ENDLOOP.
CALL METHOD tree1->unselect_nodes
EXPORTING
it_node_key = lt_unsel
EXCEPTIONS
cntl_system_error = 1
dp_error = 2
multiple_node_selection_only = 3
error_in_node_key_table = 4
failed = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CALL METHOD tree1->unselect_all
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
FAILED = 2
others = 3
*IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
DATA: text TYPE lvc_value,
item TYPE lvc_t_layi,
node TYPE lvc_s_layn,
inode TYPE lvc_nkey.
FIELD-SYMBOLS: <wa> TYPE ANY.
DATA: l_dref_wa LIKE LINE OF gt_sflight.
ASSIGN l_dref_wa TO <wa>.
READ TABLE gt_checked INTO gs_checked WITH KEY nodekey = 3.
inode = gs_checked-nodekey.
CALL METHOD tree1->get_outtab_line
EXPORTING
i_node_key = inode
IMPORTING
e_outtab_line = <wa>
e_node_text = text
et_item_layout = item
es_node_layout = node
EXCEPTIONS
node_not_found = 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.
DATA: lt_layout TYPE lvc_t_laci,
layout LIKE LINE OF lt_layout.
layout-chosen = 'X'.
layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-chosen = 'X'. "To give default checkbox value checked
layout-class = cl_gui_column_tree=>item_class_checkbox.
layout-editable = 'X'.
LAYOUT-U_CHOSEN = 'X'.
APPEND layout TO lt_layout.
CALL METHOD tree1->change_node
EXPORTING
i_node_key = inode
i_outtab_line = <wa>
IS_NODE_LAYOUT =
it_item_layout = lt_layout
I_NODE_TEXT =
I_U_NODE_TEXT =
EXCEPTIONS
node_not_found = 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.
*CALL METHOD tree1->change_item
EXPORTING
i_node_key = inode
i_fieldname = gs_checked-FIELDNAME
i_data = <wa>
I_U_DATA = ''
IS_ITEM_LAYOUT = layout
EXCEPTIONS
NODE_NOT_FOUND = 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.
*loop at lt_unsel into ls_unsel.
*CALL METHOD tree1->update_checked_items
EXPORTING
i_node_key = ls_unsel
i_fieldname = ''
i_checked = ''
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.
*endif.
ENDFORM. " another_selection
*& Form select_all
text
--> p1 text
<-- p2 text
FORM select_all .
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
*********Check box modifications.
CALL METHOD tree1->delete_all_nodes
EXCEPTIONS
failed = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
clear l_part_key.
create hierarchy
PERFORM create_hierarchy USING c_x.
CALL METHOD tree1->expand_node
EXPORTING
i_node_key = gt_node
I_LEVEL_COUNT = 1
i_expand_subtree = 'X'
EXCEPTIONS
failed = 1
illegal_level_count = 2
cntl_system_error = 3
node_not_found = 4
cannot_expand_leaf = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
add own functioncodes to the toolbar
perform change_toolbar.
register events
perform register_events.
adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " select_all
*& Form clear_all
text
--> p1 text
<-- p2 text
FORM clear_all .
CONSTANTS: c_x(1) TYPE c VALUE space.
*********Check box modifications.
CALL METHOD tree1->delete_all_nodes
EXCEPTIONS
failed = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
create hierarchy
PERFORM create_hierarchy USING c_x.
CALL METHOD tree1->expand_node
EXPORTING
i_node_key = gt_node
I_LEVEL_COUNT = 1
i_expand_subtree = 'X'
EXCEPTIONS
failed = 1
illegal_level_count = 2
cntl_system_error = 3
node_not_found = 4
cannot_expand_leaf = 5
OTHERS = 6
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. " clear_all
*& Form delete_all
text
--> p1 text
<-- p2 text
FORM delete_all .
*********Check box modifications.
CALL METHOD tree1->delete_all_nodes
EXCEPTIONS
failed = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " delete_all
*& Form expand_all
text
--> p1 text
<-- p2 text
FORM expand_all .
CALL METHOD tree1->expand_node
EXPORTING
i_node_key = gt_node
I_LEVEL_COUNT = 1
i_expand_subtree = 'X'
EXCEPTIONS
failed = 1
illegal_level_count = 2
cntl_system_error = 3
node_not_found = 4
cannot_expand_leaf = 5
OTHERS = 6
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. " expand_all
*& Form collapse_all
text
--> p1 text
<-- p2 text
FORM collapse_all .
CALL METHOD tree1->collapse_all_nodes
EXCEPTIONS
failed = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " collapse_all
*& Form load_data_into_grid
text
--> p1 text
<-- p2 text
FORM load_data_into_grid .
DATA:
For parameter IS_VARIANT
l_layout TYPE disvariant,
gs_layout TYPE lvc_s_layo.
DATA gi_sflight TYPE TABLE OF zsflight.
Load data into the grid and display them
l_layout-report = sy-repid.
gs_layout-grid_title = 'Amits Test Program'.
gs_layout-sel_mode = 'A'.
SELECT *
FROM zsflight
INTO TABLE gi_sflight.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
is_layout = gs_layout
is_variant = l_layout
i_save = 'A'
CHANGING
it_outtab = gi_sflight.
ENDFORM. " load_data_into_grid
*& Form load_data_into_grid
text
--> p1 text
<-- p2 text
FORM load_data_into_grid1.
DATA:
For parameter IS_VARIANT
l_layout TYPE disvariant,
gs_layout TYPE lvc_s_layo.
DATA gi_sflight TYPE TABLE OF zapempl.
Load data into the grid and display them
l_layout-report = sy-repid.
gs_layout-grid_title = 'Rams Test Program'.
gs_layout-sel_mode = 'A'.
SELECT *
FROM zapempl
INTO TABLE gi_sflight.
CALL METHOD ro_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'ZAPEMPL'
is_layout = gs_layout
is_variant = l_layout
i_save = 'A'
CHANGING
it_outtab = gi_sflight.
ENDFORM. " load_data_into_grid1
*& Form build_header
build table for html_header
--> p1 text
<-- p2 text
FORM build_comment USING
pt_list_commentary TYPE slis_t_listheader
p_logo TYPE sdydo_value.
DATA: ls_line TYPE slis_listheader.
LIST HEADING LINE: TYPE H
CLEAR ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'ALV-tree-demo: flight-overview'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
STATUS LINE: TYPE S
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'valid until'. "#EC NOTEXT
ls_line-info = 'January 29 1999'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
ls_line-key = 'time'.
ls_line-info = '2.00 pm'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
ACTION LINE: TYPE A
CLEAR ls_line.
ls_line-typ = 'A'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'actual data'. "#EC NOTEXT
APPEND ls_line TO pt_list_commentary.
p_logo = 'ENJOYSAP_LOGO'.
ENDFORM. "build_comment
*& Form create_hierarchy
text
--> p1 text
<-- p2 text
FORM create_hierarchy USING p_x.
DATA: ls_sflight TYPE sflight,
lt_sflight TYPE sflight OCCURS 0.
get data
SELECT * FROM sflight INTO TABLE lt_sflight
UP TO 200 ROWS .
SORT lt_sflight BY carrid connid fldate.
add data to tree
DATA: l_carrid_key TYPE lvc_nkey,
l_connid_key TYPE lvc_nkey,
l_last_key TYPE lvc_nkey.
l_part_key TYPE lvc_nkey
PERFORM add_carrid_line USING ls_sflight
CHANGING l_part_key.
gt_node = l_part_key.
LOOP AT lt_sflight INTO ls_sflight.
ON CHANGE OF ls_sflight-carrid.
PERFORM add_carrid_line USING ls_sflight
l_part_key
CHANGING l_carrid_key.
PERFORM add_connid_line USING ls_sflight
l_carrid_key
CHANGING l_connid_key.
PERFORM add_complete_line USING ls_sflight
l_connid_key
p_x
CHANGING l_last_key.
CONTINUE.
ENDON.
ON CHANGE OF ls_sflight-connid.
PERFORM add_connid_line USING ls_sflight
l_carrid_key
CHANGING l_connid_key.
PERFORM add_complete_line USING ls_sflight
l_connid_key
p_x
CHANGING l_last_key.
CONTINUE.
ENDON.
PERFORM add_complete_line USING ls_sflight
l_connid_key
p_x
CHANGING l_last_key.
ENDLOOP.
calculate totals
CALL METHOD tree1->update_calculations.
this method must be called to send the data to the frontend
CALL METHOD tree1->frontend_update.
ENDFORM. " create_hierarchy
*& Form add_carrid_line
add hierarchy-level 1 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_carrid_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_sflight TYPE sflight.
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 = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
APPEND ls_item_layout TO lt_item_layout.
add node
l_node_text = ps_sflight-carrid.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_carrid_line
*& Form add_connid_line
add hierarchy-level 2 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_connid_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_sflight TYPE sflight.
set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-t_image = '@3Y@'.
ls_item_layout-style =
cl_gui_column_tree=>style_intensified.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
APPEND ls_item_layout TO lt_item_layout.
add node
l_node_text = ps_sflight-connid.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_connid_line
*& Form add_cmplete_line
add hierarchy-level 3 to tree
-->P_LS_SFLIGHT sflight
-->P_RELEATKEY relatkey
<-->p_node_key new node-key
FORM add_complete_line USING ps_sflight TYPE sflight
p_relat_key TYPE lvc_nkey
p_x
CHANGING p_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value.
set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-chosen = p_x. "To give default checkbox value checked
ls_item_layout-class = cl_gui_column_tree=>item_class_checkbox.
ls_item_layout-editable = 'X'.
APPEND ls_item_layout TO lt_item_layout.
l_node_text = ps_sflight-fldate.
CALL METHOD tree1->add_node
EXPORTING
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = ps_sflight
i_node_text = l_node_text
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = p_node_key.
ENDFORM. " add_complete_line
*& Form register_events
text
--> p1 text
<-- p2 text
FORM register_events.
define the events which will be passed to the backend
DATA: lt_events TYPE cntl_simple_events,
l_event TYPE cntl_simple_event.
define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
APPEND l_event TO lt_events.
CALL METHOD tree1->set_registered_events
EXPORTING
events = lt_events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC NOTEXT
ENDIF.
set Handler
DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
CREATE OBJECT l_event_receiver.
SET HANDLER l_event_receiver->handle_node_ctmenu_request
FOR tree1.
SET HANDLER l_event_receiver->handle_node_ctmenu_selected
FOR tree1.
SET HANDLER l_event_receiver->handle_item_ctmenu_request
FOR tree1.
SET HANDLER l_event_receiver->handle_item_ctmenu_selected
FOR tree1.
SET HANDLER l_event_receiver->handle_checkbox_change FOR tree1.
ENDFORM. " register_events
*& Form change_toolbar
text
--> p1 text
<-- p2 text
FORM change_toolbar.
DATA: toolbar_event_receiver TYPE REF TO lcl_toolbar_event_receiver.
get toolbar control
CALL METHOD tree1->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 = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
add Dropdown Button to toolbar (for Insert Line)
CALL METHOD mr_toolbar->add_button
EXPORTING
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
set event-handler for toolbar-control
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
*& Form init_tree
text
--> p1 text
<-- p2 text
FORM init_tree.
create fieldcatalog for structure sflight
PERFORM build_fieldcatalog.
create container for alv-tree
DATA: l_tree_container_name(30) TYPE c,
l_custom_container TYPE REF TO cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
IF sy-batch IS INITIAL.
CREATE OBJECT l_custom_container
EXPORTING
container_name = l_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'. "#EC NOTEXT
ENDIF.
ENDIF.
create tree control
CREATE OBJECT tree1
EXPORTING
parent = l_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_multiple "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'. "#EC NOTEXT
ENDIF.
create Hierarchy-header
DATA l_hierarchy_header TYPE treev_hhdr.
PERFORM build_hierarchy_header CHANGING l_hierarchy_header.
create info-table for html-header
DATA: lt_list_commentary TYPE slis_t_listheader,
l_logo TYPE sdydo_value.
PERFORM build_comment USING
lt_list_commentary
l_logo.
repid for saving variants
DATA: ls_variant TYPE disvariant.
ls_variant-report = sy-repid.
create emty tree-control
CALL METHOD tree1->set_table_for_first_display
EXPORTING
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
CHANGING
it_outtab = gt_sflight "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
CONSTANTS: c_s(1) TYPE c VALUE space.
create hierarchy
PERFORM create_hierarchy USING c_s.
add own functioncodes to the toolbar
PERFORM change_toolbar.
register events
PERFORM register_events.
adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " init_tree
Award points if found useful.
Regards
Indrajit -
Column Heading are not displayed in ALV Report using CL_SALV_DISPLAY?
Hi,
I am using CL_SALV_DISPLAY class to display data. I Created an Internal Table Dynamically based fieldcatalog which was prepared based data at run time. When i displayed data using CL_SALC_DISPALY data is display in output but column headings are not displayed.
can anyone suggest me how to display heading in ALV using CL_SALV_DISPLAY class, My code is
CLASS lcl_report DEFINITION
CLASS lcl_report DEFINITION.
PUBLIC SECTION.
METHODS:
display IMPORTING l_table TYPE string
l_fcat TYPE string.
ENDCLASS. "lcl_report DEFINITION
CLASS lcl_report IMPLEMENTATION
CLASS lcl_report IMPLEMENTATION.
METHOD display.
DATA: gr_table TYPE REF TO cl_salv_table.
DATA: gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table,
ls_fcat TYPE slis_fieldcat_alv.
DATA: gr_display TYPE REF TO cl_salv_display_settings.
DATA: l_o_functions TYPE REF TO cl_salv_functions_list,
l_field TYPE string.
FIELD-SYMBOLS : <fs_table> TYPE STANDARD TABLE,
<ft_fcat> TYPE STANDARD TABLE.
Get the ALV object refering to the output table
ASSIGN (l_table) TO <fs_table>.
ASSIGN (l_fcat) TO <ft_fcat>.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = <fs_table> ).
CATCH cx_salv_msg. "#EC NO_HANDLER
ENDTRY.
Add basic default functionality in the ALV report
Functions
l_o_functions = gr_table->get_functions( ).
l_o_functions->set_all( abap_true ).
gr_columns = gr_table->get_columns( ).
gr_columns->set_headers_visible( abap_true ).
Display the list
gr_table->display( ).
ENDMETHOD. "extract
ENDCLASS. "lcl_report IMPLEMENTATION
*& start-of-selection declaration
START-OF-SELECTION.
PERFORM :
get store codes
get_storecodes USING p_stfile
CHANGING it_t001w,
fetching mard data
read_mard_data,
preparing fieldcatalog for Final Data
create_filedcat USING it_t001w
it_site
CHANGING it_fieldcat,
preparing structure & internal table for Final Data
create_final_table_structure USING it_fieldcat,
prepare output data
prepare_final_data.
*& end-of-selection declaration
END-OF-SELECTION.
PERFORM :
display data
display_data USING l_table
l_fcat.
*& Form get_storecodes
FORM get_storecodes USING p_p_stfile
CHANGING p_it_t001w LIKE it_t001w[].
DATA :
internal table for RAW
lt_raw TYPE truxs_t_text_data,
rs_site LIKE LINE OF rt_site,
l_index LIKE sy-tabix.
FIELD-SYMBOLS :
field symbol for it_t001w
<fs_t001w> LIKE LINE OF p_it_t001w.
calling function module to get Stores Data from File
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = lt_raw
i_filename = p_p_stfile
TABLES
i_tab_converted_data = p_it_t001w[]
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
ENDIF.
SORT p_it_t001w BY werks.
CLEAR rs_site.
rs_site-sign = 'I'.
rs_site-option = 'EQ'.
rs_site-low = p_dccode.
APPEND rs_site TO rt_site.
IF it_t001w[] IS NOT INITIAL.
LOOP AT p_it_t001w ASSIGNING <fs_t001w>.
l_index = sy-tabix.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = <fs_t001w>-werks
IMPORTING
output = <fs_t001w>-werks.
MODIFY p_it_t001w FROM <fs_t001w> INDEX l_index.
IF <fs_t001w>-werks GE s_site-low AND <fs_t001w>-werks LE s_site-high.
append site to ranges
CLEAR rs_site.
rs_site-sign = 'I'.
rs_site-option = 'EQ'.
rs_site-low = <fs_t001w>-werks.
APPEND rs_site TO rt_site.
CONTINUE.
ENDIF.
ENDLOOP.
SORT p_it_t001w BY werks.
SORT rt_site.
ENDIF.
ENDFORM. " get_storecodes
*& Form create_final_table_structure
FORM create_filedcat USING p_it_t001w LIKE it_t001w[]
p_it_site LIKE it_site[]
CHANGING p_it_fieldcat LIKE it_fieldcat[].
FIELD-SYMBOLS :
field symbol for p_it_t001w
<fs_t001w> LIKE LINE OF p_it_t001w,
field symbol for p_it_site
<fs_site> LIKE LINE OF p_it_site.
DATA :
fieldname
l_fieldname TYPE slis_fieldname,
workarea for site ranges
rs_site LIKE LINE OF rt_site.
CLEAR : l_fieldname, rs_site.
l_fieldname = p_dccode.
PERFORM
prepare fieldcatalog
build_fieldcatalog USING : 'MTART' 'CHAR' '5' ,
'MTBEZ' 'CHAR' '25' ,
'MATKL' 'CHAR' '6' ,
'WGBEZ' 'CHAR' '20' ,
'MATNR' 'CHAR' '18' ,
'MAKTX' 'CHAR' '30' ,
l_fieldname 'CHAR' '17' .
create header for excel
PERFORM create_excel_header USING : 'Division',
'Divsion Description',
'MC Code',
'MC Description',
'Article',
'Article Description',
l_fieldname.
loop for creating fieldcatalog
LOOP AT it_site ASSIGNING <fs_site>.
READ TABLE it_t001w ASSIGNING <fs_t001w> WITH KEY werks = <fs_site>-werks
BINARY SEARCH.
IF sy-subrc = 0 AND <fs_t001w> IS ASSIGNED AND
<fs_site> IS ASSIGNED AND <fs_site>-stock GT 0.
CLEAR : l_fieldname, rs_site.
l_fieldname = <fs_site>-werks.
prepare fieldcatalog
PERFORM build_fieldcatalog USING : l_fieldname 'CHAR' '17'.
create header for excel
PERFORM create_excel_header USING l_fieldname .
CONTINUE.
ENDIF.
ENDLOOP.
l_fcat = 'it_fieldcat[]'.
ENDFORM. " create_final_table_structure
*& Form build_fieldcatalog
FORM build_fieldcatalog USING p_fieldname TYPE slis_fieldname
p_datatype TYPE datatype_d
p_length TYPE intlen.
DATA : ls_fieldcat LIKE LINE OF it_fieldcat.
CLEAR : ls_fieldcat.
ls_fieldcat-fieldname = p_fieldname.
ls_fieldcat-datatype = p_datatype.
ls_fieldcat-intlen = p_length.
APPEND ls_fieldcat TO it_fieldcat.
ENDFORM. " build_fieldcatalog
*& Form create_final_table_structure
FORM create_final_table_structure USING p_it_fieldcat.
Create dynamic internal table and assign to FS
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = t_table.
ASSIGN t_table->* TO <ft_final>.
ENDFORM. " create_final_table_structure
*& Form create_excel_header
FORM create_excel_header USING p_p_fieldname.
DATA : ls_header LIKE LINE OF it_header.
CLEAR ls_header.
ls_header-col_name = p_p_fieldname.
APPEND ls_header TO it_header.
ENDFORM. " create_excel_header
*& Form prepare_final_data
FORM prepare_final_data .
DATA : l_matnr LIKE g_matnr,
l_werks LIKE g_werks,
l_index LIKE sy-tabix.
FIELD-SYMBOLS : <fs_mard> LIKE LINE OF it_mard.
Getting No. of Lines in IT_MARD internal table
DESCRIBE TABLE it_mard LINES g_lines.
LOOP AT it_mard ASSIGNING <fs_mard>.
l_index = sy-tabix.
IF l_matnr IS INITIAL.
l_matnr = <fs_mard>-matnr.
CLEAR : l_werks.
l_werks = <fs_mard>-werks.
UNASSIGN : <fs_value>, <fs_final>.
Create dynamic work area and assign to FS
CREATE DATA t_line LIKE LINE OF <ft_final>.
ASSIGN t_line->* TO <fs_final>.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_mard>-matnr.
ASSIGN COMPONENT l_werks OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_value> + <fs_mard>-labst.
getting Article Type,MC & its Descriptions
PERFORM get_other_data USING l_matnr
l_werks.
ELSEIF l_matnr <> <fs_mard>-matnr.
APPEND <fs_final> TO <ft_final>.
CLEAR l_matnr.
l_matnr = <fs_mard>-matnr.
CLEAR : l_werks.
l_werks = <fs_mard>-werks.
UNASSIGN : <fs_value>, <fs_final>.
Create dynamic work area and assign to FS
CREATE DATA t_line LIKE LINE OF <ft_final>.
ASSIGN t_line->* TO <fs_final>.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_mard>-matnr.
ASSIGN COMPONENT l_werks OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_value> + <fs_mard>-labst.
getting Article Type,MC & its Descriptions
PERFORM get_other_data USING l_matnr
l_werks.
ELSE.
CLEAR : l_werks.
l_werks = <fs_mard>-werks.
ASSIGN COMPONENT l_werks OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_value> + <fs_mard>-labst.
ENDIF.
IF l_index = g_lines.
APPEND <fs_final> TO <ft_final>.
ENDIF.
ENDLOOP.
l_table = '<ft_final>[]'.
ENDFORM. " prepare_final_data
*& Form get_other_data
FORM get_other_data USING p_l_matnr
p_l_werks.
FIELD-SYMBOLS : <fs_mara> LIKE LINE OF it_mara,
<fs_t023t> LIKE LINE OF it_t023t,
<fs_t134t> LIKE LINE OF it_t134t,
<fs_makt> LIKE LINE OF it_makt.
READ TABLE it_mara ASSIGNING <fs_mara> WITH KEY matnr = p_l_matnr. " BINARY SEARCH.
IF sy-subrc = 0 AND <fs_mara> IS ASSIGNED.
ASSIGN COMPONENT 'MTART' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_mara>-mtart.
ASSIGN COMPONENT 'MATKL' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_mara>-matkl.
READ TABLE it_makt ASSIGNING <fs_makt> WITH KEY matnr = <fs_mara>-matnr BINARY SEARCH.
IF sy-subrc = 0 AND <fs_makt> IS ASSIGNED.
ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_makt>-maktx.
ENDIF.
READ TABLE it_t023t ASSIGNING <fs_t023t> WITH KEY matkl = <fs_mara>-matkl BINARY SEARCH.
IF sy-subrc = 0 AND <fs_t023t> IS ASSIGNED.
ASSIGN COMPONENT 'WGBEZ' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_t023t>-wgbez.
ENDIF.
READ TABLE it_t134t ASSIGNING <fs_t134t> WITH KEY mtart = <fs_mara>-mtart BINARY SEARCH.
IF sy-subrc = 0 AND <fs_t134t> IS ASSIGNED.
ASSIGN COMPONENT 'MTBEZ' OF STRUCTURE <fs_final> TO <fs_value>.
<fs_value> = <fs_t134t>-mtbez.
ENDIF.
ENDIF.
ENDFORM. " get_other_data
*& Form display_data
text
FORM display_data USING p_l_table
p_l_fcat.
DATA:
Variable for Object Creation
o_report TYPE REF TO lcl_report.
CREATE OBJECT o_report.
o_report->display( EXPORTING l_table = p_l_table
l_fcat = p_l_fcat ).
ENDFORM. " display_dataI don't know how to read the code you pasted or I would have checked this myself.
Do your fields in the internal table reference dictionary objects or elementary types? If not using dictionary types, the column names will be blank by default. If you can't change your fields to be dictionary types, you can try this to change the column names:
I made a method inside my local class to add the names:
call method set_colname
EXPORTING iv_tab = alv_tab
iv_colid = 'xxxx' "fieldname from the table
iv_stxt = text-t54
iv_mtxt = text-t55
iv_ltxt = text-t55.
METHOD set_colname .
data:
alv_cols type REF TO cl_salv_columns_table,
alv_col type REF TO cl_salv_column.
TRY .
*... Change fieldnames
call METHOD iv_tab->get_columns RECEIVING value = alv_cols.
call method alv_cols->get_column EXPORTING columnname = iv_colid RECEIVING value = alv_col.
IF iv_stxt <> ''.
CALL METHOD alv_col->set_short_text EXPORTING value = iv_stxt.
ENDIF.
IF iv_mtxt <> ''.
CALL METHOD alv_col->set_medium_text EXPORTING value = iv_mtxt.
ENDIF.
IF iv_ltxt <> ''.
CALL METHOD alv_col->set_long_text EXPORTING value = iv_ltxt.
ENDIF.
CATCH cx_salv_not_found.
ENDTRY.
ENDMETHOD. "set_colname -
Event double -click doens't work
Dear All,
Pls help event double -click doens't work.
What can the reason be for it ?
Regards
Ilhan
data tree1 type ref to cl_gui_alv_tree.
data mr_toolbar type ref to cl_gui_toolbar.
include <icon>.
data: gt_sflight type ZQMCOMP occurs 0, "Output-Table
gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
ok_code like sy-ucomm. "OK-Code
* TREE_EVENT_RECEIVER *
class tree_event_receiver definition.
public section.
methods on_doubleclick
for event link_click of cl_gui_alv_tree
importing node_key fieldname.
ENDCLASS. "lcl_handler DEFINITION
* CLASS tree_event_receiver IMPLEMENTATION
class tree_event_receiver implementation.
METHOD on_doubleclick.
MESSAGE I000(38) WITH fieldname.
ENDMETHOD. "on_doubleclick
endclass.
start-of-selection.
end-of-selection.
call screen 100.
*& Module PBO OUTPUT
* process before output
module pbo output.
set pf-status 'MAIN100'.
if tree1 is initial.
perform init_tree.
endif.
call method cl_gui_cfw=>flush.
endmodule. " PBO OUTPUT
*& Module PAI INPUT
* process after input
module pai input.
case ok_code.
when 'EXIT' or 'BACK' or 'CANC'.
perform exit_program.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
call method cl_gui_cfw=>flush.
endmodule. " PAI INPUT
*& Form build_fieldcatalog
* build fieldcatalog for structure sflight
form build_fieldcatalog.
data: ls_fieldcatalog type lvc_s_fcat.
ls_fieldcatalog-fieldname = 'DUNS'.
ls_fieldcatalog-col_pos = 7.
ls_fieldcatalog-coltext = 'Duns'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'MONAT'.
ls_fieldcatalog-col_pos = 8.
ls_fieldcatalog-coltext = 'Monat'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ZE'.
ls_fieldcatalog-col_pos = 13.
ls_fieldcatalog-coltext = 'Ze'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'MATKOSTEN'.
ls_fieldcatalog-col_pos = 14.
ls_fieldcatalog-coltext = 'Mat.Kosten'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ANTEIL'.
ls_fieldcatalog-col_pos = 15.
ls_fieldcatalog-coltext = 'Anteil'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESMAT'.
ls_fieldcatalog-col_pos = 16.
ls_fieldcatalog-coltext = 'Ges.Mat'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESLOH'.
ls_fieldcatalog-col_pos = 17.
ls_fieldcatalog-coltext = 'Ges.Lohn'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESAMT'.
ls_fieldcatalog-col_pos = 19.
ls_fieldcatalog-coltext = 'Gesamt'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
call function 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZQMCOMP'
CHANGING
ct_fieldcat = gt_fieldcatalog.
endform. " build_fieldcatalog
*& Form build_hierarchy_header
* build hierarchy-header-information
* -->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
form build_hierarchy_header changing
p_hierarchy_header type treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy-Kopf'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'Hierarchy-Kopf !'.
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
endform. " build_hierarchy_header
*& Form exit_program
* free object and leave program
form exit_program.
call method tree1->free.
leave program.
endform. " exit_program
*& Form build_header
* build table for html_header
* --> p1 text
* <-- p2 text
form build_comment using
pt_list_commentary type slis_t_listheader
p_logo type sdydo_value.
data: ls_line type slis_listheader.
clear ls_line.
ls_line-typ = 'H'.
ls_line-info = 'LIBOLO '.
append ls_line to pt_list_commentary.
clear ls_line.
clear ls_line.
ls_line-typ = 'A'.
ls_line-info = 'Liste'.
append ls_line to pt_list_commentary.
* p_logo = 'ENJOYSAP_LOGO'.
endform.
* FORM create_hierarchy *
FORM create_hierarchy.
data: ls_sflight type ZQMCOMP,
lt_sflight type ZQMCOMP occurs 0.
* get data
select * from ZQMCOMP into table lt_sflight.
* sort lt_sflight by carrid connid fldate.
* add data to tree
data: l_carrid_key type lvc_nkey,
l_connid_key type lvc_nkey,
l_last_key type lvc_nkey.
loop at lt_sflight into ls_sflight.
on change of ls_sflight-KUNDE.
perform add_carrid_line using ls_sflight
changing l_carrid_key.
endon.
on change of ls_sflight-MONAT.
perform add_connid_line using ls_sflight
l_carrid_key
changing l_connid_key.
endon.
perform add_complete_line using ls_sflight
l_connid_key
changing l_last_key.
endloop.
* calculate totals
call method tree1->update_calculations.
* this method must be called to send the data to the frontend
call method tree1->frontend_update.
endform. " create_hierarchy
*& Form add_carrid_line
* add hierarchy-level 1 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_carrid_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type ZQMCOMP.
* 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 = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-KUNDE.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_carrid_line
*& Form add_connid_line
* add hierarchy-level 2 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_connid_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type sflight.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3Y@'.
ls_item_layout-style =
cl_gui_column_tree=>style_intensified.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-MONAT.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_connid_line
*& Form add_cmplete_line
* add hierarchy-level 3 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_complete_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value.
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
append ls_item_layout to lt_item_layout.
l_node_text = ps_sflight-QMART.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = ps_sflight
i_node_text = l_node_text
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_complete_line
*& Form register_events
* text
* --> p1 text
* <-- p2 text
form register_events.
data: lt_events type cntl_simple_events,
l_event type cntl_simple_event.
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
append L_EVENT to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
append L_EVENT to lt_events.
* set Handler
data: l_event_receiver type ref to tree_event_receiver.
create object l_event_receiver.
set handler l_event_receiver->on_doubleclick for tree1.
call method tree1->set_registered_events
exporting
events = lt_events
exceptions
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
endform. " register_events
*& Form change_toolbar
* text
* --> p1 text
* <-- p2 text
form change_toolbar.
* get toolbar control
call method tree1->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 = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
* add Dropdown Button to toolbar (for Insert Line)
call method mr_toolbar->add_button
exporting
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
endform. " change_toolbar
*& Form init_tree
* text
* --> p1 text
* <-- p2 text
FORM init_tree.
* create fieldcatalog for structure sflight
perform build_fieldcatalog.
* create container for alv-tree
data: l_tree_container_name(30) type c,
l_custom_container type ref to cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
if sy-batch is initial.
create object l_custom_container
exporting
container_name = l_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'. "#EC NOTEXT
endif.
endif.
* create tree control
create object tree1
exporting
parent = l_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'. "#EC NOTEXT
endif.
* create Hierarchy-header
data l_hierarchy_header type treev_hhdr.
perform build_hierarchy_header changing l_hierarchy_header.
* create info-table for html-header
data: lt_list_commentary type slis_t_listheader,
l_logo type sdydo_value.
perform build_comment using
lt_list_commentary
l_logo.
* repid for saving variants
data: ls_variant type disvariant.
ls_variant-report = sy-repid.
* create emty tree-control
call method tree1->set_table_for_first_display
exporting
I_STRUCTURE_NAME = 'ZQMCOMP'
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
* i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
changing
it_outtab = gt_sflight "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
* create hierarchy
perform create_hierarchy.
* add own functioncodes to the toolbar
perform change_toolbar.
* register events
perform register_events.
* adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " init_treeHi,
to do so, you need to declare those fields in the form CREATE_HIERARCHY.
For example, to add FLDATE node, you should do:
ON CHANGE OF LS_SFLIGHT-CARRID.
PERFORM ADD_CARRID_LINE USING LS_SFLIGHT
CHANGING L_CARRID_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-CONNID.
PERFORM ADD_CONNID_LINE USING LS_SFLIGHT
L_CARRID_KEY
CHANGING L_CONNID_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-FLDATE.
PERFORM ADD_FLDATE_LINE USING LS_SFLIGHT
L_CONNID_KEY
CHANGING L_FLDATE_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-PRICE.
PERFORM ADD_PRICE_LINE USING LS_SFLIGHT
L_FLDATE_KEY
CHANGING L_PRICE_KEY.
ENDON.
and then create the new FORMS PERFORM ADD_PRICE_LINE and
PERFORM ADD_FLDATE_LINE by copy of the existent
PERFORM ADD_CONNID_LINE and change the L_NODE_TEXT in the form.
I suposed you are new to ALV's, so i have a sugestion for you.
Instead of CL_GUI_ALV_TREE try to use some examples of CL_GUI_ALV_TREE_SIMPLE. It's much more simple to understand and to work with. For example Report BCALV_TREE_SIMPLE_DEMO.
In this case, to add more nodes to the the you just need to add 3 lines of code in
perform build_sort_table.
Regards, -
Short dump while export grid alv with subtotals.
hello,
its strange and i face first time that my grid alv report goin to short dump while i done subtotals and send it to local file thru export.
if am not doing subtotals then export it to local file it goin fine.
whats it has problem plz give ur helping hends.
here i copied a dump msg also.
Short text
Error at assignment: Overwritten protected field.
What happened?
Error in the ABAP Application Program
The current ABAP program "SAPLKKBL" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
A new value is to be assigned to the field "<L_UNIT>", although this field is
entirely or partly protected against changes.
The following are protected against changes:
- Character literals or numeric literals
- Constants (CONSTANTS)
- Parameters of the category IMPORTING REFERENCE for functions and
methods
- Untyped field symbols not yet assigned a field using ASSIGN
- TABLES parameters if the actual parameter is protected against changes
- USING reference parameters and CHANGING parameters for FORMs, if the
actual parameter is protected against changes and
- Accesses using field symbols if the field assigned using ASSIGN is
protected (or partially protected, e.g. key components of an internal
table with the type SORTED or HASHED TABLE) against changes
- Accesses using references, if the field bound to the reference is
protected (or partially protected) against changes
- External write accesses to READ-ONLY attributes,
- Content of a shared object area instance accessed using a shared lock
(ATTACH_FOR_READ).
regards amit.& Object Id : &
& Object Name : &
& Function Module Name : Sales Register &
& Transaction Code : &
& Author : Amit gujargoud &
& Module Name : SD &
& Sub-Module : &
& Program Type : Dialog Create Date : 02/02/2007 &
& SAP Release : ECC 6.0 &
& Description : Sales Register - Detail &
*& Report ZSALESREGISTER
REPORT zsd_salesregister.
*& TYPE-POOLS
TYPE-POOLS : slis.
*& TABLES
TABLES: vbrp, "Billing Document: Item Data
vbrk, "Billing Document: Header Data
lips, "SD document: Delivery: Item data
lfa1, "Vendor Master (General Section)
kna1, "General Data in Customer Master
vbak, "Sales Document: Header Data
vbpa, "Sales Document: Partner (Gopal)
likp, "SD Document: Delivery Header Data
vbap, "Sales Document: Item Data
vbkd, "Sales Document: Business Data
mara. "General Material Data
*& DATA DECLARATION
DATA: BEGIN OF i_report OCCURS 100,
vbeln LIKE vbrp-vbeln, "Billing Document
posnr LIKE vbrp-posnr,
matnr LIKE mara-matnr ,
aubel LIKE vbrp-aubel, "Sales Document
fkimg LIKE vbrp-fkimg, "Actual billed quantity
vrkme LIKE vbrp-vrkme, "Sales unit
arktx LIKE vbrp-arktx, "Short text for sales order item
vgbel LIKE vbrp-vgbel, "Doc number of the reference document
werks LIKE vbap-werks,
vkgrp LIKE vbrp-vkgrp,
fklmg LIKE vbrp-fklmg,
volum LIKE vbrp-volum,
vkbur LIKE vbrp-vkbur,
vtweg_auft LIKE vbrp-vtweg_auft,
auart LIKE vbak-auart,
tabix LIKE sy-tabix, "Internal Table, Current Row Index
name1 LIKE kna1-name1, "Name1
exnum LIKE j_1iexchdr-exnum, "Official Excise Document Number
orqty TYPE p DECIMALS 0,
penqty TYPE p DECIMALS 0, "Cumulative order qty in sls units
openqty TYPE p DECIMALS 0, "Cumulative order qty in sls units
ean11 LIKE lips-ean11, "International Article No(EAN/UPC)
volum LIKE lips-volum,
lgmng LIKE lips-lgmng,
traid LIKE likp-traid,
ort01 LIKE lfa1-ort01, "City
lifnr LIKE lfa1-lifnr, "A/c Number of Vendor or Creditor
netwr LIKE vbrp-netwr, "Net val of bill item in doc currency
kunnr LIKE vbak-kunnr, "Sold-to party
adrnr LIKE vbpa-adrnr, "Address
city1 LIKE adrc-city1, "City
tprtr LIKE lfa1-name1, "Name 1
knumv LIKE konv-knumv, "Number of the document condition
kposn LIKE konv-kposn,
rate LIKE konv-kbetr, "Rate (cond amount or percentage)
bas_val LIKE konv-kwert, "Rate (cond amount or percentage)
exc_duty LIKE konv-kwert, "Rate (cond amount or percentage)
ed_cess LIKE konv-kwert, "Rate (cond amount or percentage)
freight LIKE konv-kwert, "Rate (cond amount or percentage)
pack LIKE konv-kwert, "Rate (cond amount or percentage)
cst LIKE konv-kwert, "Rate (cond amount or percentage)
vat LIKE konv-kwert, "Rate (cond amount or percentage)
ent_tax LIKE konv-kwert, "Rate (cond amount or percentage)
tot_inv LIKE konv-kwert, "Rate (cond amount or percentage)
tot_inv_round LIKE konv-kwert, "Rate (cond amount or percentage)
disc_tot LIKE konv-kwert, "Discount total - Z001 to Z020
vat_rate LIKE konv-kbetr,
cst_rate LIKE konv-kbetr,
lst_rate LIKE konv-kbetr,
mwsbk LIKE vbrk-mwsbk,
bas_tax LIKE konv-kwert,
dev_tax LIKE konv-kwert,
tcs_tax LIKE konv-kwert,
bas_tot LIKE konv-kwert,
lst LIKE konv-kwert,
vkorg LIKE vbak-vkorg,
mvgr1 LIKE mvke-mvgr1,
mvgr2 LIKE mvke-mvgr2,
mvgr3 LIKE mvke-mvgr3,
mvgr4 LIKE mvke-mvgr4,
mvgr5 LIKE mvke-mvgr5,
text1 LIKE tvm1t-bezei,
text2 LIKE tvm1t-bezei,
text3 LIKE tvm1t-bezei,
text4 LIKE tvm1t-bezei,
text5 LIKE tvm1t-bezei,
bismit_area TYPE p DECIMALS 4, " Size (L*B) in mm
face_area TYPE p DECIMALS 2, " Face Area Declaration
notional_area TYPE p DECIMALS 2,
stock_pcs TYPE p , " decimals 3 Pcs of Stock
labst LIKE mard-labst, " Valuated Unrestricted-Use Stock
bismt LIKE mara-bismt, " Size (L*B) in mm
normt LIKE mara-normt, " Industry Standard Description
temp TYPE p DECIMALS 2,
temp1 TYPE p DECIMALS 2,
temp2 TYPE p DECIMALS 2,
temp3 TYPE p DECIMALS 2,
temp4 TYPE p DECIMALS 2,
temp5 TYPE p DECIMALS 2,
temp6 TYPE p DECIMALS 2,
temp7 TYPE p DECIMALS 2,
temp8 TYPE p DECIMALS 2,
temp9 TYPE p DECIMALS 2,
temp10 TYPE p DECIMALS 2,
temp11 TYPE p DECIMALS 2,
temp12 TYPE p DECIMALS 2,
temp13 TYPE p DECIMALS 0,
temp14 TYPE p DECIMALS 0,
temp15 TYPE p DECIMALS 0,
temp16 TYPE p DECIMALS 2,
temp17 TYPE p DECIMALS 2,
temp18 TYPE p DECIMALS 2,
temp19 TYPE p DECIMALS 2,
temp20 TYPE p DECIMALS 2,
temp21 TYPE p DECIMALS 2,
waybill(20) TYPE c,
audat LIKE vbak-audat, "Document Date (Date Received/Sent)
lgort LIKE vbap-lgort, "Storage location
lgobe LIKE t001l-lgobe, "Description of storage location
erdat LIKE vbrk-erdat, "Date on which the record was created
exdat LIKE j_1iexchdr-exdat, "Excise Document Date
vbtyp LIKE vbak-vbtyp, "SD document category
acdt LIKE likp-wadat_ist, "Actual goods movement date
fkdat LIKE vbrk-fkdat,
ship LIKE kna1-name1, "Name1 (Ship-to party)
fksto LIKE vbrk-fksto,
fkart LIKE vbrk-fkart,
bezei LIKE t005u-bezei,
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
matkl LIKE mara-matkl,
wgbez LIKE t023t-wgbez,
mtart LIKE mara-mtart,
labor LIKE mara-labor,
ferth LIKE mara-ferth,
lbtxt LIKE t024x-lbtxt,
niels LIKE kna1-niels,
kukla LIKE kna1-kukla,
desc LIKE tvkbt-bezei,
brsch LIKE kna1-brsch,
zeinr LIKE mara-zeinr,
bzirk LIKE vbrk-bzirk,
area_desc LIKE tnlst-bezei,
dist_desc TYPE tkukt-vtext,
taluka_desc TYPE t016t-brtxt,
sales_desc TYPE tvgrt-bezei,
kmein LIKE konv-kmein, "Sales Unit
challan LIKE likp-vbeln,
END OF i_report.
data for MVKE
DATA: BEGIN OF i_report_mvke OCCURS 0,
vbeln LIKE vbrp-vbeln, "Billing Document
aubel LIKE vbrp-aubel, "Sales Document
vkorg LIKE vbak-vkorg,
matnr LIKE mara-matnr ,
vtweg LIKE vbak-vtweg,
END OF i_report_mvke.
***********************TEMP COPY
DATA: BEGIN OF i_report_temp OCCURS 0,
vbeln LIKE vbrp-vbeln, "Billing Document
posnr LIKE vbrp-posnr,
matnr LIKE mara-matnr ,
aubel LIKE vbrp-aubel, "Sales Document
fkimg LIKE vbrp-fkimg, "Actual billed quantity
vrkme LIKE vbrp-vrkme, "Sales unit
arktx LIKE vbrp-arktx, "Short text for sales order item
vgbel LIKE vbrp-vgbel, "Doc number of the reference document
werks LIKE vbap-werks,
vkgrp LIKE vbrp-vkgrp,
fklmg LIKE vbrp-fklmg,
volum LIKE vbrp-volum,
vkbur LIKE vbrp-vkbur,
vtweg_auft LIKE vbrp-vtweg_auft,
auart LIKE vbak-auart,
tabix LIKE sy-tabix, "Internal Table, Current Row Index
name1 LIKE kna1-name1, "Name1
exnum LIKE j_1iexchdr-exnum, "Official Excise Document Number
orqty TYPE p DECIMALS 0,
penqty TYPE p DECIMALS 0, "Cumulative order qty in sls units
openqty TYPE p DECIMALS 0, "Cumulative order qty in sls units
ean11 LIKE lips-ean11, "International Article No(EAN/UPC)
volum LIKE lips-volum,
lgmng LIKE lips-lgmng,
traid LIKE likp-traid,
ort01 LIKE lfa1-ort01, "City
lifnr LIKE lfa1-lifnr, "A/c Number of Vendor or Creditor
netwr LIKE vbrp-netwr, "Net val of bill item in doc currency
kunnr LIKE vbak-kunnr, "Sold-to party
adrnr LIKE vbpa-adrnr, "Address
city1 LIKE adrc-city1, "City
tprtr LIKE lfa1-name1, "Name 1
knumv LIKE konv-knumv, "Number of the document condition
kposn LIKE konv-kposn,
rate LIKE konv-kbetr, "Rate (cond amount or percentage)
bas_val LIKE konv-kwert, "Rate (cond amount or percentage)
exc_duty LIKE konv-kwert, "Rate (cond amount or percentage)
ed_cess LIKE konv-kwert, "Rate (cond amount or percentage)
freight LIKE konv-kwert, "Rate (cond amount or percentage)
pack LIKE konv-kwert, "Rate (cond amount or percentage)
cst LIKE konv-kwert, "Rate (cond amount or percentage)
vat LIKE konv-kwert, "Rate (cond amount or percentage)
ent_tax LIKE konv-kwert, "Rate (cond amount or percentage)
tot_inv LIKE konv-kwert, "Rate (cond amount or percentage)
tot_inv_round LIKE konv-kwert, "Rate (cond amount or percentage)
disc_tot LIKE konv-kwert, "Discount total - Z001 to Z020
vat_rate LIKE konv-kbetr,
cst_rate LIKE konv-kbetr,
lst_rate LIKE konv-kbetr,
mwsbk LIKE vbrk-mwsbk,
bas_tax LIKE konv-kwert,
dev_tax LIKE konv-kwert,
tcs_tax LIKE konv-kwert,
bas_tot LIKE konv-kwert,
lst LIKE konv-kwert,
vkorg LIKE vbak-vkorg,
mvgr1 LIKE mvke-mvgr1,
mvgr2 LIKE mvke-mvgr2,
mvgr3 LIKE mvke-mvgr3,
mvgr4 LIKE mvke-mvgr4,
mvgr5 LIKE mvke-mvgr5,
text1 LIKE tvm1t-bezei,
text2 LIKE tvm1t-bezei,
text3 LIKE tvm1t-bezei,
text4 LIKE tvm1t-bezei,
text5 LIKE tvm1t-bezei,
bismit_area TYPE p DECIMALS 4, " Size (L*B) in mm
face_area TYPE p DECIMALS 2, " Face Area Declaration
notional_area TYPE p DECIMALS 2,
stock_pcs TYPE p , " decimals 3 Pcs of Stock
labst LIKE mard-labst, " Valuated Unrestricted-Use Stock
bismt LIKE mara-bismt, " Size (L*B) in mm
normt LIKE mara-normt, " Industry Standard Description
temp TYPE p DECIMALS 2,
temp1 TYPE p DECIMALS 2,
temp2 TYPE p DECIMALS 2,
temp3 TYPE p DECIMALS 2,
temp4 TYPE p DECIMALS 2,
temp5 TYPE p DECIMALS 2,
temp6 TYPE p DECIMALS 2,
temp7 TYPE p DECIMALS 2,
temp8 TYPE p DECIMALS 2,
temp9 TYPE p DECIMALS 2,
temp10 TYPE p DECIMALS 2,
temp11 TYPE p DECIMALS 2,
temp12 TYPE p DECIMALS 2,
temp13 TYPE p DECIMALS 0,
temp14 TYPE p DECIMALS 0,
temp15 TYPE p DECIMALS 0,
temp16 TYPE p DECIMALS 2,
temp17 TYPE p DECIMALS 2,
temp18 TYPE p DECIMALS 2,
temp19 TYPE p DECIMALS 2,
temp20 TYPE p DECIMALS 2,
temp21 TYPE p DECIMALS 2,
waybill(20) TYPE c,
audat LIKE vbak-audat, "Document Date (Date Received/Sent)
lgort LIKE vbap-lgort, "Storage location
lgobe LIKE t001l-lgobe, "Description of storage location
erdat LIKE vbrk-erdat, "Date on which the record was created
exdat LIKE j_1iexchdr-exdat, "Excise Document Date
vbtyp LIKE vbak-vbtyp, "SD document category
acdt LIKE likp-wadat_ist, "Actual goods movement date
fkdat LIKE vbrk-fkdat,
ship LIKE kna1-name1, "Name1 (Ship-to party)
fksto LIKE vbrk-fksto,
fkart LIKE vbrk-fkart,
bezei LIKE t005u-bezei,
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
matkl LIKE mara-matkl,
wgbez LIKE t023t-wgbez,
mtart LIKE mara-mtart,
labor LIKE mara-labor,
ferth LIKE mara-ferth,
lbtxt LIKE t024x-lbtxt,
niels LIKE kna1-niels,
kukla LIKE kna1-kukla,
desc LIKE tvkbt-bezei,
brsch LIKE kna1-brsch,
zeinr LIKE mara-zeinr,
bzirk LIKE vbrk-bzirk,
area_desc LIKE tnlst-bezei,
dist_desc TYPE tkukt-vtext,
taluka_desc TYPE t016t-brtxt,
sales_desc TYPE tvgrt-bezei,
kmein LIKE konv-kmein, "Sales Unit
challan LIKE likp-vbeln,
END OF i_report_temp.
DATA: BEGIN OF i_vbap OCCURS 0 ,
posnr LIKE vbap-posnr,
vbeln LIKE vbap-vbeln ,
matnr LIKE vbap-matnr ,
werks LIKE vbap-werks,
kwmeng LIKE vbap-kwmeng,
lgort LIKE vbap-lgort,
matkl LIKE mara-matkl,
wgbez LIKE t023t-wgbez,
mtart LIKE mara-mtart,
END OF i_vbap .
DATA : w_temp_cal(20) TYPE c.
DATA : w_face_area TYPE p DECIMALS 4,
w_notinal_area TYPE p DECIMALS 4.
**MVKE
DATA: BEGIN OF itab_mvke OCCURS 0,
matnr LIKE mvke-matnr,
vkorg LIKE vbak-vkorg,
vtweg LIKE mvke-vtweg,
mvgr1 LIKE mvke-mvgr1,
mvgr2 LIKE mvke-mvgr2,
mvgr3 LIKE mvke-mvgr3,
mvgr4 LIKE mvke-mvgr4,
mvgr5 LIKE mvke-mvgr5,
END OF itab_mvke.
**TVM1T
DATA : BEGIN OF itab_tvm1t OCCURS 0,
spras LIKE tvm1t-spras,
mvgr1 LIKE tvm1t-mvgr1,
bezei LIKE tvm1t-bezei,
END OF itab_tvm1t.
DATA : BEGIN OF itab_tvm2t OCCURS 0,
spras LIKE tvm2t-spras,
mvgr2 LIKE tvm2t-mvgr2,
bezei LIKE tvm2t-bezei,
END OF itab_tvm2t.
DATA : BEGIN OF itab_tvm3t OCCURS 0,
spras LIKE tvm3t-spras,
mvgr3 LIKE tvm3t-mvgr3,
bezei LIKE tvm3t-bezei,
END OF itab_tvm3t.
DATA : BEGIN OF itab_tvm4t OCCURS 0,
spras LIKE tvm4t-spras,
mvgr4 LIKE tvm4t-mvgr4,
bezei LIKE tvm4t-bezei,
END OF itab_tvm4t.
DATA : BEGIN OF itab_tvm5t OCCURS 0,
spras LIKE tvm5t-spras,
mvgr5 LIKE tvm5t-mvgr5,
bezei LIKE tvm5t-bezei,
END OF itab_tvm5t.
DATA: itab_t024x TYPE STANDARD TABLE OF t024x WITH HEADER LINE,
it_report LIKE LINE OF i_report OCCURS 0,
i_mvke LIKE LINE OF itab_mvke OCCURS 0.
**VBKD
DATA: BEGIN OF i_vbkd OCCURS 0 ,
vbeln LIKE vbkd-vbeln ,
posnr LIKE vbkd-posnr ,
bzirk LIKE vbkd-bzirk ,
END OF i_vbkd .
DATA: BEGIN OF i_lips OCCURS 0,
vbeln LIKE lips-vbeln,
ean11 LIKE lips-ean11,
volum LIKE lips-volum,
lgmng LIKE lips-lgmng,
waybill(20) TYPE c,
END OF i_lips.
DATA: BEGIN OF i_vbrk OCCURS 0,
vbeln LIKE vbrk-vbeln,
rfbsk LIKE vbrk-rfbsk, "Status for transfer to accounting
erdat LIKE vbrk-erdat, "Dt on which the record was created
fkdat LIKE vbrk-fkdat, "CHANGE MADE BY PARTHA RAHAMAN
fksto LIKE vbrk-fksto, "GOPAL:: CANCELLED DOC. DO NOT PRNT.
netwr LIKE vbrk-netwr,
fkart LIKE vbrk-fkart, "Gopal:when billng typ=s1 do not pnt 1jul
knumv LIKE vbrk-knumv,
mwsbk LIKE vbrk-mwsbk,
bzirk LIKE vbrk-bzirk,
vtweg LIKE vbrk-vtweg,
spart LIKE vbrk-spart,
END OF i_vbrk.
*structure for MARD Table by kalika
DATA : BEGIN OF itab_mard OCCURS 0,
matnr LIKE mard-matnr,
werks LIKE mard-werks,
labst LIKE mard-labst, " Valuated Unrestricted-Use Stock
lgort LIKE mard-lgort, " Storage Location
END OF itab_mard.
*structure for MARD Table by kalika
DATA:BEGIN OF i_kna1 OCCURS 0,
vbeln LIKE vbak-vbeln,
name1 LIKE kna1-name1,
kunnr LIKE kna1-kunnr,
regio LIKE kna1-regio,
bezei LIKE t005u-bezei,
land1 LIKE kna1-land1,
vkgrp LIKE vbak-vkgrp,
niels LIKE kna1-niels,
kukla LIKE kna1-kukla,
brsch LIKE kna1-brsch,
vkbur LIKE vbak-vkbur,
END OF i_kna1.
DATA:BEGIN OF i_t005u OCCURS 0,
spras LIKE t005u-spras,
land1 LIKE t005u-land1,
bland LIKE t005u-bland,
bezei LIKE t005u-bezei,
END OF i_t005u.
DATA:BEGIN OF i_tnlst OCCURS 0,
spras LIKE t005u-spras,
niels LIKE tnlst-niels,
bezei LIKE t005u-bezei,
END OF i_tnlst.
DATA:BEGIN OF itab_tkukt OCCURS 0,
spras LIKE tkukt-spras,
kukla LIKE tkukt-kukla,
vtext LIKE tkukt-vtext,
END OF itab_tkukt.
DATA : BEGIN OF itab_t016t OCCURS 0,
spras LIKE t016t-spras,
brsch LIKE t016t-brsch,
brtxt LIKE t016t-brtxt,
END OF itab_t016t.
DATA : BEGIN OF itab_tvgrt OCCURS 0,
spras LIKE tvgrt-spras,
vkgrp LIKE tvgrt-vkgrp,
bezei LIKE tvgrt-bezei,
END OF itab_tvgrt.
*DATA: i_t005u TYPE STANDARD TABLE OF t005u WITH HEADER LINE.
DATA:BEGIN OF i_kna2 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1, " For Ship-to-Party
END OF i_kna2.
DATA:BEGIN OF i_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
vbtyp LIKE vbak-vbtyp,
audat LIKE vbak-audat,
auart LIKE vbak-auart,
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
vkbur LIKE vbak-vkbur,
vkorg LIKE vbak-vkorg,
END OF i_vbak.
DATA:BEGIN OF i_adrc OCCURS 0,
vbeln LIKE vbpa-vbeln,
kunnr LIKE kna1-kunnr,
city1 LIKE adrc-city1,
name1 LIKE kna1-name1, "Name1 (Ship-to party)
END OF i_adrc.
DATA:BEGIN OF i_lfa1 OCCURS 0,
lifnr LIKE vbpa-lifnr,
vbeln LIKE vbpa-vbeln,
name1 LIKE lfa1-name1,
END OF i_lfa1.
DATA : BEGIN OF it_knumv OCCURS 0,
vbeln LIKE vbrk-vbeln,
knumv LIKE vbrk-knumv,
END OF it_knumv.
DATA : BEGIN OF it_rate OCCURS 0,
ksteu LIKE konv-ksteu, "Condition control
knumv LIKE konv-knumv, "Number of the document condition
kschl LIKE konv-kschl, "Condition type
kbetr LIKE konv-kbetr, "Rate (condition amount or percentage)
kwert LIKE konv-kwert, "Condition value
kposn LIKE konv-kposn,
kmein LIKE konv-kmein, "Sales Unit
END OF it_rate.
DATA: BEGIN OF itab_exnum OCCURS 0,
exnum LIKE j_1iexchdr-exnum, "Official Excise Document Number
exdat LIKE j_1iexchdr-exdat, "Excise Document Date
rdoc LIKE j_1iexchdr-rdoc, "Reference Document 1
status LIKE j_1iexchdr-status,
END OF itab_exnum.
DATA: BEGIN OF itab_qty OCCURS 0,
kwmeng LIKE vbap-kwmeng,
vbeln LIKE vbap-vbeln,
lgort LIKE vbap-lgort,
END OF itab_qty.
*DATA: BEGIN OF i_stloc OCCURS 0,
lgort LIKE t001l-lgort,
lgobe LIKE t001l-lgobe,
END OF i_stloc.
DATA:t_line LIKE STANDARD TABLE OF tline INITIAL SIZE 0
WITH HEADER LINE,
" itab_tvkbt LIKE STANDARD TABLE OF tvkbt WITH HEADER LINE,
w_tdname LIKE thead-tdname.
DATA : BEGIN OF itab_tvkbt OCCURS 0,
spras LIKE tvkbt-spras,
vkbur LIKE tvkbt-vkbur,
bezei LIKE tvkbt-bezei,
END OF itab_tvkbt.
DATA: BEGIN OF i_exchdr OCCURS 0,
exnum LIKE j_1iexchdr-exnum,
exdat LIKE j_1iexchdr-exdat,
rdoc LIKE j_1iexchdr-rdoc,
END OF i_exchdr.
DATA: BEGIN OF i_likp OCCURS 0,
vbeln LIKE likp-vbeln,
wadat_ist LIKE likp-wadat_ist,
traid LIKE likp-traid,
bolnr LIKE likp-bolnr,
END OF i_likp.
DATA: BEGIN OF i_mara OCCURS 0,
matnr LIKE mara-matnr,
matkl LIKE mara-matkl,
mtart LIKE mara-mtart,
labor LIKE mara-labor,
wgbez LIKE t023t-wgbez,
bismt LIKE mara-bismt,
normt LIKE mara-normt,
ferth LIKE mara-ferth,
zeinr LIKE mara-zeinr,
extwg LIKE mara-extwg,
spart LIKE mara-spart,
END OF i_mara.
DATA: BEGIN OF i_t023t OCCURS 0,
matkl LIKE t023t-matkl,
wgbez LIKE t023t-wgbez,
END OF i_t023t.
DATA : var_length(20) TYPE c,
var_breadth(20) TYPE c.
DATA: p_w_value LIKE konv-kwert.
DATA : it_fieldcat TYPE slis_t_fieldcat_alv, " Event for Table to creater fieldcatalog
wa_fieldcat LIKE LINE OF it_fieldcat, " Work Area for table field catalog
lt_top_of_page TYPE slis_t_listheader, " Header table for top of page
i_layout TYPE slis_layout_alv . " It will fill the layout
gt_event TYPE slis_t_event. " Table Event
*DATA :
"itab_tnlst TYPE STANDARD TABLE OF tnlst WITH HEADER LINE,
" itab_tkukt TYPE STANDARD TABLE OF tkukt WITH HEADER LINE,
*" itab_t016t TYPE STANDARD TABLE OF t016t WITH HEADER LINE,
itab_tvgrt TYPE STANDARD TABLE OF tvgrt WITH HEADER LINE.
*& SELECTION-SCREEN
SELECTION-SCREEN BEGIN OF BLOCK block
WITH FRAME TITLE text-100.
SELECT-OPTIONS: s_date FOR vbrk-fkdat OBLIGATORY,
s_vkbur FOR vbak-vkbur OBLIGATORY,
s_vtweg FOR vbrk-vtweg OBLIGATORY,
s_werks FOR vbap-werks,
s_spart FOR vbrk-spart OBLIGATORY,
s_matkl FOR mara-matkl.
PARAMETERS:
r_opt3 RADIOBUTTON GROUP grp1,
r_opt2 RADIOBUTTON GROUP grp1.
r_opt4 RADIOBUTTON GROUP grp1,
r_opt5 RADIOBUTTON GROUP grp1,
r_opt1 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK block.
*& INITIALIZATION
INITIALIZATION.
r_opt2 = 'X'.
*& START-OF-SELECTION.
START-OF-SELECTION.
*select data from VBRP
SELECT vbeln
posnr
matnr
aubel
fkimg
vrkme
arktx
vgbel
werks
vkgrp
fklmg
volum
vkbur
vtweg_auft
FROM vbrp
INTO TABLE i_report
WHERE "erdat IN s_date
AND spart IN s_spart
vkbur IN s_vkbur
AND vtweg_auft IN s_vtweg.
**logic for Pending, Summary & Detail Report
IF
r_opt1 EQ 'X' OR
r_opt2 EQ 'X' OR
r_opt3 EQ 'X'.
SELECT vbeln
rfbsk
erdat
fkdat
fksto
netwr
fkart
knumv
mwsbk
bzirk
vtweg
spart
FROM vbrk INTO TABLE i_vbrk
FOR ALL ENTRIES IN i_report
WHERE "vbeln = i_report-vbeln
" and
fkdat IN s_date
AND fkart IN ('ZBHR', 'ZTZT', 'ZKRP', 'ZRUD', 'ZBSR',
'ZGHT', 'ZKOL', 'ZPTN', 'ZRNC', 'ZCND',
'ZDLH', 'ZGZB', 'ZGUR', 'ZHSR', 'ZJPR',
'ZLKW', 'ZBLR', 'ZCHN', 'ZCBM', 'ZHUB',
'ZHYD', 'ZKOC', 'ZAHD', 'ZIND', 'ZMUM',
*********************MODIFICATION BY CHAKRAPANI (ADDITION OF ZVIJ AND ZHWH ) 18.05.2007
'ZNGP', 'ZPNE', 'ZRPR' , 'ZEXP', 'ZDEM','ZVIJ', 'ZHWH','JEX' )
*********************MODIFICATION BY CHAKRAPANI (ADDITION OF ZVIJ AND ZHWH ) 18.05.2007
AND vtweg IN s_vtweg
AND spart IN s_spart
AND fksto NE 'X'.
IF i_vbrk[] IS NOT INITIAL.
SELECT vbeln
posnr
matnr
aubel
fkimg
vrkme
arktx
vgbel
werks
vkgrp
fklmg
volum
vkbur
vtweg_auft
FROM vbrp
INTO TABLE i_report
FOR ALL ENTRIES IN i_vbrk
WHERE vbeln = i_vbrk-vbeln "erdat IN s_date
AND spart IN s_spart
AND vkbur IN s_vkbur
AND vtweg_auft IN s_vtweg.
ENDIF.
ELSEIF r_opt4 EQ 'X' OR
r_opt5 EQ 'X'.
SELECT vbeln
rfbsk
erdat
fkdat
fksto
netwr
fkart
knumv
mwsbk
bzirk
vtweg
spart
FROM vbrk INTO CORRESPONDING FIELDS OF TABLE i_vbrk
FROM vbrk INTO TABLE i_vbrk
FOR ALL ENTRIES IN i_report
WHERE vbeln = i_report-vbeln
AND fkart EQ 'ZEXP'
AND vtweg IN s_vtweg
AND spart IN s_spart
AND fksto NE 'X'.
ENDIF.
SORT i_vbrk BY vbeln ASCENDING.
ENDIF.
change amit by my self may be removed
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
SORT it_report BY aubel.
*select VBAP data
SELECT posnr vbeln matnr werks
kwmeng lgort
FROM vbap
INTO TABLE i_vbap
FOR ALL ENTRIES IN it_report
WHERE vbeln = it_report-aubel.
ENDIF.
change amit by my self may be removed
*select data from VBKD
IF NOT i_vbap[] IS INITIAL.
SELECT vbeln posnr
FROM vbkd
INTO TABLE i_vbkd
FOR ALL ENTRIES IN i_vbap
WHERE vbeln = i_vbap-vbeln.
ENDIF.
SORT i_vbap BY vbeln ASCENDING.
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
DELETE ADJACENT DUPLICATES FROM it_report COMPARING matnr.
SORT it_report BY matnr.
SELECT
matnr
matkl
mtart
labor
bismt
normt
ferth
zeinr
extwg
spart
FROM mara
INTO TABLE i_mara
FOR ALL ENTRIES IN i_report
WHERE matnr = i_report-matnr
AND spart IN s_spart.
ENDIF.
IF NOT i_mara[] IS INITIAL.
SORT i_mara BY matnr.
SELECT matnr
labst
FROM mard
INTO TABLE itab_mard
FOR ALL ENTRIES IN i_mara
WHERE matnr = i_mara-matnr.
ENDIF.
ENDIF.
DATA : it_mara LIKE LINE OF i_mara OCCURS 0.
IF NOT i_mara[] IS INITIAL.
REFRESH it_mara.
it_mara[] = i_mara[].
DELETE ADJACENT DUPLICATES FROM it_mara COMPARING matkl.
SORT it_mara BY matkl.
SELECT matkl wgbez
FROM t023t
INTO TABLE i_t023t
FOR ALL ENTRIES IN it_mara
WHERE matkl = it_mara-matkl.
*T024X
REFRESH it_mara.
it_mara[] = i_mara[].
DELETE ADJACENT DUPLICATES FROM it_mara COMPARING labor.
SORT it_mara BY labor.
SELECT * FROM t024x
INTO TABLE itab_t024x
FOR ALL ENTRIES IN it_mara
WHERE labor = it_mara-labor
AND spras = sy-langu.
ENDIF.
*begin of change amit
LOOP AT i_vbap.
READ TABLE i_mara WITH KEY matnr = i_vbap-matnr.
IF sy-subrc = 0.
*material type & material group
i_vbap-mtart = i_mara-mtart.
i_vbap-matkl = i_mara-matkl.
ENDIF.
MODIFY i_vbap.
ENDLOOP.
*Material Group Description
*end of change amit
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
DELETE ADJACENT DUPLICATES FROM it_report COMPARING vgbel.
SORT it_report BY vgbel.
SELECT vbeln
ean11
volum
lgmng
FROM lips
INTO TABLE i_lips
FOR ALL ENTRIES IN it_report
WHERE vbeln = it_report-vgbel.
ENDIF.
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
SORT it_report BY vgbel.
DELETE ADJACENT DUPLICATES FROM it_report COMPARING vgbel.
IF i_lips[] IS NOT INITIAL.
SELECT vbeln
wadat_ist
traid
bolnr
FROM likp
INTO TABLE i_likp
FOR ALL ENTRIES IN it_report
WHERE vbeln = it_report-vgbel.
ENDIF.
SORT i_lips BY vbeln ASCENDING.
LOOP AT i_lips.
REFRESH t_line.
CLEAR w_tdname.
w_tdname = i_lips-vbeln.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'ZVOW'
language = sy-langu
name = w_tdname
object = 'VBBK'
TABLES
lines = t_line
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT t_line.
CONCATENATE i_lips-waybill t_line-tdline INTO i_lips-waybill.
ENDLOOP.
IF sy-subrc EQ 0.
MODIFY i_lips.
ENDIF.
ENDLOOP.
*IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
SORT it_report BY aubel.
DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
SELECT a~vbeln
b~name1
b~kunnr
b~regio
b~land1
a~vkgrp
b~niels
b~kukla
b~brsch
a~vkbur
FROM vbak AS a
INNER JOIN kna1 AS b
ON akunnr = bkunnr
INTO TABLE i_kna1
FOR ALL ENTRIES IN i_report
WHERE vbeln = i_report-aubel.
AND land1 = 'IN'.
*endif.
DATA : it_kna1 LIKE LINE OF i_kna1 OCCURS 0.
IF NOT i_kna1[] IS INITIAL.
REFRESH it_kna1.
it_kna1[] = i_kna1[].
SORT it_kna1 BY regio.
DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING regio.
SELECT spras
land1
bland
bezei FROM t005u
INTO TABLE i_t005u
FOR ALL ENTRIES IN it_kna1
WHERE bland = it_kna1-regio
AND spras = 'EN' AND land1 = 'IN'.
REFRESH it_kna1.
it_kna1[] = i_kna1[].
SORT it_kna1 BY niels.
DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING niels.
SELECT spras niels bezei FROM tnlst
INTO TABLE i_tnlst
FOR ALL ENTRIES IN it_kna1
WHERE niels = it_kna1-niels
AND spras = sy-langu.
REFRESH it_kna1.
it_kna1[] = i_kna1[].
SORT it_kna1 BY kukla.
DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING kukla.
SELECT spras kukla vtext FROM tkukt
INTO TABLE itab_tkukt
FOR ALL ENTRIES IN it_kna1
WHERE kukla = it_kna1-kukla
AND spras = sy-langu.
REFRESH it_kna1.
it_kna1[] = i_kna1[].
SORT it_kna1 BY brsch.
DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING brsch.
SELECT spras brsch brtxt FROM t016t
INTO TABLE itab_t016t
FOR ALL ENTRIES IN it_kna1
WHERE brsch = it_kna1-brsch
AND spras = sy-langu.
REFRESH it_kna1.
it_kna1[] = i_kna1[].
SORT it_kna1 BY vkgrp.
DELETE ADJACENT DUPLICATES FROM it_kna1 COMPARING vkgrp.
SELECT spras vkgrp bezei FROM tvgrt
INTO TABLE itab_tvgrt
FOR ALL ENTRIES IN it_kna1
WHERE vkgrp = it_kna1-vkgrp
AND spras = sy-langu.
ENDIF.
SORT i_kna1 BY vbeln ASCENDING.
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
SORT it_report BY aubel.
DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
SELECT a~vbeln
a~kunnr
b~city1
FROM vbpa AS a
INNER JOIN adrc AS b
ON aadrnr = baddrnumber
INTO TABLE i_adrc
FOR ALL ENTRIES IN it_report
WHERE vbeln = it_report-aubel
AND parvw = 'WE'.
SORT i_adrc BY vbeln ASCENDING.
ENDIF.
DATA : it_adrc LIKE LINE OF i_adrc OCCURS 0.
IF i_adrc[] IS NOT INITIAL.
REFRESH it_adrc.
it_adrc[] = i_adrc[].
SORT it_adrc BY kunnr.
DELETE ADJACENT DUPLICATES FROM it_adrc COMPARING kunnr.
SELECT kunnr name1
FROM kna1
INTO TABLE i_kna2
FOR ALL ENTRIES IN it_adrc
WHERE kunnr = it_adrc-kunnr.
ENDIF.
SELECT a~lifnr
a~vbeln
b~name1
FROM vbpa AS a
INNER JOIN lfa1 AS b
ON alifnr = blifnr
INTO TABLE i_lfa1
FOR ALL ENTRIES IN i_report
WHERE vbeln = i_report-vgbel
AND parvw = 'SP'.
SORT i_lfa1 BY vbeln ASCENDING.
change amit by my self may be removed
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
SORT it_report BY vbeln.
DELETE ADJACENT DUPLICATES FROM it_report COMPARING vbeln.
SELECT exnum
exdat
rdoc
status
FROM j_1iexchdr
INTO TABLE itab_exnum
FOR ALL ENTRIES IN it_report
WHERE rdoc = it_report-vbeln AND status = 'P' OR status = 'C' .
ENDIF.
change amit by my self may be removed
change amit by my self may be removed
IF i_report[] IS NOT INITIAL.
REFRESH it_report.
it_report[] = i_report[].
SORT it_report BY aubel.
DELETE ADJACENT DUPLICATES FROM it_report COMPARING aubel.
SELECT kwmeng
vbeln
lgort
FROM vbap
INTO TABLE itab_qty
FOR ALL ENTRIES IN it_report
WHERE vbeln = it_report-aubel.
ENDIF.
change amit by my self may be removed
SORT itab_qty BY vbeln.
CHECK NOT i_vbrk[] IS INITIAL.
SORT i_report BY vbeln.
DATA : t_vbrk LIKE LINE OF i_vbrk OCCURS 0.
REFRESH t_vbrk.
t_vbrk[] = i_vbrk[].
SORT t_vbrk BY knumv.
DELETE ADJACENT DUPLICATES FROM t_vbrk COMPARING knumv.
SELECT ksteu
knumv
kschl
kbetr
kwert
kposn
kmein
FROM konv
INTO TABLE it_rate
FOR ALL ENTRIES IN t_vbrk
WHERE knumv = t_vbrk-knumv
AND kschl IN ('ZR00', "Basic Price
'ZR01', "Basic Price
'ZR02', "Basic Price
'ZR03', "Basic Price
'ZR04', "Basic Price
'ZR05', "Basic Price
'JEXP', "Excise
'JECS', "ED
'ZG03', "Freight
'ZG04', "Freight
'JCST', "CST
'JLST', "LST
'ZDEV', "Dev Tax
'Z001', "Discount
'Z002', "Discount
'Z003', "Discount
'Z004', "Discount
'Z005', "Discount
'Z006', "Discount
'Z007', "Discount -
Hi,
My requirement is
I have one editable field in my alv report.
After editing that particular field , next screen has to be called.
In the Next screen, I need to have one checkbox for one sales order with different items.
But the checkbox is repeating for each items.
Any way to sort the checkboxesHi,
Example:
TYPES: BEGIN OF csg_gs_outtab .
TYPES: fcheckbox TYPE c. "field for checkbox
TYPES: fcelltab TYPE lvc_t_styl. "field to switch editability
INCLUDE STRUCTURE csg_wizard_falv .
TYPES: END OF csg_gs_outtab.
Add this while creating fieldcatalog
CLEAR ls_fcat.
ls_fcat-fieldname = 'FCHECKBOX'.
Essential: declare field as checkbox and
mark it as editable field:
ls_fcat-checkbox = 'X'.
ls_fcat-edit = 'X'.
do not forget to provide texts for this extra field
ls_fcat-coltext = text-f02.
ls_fcat-tooltip = text-f02.
ls_fcat-seltext = text-f03.
This will decide where this checkbox column will appear.
ls_fcat-col_pos = 3.
ls_fcat-outputlen = 10.
APPEND ls_fcat TO csg_pt_fieldcat.
Thanks,
Shankar -
Hi,
I have a report to display in ALV list display, It give a runtime error when i run the report ,
error message : in INCLUDE LKKBLF99 - Field symbol not assigned.
I am not usning any field symbols in my report, can anyone suggest what could be the problem.Hi,
While creating fieldcatalog table you should give the fieldname and the tabname in capital letters.
for eg.
fcat-fieldname = 'MATNR'.
regards,
Santosh Thorat. -
ALV Grid Usin Function Modulesshould be Displayed in ALV Grid Function mod
Hi,
I had a requirmentlike SM30 we hav to create initial Screen and wat ever ZXXXX tables we enter it will create Fieldcatalog Dynamically and press dislay it show in display mode.
If we Press Maintain it will Display in Editable Mode.The changed data should be updated into DB.Evrything should be displayed in
ALV Grid Function MOdule..
How to Get value from Screen Field ?
How To Generate Fieldcatalog For that Table dynamically?Hello,
How To Generate Fieldcatalog For that Table dynamically?
Use the FM 'REUSE_ALV_FIELDCATALOG_MERGE' pass the table name in the import param I_STRUCTURE_NAME & you'll get the fiel cat dynamically!
BR,
Suhas -
OO ALV displaying without Values despite Internal table contains
My below OO ALV displaying without Values despite Internal table contains the values ...
Help please ...
REPORT zsd_concession1 NO STANDARD PAGE HEADING
LINE-SIZE 285
LINE-COUNT 64
MESSAGE-ID zz.
Program Description ******************************
This report is to Calculate consession against Quotations
complying standards for enhanced Performance, Readability &
Maintenance.
Change Log *********************************
Remedy # / Who When Why / What
Transport #
CLASS lcl_event_handler DEFINITION DEFERRED.
*& Data Definitions .
DATA: BEGIN OF vbap_wa,
vbeln TYPE vbak-vbeln, "Quotation#
erdat TYPE vbak-erdat, "Quot date
knumv TYPE vbak-knumv, "Cond Rec#
posnr TYPE vbap-posnr, "Line Item
matnr TYPE vbap-matnr, "Mat#
zansicat TYPE zmarall-zansicat, "AnsiCat#
zansigrd TYPE zmarall-zansigrd, "Grade
zcurrvaltnarea TYPE zco002-zcurrvaltnarea,"Val Area
zcurrcstusd TYPE zco002-zcurrcstusd, "Cost$
zzbrndnm TYPE mara-zzbrndnm, "Brand
zqedscgrp TYPE zglbprc-zqedscgrp, "QE Disc Grp
mstav TYPE mara-mstav, "Status
kwmeng TYPE vbap-kwmeng, "Qty
lprc TYPE konv-kbetr, "List Price ZBP1
sprc TYPE konv-kbetr, "Std Pric ZNAA,ZNAX
netpr TYPE vbap-netpr, "Quot price
mrgn TYPE konv-kbetr, "margin%
END OF vbap_wa,
BEGIN OF konv_wa,
knumv TYPE konv-knumv, "Cond#
kposn TYPE konv-kposn, "Cond Item#
kappl TYPE konv-kappl, "Applic
kschl TYPE konv-kschl, "Cond Typ
kbetr TYPE konv-kbetr, "Price ZBP1,ZNAA,ZNAX
END OF konv_wa,
BEGIN OF vbpa_wa,
vbeln TYPE vbpa-vbeln, "Quot#
posnr TYPE vbpa-posnr, "Item#
parvw TYPE vbpa-parvw, "Prt Fn
kunnr TYPE vbpa-kunnr, "Cust#
END OF vbpa_wa,
BEGIN OF result_wa,
posnr TYPE vbap-posnr, "Line Item
matnr TYPE vbap-matnr, "Mat#
zansicat TYPE zmarall-zansicat, "AnsiCat#
zansigrd TYPE zmarall-zansigrd, "Grade
zcurrvaltnarea TYPE zco002-zcurrvaltnarea,"Val Area
zcurrcstusd TYPE zco002-zcurrcstusd, "Cost$
zzbrndnm TYPE mara-zzbrndnm, "Brand
zqedscgrp TYPE zglbprc-zqedscgrp, "QE Disc Grp
mstav TYPE mara-mstav, "Status
kwmeng TYPE vbap-kwmeng, "Qty
lprc TYPE konv-kbetr, "List Price ZBP1
sprc TYPE konv-kbetr, "Std Pric ZNAA,ZNAX
netpr TYPE vbap-netpr, "Quot price
mrgn TYPE konv-kbetr, "margin%
END OF result_wa.
DATA: ikonv LIKE STANDARD TABLE OF konv_wa,
ivbap LIKE STANDARD TABLE OF vbap_wa,
ivbpa LIKE STANDARD TABLE OF vbpa_wa,
iresult LIKE STANDARD TABLE OF result_wa.
*Work storage
DATA: BEGIN OF ws,
vbeln TYPE vbak-vbeln,
ok_code TYPE sy-ucomm,
alv_save TYPE c, "ALV save
alv_variant TYPE disvariant, "ALV Variant
alv_sort TYPE lvc_t_sort, "Sort table
END OF ws.
*Data declarations for ALV Main list
DATA : ty_lay1 TYPE lvc_s_layo,
it_fieldcat TYPE lvc_t_fcat ,
ty_fieldcat TYPE lvc_s_fcat ,
l_smenu TYPE REF TO cl_ctmenu,
c_alv1 TYPE REF TO cl_gui_alv_grid,
c_cont1 TYPE REF TO cl_gui_custom_container,
e_dclick TYPE REF TO lcl_event_handler.
*Data declarations for ALV Interactive list
DATA : ty_lay2 TYPE lvc_s_layo,
it_fcat TYPE lvc_t_fcat ,
ty_fcat TYPE lvc_s_fcat ,
c_alv2 TYPE REF TO cl_gui_alv_grid,
c_cont2 TYPE REF TO cl_gui_custom_container.
*Field-Symbols
FIELD-SYMBOLS:
<konv> LIKE konv_wa,
<vbap> LIKE vbap_wa.
*Constants
CONSTANTS:
c_end_row TYPE i VALUE 65000.
*CLASS lcl_event_receiver DEFINITION
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row.
ENDCLASS. "lcl_event_handler DEFINITION
*CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_handler IMPLEMENTATION.
METHOD handle_double_click.
DATA: sec_wa LIKE LINE OF iresult.
*Reading the selected data into a variable
READ TABLE iresult INDEX e_row-index INTO sec_wa.
*Select the field details of the selected table
SELECT * FROM dd03l INTO CORRESPONDING FIELDS OF TABLE it_dd03l
WHERE tabname EQ ls_dd02l-tabname.
*Calling the ALV containing the field values
CALL SCREEN 101.
ENDMETHOD. "handle_double_click
ENDCLASS. "lcl_event_handler IMPLEMENTATION
*& SELECTION-SCREEN.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_vbeln FOR ws-vbeln DEFAULT '2002354788' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK a.
INITIALIZATION.
PERFORM setup_screen_defaults.
START-OF-SELECTION.
PERFORM gather_report_data.
END-OF-SELECTION.
PERFORM create_output.
*& Form initialization
FORM setup_screen_defaults.
CLEAR: ws, konv_wa, vbap_wa, vbpa_wa.
REFRESH: ivbpa, ikonv, ivbap, iresult.
ENDFORM. " setup_screen_defaults
*& Form gather_report_data
FORM gather_report_data.
SELECT vbeln posnr parvw kunnr
INTO TABLE ivbpa
FROM vbpa
WHERE vbeln IN s_vbeln
AND ( parvw = 'SP' OR "SoldTO
parvw = 'WE' OR "ShipTo
parvw = 'ZT' ). "Top Parent
SELECT vkvbeln vkerdat vkknumv vpposnr vp~matnr
z1zansicat z1zansigrd z2~zcurrvaltnarea
z2zcurrcstusd m1zzbrndnm zg~zqedscgrp
m1mstav vpkwmeng vp~netpr
INTO CORRESPONDING FIELDS OF TABLE ivbap
FROM vbak AS vk
INNER JOIN vbap AS vp
ON vpvbeln = vkvbeln
INNER JOIN zmarall AS z1
ON z1matnr = vpmatnr
INNER JOIN zco002 AS z2
ON z2matnr = vpmatnr
INNER JOIN zglbprc AS zg
ON zgmatnr = vpmatnr
INNER JOIN mara AS m1
ON m1matnr = vpmatnr
WHERE vk~vbeln IN s_vbeln
AND vk~auart = 'AG'."AG = Quot
SORT ivbap BY posnr matnr.
SELECT kvknumv kvkposn kvkappl kvkschl kv~kbetr
INTO TABLE ikonv
FROM konv AS kv
FOR ALL ENTRIES IN ivbap
WHERE kv~knumv = ivbap-knumv
AND kv~kposn = ivbap-posnr
AND kv~kappl EQ 'V'
AND ( kv~kschl EQ 'ZBP1'
OR kv~kschl EQ 'ZNAX'
OR kv~kschl EQ 'ZNAA' ).
SORT ikonv BY knumv kposn.
LOOP AT ivbap ASSIGNING <vbap>.
CLEAR konv_wa.
READ TABLE ikonv INTO konv_wa WITH KEY
knumv = <vbap>-knumv
kposn = <vbap>-posnr
kschl = 'ZBP1'
BINARY SEARCH.
IF sy-subrc EQ 0.
<vbap>-lprc = konv_wa-kbetr.
ENDIF.
READ TABLE ikonv INTO konv_wa WITH KEY
knumv = <vbap>-knumv
kposn = <vbap>-posnr
kschl = 'ZNAX'
BINARY SEARCH.
IF sy-subrc EQ 0.
<vbap>-sprc = konv_wa-kbetr.
ENDIF.
READ TABLE ikonv INTO konv_wa WITH KEY
knumv = <vbap>-knumv
kposn = <vbap>-posnr
kschl = 'ZNAA'
BINARY SEARCH.
IF sy-subrc EQ 0.
<vbap>-sprc = konv_wa-kbetr.
ENDIF.
ENDLOOP.
SORT ivbap BY posnr matnr.
LOOP AT ivbap INTO vbap_wa.
MOVE-CORRESPONDING vbap_wa TO result_wa.
APPEND result_wa TO iresult.
CLEAR: vbap_wa, result_wa.
ENDLOOP.
ENDFORM. " gather_report_data
*& Form create_output
FORM create_output.
CALL SCREEN 100.
FREE: iresult.
ENDFORM. " create_output
*& Module PBO_0100 OUTPUT
text
MODULE pbo_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
IF c_cont1 IS INITIAL.
*Creating object of container
CREATE OBJECT c_cont1
EXPORTING
container_name = 'CCONT1'.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Creating object of alv
CREATE OBJECT c_alv1
EXPORTING
i_parent = c_cont1.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Alv layout
PERFORM alv_100_layout.
PERFORM save_alv_layout.
*Alv field catalogue
PERFORM alv_100_fieldcat.
*Displaying the ALV grid
CALL METHOD c_alv1->set_table_for_first_display
EXPORTING
is_layout = ty_lay1
i_save = ws-alv_save
is_variant = ws-alv_variant
CHANGING
it_outtab = iresult[]
it_sort = ws-alv_sort
it_fieldcatalog = it_fieldcat[].
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Create object of the event class
*and setting handler for double click
CREATE OBJECT e_dclick.
SET HANDLER e_dclick->handle_double_click FOR c_alv1.
ENDIF.
ENDMODULE. " PBO_0100 OUTPUT
*& Module PAI_0100 INPUT
text
MODULE pai_0100 INPUT.
ws-ok_code = sy-ucomm.
CASE ws-ok_code.
WHEN 'BACK'.
CALL SELECTION-SCREEN 1000.
CLEAR ws-ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
CLEAR ws-ok_code.
EXIT.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
CLEAR ws-ok_code.
EXIT.
WHEN OTHERS.
ENDCASE.
ENDMODULE. " PAI_0100 INPUT
*& Form alv_100_layout
text
--> p1 text
<-- p2 text
FORM alv_100_layout.
ty_lay1-numc_total = 'X'. " Numc total line
ty_lay1-cwidth_opt = 'X'. " Optimal column width
ty_lay1-detailinit = 'X'. " Show values that are initial in
ty_lay1-sel_mode = 'A'. " Column selection mode
ty_lay1-no_merging = 'X'. " No merging while sorting columns
ty_lay1-keyhot = 'X'.
ty_lay1-grid_title = 'SD Concessions'.
ty_lay1-zebra = 'X'.
ty_lay1-no_toolbar = ' '.
ENDFORM. " alv_100_layout
*& Form alv_100_fieldcat
text
--> p1 text
<-- p2 text
FORM alv_100_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 1.
ty_fieldcat-fieldname = 'posnr'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Item#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 2.
ty_fieldcat-fieldname = 'matnr'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Mat#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 3.
ty_fieldcat-fieldname = 'zansicat'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'AnsiCat#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 4.
ty_fieldcat-fieldname = 'zansigrd'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Grade'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 5.
ty_fieldcat-fieldname = 'zcurrvaltnarea'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Val Area'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 6.
ty_fieldcat-fieldname = 'zcurrcstusd'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Cost $'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 7.
ty_fieldcat-fieldname = 'zzbrndnm'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Brand'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 8.
ty_fieldcat-fieldname = 'zqedscgrp'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'QE'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 9.
ty_fieldcat-fieldname = 'mstav'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Status'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 9.
ty_fieldcat-fieldname = 'kwmeng'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Qty'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 10.
ty_fieldcat-fieldname = 'lprc'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'List Price'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 11.
ty_fieldcat-fieldname = 'sprc'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Discount'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 12.
ty_fieldcat-fieldname = 'netpr'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Quot Price'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 13.
ty_fieldcat-fieldname = 'mrgn'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Margin%'.
ty_fieldcat-outputlen = 15.
APPEND ty_fieldcat TO it_fieldcat.
ENDFORM. " alv_100_fieldcat
*& Module PBO_0101 OUTPUT
text
MODULE pbo_0101 OUTPUT.
*Check if the Custom container exists.
IF c_cont2 IS INITIAL.
*Creating container object
CREATE OBJECT c_cont2
EXPORTING
container_name = 'CCONT2'.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*creating ALV grid for interactive list
CREATE OBJECT c_alv2
EXPORTING
i_parent = c_cont2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*ALV layout
PERFORM alv_101_layout.
*ALV fieldcatalogue
PERFORM alv_101_fieldcat.
*Sorting the output by field position
SORT iresult BY posnr.
*ALV for display field details
CALL METHOD c_alv2->set_table_for_first_display
EXPORTING
is_layout = ty_lay2
CHANGING
it_outtab = iresult[]
it_fieldcatalog = it_fieldcat.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDMODULE. " PBO_0101 OUTPUT
*& Module PAI_0101 INPUT
text
MODULE pai_0101 INPUT.
ENDMODULE. " PAI_0101 INPUT
*& Form alv_101_layout
text
--> p1 text
<-- p2 text
FORM alv_101_layout.
ty_lay2-grid_title = 'Line Details'.
ty_lay2-zebra = 'X'.
ty_lay2-no_toolbar = 'X'.
ENDFORM. " alv_101_layout
*& Form alv_101_fieldcat
text
--> p1 text
<-- p2 text
FORM alv_101_fieldcat.
REFRESH it_fieldcat.
REFRESH it_fcat.
CLEAR ty_fcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 1.
ty_fieldcat-fieldname = 'posnr'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Item#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 2.
ty_fieldcat-fieldname = 'matnr'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Mat#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 3.
ty_fieldcat-fieldname = 'zansicat'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'AnsiCat#'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 4.
ty_fieldcat-fieldname = 'zansigrd'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Grade'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
CLEAR ty_fieldcat.
ty_fieldcat-row_pos = 1.
ty_fieldcat-col_pos = 5.
ty_fieldcat-fieldname = 'zcurrvaltnarea'.
ty_fieldcat-tabname = 'iresult'.
ty_fieldcat-coltext = 'Val Area'.
ty_fieldcat-outputlen = 10.
APPEND ty_fieldcat TO it_fieldcat.
ENDFORM. " alv_101_fieldcat
*& Form save_alv_layout
text
--> p1 text
<-- p2 text
form save_alv_layout.
ws-alv_save = 'A'.
ws-alv_variant-report = sy-repid.
endform. " save_alv_layoutHello
Creating fieldcatalogs manually is one of the major error sources in ALV programming.
There is hardly any reason why NOT to use the standard-fm LVC_FIELDCATALOG_MERGE in order to create a proper fieldcatalog.
If you need some modification of the standard fieldcatalog (e.g. renaming of columns, etc.) just do your post-processing after calling the fm.
Regards
Uwe -
Need help in ALV Header to merge the columns.
HI All,
I have to create an ALV report with below Header in which i have to merge the data.
Col1
col2
Col3
col.3.1
col 3.2
col3.3
Please let me know how to create fieldcatalog for the above layout.
Thanks
PiyushREPORT zhier_alv.
TYPE-POOLS : slis.
TABLES : mseg.
DATA : BEGIN OF itab_head OCCURS 0,
matnr LIKE mseg-matnr,
werks LIKE mseg-werks,
mblnr LIKE mseg-mblnr,
menge LIKE mseg-menge,
END OF itab_head.
DATA : BEGIN OF itab_item OCCURS 0,
matnr LIKE mseg-matnr,
werks LIKE mseg-werks,
mblnr LIKE mseg-mblnr,
menge LIKE mseg-menge,
END OF itab_item.
DATA : t_fcat TYPE slis_t_fieldcat_alv,
key_info TYPE slis_keyinfo_alv,
t_eve TYPE slis_t_event,
gt_subtot TYPE slis_t_sortinfo_alv,
subtot LIKE LINE OF gt_subtot,
t_listhead TYPE slis_t_listheader,
st_line TYPE slis_listheader.
DATA : t_mtdoc LIKE mseg-mblnr.
SELECT-OPTIONS : mat FOR mseg-matnr.
INITIALIZATION.
PERFORM build_cat USING t_fcat.
PERFORM build_eve.
START-OF-SELECTION.
PERFORM get_data.
PERFORM dis_data.
*& Form build_cat
text
-->TEMP_FCAT text
FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.
DATA : wa_fcat TYPE slis_fieldcat_alv.
wa_fcat-tabname = 'ITAB_HEAD'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-seltext_m = 'Material'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB_HEAD'.
wa_fcat-fieldname = 'WERKS'.
wa_fcat-seltext_m = 'Plant'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB_ITEM'.
wa_fcat-fieldname = 'MBLNR'.
wa_fcat-seltext_m = 'Material Doc.'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB_ITEM'.
wa_fcat-fieldname = 'MENGE'.
wa_fcat-seltext_m = 'Quantity'.
wa_fcat-do_sum = 'Y'.
APPEND wa_fcat TO temp_fcat.
CLEAR wa_fcat.
subtot-spos = 1.
subtot-fieldname = 'MATNR'.
subtot-tabname = 'ITAB_HEAD'.
subtot-up = 'X'.
subtot-group = 'X'.
subtot-subtot = 'X'.
subtot-expa = 'X'.
APPEND subtot TO gt_subtot.
ENDFORM. "build_cat
*& Form build_eve
text
FORM build_eve.
DATA : wa_eve TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = t_eve
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE t_eve INTO wa_eve WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_eve-form = 'TOP_OF_PAGE'.
MODIFY t_eve FROM wa_eve INDEX sy-tabix.
ENDIF.
ENDFORM. "build_eve
*& Form get_data
text
FORM get_data.
SELECT matnr werks mblnr menge FROM mseg INTO CORRESPONDING FIELDS OF
TABLE itab_item
WHERE matnr IN mat.
ENDFORM. "get_data
*& Form dis_data
text
FORM dis_data.
key_info-header01 = 'MATNR'.
key_info-item01 = 'MATNR'.
key_info-header02 = 'WERKS'.
key_info-item02 = 'WERKS'.
key_info-header03 = 'MBLNR'.
key_info-item03 = 'MBLNR'.
key_info-header04 = 'MENGE'.
key_info-item04 = 'MENGE'.
REFRESH itab_head.
LOOP AT itab_item.
ON CHANGE OF itab_item-matnr OR itab_item-werks.
MOVE-CORRESPONDING itab_item TO itab_head.
APPEND itab_head.
ENDON.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = 'ZHIER_ALV'
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = t_fcat
it_sort = gt_subtot
it_events = t_eve[]
i_tabname_header = 'ITAB_HEAD'
i_tabname_item = 'ITAB_ITEM'
is_keyinfo = key_info
TABLES
t_outtab_header = itab_head
t_outtab_item = itab_item
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "dis_data
*& Form user_Command
text
-->U_COMM text
-->SELFIELD text
FORM user_command USING u_comm TYPE sy-ucomm selfield TYPE slis_selfield
CASE u_comm.
WHEN '&IC1'.
READ TABLE itab_item INDEX selfield-tabindex.
t_mtdoc = itab_item-mblnr.
SET PARAMETER ID 'MBN' FIELD t_mtdoc.
CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "user_Command
*& Form top_of_page
text
FORM top_of_page.
CLEAR st_line.
st_line-typ = 'H'.
st_line-info = 'Krupa'.
APPEND st_line TO t_listhead.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_listhead
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "top_of_page
if it is use then give point -
Hi all,
I have a program where i need to display split screen ALV.
One ALV table on the left and one the right.
In the left ALV i display 10 table names..
If i click on the table name then the table should be displayed in the right side ALV.
This i can successfully do it but if i click on the another table after displaying the one table the new table will not be displayed where as still the first displayed tabled is shown..
Below is my coding please have a look and let me know the error..
IF gr_custom_container_02 IS INITIAL.
CREATE OBJECT gr_custom_container_02
EXPORTING
container_name = 'CUSTOM'.
Split the Container---------------------------------------------------*
CREATE OBJECT splitter
EXPORTING
parent = gr_custom_container_02
rows = 1
columns = 2.
CALL METHOD splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = container_1.
create the ALV Table-------------------------------------------------*
CREATE OBJECT gr_alv_grid_02
EXPORTING
i_parent = container_1.
create Fieldcatalog--------------------------------------------------*
PERFORM prepare_fieldcat_02 CHANGING g_t_fieldcat_02.
To Customize the layout
PERFORM prepare_layout_02 CHANGING g_s_layout_02.
Show ALV-------------------------------------------------------------*
CALL METHOD gr_alv_grid_02->set_table_for_first_display
EXPORTING
is_layout = g_s_layout_02
CHANGING
it_fieldcatalog = g_t_fieldcat_02
it_outtab = g_t_queuename.
SET HANDLER event_receiver->handle_hotspot_click FOR gr_alv_grid_02.
ELSE.
To refresh the table for displaying.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD gr_alv_grid_02->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
ENDIF.
CALL METHOD splitter->get_container
EXPORTING
row = 1
column = 2
RECEIVING
container = container_2.
create the ALV Table-------------------------------------------------*
CREATE OBJECT gr_alv_grid_03
EXPORTING
i_parent = container_2.
Show ALV-------------------------------------------------------------*
CALL METHOD gr_alv_grid_03->set_table_for_first_display
EXPORTING
CHANGING
it_fieldcatalog = g_t_fieldcat_03
it_outtab = <select_queue_table>.Hi,
You should develop an event handler method where you will catch the click on the left container. There you should evaluate the the data and you should free the ALV grid from the right container and then you should call the method set_table_for_first_display with the data that you want. At the end you should call the static method CL_GUI_CFW=>FLUSH to synchronize the ALV framework.
With Regards
George
Maybe you are looking for
-
Hello, I have a 3GS but I cannot either make calls or receive them but I can send messages, could anyone help me, pleaseeeee? I do not know what to do. Many thanks.
-
Disk Not Ejected Properly on wake
In the past week or so I am getting the standard Disk Not Ejected properly message everytime I wake my iMac up. However, all of my disks are still mounted properly and accessible so I have no idea what it thinks has been ejected. I have been running
-
Instant Client Installation help
Hello I'm relatively beginner. I'm having a win2k machine which i want to setup as a client to oracle 9i server which i'm able to telnet and work. What should i do??. I have downloaded (instant client basic + odbc) and set the path...install from the
-
I rest iphone 1g but im not able to use it anymore
i rest my 1stg iphone to regift it but im unable to do anything with it can any onw help me i also lost the sim card i thought i wouldnt ever need it again pls help
-
Previous Versions Of iTunes...
Looking for an iTunes archive, anybody know where this might be? SC