cancel
Showing results for 
Search instead for 
Did you mean: 

regarding column heading in alv grid display

Former Member
0 Kudos

hi experts,

i am developing a alv grid report in which i have to show the arrear breakup for dates given in the selection screen.....the scenarion is like this..

if i enter from april to june....

what i want here is in the output list automatically the seltext(column heading) for fields will be changing for eg...arrear breakup for <b><u>april</u></b> ,,,,,,,,,,,arrear breakup for <u><b>may</b></u> etc

NOW I M USING LIKE THIS I WANT TO REMOVE THIS CODINGSS

s_fieldtab-fieldname = 'BETRG1'.

s_fieldtab-seltext_l = 'ARR Basic Salary For may'.

s_fieldtab-tabname = 'IT_RT'.

s_fieldtab-EMPHASIZE = 'X'.

s_fieldtab-OUTPUTLEN = '25'.

APPEND s_fieldtab TO i_fieldtab.

CLEAR s_fieldtab.

s_fieldtab-fieldname = 'BETRG2'.

s_fieldtab-seltext_l = 'ARR House Rent Allowance FOR MAY'.

s_fieldtab-tabname = 'IT_RT'.

s_fieldtab-EMPHASIZE = 'X'.

s_fieldtab-OUTPUTLEN = '25'.

APPEND s_fieldtab TO i_fieldtab.

CLEAR s_fieldtab.

s_fieldtab-fieldname = 'BETRG5'.

s_fieldtab-seltext_l = 'ARR Basic Salary For june'.

s_fieldtab-tabname = 'IT_RT'.

s_fieldtab-EMPHASIZE = 'X'.

s_fieldtab-OUTPUTLEN = '25'.

APPEND s_fieldtab TO i_fieldtab.

CLEAR s_fieldtab.

s_fieldtab-fieldname = 'BETRG6'.

s_fieldtab-seltext_l = 'ARR House Rent Allowance FOE JUNE'.

s_fieldtab-tabname = 'IT_RT'.

s_fieldtab-EMPHASIZE = 'X'.

s_fieldtab-OUTPUTLEN = '25'.

what logic sud i add for automatic changing of the column text..plz help me its urgent.....thnx in advance....

Message was edited by:

ravi gupta

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi

I think you want a selection screen at output am i correct. If that is ur requirement check the following code which may help u alot

*&---------------------------------------------------------------------*
*& Report  ZALVCOLOR                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALVCOLOR                               .

DATA : mara TYPE mara.                 " General Material Data

TYPE-POOLS: slis.                      " ALV Global types

FIELD-SYMBOLS :
  <data> TYPE table.                   " Data to display

SELECT-OPTIONS :
  s_matnr FOR mara-matnr.              " Material number

SELECTION-SCREEN :
  SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.    "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '50' OBLIGATORY.
SELECTION-SCREEN END OF LINE.

*---------------------------------------------------------------------*
INITIALIZATION.

  v_1 = 'Maximum of lines to display'.

*---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM f_read_data.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  FIELD-SYMBOLS :
    <field>    TYPE ANY,
    <field2>   TYPE ANY,
    <header>   TYPE ANY,
    <header2>  TYPE ANY,
    <lt_data>  TYPE table.             " Data read from DB

  DATA:
    lp_struct  TYPE REF TO data,
    lp_struct2 TYPE REF TO data,
    lp_table   TYPE REF TO data,       " Pointer to dynamic table
    lp_table2  TYPE REF TO data,       " Pointer to dynamic table
    ls_lvc_cat TYPE lvc_s_fcat,
    lt_lvc_cat TYPE lvc_t_fcat.        " Field catalog

* First column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MATNR'.
  ls_lvc_cat-ref_table = 'MARA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* 2nd column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MAKTX'.
  ls_lvc_cat-ref_table = 'MAKT'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* 3rd column
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'MATKL'.
  ls_lvc_cat-ref_table = 'MARA'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Create 1st internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = lt_lvc_cat
    IMPORTING ep_table = lp_table.

  ASSIGN lp_table->* TO <lt_data>.

* Read data into 1st internal table
  SELECT matnr maktx matkl
    INTO TABLE <lt_data>
    FROM v_matnr
      UP TO p_max ROWS
   WHERE matnr IN s_matnr.

* Create 2nd internal table
* Checkbox
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'CHECKBOX'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Table color
  CLEAR ls_lvc_cat.
  ls_lvc_cat-fieldname = 'TABCOLOR'.
  ls_lvc_cat-ref_table = 'CALENDAR_TYPE'.
  ls_lvc_cat-ref_field = 'COLTAB'.
  APPEND ls_lvc_cat TO lt_lvc_cat.

* Create 2nd internal table
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING it_fieldcatalog = lt_lvc_cat
    IMPORTING ep_table = lp_table2.

  ASSIGN lp_table2->* TO <data>.

* Create structure = structure of the 1st internal table
  CREATE DATA lp_struct LIKE LINE OF <lt_data>.
  ASSIGN lp_struct->* TO <header>.

* Create structure = structure of the 2nd internal table
  CREATE DATA lp_struct2 LIKE LINE OF <data>.
  ASSIGN lp_struct2->* TO <header2>.

