06-10-2008 1:54 PM
Hi Guys,
Here is the situation:
After displaying my data in a ALV List/Grid for the first time, it is necisarry for the user to change the layout (in other words: they choose the "Change Layout" button at the top and arrange the fields as they desire).
I then need to export the data in this newly arranged layout...
For example:
1. I have 3 fields: F1 F2 and F3.
2. There 3 fields get displayed in the order above.
3. The user then decides that they want the field order to be F3 F1 F2 and does so using the "Change Layout" SAP button.
4. I now have to export the data in the field layout as per point 3 above...
Therefore, WHICH FUNCTION MODULES/CLASSES CAN I USE TO GET THIS "NEW" INFORMATION!!!
I have tried Function Module 'REUSE_ALV_LIST_LAYOUT_INFO_GET' but it does not return the correct data... For example, when I remove some fields to be displayed after choosing "Change Layout", this Function Module returns ALL the fields I used...
Please advise,
MAX POINTS WILL BE REWARDED FOR USEFUL AWNSERS!!!
06-11-2008 7:07 AM
Hi,
Use this way,
Use the FM codeREUSE_ALV_LIST_LAYOUT_INFO_GET[/code]
Below is the sample code for it.
call function 'REUSE_ALV_LIST_LAYOUT_INFO_GET'
importing
es_layout = lv_layout1
et_fieldcat = i_fieldcat1
exceptions
no_infos = 1
program_error = 2
others = 3.
\[removed by moderator\]
Thanks
Vikranth
Edited by: Jan Stallkamp on Jun 11, 2008 10:51 AM
06-10-2008 2:15 PM
Hi,
try
CALL METHOD grid1->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = ls_fieldcatalog.
ls_fieldcatalog-row_pos = 0 indicates hidden fields.
ls_fieldcatalog-col_pos is the sequence number.
P.S: If you haven't got the grid you should use function GET_GLOBALS_FROM_SLVC_FULLSCR.
Regards
Walter Habich
Edited by: Walter Habich on Jun 10, 2008 3:26 PM
06-11-2008 6:42 AM
Hi There,
Many tks for the awnser.
Im not using OO to do this... Im still using SLIS. Therefore, I cannot use the method you recommend.
I also tried the GET_GLOBALS_FROM_SLVC_FULLSCR Function, but I got a runtime error as the Function actually does a call to the method you recomended...
can you recommend anything else?
tks again,
C
06-11-2008 6:58 AM
if u have any alternative solution plz let me knoe
thanks and regards
abpk
06-11-2008 6:57 AM
OO-ALV use METHOD get_frontend_fieldcatalog
FM-ALV use FM REUSE_ALV_GRID_LAYOUT_INFO_GET
Regards
06-11-2008 7:07 AM
Hi,
Use this way,
Use the FM codeREUSE_ALV_LIST_LAYOUT_INFO_GET[/code]
Below is the sample code for it.
call function 'REUSE_ALV_LIST_LAYOUT_INFO_GET'
importing
es_layout = lv_layout1
et_fieldcat = i_fieldcat1
exceptions
no_infos = 1
program_error = 2
others = 3.
\[removed by moderator\]
Thanks
Vikranth
Edited by: Jan Stallkamp on Jun 11, 2008 10:51 AM
06-11-2008 7:10 AM
Hi,
Like I mentioned in my first post, I have tried this Function Module.
The thing is that sometimes fields are removed from the list being displayed. This Function Module (REUSE_ALV_LIST_LAYOUT_INFO_GET) returns ALL the fields REGARDLESS if you removed some from the display,
tks
C
06-11-2008 12:41 PM
In the fieldcatalog, look for
- fieldcat-TECH " Field not displayable
- fieldcat-NO_OUT " Field not displayed
- fieldcat-COL_POS " position of field
Regards
06-11-2008 12:51 PM
Hi Guys!
I GOT IT RIGHT!!!!
Here is an extract and a very usefull function module that helped me out :
FORM save_pd .
DATA : ti_tabname TYPE kkblo_tabname.
DATA : tcs_layout TYPE kkblo_layout,
tct_default_fieldcat TYPE kkblo_t_fieldcat,
wa_tct_default_fieldcat TYPE kkblo_fieldcat,
ti_fcat_complete TYPE abap_bool,
ti_tabname_slave TYPE kkblo_tabname.
IF p_vari IS INITIAL.
MESSAGE 'Please enter a Layout' TYPE 'I'.
ELSE.
PERFORM get_report_data.
wa_tct_default_fieldcat-fieldname = 'ENTITYKEY'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'ANLKL'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'TXT50'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'AKTIV'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'AFABE'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'KANSW'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'KNAFA'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'NETBV'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'ERLBT'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'PROCD'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'DEAKT'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'KTOGR'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD1'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD2'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD3'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD4'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD5'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD6'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD7'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
wa_tct_default_fieldcat-fieldname = 'XFIELD8'.
APPEND wa_tct_default_fieldcat TO tct_default_fieldcat.
CLEAR wa_tct_default_fieldcat.
var-report = sy-repid.
var-variant = p_vari.
var-log_group = 'ZALV'.
var-username = sy-uname.
tcs_layout-zebra = 'X'.
tcs_layout-cwidth_opt = 'X'.
tcs_layout-rows_max = 0.
tcs_layout-new_fcodes = 'X'.
tcs_layout-col_offset = 0.
tcs_layout-row_offset = 0.
tcs_layout-keycols = 00.
tcs_layout-default = 'X'.
tcs_layout-save = 'A'.
tcs_layout-colwidth_optimize = 'X'.
tcs_layout-min_linesize = 0.
tcs_layout-max_linesize = 0.
tcs_layout-get_selinfos = 'X'.
tcs_layout-info_fieldname = 'COLOR'.
tcs_layout-no_print_selinfos = 'X'.
tcs_layout-no_coverpage = 'X'.
tcs_layout-reserve_lines = 0.
tcs_layout-no_print_listinfos = 'X'.
tcs_layout-rowno_change = 'X'.
tcs_layout-no_numc_sum = 'Z'.
tcs_layout-s_variant = var.
MOVE-CORRESPONDING layout TO tcs_layout.
ti_tabname = '1'.
CALL FUNCTION 'LT_FC_LOAD'
EXPORTING
is_variant = var
i_tabname = ti_tabname
i_tabname_slave = ti_tabname_slave
i_fcat_complete = ti_fcat_complete
IMPORTING
et_fieldcat = ttet_fieldcat[]
et_sort = ttet_sort[]
et_filter = ttet_filter[]
CHANGING
cs_layout = tcs_layout
ct_default_fieldcat = tct_default_fieldcat
EXCEPTIONS
fc_not_complete = 1
OTHERS = 2
.
IF sy-subrc <> 0.
ENDIF.
"Get all the fields that are/were selected in the List display. We will
"then loop at itab to create the list that will be donwloaded with a
"Pipe Delimiter...
LOOP AT ttet_fieldcat INTO wa_tct_default_fieldcat WHERE no_out <> 'X'.
itab_fcat-result = wa_tct_default_fieldcat-fieldname.
APPEND itab_fcat.
ENDLOOP.
PERFORM download_pipe_delim_format.
ENDIF.
06-11-2008 12:51 PM