‎2005 Dec 08 7:44 AM
In HR,you get a dynamic selection colouful icon,
How should
a) I get that on my selection-screen .
b) I want to add 40 custom fields in it
that will be my output ALV fields on report.
All standrd fields I want to remove.
My requirement is every time when user executes the report he will select the o/p columns.
They do not want ALV variant existance /layout save approach.
Can you help me in this regard.
Thanks
Prashant
‎2005 Dec 08 8:58 AM
I want that icon on selection-screen not on application tool bar.
Any idea how to do this.
‎2005 Dec 08 7:52 AM
Hi,
The colourful icon that you get will only appear if your report is attached to a Logical Database and that particular logical database supports dynamic selections.
Take a look at documentation on LDBs if you are interested. Transaction is SE36. One such LDB is PNP.
A sample program is EXAMPLE_PNP_GET_PAYROLL.
Now about giving users an option to select o/p columns, I suggest you present a popup with your 40 custom fields to select as the first thing after user presses execute using function modules like REUSE_ALV_POPUP_TO_SELECT..
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
‎2005 Dec 08 8:55 AM
type-pools slis.
data: begin of GT_DRD occurs 0,
text(30) type c,
col(5) type c,
end of GT_DRD.
DATA: GT_FIELDCAT_DRD TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
data gc_SELFIELD TYPE SLIS_SELFIELD.
data: lv_text(20) type c.
* if p_prc_rb = 'X'.
* lv_text = 'Hierarchy Area'.
* elseif p_sac_rb = 'X'.
lv_text = ' '.
* else.
lv_text = 'Organizational Unit'.
* endif.
clear: gt_drd, gt_fieldcat_drd.
refresh: gt_drd, gt_fieldcat_drd.
gt_drd-text = 'Per. No.'(t17).
gt_drd-col = 'PERNR'.
condense gt_drd-col no-gaps.
append gt_drd.
gt_drd-text = 'Cost Ctr'(t16).
gt_drd-col = 'KOSTL'.
condense gt_drd-col no-gaps.
append gt_drd.
gt_drd-text = lv_text.
gt_drd-col = 'TEXT1'.
condense gt_drd-col no-gaps.
append gt_drd.
gt_drd-text = 'Last Name'(t18).
gt_drd-col = 'NACHN'.
condense gt_drd-col no-gaps.
append gt_drd.
gt_drd-text = 'First Name'(t19).
gt_drd-col = 'VORNA'.
condense gt_drd-col no-gaps.
append gt_drd.
gt_drd-text = 'FTE'(t35).
gt_drd-col = 'FTEVL'.
condense gt_drd-col no-gaps.
append gt_drd.
clear gt_drd.
gt_fieldcat_drd-seltext_m = 'Last Name'.
gt_fieldcat_drd-fieldname = 'NACHN'.
append gt_fieldcat_drd.
gt_fieldcat_drd-seltext_m = 'First Name'.
gt_fieldcat_drd-fieldname = 'VORNA'.
append gt_fieldcat_drd.
clear gt_fieldcat_drd.
* I_CHECKBOX_FIELDNAME
call function 'REUSE_ALV_POPUP_TO_SELECT'
exporting
i_title = 'Choose columns'(t38)
I_SELECTION = 'X'
i_zebra = 'X'
i_screen_start_column = 10
i_screen_start_line = 5
i_screen_end_column = 400
i_screen_end_line = 12
i_callback_program = 'ZTEST123'
i_tabname = 'GT_FIELDCAT_DRD'
it_fieldcat = gt_fieldcat_drd[]
importing
es_selfield = gc_selfield
tables
t_outtab = gt_fieldcat_drd[]
exceptions
program_error = 1
others = 2.
write sy-subrc.
When i change the layout i.e. removing one field , i still get the gt_fieldcat_drd[] as same i.e. with two entries.
‎2005 Dec 08 8:58 AM
I want that icon on selection-screen not on application tool bar.
Any idea how to do this.
‎2005 Dec 08 9:49 AM
Ok Prashant,
Here we go..
Check the following example,
REPORT ZSRITEST.
DATA: lv_subrc LIKE sy-subrc.
DATA: BEGIN OF lt_fields_available OCCURS 0,
FIELDTEXT LIKE DNTAB-FIELDTEXT,
FIELDNAME LIKE DNTAB-FIELDNAME,
TABNAME LIKE DNTAB-TABNAME,
FIELD LIKE DNTAB-FIELDNAME,
END OF lt_fields_available.
DATA: BEGIN OF lt_fields_selected OCCURS 0,
FIELDTEXT LIKE DNTAB-FIELDTEXT,
FIELDNAME LIKE DNTAB-FIELDNAME,
TABNAME LIKE DNTAB-TABNAME,
FIELD LIKE DNTAB-FIELDNAME,
UNDELETABLE TYPE FLAG,
END OF lt_fields_selected.
lt_fields_available-fieldname = 'PERNR'.
lt_fields_available-fieldtext = 'Per. No.'(t17).
lt_fields_available-field = 'PERNR'.
lt_fields_available-tabname = 'TEST'.
APPEND lt_fields_available.
lt_fields_available-fieldname = 'KOSTL'.
lt_fields_available-fieldtext = 'Cost Ctr'(t16).
lt_fields_available-field = 'KOSTL'.
lt_fields_available-tabname = 'TEST'.
APPEND lt_fields_available.
lt_fields_available-fieldname = 'NACHN'.
lt_fields_available-fieldtext = 'Last Name'(t18).
lt_fields_available-field = 'NACHN'.
lt_fields_available-tabname = 'TEST'.
APPEND lt_fields_available.
lt_fields_available-fieldname = 'VORNA'.
lt_fields_available-fieldtext = 'First Name'(t19).
lt_fields_available-field = 'VORNA'.
lt_fields_available-tabname = 'TEST'.
APPEND lt_fields_available.
lt_fields_available-fieldname = 'FTEVL'.
lt_fields_available-fieldtext = 'FTE'(t35).
lt_fields_available-field = 'FTEVL'.
lt_fields_available-tabname = 'TEST'.
APPEND lt_fields_available.
CALL FUNCTION 'FIELD_CHOICE'
EXPORTING
* MAXFIELDS =
TITEL1 = 'Available Fields'
TITEL2 = 'Selected Fields'
POPUPTITEL = 'Test'
* NOTDELETEABLE =
* INFO_TEXT =
* DYN_PUSHBUTTON_TEXT1 =
* DYN_PUSHBUTTON_TEXT2 =
* DYN_PUSHBUTTON_TEXT3 =
* NOSORT = ' '
* NOMOVE = ' '
* INITIAL_SORT = 0
IMPORTING
RETURN_CODE = lv_subrc
TABLES
fieldtabin = lt_fields_available[]
selfields = lt_fields_selected[]
* EXCEPT_TAB =
EXCEPTIONS
NO_TAB_FIELD_INPUT = 1
TO_MANY_SELFIELDS_ENTRIES = 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.
NOTE: lt_fields_selected table after the fm call will have fields selected. Now use this table to move it into your field catalog for the ALV or whatever display you use.
Hope this helps..
Sri
‎2005 Dec 08 10:04 AM
hi Srikanth,
Thanks, slolved the problem.
This is what i was looking from yesterday.
Awarded the full points.
Cheers.
Regards
Prashant