Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

dynamic selection

Former Member
0 Likes
802

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
733

I want that icon on selection-screen not on application tool bar.

Any idea how to do this.

5 REPLIES 5
Read only

Former Member
0 Likes
733

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

Read only

Former Member
0 Likes
733


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.

Read only

Former Member
0 Likes
734

I want that icon on selection-screen not on application tool bar.

Any idea how to do this.

Read only

0 Likes
733

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

Read only

0 Likes
733

hi Srikanth,

Thanks, slolved the problem.

This is what i was looking from yesterday.

Awarded the full points.

Cheers.

Regards

Prashant