How to fix the column header width in BEx or WAD

hi there!
how to fix the column header width in BEx or WAD. because, depends on the column data, the column size varies. i want to fix the size so that i can maintain the consistency through out the report.
thanks!
Vam.

Dear Vam,
you can easily do that with css, search the source code of the executed web template for the td tag which is around your coloumn header, remember the style sheet class name it is ´displayed as class= in the td tag.
Now you can add this code the beginning of your web template:
</style>
This will only work in Web.
Regards
Marcus

Similar Messages

  • How to fix the column header

    Try to display something like this:<br><br>
    HA HB <br>
    A1 B1<br>
    A2 B2<br>
    <br>
    So I use:
    <div class="Show2Rows"><br>
    <table><br>
    <tr><br>
    <th>HA</th><br>
    <th>HB</th><br>
    </tr><br>
    <tr><br>
    <td><input ... value="A1" ></td><br>
    <td><input ... value="B1" ></td><br>
    </tr><br>
    <br>
    </table><br>
    </div><br>
    <br>
    The rule is: allow it to display ONLY two rows in the window. When more rows are added, a vertical scroll bar will be enabled. --And, yes, it works just as expected.
    The problem is that when more rows are added, when I scroll the bar downward, of course the rows will move up. When this happens, the Column Headers (HA and HB) will disappear. Obviously I need to fix the Column Headers.
    So question is: How can I fix the headers while still be able to scroll the data rows up and down?
    Thanks

    Dear Vam,
    you can easily do that with css, search the source code of the executed web template for the td tag which is around your coloumn header, remember the style sheet class name it is ´displayed as class= in the td tag.
    Now you can add this code the beginning of your web template:
    </style>
    This will only work in Web.
    Regards
    Marcus

  • How  to resize the column header according to row data

    Hi,
    How can i resize the column header according to row date .. means if data is small header should be small and vice versa ,...
    Any help is appreciated .. Snippet will be more helpful .
    Thanks,
    Shekhar

    Oxley (binkley) blogged about this: http://binkley.blogspot.com/2006/01/getting-jtable-columns-widths-to-fit.html
    Christian Ullenboom | tutego

  • How to display the column header in two rows?

    Hi Experts,
    I am using ALV_LIST_DISPLAY i neeed to display the column header in two rows.. How can i do that?
    Ex: purchase order i  need to display "purchase" in one row and "order" in second row.
    Thanks in advance,
    Sarath.j

    REPORT zpwtest .
    TYPE-POOLS slis .
    DATA : layout TYPE slis_layout_alv .
    CONSTANTS : c_len TYPE i VALUE 20 .
    TYPES : BEGIN OF ty_t100          ,
              sprsl TYPE t100-sprsl   ,
              arbgb TYPE t100-arbgb   ,
              msgnr TYPE t100-msgnr   ,
              text  TYPE t100-text    ,
              fline TYPE t100-text    ,
            END OF ty_t100            .
    TYPES : BEGIN OF ty_wrd   ,
             text TYPE char20 ,
            END OF ty_wrd     .
    DATA : it_t100     TYPE TABLE OF ty_t100 ,
           it_sentence TYPE TABLE OF ty_wrd  ,
           wa_t100     TYPE ty_t100          ,
           wa_word     TYPE ty_wrd           ,
           v_repid     TYPE syst-repid       ,
           v_tabix     TYPE syst-tabix       .
    DATA : it_fld TYPE slis_t_fieldcat_alv ,
           it_evt TYPE slis_t_event        ,
           wa_fld TYPE slis_fieldcat_alv   ,
           wa_evt TYPE slis_alv_event      .
    INITIALIZATION .
      v_repid = sy-repid .
    START-OF-SELECTION .
    * Get data
      SELECT *
        INTO TABLE it_t100
        FROM t100
       WHERE sprsl = 'EN'
         AND arbgb = '00' .
      LOOP AT it_t100 INTO wa_t100 .
        v_tabix = sy-tabix .
        CLEAR : it_sentence .
        CALL FUNCTION 'RKD_WORD_WRAP'
             EXPORTING
                  textline  = wa_t100-text
                  outputlen = c_len
             TABLES
                  out_lines = it_sentence.
        IF NOT it_sentence IS INITIAL .
          READ TABLE it_sentence INTO wa_word INDEX 1 .
          wa_t100-fline = wa_word-text .
          MODIFY it_t100 FROM wa_t100 INDEX v_tabix .
        ENDIF.
      ENDLOOP.
    * Prepare fieldcatelog
      CLEAR wa_fld .
      wa_fld-fieldname = 'SPRSL' .
      wa_fld-ref_tabname = 'T100' .
      wa_fld-ref_fieldname = 'SPRSL' .
      APPEND wa_fld TO it_fld .
      CLEAR wa_fld .
      wa_fld-fieldname = 'ARBGB' .
      wa_fld-ref_tabname = 'T100' .
      wa_fld-ref_fieldname = 'ARBGB' .
      APPEND wa_fld TO it_fld .
      CLEAR wa_fld .
      wa_fld-fieldname = 'MSGNR' .
      wa_fld-ref_tabname = 'T100' .
      wa_fld-ref_fieldname = 'MSGNR' .
      APPEND wa_fld TO it_fld .
      CLEAR wa_fld .
      wa_fld-fieldname = 'FLINE' .
      wa_fld-inttype      = 'CHAR' .
      wa_fld-outputlen = 20 .
      wa_fld-intlen    = 20.
      wa_fld-seltext_l = 'Text' .
      wa_fld-ddictxt = 'L' .
      APPEND wa_fld TO it_fld .
    * Get event.. we will handle BOFORE and AFTER line output
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           IMPORTING
                et_events = it_evt.
      READ TABLE it_evt INTO wa_evt
      WITH KEY name = slis_ev_after_line_output .
      wa_evt-form = slis_ev_after_line_output .
      MODIFY it_evt FROM wa_evt INDEX sy-tabix .
      READ TABLE it_evt INTO wa_evt
      WITH KEY name = slis_ev_top_of_page .
      wa_evt-form = slis_ev_top_of_page .
      MODIFY it_evt FROM wa_evt INDEX sy-tabix .
      layout-no_colhead = 'X' .
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                i_callback_program = v_repid
                it_fieldcat        = it_fld
                is_layout          = layout
                it_events          = it_evt
           TABLES
                t_outtab           = it_t100.
    *       FORM top_of_page                                              *
    FORM top_of_page .
        uline .
        WRITE: / sy-vline     ,
               10 sy-vline    ,
               11 'line1'     ,
               31 sy-vline    ,
               37 sy-vline    ,
               58 sy-vline    .
        WRITE: / sy-vline     ,
               10 sy-vline    ,
               11 'line2'     ,
               31 sy-vline    ,
               37 sy-vline    ,
               58 sy-vline    .
        WRITE: / sy-vline     ,
               10 sy-vline    ,
               11 'line3'     ,
               31 sy-vline    ,
               37 sy-vline    ,
               58 sy-vline    .
    ENDFORM.
    *       FORM AFTER_LINE_OUTPUT                                        *
    FORM after_line_output   USING rs_lineinfo TYPE slis_lineinfo .
      CLEAR : it_sentence ,
              wa_t100     .
      READ TABLE it_t100 INTO wa_t100 INDEX rs_lineinfo-tabindex .
      CHECK sy-subrc = 0 .
      CALL FUNCTION 'RKD_WORD_WRAP'
           EXPORTING
                textline  = wa_t100-text
                outputlen = c_len
           TABLES
                out_lines = it_sentence.
      DESCRIBE TABLE it_sentence LINES v_tabix .
      CHECK v_tabix > 1 .
      LOOP AT it_sentence INTO wa_word FROM 2 .
        WRITE: / sy-vline     ,
               10 sy-vline    ,
               31 sy-vline    ,
               37 sy-vline    ,
               38 wa_word-text ,
               58 sy-vline .
      ENDLOOP.
    ENDFORM .

  • How to change the column heading as the column changes

    dear memebrs,
    Take an example fo the table EMP. I need to create a report whose parameters are the table column names. so depending on the parameter(which is the column name) the report o/p changes.
    so i am dynamically selecting the table column names and getting the o/p. The problem is when the column changes the heading of it in the report o/p is not changing.
    we have to use format trigger for this, but i am not sure what code should we write in the format trigger of the boiler plate text of the column heading , such that it changes in accordance with the input which is nothing but column name.
    for ex: If i choose EMPNO as the parameter then my column heading should become Employee Number and so on.......
    your comments are welcomed
    regards
    sandeep

    you can use a formula column of datatype character and of any width needed instead of a boilerplate text for the heading name.
    In the formula column you can write code like below
    IF :P_COLUMN_NAME = EMPNO THEN
    return('Employee Number');
    ELSIF :P_COLUMN_NAME = SAL THEN
    return('Salary');
    END IF;
    where P_COLUMN_NAME the name of the column selected dynamically(i.e. the parameter).

  • How to fix the column length and table length?

    Hi Experts/Gurus,
    I want to fix the column lenght so that if data exceeds it should be in the same colum. But the size of the table should not get changed.. I used the width property of both table and column. But its not working..
    Regards,
    Yugesh

    Hi Yugesh,
    For column wrapping you can use the SET_WRAPPING of cl_salv_wd_header and the data.....you have got cell editor for that column right...then using the cell edtior reference you can get the specific cell tyep(like cl_salv_wd_text_view type check this)
    this is object reference and you can use the set_wrapping of this class. using this you can get the wrapping functionality for the data also....
    DATA: lr_column TYPE REF TO cl_salv_wd_column,
               lr_column_header type ref to cl_salv_wd_header,
               lr_editor type ref to cl_salv_wd_uie,
               lr_textview type ref to cl_salv_wd_uie_text_view.
    wd_this->alv_value->if_salv_wd_table_settings~set_fixed_table_layout( ABAP_TRUE ).
    lr_column = wd_this->alv_value->if_salv_wd_column_settings~get_column( 'EDITION' ).
    lr_column->set_width( '55' ).
    lr_column_header = lr_column->get_header( ).
    lr_column_header->set_wrapping( abap_true).
    lr_editor = lr_column->get_cell_editor( ).
    lr_textview ?= lr_editor.
    lr_textview->set_wrapping( abap_true ).
    Now for the column and it's data the wrapping is set...
    Regards,
    Lekha.
    Edited by: Lekha on Nov 16, 2009 2:12 PM

  • How to repeat the column header on each page of the report?

    Can any of you please suggest me on how to repeat the column titles on a table if the table extends over several pages:
    I tried the below action present in Re: How to make the column title needs to be on each page? It worked fine for the pdf format whereas its not working for rtf format output.
    Can anybody help on this?

    I guess this has been taken as bug,
    may be some patch got released for it..iam not sure..

  • How to change the column header name dynamically based on sysdate

    Post Author: senthi_gokul
    CA Forum: WebIntelligence Reporting
    Dear All,
            i have designed some reports. i would like to change the column header dynamically based on sysdate. up to 24 months. can u help me, which add month function using the universe. i dont know if-then-else function is having the universe tool or not?

    Post Author: prasingh
    CA Forum: WebIntelligence Reporting
    Are you saying you are not able to create an object by value (select: statement) as sysdate and put it onto the headers of your report? You can use the add_months() function on the object to add the numbers of months you wish.
    Please let me knnow for more.. You can get in touch with me on [email protected] for quick reply. 

  • How to change the column header in XsltListView webpart

    I have a XsltListView webpart. By default it displays the column name in the header. How do I change the header and give a friendly name? I am able to change the header, if I click on header and position the cursor at the right spot and change. But sometimes
    it does not work. Is there any property which I can set in order to change the header? Thanks in advance.
    ss

    Hi ss,
    Do you use SharePoint 2007 or 2010? And the XsltListView Web part only available in SharePoint 2010.
    If you are using SharePoint 2010, to customize the header for each column, please try the following step.
    Open list view in advanced mode in SharePoint Designer.
    Select a header you need to modify > Click Customize XSLT under Design tab on the ribbon > Click “Customize Item”.
    Then we can see <xsl:value-of select="$fieldtitle"/> has selected in Code view > Replace it with the text you want to display on the header.
    For example, I want to display the string “customized header” in the header, then replace
    <xsl:value-of select="$fieldtitle"/>
    With
    Customized header
    Save the page and test.
    Thanks & Regards,
    Emir Liu
    TechNet Subscriber Support in forum
    If you have any feedback on our support, please click here.
    Emir Liu
    TechNet Community Support

  • How to ignore the column header in GUI_UPLOAD

    Hi,
    I am trying to use GUI_UPLOAD to upload data from text file into a table. However there is no parameter to ignore the column headers in this function. how can i set to ignore the column headers in this function?

    Check the function module documentation and also refer to the parameter: HEADER_LENGTH
    Length of Header for Binary Data
    Description
    Specifies the length of the header information. You must only set this parameter if the file type is 'BIN'. The default value '00' means that there is no header in the file.
    Default
    '00'

  • How to fix the text field width wir=thout wrapping in obiee 11g

    Hi,
    In OBIEE 11g I want the text filed width should be fixed as 30 character, at the same time if the width beyond 30 characters it should not be wrapped.
    To achieve this we went to column properties and removed the wrap check box and in Additional Formatting Options section we set the width size as 30. But still if the text size is beyond 30 getting wrapped
    Please help me
    Thanks,
    Anilesh

    Hi,
    Yup..its really tricky one..u have play around changing the laft/right padding the additional format options
    Thanks
    Deva

  • How to fix the column width in a table in htmlb tableview control

    HI Experts,
    I have an issue with my htmlb table view controller. I have created a custom iView with a htmlb table view control and placed it in quick navigation window.
    When data in columns exceeds, I am getting horizontal scroll bar and column,table are getting extened. I don't want  column size increases when text length increses. Instead when lenght of the text incrases in a column, I want the text displyed in multiple columns.
    I have tried for this as below.
    <hbj:tableView
        id="statTable"
        model="bean.stattableModel"
        design="ALTERNATING"
        headerVisible="false"
        footerVisible="false"
        fillUpEmptyRows="false"
        navigationMode="BYPAGE"
        selectionMode="NONE"
        headerText="Report List"
        visibleFirstRow="1"
        visibleRowCount="10"
    width="100%">
    <%
         stattableModel.getColumn("D").setWidth("5px");
         stattableModel.getColumn("D").setWrapping(false);//tried true aswell
         stattableModel.getColumn("H").setWidth("px");
         stattableModel.getColumn("H").setWrapping(false);
    %>
    No change happen ever after I used the above code.
    Any one has the idea, how make it work.
    Thanks in Advance,
    Chinna.

    Hi Babu,
    Please go through this links.
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80a7eef2-9a2c-2a10-12bb-abad552f3302
    http://www.sapfans.com/forums/viewtopic.php?f=20&t=300326
    Kind regards
    Prabhakaran.P

  • How to Hide the Column Heading of BEx Query Output

    Hi Experts,
    I Designed  BEx Query for BO Xcelsius, at the time of showing Bex Report in  Xcelsius
    it is displaying the like
                 Calday           01.01.2010      02.01.2010.............
    Plant     keyfigure
    P1        Plan                 10                         9
    P1        Actual               8                          5
    P2        Plan                 12                          6
    P2        Actual               9                          4
    we need display without  keyfigure - row like follwing ( when we run report on analyzer it showing without  keyfigure - row,but problem is when we Run in web)
    Plant     Calday           01.01.2010      02.01.2010.............
    P1        Plan                 10                         9
    P1        Actual               8                          5
    P2        Plan                 12                          6
    P2        Actual               9                          4
    Or with out Header Row
    P1        Plan                 10                         9
    P1        Actual               8                          5
    P2        Plan                 12                          6
    P2        Actual               9                          4
    How can we achive this
    In Bex query design
    Rows - Plant, Key figures - Actual,Plan
    Column - 0Calday
    Thanks,
    Chandra

    We do not have any direct setting in BEx to do it. You can write a VB macro code in BEx to achieve this.

  • How to change the column header/channel name in an LVM file?

    Hi all,
    I made a VI (see attached JPG) that reads 2 voltages, but after calculations and other processes, ends up writing 6 columns of data to an LVM file (7 if you count the time).
    I have read in other posts that you can change the name of each signal so that the header of each column in the LVM files doesn't just say "untitled". However, as you see in my code, some signals are numeric (double) and one is a logic (1 or 0), so there is no way to edit the waveform properties of those signals (since they are not waveforms).
    Any ideas?
    Thanks!
    Attachments:
    untitled3.JPG ‏40 KB

    I would suggest looking at this existing post:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=175554
    I'll further mention that in the loop, for each channel you want to set the name of, the attribute name for the name of the channel is "NI_ChannelName".  The example in the thread above takes advantage of the fact that "NI_ChannelName" happens to be the first one defined.  I think it would be more robust to not bother reading the existing attributes, and instead just write the "NI_ChannelName" attribute with whatever new value you want.

  • How to maintain the column heading in two lines

    for example i have field ACCOUNTING CLEARK
    i want to display this description in alv list
    like ACC
         clk
    Please send the solution for this.
    very urgent
    thanks in advance
    regards
    venu

    hi
    please check my code
    for field KNB1-BUSAB
    i want the description ACC in place of ACC CLK
                           CLK
    means in two lines
    report zfir0098 message-id zz
                    line-size 255
                    line-count 65
                    no standard page heading.
    (C) Copyright <2006> by Eastman Kodak Company - All Rights Reserved.
    Report Name     : ZFIR0098
    Author          : Venugopalreddy.K
    Created on      : 12-MAY-2006
    SIR#            : 086279
    Interface ID#   : RO-01509 - Open AR Aging by Due Date
    Correction#     : D11K947333
    Transaction code: Z_ZFIR0098
    Logical Database: N/A
    SAPScript name  : N/A
    Application Area: FI
    Programs Called : N/A
    Function Modules: REUSE_ALV_VARIANT_F4
                      REUSE_ALV_VARIANT_DEFAULT_GET
                      REUSE_ALV_EVENTS_GET
                      REUSE_ALV_LIST_DISPLAY
                      REUSE_ALV_EVENTS_GET
                      REUSE_ALV_COMMENTARY_WRITE
    Description     : Report to display Open AR with Aging by due
                      date. The open items are displayed by Linked
                      Accounts, Customer Account, Business unit and
                      Posting Date.
    Correction#     SIR#       Modified By                  Date
    D11Kxxxxxx                 xxxxxx xxxx                  MM/DD/YYYY
    Description of change (copy from SIR):
    (text)................................................................
              TABLE DEFINITION                                           *
    tables : t001,    "Company Codes
             knvv,    "Customer Master Sales Data
             bsid,    "Accounting: Secondary Index for Customers
             knkk,    "Customer master credit management: Control area data
             kna1,    "General Data in Customer Master
             knb1,    "Customer Master (Company Code)
             t052,    "Terms of Payment
             tvv1.    "Customer Group 1
                          TYPE POOLS                                     *
    type-pools: slis.
             INTERNAL TABLE DECLARATION
    Internal table for Customer Master (Company Code)
    data :   begin of i_knb1 occurs 0,
               kunnr type knb1-kunnr,
               bukrs type knb1-bukrs,
               busab type knb1-busab,
             end   of i_knb1.
    Internal table for Customer Master Sales Data
    data :   begin of i_knvv occurs 0,
               kunnr type knvv-kunnr,
               vkorg type knvv-vkorg,
               kvgr1 type knvv-kvgr1,
               zterm type knvv-zterm,
             end   of i_knvv.
    Internal table for linked account nos.
    data :   begin of i_knkk occurs 0,
               kunnr type knkk-kunnr,
               kkber type knkk-kkber,
               klimk type knkk-klimk,
               knkli type knkk-knkli,
               sbgrp type knkk-sbgrp,
               grupp type knkk-grupp,
               kdgrp type knkk-kdgrp,
             end   of i_knkk.
    Internal table for Customer's credit limit
    data :   begin of i_knkk_knkli occurs 0,
               kunnr type knkk-kunnr,
               klimk type knkk-klimk,
               knkli type knkk-knkli,
             end   of i_knkk_knkli.
    Internal table for T001 records
    data:    begin of i_t001 occurs 0,
               bukrs type t001-bukrs,
               waers type t001-waers,
             end   of i_t001.
    Internal table for BSID records
    data :   begin of i_bsid occurs 0,
               bukrs type bsid-bukrs,
               kunnr type bsid-kunnr,
               zuonr type bsid-zuonr,
               belnr type bsid-belnr,
               budat type bsid-budat,
               bldat type bsid-bldat,
               waers type bsid-waers,
               shkzg type bsid-shkzg,
               dmbtr type bsid-dmbtr,
               wrbtr type bsid-wrbtr,
               zfbdt type bsid-zfbdt,
               zterm type bsid-zterm,
               zbd1t type bsid-zbd1t,
               zbd2t type bsid-zbd2t,
               zbd3t type bsid-zbd3t,
               kkber type bsid-kkber,
             end   of i_bsid.
    Internal table for Customer Master
    data :   begin of i_kna1 occurs 0,
               kunnr type kna1-kunnr,
               name1 type kna1-name1,
             end   of i_kna1.
    Internal table for Terms of Payment
    data :   begin of i_t052 occurs 0,
               zterm type t052-zterm,
               ztagg type t052-ztagg,
               ztag1 type t052-ztag1,
               ztag2 type t052-ztag2,
               ztag3 type t052-ztag3,
             end   of i_t052.
    Internal table for final output
    data :   begin of i_output occurs 0,
               kunnr1      type bsid-kunnr,
               kunnr       type bsid-kunnr,
               bukrs       type t001-bukrs,
               kdgrp       type knkk-kdgrp,
               name1       type kna1-name1,
               kvgr1       type knvv-kvgr1,
               knkli       type knkk-knkli,
               klimk       type knkk-klimk,
               sbgrp       type knkk-sbgrp,
               zuonr       type bsid-zuonr,
               bldat       type bsid-bldat,
               due_date    type bsid-zfbdt,
               not_due     type bsid-dmbtr,
               curr_due    type bsid-dmbtr,
               due_01_30   type bsid-dmbtr,
               due_31_60   type bsid-dmbtr,
               due_61_90   type bsid-dmbtr,
               due_91_180  type bsid-dmbtr,
               due_181_365 type bsid-dmbtr,
               due_gt_365  type bsid-dmbtr,
               spcol       type bsid-dmbtr,
               tot_due     type bsid-dmbtr,
               tot_ar      type bsid-dmbtr,
               waers       type t001-waers,
               zterm       type bsid-zterm,
               zterm1      type knvv-zterm,
               v_no_days   type i,
               busab       type knb1-busab,
             end   of i_output.
    Internal table for summary data
    data :   begin of i_output_summary occurs 0,
               bukrs       type t001-bukrs,
               kunnr       type bsid-kunnr,
               name1       type kna1-name1,
               kvgr1       type knvv-kvgr1,
               klimk       type knkk-klimk,
               zterm       type knvv-zterm,
               kdgrp       type knkk-kdgrp,
               sbgrp       type knkk-sbgrp,
               busab       type knb1-busab,
               not_due     type bsid-dmbtr,
               curr_due    type bsid-dmbtr,
               due_01_30   type bsid-dmbtr,
               due_31_60   type bsid-dmbtr,
               due_61_90   type bsid-dmbtr,
               due_91_180  type bsid-dmbtr,
               due_181_365 type bsid-dmbtr,
               due_gt_365  type bsid-dmbtr,
               spcol       type bsid-dmbtr,
               tot_due     type bsid-dmbtr,
               tot_ar      type bsid-dmbtr,
               waers       type t001-waers,
             end   of i_output_summary.
    Temporary internal table for KNVV records.
    data :   i_knvv_tmp like i_knvv occurs 0 with header line.
    Temporary internal table for KNKK records.
    data :   i_knkk_tmp like i_knkk occurs 0 with header line.
    Temporary internal table for BSID records.
    data :   i_bsid_tmp like i_bsid occurs 0 with header line.
             FIELD STRING DECLARATION
    Structure to validate selection screen
    data :   begin of v_radio,
               rd1  type c,
               rd2  type c,
               rd3  type c,
             end   of v_radio.
    Structure to validate selection screen
    data :   begin of v_radio1,
               rd1  type c,
               rd2  type c,
               rd3  type c,
             end   of v_radio1.
             Internal Tables for ALV Report
    data:   i_fieldcat_alv      type  slis_t_fieldcat_alv,
            i_sort              type  slis_t_sortinfo_alv,
            i_sort1             type  slis_t_sortinfo_alv,
            i_events            type  slis_t_event,
            v_events            type  slis_alv_event,
            v_fieldcat_alv      type  slis_fieldcat_alv,
            v_sort              like  line of i_sort,
            v_sort1             like  line of i_sort1,
            v_layout            type  slis_layout_alv,
            v_print             type  slis_print_alv,
            i_list_comments     type  slis_t_listheader,
            v_list_comments     like  line of i_list_comments,
            v_variant           like  disvariant,     "Layout-External Use
            v_variant_save      type  c,              "To Store the Varient
            v_variant1          like  disvariant,
            v_exit              type  c.              "Event exit
            Data declaration
    data:   v_paym_days         type  i,
            v_date_diff         type  i,
            v_zterm             type  t052-zterm,
            v_bukrs1            like  bsid-bukrs,
            v_kunnr             like  bsid-kunnr,
            v_kdgrp             like  knkk-kdgrp,
            v_bukrs             like  bsid-bukrs,
            v_name1             like  kna1-name1,
            v_knkli             like  knkk-knkli,
            v_klimk(20)         type  c,
            v_kvgr1             like  knvv-kvgr1,
            v_kkber             like  knkk-kkber,
            v_sbgrp             like  knkk-sbgrp,
            v_busab             like  knb1-busab.
    data:   v_cust_not_due      type  bsid-dmbtr,
            v_cust_curr_due     type  bsid-dmbtr,
            v_cust_due_01_30    type  bsid-dmbtr,
            v_cust_due_31_60    type  bsid-dmbtr,
            v_cust_due_61_90    type  bsid-dmbtr,
            v_cust_due_91_180   type  bsid-dmbtr,
            v_cust_due_181_365  type  bsid-dmbtr,
            v_cust_due_gt_365   type  bsid-dmbtr,
            v_cust_spcol        type  bsid-dmbtr,
            v_cust_tot_due      type  bsid-dmbtr,
            v_cust_tot_ar       type  bsid-dmbtr,
            v_curr              type  t001-waers,
            v_name              type  kna1-name1,
            v_kvgr              type  knvv-kvgr1,
            v_kdgrp1            type  knkk-kdgrp,
            v_klimk1            type  knkk-klimk,
            v_zterm1            type  knvv-zterm,
            v_sbgrp1            type  knkk-sbgrp,
            v_busab1            type  knb1-busab.
    data:   v_repid             like  sy-repid,
            v_flag              type  c.
              CONSTANT DEFINITION
    constants:
            c_sel_x(1)                  type c value 'X',
            c_0(1)                      type c value '0',
            c_1(1)                      type c value '1',
            c_knkli(7)                  type c value 'S_KNKLI',
            c_kdgrp(7)                  type c value 'S_KDGRP',
            c_debit_s(1)                type c value 'S',
            c_credit_h(1)               type c value 'H',
            c_deflt_zterm_y000(4)       type c value 'Y000',
            c_sc01(4)                   type c value 'SC01',
            c_subtotal_text             type slis_formname value
                                                  'ALV_SUBTOTALS',
            c_formname_top_of_page      type slis_formname value
                                                  'F_TOP_OF_PAGE',
            c_formname_top_of_page_summ type slis_formname value
                                                  'F_TOP_OF_PAGE_SUMM'.
                       Selection-screen
    selection-screen begin of block b1 with frame title text-s01.
    parameters     : p_bukrs type t001-bukrs obligatory.
    select-options : s_kvgr1 for knvv-kvgr1,
                     s_sbgrp for knkk-sbgrp,
                     s_busab for knb1-busab,
                     s_budat for bsid-budat,
                     s_kunnr for knvv-kunnr.
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-s02.
    selection-screen begin of line.
    parameters : p_lk_on as checkbox.
    selection-screen comment 5(24)  text-s10 for field p_lk_on.
    selection-screen end of line.
    selection-screen comment 02(67) text-s12.
    selection-screen skip 1.
    selection-screen begin of line.
    parameters      :p_knkli radiobutton  group g1 user-command radi
                                                default 'X'.
    selection-screen comment 5(24)  text-s05 for field p_knkli.
    select-options  :s_knkli for knkk-knkli.
    selection-screen end of line.
    selection-screen begin of line.
    parameters      :p_kdgrp radiobutton  group g1.
    selection-screen comment 5(24)  text-s06 for field p_kdgrp.
    select-options  :s_kdgrp for knkk-kdgrp.
    selection-screen end of line.
    selection-screen begin of line.
    parameters      :p_all_lk radiobutton  group g1.
    selection-screen comment 5(24)  text-s07 for field p_all_lk.
    selection-screen end of line.
    selection-screen end of block b2.
    selection-screen begin of block b3 with frame title text-s03.
    selection-screen begin of line.
    parameters      :p_op_ab radiobutton  group g2.
    selection-screen comment 5(32) text-s08 for field p_op_ab.
    selection-screen end of line.
    selection-screen begin of line.
    parameters      :p_ab radiobutton  group g2.
    selection-screen comment 5(16) text-s09 for field p_ab.
    selection-screen end of line.
    selection-screen end of block b3.
    selection-screen begin of block b4 with frame title text-s11.
    parameters      :p_vari like disvariant-variant.
    selection-screen end of block b4.
    INITIALIZATION
    initialization.
    To initialize the variant
      perform initialize_variant.
    To fetch the default variant for the ALV report
      perform display_default_variant.
         At selection-screen
    at selection-screen.
    To validate company code
      perform check_company_code.
    To validate business unit
      perform check_business_unit.
      move: p_knkli  to v_radio1-rd1,
            p_kdgrp  to v_radio1-rd2,
            p_all_lk to v_radio1-rd3.
      if not s_kvgr1[] is initial and
         not s_sbgrp[] is initial.
        message e045 with text-073.
      endif.
    at selection-screen output.
      move: p_knkli  to v_radio-rd1,
            p_kdgrp  to v_radio-rd2,
            p_all_lk to v_radio-rd3.
    To maintain the select options visiable and invisible
      perform selection_screen_output.
    Check the radio buttons selected in selection screen
      if v_radio1 eq v_radio.
      To maintain the default settings
        perform selection_screen_check.
      endif.
             AT SELECTION-SCREEN ON VALUE-REQUEST
    At Selection Screen Value Request.
    at selection-screen on value-request for p_vari.
    To Display the Existing Variants(Layout).
      perform variant_help_f4 using p_vari.
             Event start-of-selection
    start-of-selection.
    Get the cusomer number
      perform get_knb1_details.
    Get the customer group details
      perform get_knvv_details.
    Get all linked account and credit account details from KNKK
      perform get_linked_accounts_details.
    Get open AR documents from BSID
      perform get_open_ar_details.
    Get the company code and curreny.
      perform get_com_code_curr.
    Get the customer name
      perform get_customer_name.
    Get the payment term days
      perform get_payment_term_days.
    Populate the final table having all the field details
      perform populate_final_table.
    To display the output in alv list.
      perform alv_list_dispaly.
          Form  initialize_variant
          To initialize the ALV Variant
    form initialize_variant.
      clear: v_variant.
      v_repid = sy-repid.
      v_variant-report   = v_repid.
      v_variant-username = sy-uname.
      v_variant_save     = 'A'.
    endform.                    " initialize_variant
          Form  display_default_variant
          To fetch the Default ALV variant
    form display_default_variant.
      if not p_vari is initial.
        v_variant-variant = p_vari.
      endif.
      clear v_variant1.
      v_variant1 = v_variant.
    The function module is used to fetch the default variant
      call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
        exporting
          i_save        = v_variant_save
        changing
          cs_variant    = v_variant1
        exceptions
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          others        = 4.
    Based on the SUBRC value the variant is assigned
      case sy-subrc.
        when 0.
          p_vari = v_variant1-variant.
        when 2.
          clear p_vari.
      endcase.
    endform.                    " display_default_variant
          Form  check_company_code
          Validate Company Code
    form check_company_code.
      select single *
        from t001
       where bukrs eq p_bukrs.
      if sy-subrc ne 0.
        message e339.
      endif.
    endform.                    " check_company_code
          Form  check_business_unit
          Validate Business Unit
    form check_business_unit.
      select single *
        from tvv1
       where kvgr1 in s_kvgr1.
      if sy-subrc ne 0.
        message e045 with text-e01.
      endif.
    endform.                    " check_business_unit
      Form  selection-screen-output
      On selection of corresponding radio button the respective
      Select-option will be high lighted
    form selection_screen_output.
      loop at screen.
        if p_knkli = c_sel_x.
        Credit Account invisible
          if screen-name cs  c_knkli.
            screen-invisible = c_0.
            screen-active    = c_1.
            modify screen.
          endif .
        Customer Group visible
          if screen-name cs  c_kdgrp.
            screen-invisible = c_1.
            screen-active    = c_0.
            modify screen.
          endif.
        elseif p_kdgrp = c_sel_x.
        Credit Account invisible
          if screen-name cs  c_knkli.
            screen-invisible = c_1.
            screen-active    = c_0.
            modify screen.
          endif .
        Customer Group visible
          if screen-name cs  c_kdgrp.
            screen-invisible = c_0.
            screen-active    = c_1.
            modify screen.
          endif.
        elseif p_all_lk = c_sel_x.
        Credit Account invisible
          if screen-name cs  c_knkli.
            screen-invisible = c_1.
            screen-active    = c_0.
            modify screen.
          endif .
        Customer Group invisible
          if screen-name cs  c_kdgrp.
            screen-invisible = c_1.
            screen-active    = c_0.
            modify screen.
          endif.
        endif.
      endloop.
    endform.                    " selection_screen_output
         Form selection_screen_check
         To check the selection screen radio buttons
    form selection_screen_check.
      if p_knkli = c_sel_x.
        if p_op_ab is initial.
          p_op_ab = c_sel_x.
          p_ab = ''.
        endif.
      elseif p_kdgrp = c_sel_x.
        if p_op_ab is initial.
          p_op_ab = c_sel_x.
          p_ab = ''.
        endif.
      elseif p_all_lk = c_sel_x.
        if p_op_ab is initial.
          p_op_ab = c_sel_x.
          p_ab = ''.
        endif.
      endif.
    endform.                    " selection_screen_check
          Form  variant_help_f4
          To get the list of ALV help variants
    form variant_help_f4 using p_variant.
      call function 'REUSE_ALV_VARIANT_F4'
        exporting
          is_variant    = v_variant
          i_save        = v_variant_save
        importing
          e_exit        = v_exit
          es_variant    = v_variant
        exceptions
          not_found     = 1
          program_error = 2
          others        = 3.
      if sy-subrc <> 0.
      If no variants exist
        message s045 with text-e02.
      endif.
      if v_exit is initial.
        p_variant       = v_variant-variant.
      endif.
    endform.                    " variant_help_f4
         Form  get_knb1_details
         To get the Customer number
    form get_knb1_details.
    Fetch data from Customer Master (Company Code)
    based on selection criteria(company code)
      select kunnr bukrs busab
        from knb1
        into table i_knb1
       where bukrs eq p_bukrs.
      if sy-subrc ne 0.
        message i561.
        leave list-processing.
      endif.
    endform.                    " get_knb1_details
         Form  get_knvv_details
         To get the Customer group details
    form get_knvv_details.
      if not i_knb1[] is initial.
        sort i_knb1 by kunnr bukrs.
        delete adjacent duplicates from i_knb1 comparing kunnr bukrs.
      Fecth data from Customer Master Sales Data
      based on internal table I_KNB1 and selection criteria
      (customer group)
        select kunnr vkorg kvgr1 zterm
          from knvv
          into table i_knvv
          for  all entries in i_knb1
         where kunnr eq i_knb1-kunnr
           and kunnr in s_kunnr
           and vkorg eq i_knb1-bukrs.
        if sy-subrc ne 0.
          message i561.
          leave list-processing.
        endif.
      endif.
    endform.                    " get_knvv_details
         Form  get_linked_accounts_details
          To get the linked account details
    form get_linked_accounts_details.
      if not i_knvv[] is initial.
      get unique customer account KUNNR from i_bsid.
        i_knvv_tmp[] = i_knvv[].
        sort i_knvv_tmp by kunnr.
        delete adjacent duplicates from i_knvv_tmp comparing kunnr.
        clear v_kkber.
        concatenate 'C' p_bukrs+1(3) into v_kkber.
        sort i_knvv_tmp by kunnr.
      Fetch the Customer's account number and Customer Group
      details form Customer master credit management based on
      internal table i_bsid_tmp and Credit control area
        select kunnr kkber klimk knkli sbgrp grupp kdgrp
          from knkk
          into table i_knkk
          for  all entries in i_knvv_tmp
         where kunnr eq i_knvv_tmp-kunnr
           and kkber eq v_kkber.
        if not i_knkk[] is initial.
          i_knkk_tmp[] = i_knkk[].
          if p_lk_on = 'X' or not s_knkli[] is initial
                           or not s_kdgrp[] is initial.
            loop at i_knkk_tmp.
              loop at i_knkk where knkli eq i_knkk_tmp-knkli
                               and kunnr ne i_knkk_tmp-knkli.
                exit.
              endloop.
              if sy-subrc ne 0.
                delete i_knkk where knkli eq i_knkk_tmp-knkli.
              endif.
            endloop.
          endif.
          if not s_knkli[] is initial.
            delete i_knkk where not knkli in s_knkli.
          endif.
          if not s_kdgrp[] is initial.
            delete i_knkk where not kdgrp in s_kdgrp.
          endif.
          if not s_sbgrp[] is initial.
            delete i_knkk where not sbgrp in s_sbgrp.
          endif.
        else.
          message i561.
          leave list-processing.
        endif.
      else.
        message i561.
        leave list-processing.
      endif.
    endform.                    " get_linked_accounts_details
         Form  get_com_code_curr
          Get the company code and currency
    form get_com_code_curr .
      select bukrs waers
        from t001
        into table i_t001
       where bukrs eq p_bukrs.
    endform.                    " get_com_code_curr
         Form  get_open_ar_details
          Read BSID for all open AR
    form get_open_ar_details.
      if not i_knkk[] is initial.
        refresh i_knkk_tmp.
        i_knkk_tmp[] = i_knkk[].
        sort i_knkk_tmp by knkli.
        delete adjacent duplicates from i_knkk_tmp comparing kunnr.
      Fetch the from Accounting: Secondary Index for Customers
      based on internal table i_knvv and selection criteria(Posting Date
      -in the Document)
        select bukrs kunnr zuonr belnr budat bldat waers shkzg
               dmbtr wrbtr zfbdt zterm zbd1t zbd2t zbd3t kkber
          from bsid
          into table i_bsid
          for  all entries in i_knkk_tmp
         where bukrs eq p_bukrs
           and kunnr eq i_knkk_tmp-kunnr
           and umskz eq space
           and bstat eq space
           and budat in s_budat.
        if i_bsid[] is initial.
          message i561.
          leave list-processing.
        endif.
      else.
        message i561.
        leave list-processing.
      endif.
    endform.                    " get_open_ar_details
         Form  get_customer_name
          To get the customer name
    form get_customer_name.
      if not i_knvv_tmp[] is initial.
      Get the customer name from KNA1 for all customer
        select kunnr name1
          from kna1
          into table i_kna1
          for  all entries in i_knvv_tmp
         where kunnr = i_knvv_tmp-kunnr.
      endif.
    endform.                    " get_customer_name
         Form  get_payment_term_days
           To get the payment days
    form get_payment_term_days.
      if not i_bsid[] is initial.
        clear i_bsid_tmp.
        refresh i_bsid_tmp.
        i_bsid_tmp[] = i_bsid[].
        sort i_bsid_tmp by zterm.
        delete i_bsid_tmp where shkzg ne c_debit_s.
        if not i_bsid_tmp[] is initial.
        Get the Payment days from T052
          select zterm ztagg ztag1 ztag2 ztag3
            from t052
            into table i_t052
            for all entries in i_bsid
           where zterm = i_bsid-zterm.
        endif.
      endif.
    endform.                    " get_payment_term_days
         Form  populate_final_table
          To polupate final internal table
    form populate_final_table.
      sort i_bsid.
      sort i_kna1 by kunnr.
      sort i_knkk by kunnr.
      sort i_knkk_knkli by kunnr.
      sort i_knvv by vkorg kunnr.
      sort i_t052 by zterm ztag1 ztag2 ztag3.
      sort i_t001 by bukrs.
      loop at i_bsid.
        clear i_knb1.
        read table i_knb1 with key kunnr = i_bsid-kunnr
                                           binary search.
        if not i_knb1-busab in s_busab.
          continue.
        else.
          i_output-busab = i_knb1-busab.
        endif.
        clear i_knvv.
        read table i_knvv with key kunnr = i_bsid-kunnr
                                   vkorg = i_bsid-bukrs
                                          binary search.
        if not i_knvv-kvgr1 in s_kvgr1.
          continue.
        else.
          i_output-kvgr1  = i_knvv-kvgr1.
          i_output-zterm1 = i_knvv-zterm.
        endif.
      To read the data from kna1,knkk and knvv and moving data to final
      internal table i_output.
        perform move_kna1_knkk_knvv.
      To read the data from bsid and t052 and moving data to final
      internal table i_output.
        perform move_bsid_t052.
      To calculate the number of days.
        perform move_no_of_days.
      endloop.
    endform.                    " populate_final_table
         Form  move_kna1_knkk_knvv
         To read the data fron kna1,knkk and knvv
    form move_kna1_knkk_knvv.
      clear i_kna1.
      read table i_kna1 with key kunnr = i_bsid-kunnr
                                         binary search.
      if sy-subrc eq 0.
        i_output-name1 = i_kna1-name1.
      endif.
      clear i_knkk.
      read table i_knkk with key kunnr = i_bsid-kunnr
                                         binary search.
      if sy-subrc eq 0.
        i_output-knkli = i_knkk-knkli.
        i_output-kdgrp = i_knkk-kdgrp.
        i_output-klimk = i_knkk-klimk.
        i_output-sbgrp = i_knkk-sbgrp.
      endif.
    endform.                    " move_kna1_knkk_knvv
         Form  move_bsid_t052
         To read the data from BSID and T052
    form move_bsid_t052.
      move: i_bsid-kunnr  to  i_output-kunnr,
            i_bsid-zuonr  to  i_output-zuonr ,
            i_bsid-zterm  to  i_output-zterm,
            i_bsid-bldat  to  i_output-bldat,
            i_bsid-kunnr  to  i_output-kunnr1.
      read table i_t001 with key bukrs = i_bsid-bukrs
                                         binary search.
      if sy-subrc eq 0.
        move: i_t001-bukrs  to  i_output-bukrs,
              i_t001-waers  to  i_output-waers.
      endif.
      if i_bsid-shkzg eq c_credit_h.
        i_bsid-dmbtr  = - i_bsid-dmbtr.
      endif.
      move i_bsid-dmbtr  to  i_output-tot_ar.
    If base line date is initial, then use Document date.
      if i_bsid-zfbdt is initial.
        i_bsid-zfbdt = i_bsid-bldat.
      endif.
      if i_bsid-shkzg eq c_debit_s.
        clear v_paym_days.
        if not i_bsid-zbd3t is initial.
          v_paym_days = i_bsid-zbd3t.
        elseif not i_bsid-zbd2t is initial.
          v_paym_days = i_bsid-zbd2t.
        elseif not i_bsid-zbd1t is initial.
          v_paym_days = i_bsid-zbd1t.
      if no discount days is existing in BSID the
      take discount days from table T052
        else.
          clear : i_t052,
                  v_zterm.
          if i_bsid-zterm is initial.
            v_zterm = c_deflt_zterm_y000.
          else.
            v_zterm = i_bsid-zterm.
          endif.
          read table i_t052 with key zterm = v_zterm
                                       binary search.
          if sy-subrc eq 0.
            if not i_t052-ztag3 is initial.
              v_paym_days = i_t052-ztag3.
            elseif not i_t052-ztag2 is initial.
              v_paym_days = i_t052-ztag2.
            elseif not i_t052-ztag1 is initial.
              v_paym_days = i_t052-ztag1.
            endif.
          endif.
        endif.
        i_output-due_date = i_bsid-zfbdt + v_paym_days.
      else.
        i_output-due_date = i_bsid-zfbdt.
      endif.
      clear v_date_diff.
      v_date_diff = sy-datum - i_output-due_date.
      i_output-v_no_days = v_date_diff.
    endform.                    " move_bsid_t052
         Form  move_no_of_days
         To read the no of days
    form move_no_of_days.
      if i_knkk-grupp = c_sc01.
        i_output-spcol = i_bsid-dmbtr.
      else.
        if v_date_diff < 0.
          i_output-not_due = i_bsid-dmbtr.
        elseif v_date_diff = 0.
          i_output-curr_due = i_bsid-dmbtr.
        elseif v_date_diff <= 30.
         

Maybe you are looking for