* Move data from 1st internal table --> 2nd internal table
  LOOP AT <lt_data> ASSIGNING <header>.

    DESCRIBE TABLE lt_lvc_cat.
    CLEAR <header2>.

*   Fill the internal to display <data>
    DO sy-tfill TIMES.
      READ TABLE lt_lvc_cat INTO ls_lvc_cat INDEX sy-index.
*     For each field of lt_lvc_cat.
      ASSIGN COMPONENT ls_lvc_cat-fieldname OF STRUCTURE <header>
                    TO <field>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      ASSIGN COMPONENT ls_lvc_cat-fieldname OF STRUCTURE <header2>
                    TO <field2>.
      IF sy-subrc NE 0. EXIT .ENDIF.
      <field2> = <field>.
    ENDDO.

*   Modify color
    ASSIGN COMPONENT 'TABCOLOR' OF STRUCTURE <header2>
                  TO <field2>.
    IF sy-subrc EQ 0.
      PERFORM f_modify_color USING 'MAKTX' <field2>.
      PERFORM f_modify_color USING 'MATKL' <field2>.
    ENDIF.

    APPEND <header2> TO <data> .
  ENDLOOP.

ENDFORM.                    " f_read_data
*---------------------------------------------------------------------*
*      Form  F_DISPLAY_DATA
*---------------------------------------------------------------------*
FORM f_display_data.

* Macro definition
  DEFINE m_sort.
    add 1 to ls_sort-spos.
    ls_sort-fieldname = &1.
    ls_sort-down      = 'X'.
    append ls_sort to lt_sort.
  END-OF-DEFINITION.

  DATA:
    ls_layout   TYPE slis_layout_alv,
    lt_sort     TYPE slis_t_sortinfo_alv,
    ls_sort     TYPE slis_sortinfo_alv,
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv.  " Field catalog

* Build Fieldcatalog - First column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MATNR'.
  ls_fieldcat-ref_tabname = 'MARA'.
  ls_fieldcat-key  = 'X'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Build Fieldcatalog - 2nd column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MAKTX'.
  ls_fieldcat-ref_tabname = 'MAKT'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Build Fieldcatalog - 3rd column
  CLEAR ls_fieldcat.
  ls_fieldcat-fieldname   = 'MATKL'.
  ls_fieldcat-ref_tabname = 'MARA'.
  APPEND ls_fieldcat TO lt_fieldcat.

* Layout
  ls_layout-zebra = 'X'.
  ls_layout-colwidth_optimize = 'X'.
  ls_layout-box_fieldname = 'CHECKBOX'.
  ls_layout-coltab_fieldname = 'TABCOLOR'.

  m_sort 'MATNR'.                      " Sort by creation date

* Display data
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout   = ls_layout
            it_fieldcat = lt_fieldcat
            it_sort     = lt_sort
       TABLES
            t_outtab    = <data>.

ENDFORM.                               " F_DISPLAY_DATA
*---------------------------------------------------------------------*
*      Form  F_modify_color
*---------------------------------------------------------------------*
FORM f_modify_color USING u_fieldname TYPE lvc_fname
                          ut_tabcolor TYPE table.

  DATA:
    l_rnd_value TYPE datatype-integer2,
    ls_tabcolor TYPE lvc_s_scol.

* Random value
  CALL FUNCTION 'RANDOM_I2'
       EXPORTING
            rnd_min   = 0
            rnd_max   = 3
       IMPORTING
            rnd_value = l_rnd_value.

  CLEAR ls_tabcolor.
  ls_tabcolor-fname = u_fieldname.

  CASE l_rnd_value.
    WHEN 0.
      ls_tabcolor-color-col = 1.       " Blue.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 1.
      ls_tabcolor-color-col = 3.       " Yellow.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 2.
      ls_tabcolor-color-col = 5.       " Green.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
    WHEN 3.
      ls_tabcolor-color-col = 6.       " Red.
      ls_tabcolor-color-int = 0.
      ls_tabcolor-color-inv = 0.
  ENDCASE.

  INSERT ls_tabcolor INTO TABLE ut_tabcolor.

ENDFORM.                               " F_MODIFY_COLOR

Reward all helpfull answers

Regards

Pavan

Former Member
0 Kudos

Hi,

Read the Month from the date field of the Selection screen.

For date-low field.

suppose ur date is 07/23/2007

Var = sy-datum+0(2)

now

case.

when '7'.

var1 = 'July'.

endcase.

now in ur fieldcat.

s_fieldtab-seltext_l = 'ARR Basic Salary For VAR1'.

i hope it helps u .

Reward Points if it is Useful.

Thanks,

Manjunath MS

Former Member
0 Kudos

HI manju ,,,

thnx for ur reply but r u sure this will work never here it is not working.....if in ur system it is working then plz let me know......no doubt u understood my question if possible kindly send me some other solutions.......

thnx again.

regards,

ravi gupta.

Former Member
0 Kudos

hi,

As per my understanding, in the sel-screen user will mention the month range like this ....

APR to MAY ,,, JAN to JUL...

so, u can do one thing, store the months in variables,

( l_month1 = 'APR' ,l_month2 = 'MAY'.

while building the fieldcatlogue,

u will be mentioning the col heading's, here mention thiose months...

any clarifications, do reply..

With REgards,

S.Barani