X-axis labels in drill down

Dear all,
I have a bar chart which shows revenue over time. Time is shown in months, so for half a year I have 6 nice bars and below 6 labels showing Jun-2010, Jul-2010 …
When I click on one of the bars I get a new chart, which shows the revenue of the clicked month on a daily basis. That’s the intended drill down behavior.
But the 30 labels below each bar in the drill-down chart show the month instead of the day, so I have 30 times ‘Jun-2010’ instead of ‘1-Jun-2010’,’2-Jun-2010’…
How do I influence what is shown in a drill down chart?
The report itself was upgraded to 11g from 10g (where it was working fine).
Thanks,
Knut

Thanks for your reply.
You're right, it shows the day data when I click on the month. Fine, but if it shows the daily data, why doesn't it show the date as well.
As I tried to explain, the data are correct, but the labels are wrong or insufficient. Why do I have only 'Jun-2010' below the bar of a day?
I investigated a little bit further and found that the behaviour changes depending on which month column out of the time dimension I choose.
If I choose 'Month (MON-YYYY)' I get this label on the month chart and on the day chart (the drilled down chart), nothing more.
But if I choose 'Month (YYYYMM)' from the same dimension in the month chart by changing the query in answers, I get an additional label in the day chart showing the day
as YYYYMMDD.
I need to influence this behaviour, but don't know how. I thought the drill down relationship comes from the Business Modell layer, but I don't see how to change things there.
Any idea?
Regards,
Knut

Similar Messages

  • Graph label in Drill down graph to display only the lowest level label

    Recently I have upgraded from OBIEE 10 to 11g.
    Some reports have a country -> region -> branch drilldown, for which hierarchy is created in business layer of RPD. The graph, drills down from Country -> Regions -> Branches and displays the measures accordingly. But the horizontal label displays the full hierarchy , like CountryName,RegionName and Branch Name. In 10g, I used to get the Branch name only in the axis label.
    I would like to display only the Region names when Country is drilled down and the branch name alone when the Region is drilled down.
    Kindly help.

    In 11g it is bug....
    For this u should create 3 individual reports (1 for country, 2. Region, 3. Branch) and give action link one to another.
    for filter make sure the required column "Is Prompted" for every detailed reports.
    Pls mark if it helps
    -Chinna

  • Total Label in Drill down reports

    This is a simple case scenario. I created one drill down report by Country --> State --> City and set this object as section. It has revenue Column in it. Now I did Summation on the Revenue column and it shows like this
    USA  -- (Section)
    Column1, Column2
    XXX, 3  
    Sum, 3
    Now instead of Sum, I would like the label to replace it with country name and when I drill down to second level, it should replace it with the State name and again on level 3 replace it with City name.
    Could anyone help me on achieving this. Is it doable? I have been trying to achieve this but had no success.
    Thanks for your help in advance.
    Rids

    Yes, It can be achieved with the help of the DrillFilters() function.
    You can build the logic using if-else condition. Here is the one for you:
    =If(Drillfilters([City])<>"") Then [City] Else If(Drillfilters([State])<>"") Then [State] Else If(Drillfilters([Country])<>"")
    Then [Country]
    Regards,
    Rohit

  • Problem with Drill down using Pie chart

    Hi all,
    I have a dashboard which displays sales according to product category in which I'm using combo box for category.
    Based upon the selection the corresponding products are displayed in the Pie chart and when I click a particular
    product its total sales value should be displayed in a Guage.
    The problem is if for one category there are 10 products the pie chart is showing only 5 labels if drill down option is checked
    and if its not then its showing all the products......
    What could it be ??
    Thanks
    John

    Hi John
    Is this fixed now?
    Regards
    [Charles|http://www.reportex.co.uk/xc_dataload.html]

  • OBIEE 10g Drill Down Chart From Axis Label

    Hello All
    Does any one know if OBIEE 10g can drill down values in a chart by clicking the axis labels of the charts.
    In other words, if there was a bar chart with two bars, one for May and one for June, could a user click on the label 'May' or 'June' to drill down in the chart or can OBIEE only drill charts by clicking on the actual bar in the chart?
    Thanks!

    Hi,
    In 11g chart navigations have changed.They are now moved to the criteria level and are therefore not available in results view.In your case, navigate to the criteria ->interaction tab and add the target as action link.
    Refer-
    http://siebel.ittoolbox.com/groups/technical-functional/siebel-analytics-l/navigation-between-charts-obiee-11g-4086065
    Hope this helped/ answered
    Regards
    MuRam

  • Chart Components : Option to select a item for drill down by Label name

    Hi
    Currently for all Chart components in Xcelsius in Drill down mode we do not have the option to insert the X Axis Label values by selecting the Label on the X- Axis. It is made mandatory that we should click on any of the Series and that too we get only Position or Value but not Label.
    Why should some one necessarily click on a particular series to drill down. Why cant he drill down by just clicking on x axis label. This seems to be a general requirement but I did not find this option. Am I missing something?
    I want to check whether if we will do have the option to select the label name by just clicking on the X-axis labels.
    Please note: I know the other alternatives of getting the label by enabling a series and inserting the position and using some label based menu to derive the Label.
    Regards
    Gangadhar

    hi
    then do like this
    dont use drill down option for that.
    take push buttons and one combo box.
    place those pushbuttons into X-Axis Labels and transparent them.
    combobox is used for dynamic Data Retrival.
    in ComboBox Component behavior properties you have option Selected Item(Type and Item) in that item should be map to Pushbutton Destination cell.
    you will get data as per your Requirement(Like you can drill down from X-axis Labels).
    Regards
    Prasad

  • Drill in place concatenates multiple levels on x-axis label

    Hi:
    OBIEE 11.1.1.6
    I have a line view that shows product by month. When I drill down on a data point, the x-axis on the view repeats the month for each data point. For example, if I drill down on Oct-11, the x-axis will show Oct-11 1-Oct-2011, Oct-11 2-Oct-2011, etc.
    How do I prevent the month from repeating?
    Thanks for the suggestions.

    Looks like the next level from Month is date thats the reason you are getting date. If you want to stop interaction or drill down go to Month column properties set value and Header interaction None.

  • Bubble Chart drill down issues

    I have a filter and a bubble chat with 7 series. The chart is showing up bubbles with different size and colors as per the settings when I chnage the filter
    The problem is with drill down
    I want to drill down to a Bar chart when I click on bubbles. Each bubble click will drill down data into that bar charchart as a pop up. I know how to do it as I have done it in the past with other components.
    But when I use drill down with bubble chart, I have to assign separate destination area for each series which makes it difficult to drill down into a chart. What i want is the bubbles to drill down data into a single row so that I can map the Y-axis of chart component to that row and X axis as fixed labels. But I am not able to do that. Moreover once inserted there is no way to clear the destination cells.
    However if I use data in range options in bubble chart then I can use drill down as I get only one series in that case. But that method also has limitations.
    1. I am not able to display series name on the bubbles. It doesn't make any sense to show bubbles without any labels.
    2. All bubbles are of same color.
    Is it possible to overcome above two limitations when using data in range option?
    Thanks

    Hi Tarun,
    as a workaround you could define a special area as mapping area for the X-Y-chart.
    This area is filled via excel formulas from the bubble chart drill down destinations. You can concatenate the values from the drill down target areas, like "=A4&A5" etc. Make sure to clear all cells except the actual drill down target cells.
    Hope this helps,
    best regards
    Heiko

  • Programatically shifting X-axis labels in chart section of a .bqy document.

    Hi all,
    We would like to programatically change some properties like height, width for X-axis labels of a chart in the chart section of the .bqy (Interactive Reporting Studio) document. We don't find the existing properties fit our requirement.
    So, I request all the experts in "Interactive Reporting" to help us out as early as possible!
    Thanks,
    Natesh.

    Thanks for your reply.
    You're right, it shows the day data when I click on the month. Fine, but if it shows the daily data, why doesn't it show the date as well.
    As I tried to explain, the data are correct, but the labels are wrong or insufficient. Why do I have only 'Jun-2010' below the bar of a day?
    I investigated a little bit further and found that the behaviour changes depending on which month column out of the time dimension I choose.
    If I choose 'Month (MON-YYYY)' I get this label on the month chart and on the day chart (the drilled down chart), nothing more.
    But if I choose 'Month (YYYYMM)' from the same dimension in the month chart by changing the query in answers, I get an additional label in the day chart showing the day
    as YYYYMMDD.
    I need to influence this behaviour, but don't know how. I thought the drill down relationship comes from the Business Modell layer, but I don't see how to change things there.
    Any idea?
    Regards,
    Knut

  • Click Event on axis labels

    Hi,
    I want to provide drill-down facility in chart on axis-labels.
    After googling for some time I came to know that there is no way
    directly to add Mouse Click event listener on axis labels.
    Also in order to provide a listener on axis labels we will have to
    extend the axis class.
    Does anyone know workaround for this or I'll have to extend the axis class as
    the final solution.
    Thanks in advance.
    Rakesh

    Bump....any hints? Please?

  • Xcelsius Bubble Chart - Drill Down Issues

    Hi ,
    Product : Xcelsius SP 3
    I have a bubble chat with 7 series. The chart is showing up bubbles with different size and colors as per the settings.
    The problem is with drill down
    I want to drill down to a X-Y chart when I click on bubbles. Each bubble click will drill down data into that X-Y chart as a pop up. I know how to do it as I have done it in the past with other components.
    But when I use drill down with bubble chart, I have to assign separate destination area for each series which makes it difficult to drill down into a chart. What i want is the bubbles to drill down data into a single row so that I can map the Y-axis of chart component to that row and X axis as fixed labels. But I am not able to do that. Moreover once inserted there is no way to clear the destination cells.
    However if I use data in range options in bubble chart then I can use drill down as I get only one series in that case. But that method also has limitations.
    1. I am not able to display series name on the bubbles. It doesn't make any sense to show bubbles without any labels.
    2. All bubbles are of same color.
    Is it possible to overcome above two limitations when using data in range option?
    Please help if someone has encountered this issue. There has to be some solution for this.
    Thanks,
    Tarun

    Hi Tarun,
    as a workaround you could define a special area as mapping area for the X-Y-chart.
    This area is filled via excel formulas from the bubble chart drill down destinations. You can concatenate the values from the drill down target areas, like "=A4&A5" etc. Make sure to clear all cells except the actual drill down target cells.
    Hope this helps,
    best regards
    Heiko

  • Drill Down between 2 stacked column chart with multiple rows.

    Hi,
    Can anyone please help me.
    1) i have to create stacked column chart with Region and cout of calls for previous 3 quarters.
    2) the 2nd stacked column should display the priority with the count of calls for the respective selection of region on the 1st chart..
    to achieve this,
    i'm using 2 stacked column charts and 1 lebel baseb menu.
    from this i can able to get the drill down from label based menu to 2nd stacked column chart but i couldn't able to done the same from 1st stacked coumn chart.
    Becoz my data is multiple row for each quarter.
    please suggest me to achieve the drill down between 2 stacked column charts.
    assume that my data like below.:
    coulmns for 1st stacked column chart : Region, Q2,Q3 &Q4
    Region                Q2                Q3               Q4
    Other              3658              3497               497
    NA - North
    America                3               3               1101
    APJK     1     4     597
    UK               324
    EMEA North     1     1     288
    CORPORATE     1     5     215
    LA -
    Latin America1     2     208
    EMEA     1          199
    EMEA South     1     1     169
    Coulmns for 2nd coumn chart:  Region, Priority, Q2,Q3,Q4 ()which is derived from 1st table.
    Region     Priority     Q2     Q3     Q4
    Other     D: End of Next Day     1568     1613     239
    Other     C: End of Day     983     893     119
    Other     A: 2 Hour     631     610     70
    Other     B: 4 Hour     396     318     56
    NA -
    North AmericaD: End of Next Day     2     2     514
    APJK     D: End of Next Day          3     297
    NA -
    North AmericaC: End of Day               284
    NA -
    North AmericaA: 2 Hour     1          170
    UK     D: End of Next Day               157
    APJK     C: End of Day     1     1     152
    Other     E: 3 - 5 Business Days     68     58     13
    EMEA North     D: End of Next Day          1     136
    CORPORATE     D: End of Next Day          4     107
    NA - North America     B: 4 Hour          1     104
    LA - Latin America     D: End of Next Day     1     1     86
    EMEA     D: End of Next Day               86
    UK     C: End of Day               85
    APJK     A: 2 Hour               79
    EMEA South     D: End of Next Day               72
    EMEA North     A: 2 Hour               69
    EMEA North     C: End of Day               56
    APJK     B: 4 Hour               55
    EMEA     C: End of Day     1          53
    LA - Latin America     C: End of Day               54
    UK     A: 2 Hour               49
    EMEA South     C: End of Day     1          44
    CORPORATE     A: 2 Hour          1     43
    CORPORATE     C: End of Day               44
    LA - Latin America     A: 2 Hour          1     42
    EMEA South     A: 2 Hour          1     32
    EMEA     B: 4 Hour               30
    UK     B: 4 Hour               30
    EMEA     A: 2 Hour               27
    EMEA North     B: 4 Hour     1          26
    NA -
    North AmericaE: 3 - 5 Business Days               25
    LA - Latin America     B: 4 Hour               23
    EMEA South     B: 4 Hour               20
    CORPORATE     B: 4 Hour               17
    APJK     E: 3 - 5 Business Days               13
    Other     F: 6 - 10 Business Days     6     4     
    Other     G: 11 - 20 Business Days     6     1

    Hi Srinivas,
    I'm using label based menu "filterd rows" only but i couldn't bind the drill down with the 1st stacked column chart.
    for mor details:
    1) i'm having 2 stacked coumn charts & 1 lebel based menu but eventhough i couldn't able to achieve.
    if i select the lebel based values then the 2nd stacked column charts is giving detailed valus but if i keep my mouse on the 1st stacked column chart the there is no changes on the 2nd chart..
    somewhere i'm mising the binding data between 1st stacked coumn chart & lebel based menu on drill down part.
    Becoz i'm having multiple rows. so can you please try your and send me the xlf file using your concept.

  • Alv : drill down not working.

    Hi All,
    Could you please tell me whats wrong with this code ? its not drilling down to show 'ebeln' with me22n.  Am I missing something ?
    Please help.
    Hrishi
    code is :-
    REPORT  Z_VENDOR_BACKORDER_REPORT_ALV .
    TABLES:  EKKO, LFA1, MAKT, EKET, EKPO, AFPO, MARC.
    *Data Declaration
    DATA:  BEGIN OF ITAB OCCURS 0 ,
            ebeln       LIKE ekko-ebeln  ,  " PO number
            aedat       LIKE ekko-aedat  ,  " creation date
            ebelp       LIKE ekpo-ebelp  ,  " item no
            lifnr       LIKE ekko-lifnr  ,  " vendor number
            name1       LIKE lfa1-name1  ,  " vendor name
            RESWK       LIKE EKKO-RESWK  ,  " PLANT NO
            MEMORY      LIKE EKKO-MEMORY , " ORDER INCOMPLETE
            matnr       LIKE ekpo-matnr  ,  " material number
            werks       like ekpo-werks  ,  " plant
            txz01       LIKE ekpo-txz01  ,  " material description
            eindt       LIKE eket-eindt  ,  " Promised date
            menge       LIKE eket-menge  ,  " quantity
            wemng       LIKE eket-wemng  ,  " delivered quantity
            netpr       like ekpo-netpr  ,  " value in AUD
            peinh       like ekpo-peinh  ,  " price unit
            banfn       like ekpo-banfn  ,  " PR no
            aufnr       like ebkn-aufnr  ,  " Production order no
            MAABC       LIKE MARC-MAABC  ,  " MATERIAL ABC Indicator
            maktx       like makt-maktx  ,  " material long description
            open_quant  type p decimals 2,  " quantity - delivered
            VALUE       TYPE p decimals 2,  " $ VALUE * OPEN QUANTITY
            end of ITAB.
    data: wa like itab.
    DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    DATA: TEMP TYPE EKKO-LIFNR.
    data: opt like CTU_PARAMS.
    *DATA:  WA TYPE FINAL.
    all ALV declarations
    type-pools: slis.                                 "ALV Declarations
    DATA:   fieldcatalog        TYPE slis_t_fieldcat_alv with header line,
            G_REPID             TYPE SY-REPID,
            GS_PRINT            TYPE SLIS_PRINT_ALV,
            GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
            GT_EVENTS           TYPE SLIS_T_EVENT,
            GT_SORT             TYPE SLIS_T_SORTINFO_ALV,
            GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,
            COL_POS TYPE I.
    -----------------SELECTION SCREEN----------------------
      selection-screen begin of block b1 with frame title text-001.
      select-options VENDORNO for ekko-lifnr.
      select-options MATERIAL for ekpo-matnr.
      SELECT-OPTIONS PLANT FOR EKKO-RESWK.
      select-options REQDAT for eket-eindt.
      selection-screen end of block b1.
    *................... GET DATA..................
    START-OF-SELECTION.
    PERFORM GATHER_DATA.
    END-OF-SELECTION.
    FORM USER_COMMAND USING r_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    CASE r_ucomm.
    WHEN '&IC1'.
    CASE  rs_selfield-sel_tab_field.
    WHEN 'ITAB-EBELN'.
    CHECK NOT rs_selfield-value IS INITIAL.
    SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
    CALL TRANSACTION 'ME22N' AND SKIP FIRST SCREEN.
    Do something at 'Sales document type' field selection
    when 'ITAB-MATNR'.
    SET PARAMETER ID 'BUS' FIELD rs_selfield-value.
    CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
    ENDCASE.
    ENDCASE.
    ENDFORM.
    form gather_data.
    SELECT EKKO~EBELN
           EKKO~AEDAT
           EKKO~LIFNR
          EKKO~MEMORY
          EKKO~RESWK
           EKPO~EBELP
           EKPO~MATNR
           ekpo~werks
           ekpo~netpr
           ekpo~peinh
           ekpo~banfn
           ekpo~txz01
          makt~maktx
           EKET~EINDT
           EKET~MENGE
           EKET~WEMNG
           LFA1~NAME1
    INTO corresponding fields of ITAB
    FROM (
    EKKO inner JOIN EKPO
    ON EKKOEBELN = EKPOEBELN
    inner JOIN EKET
    ON EKPOEBELN = EKETEBELN
    AND EKPOEBELP = EKETEBELP
    inner JOIN LFA1
    ON EKKOLIFNR = LFA1LIFNR
    *left outer join makt
    *on ekpomatnr = maktmatnr
    WHERE EKKO~LIFNR IN VENDORNO
    AND EKKO~RESWK IN PLANT
    and EKPO~MATNR IN MATERIAL
    and ekpo~elikz eq ' '
    and ekpo~loekz ne 'L'
    and eket~eindt in REQDAT.
    append itab.
    CLEAR ITAB.
    endselect.
    clear temp.
    sort itab by lifnr.
    loop at itab .
    ITAB-OPEN_QUANT = ITAB-MENGE - ITAB-WEMNG.
    if itab-matnr eq ''.
    select single aufnr from ebkn into itab-aufnr where banfn = itab-banfn.
      select single matnr from afpo into itab-matnr where aufnr = itab-aufnr.
    endif.
    select single maktx from makt into itab-maktx where matnr = itab-matnr.
    select single maabc from MARC INTO ITAB-MAABC WHERE MATNR = ITAB-MATNR.
    ITAB-VALUE = ITAB-NETPR * ITAB-OPEN_QUANT / itab-peinh.
    modify itab.
    endloop.
    SKIP.
      fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'LIFNR'.
      fieldcatalog-seltext_m   = 'vendor no'.
      fieldcatalog-col_pos     = 1.
      fieldcatalog-outputlen   = 15.
       fieldcatalog-inttype = 'C'.
      fieldcatalog-emphasize   = 'X'.
      fieldcatalog-key         = 'X'.
    fieldcatalog-do_sum      = 'X'.
      fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
        clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'EBELN'.
      fieldcatalog-seltext_m   = 'po Number'.
      fieldcatalog-col_pos     = 2.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-emphasize = 'C401'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'AEDAT'.
      fieldcatalog-seltext_m   = 'po date'.
      fieldcatalog-col_pos     = 3.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'EBELP'.
      fieldcatalog-seltext_m   = 'item number'.
      fieldcatalog-col_pos     = 4.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MATNR'.
       fieldcatalog-no_zero     = 'X'.
      fieldcatalog-seltext_m   = 'material number'.
      fieldcatalog-col_pos     = 5.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MAABC'.
      fieldcatalog-seltext_m   = 'material type'.
      fieldcatalog-col_pos     = 6.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'TXZ01'.
      fieldcatalog-seltext_m   = 'short text'.
      fieldcatalog-col_pos     = 7.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MAKTX'.
      fieldcatalog-seltext_m   = 'long text'.
      fieldcatalog-col_pos     = 8.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-outputlen   = 15.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'EINDT'.
      fieldcatalog-seltext_m   = 'date promised'.
      fieldcatalog-col_pos     = 9.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'MENGE'.
      fieldcatalog-seltext_m   = 'Quantity'.
      fieldcatalog-col_pos     = 10.
       fieldcatalog-inttype = 'C'.
      fieldcatalog-outputlen   = 15.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'WEMNG'.
      fieldcatalog-seltext_m   = 'Delivered'.
      fieldcatalog-col_pos     = 11.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
      fieldcatalog-fieldname   = 'OPEN_QUANT'.
      fieldcatalog-seltext_m   = 'Open quantity'.
      fieldcatalog-col_pos     = 12.
       fieldcatalog-inttype = 'C'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    fieldcatalog-tabname = 'ITAB'.
    fieldcatalog-fieldname   = 'VALUE'.
      fieldcatalog-seltext_m   = '$ value'.
      fieldcatalog-col_pos     = 13.
       fieldcatalog-inttype = 'C'.
       fieldcatalog-do_sum      = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = g_repid
                 I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
                it_fieldcat             = fieldcatalog[]
                is_layout               = GS_layout
                  IT_SORT                = gt_sort
                  I_DEFAULT = 'X'
                    I_SAVE = 'X'
               is_variant              = z_template
           tables
                t_outtab                = ITAB
                exceptions
                program_error           = 1
                others                  = 2.
    endform.

    hi,
    please run the code below.
    REPORT yfi7g_ing_mic_001 .
    *PROGRAM YFI7G_ING_MIC_001.
    TABLES: vbak .
    TABLES: mara .
    TYPES: BEGIN OF tp_vbak ,
          vbeln TYPE vbak-vbeln,
          erdat TYPE vbak-erdat,
          erzet TYPE vbak-erzet,
          ernam TYPE vbak-ernam,
          vbtyp TYPE vbak-vbtyp,
          trvog TYPE vbak-trvog,
          auart TYPE vbak-auart,
          lifsk TYPE vbak-lifsk,
          faksk TYPE vbak-faksk,
          waerk TYPE vbak-waerk,
          vkorg TYPE vbak-vkorg,
          kunnr TYPE vbak-kunnr,
          vgbel TYPE vbak-vgbel,
          vgtyp TYPE vbak-vgtyp,
    END OF tp_vbak .
    TYPES: BEGIN OF tp_mara ,
            matnr TYPE mara-matnr,
    END OF tp_mara .
    TYPES: BEGIN OF tp_alv1_data.
    INCLUDE TYPE tp_vbak .
    TYPES: END OF tp_alv1_data.
    TYPES: BEGIN OF tp_alv2_data.
    INCLUDE TYPE tp_mara .
    TYPES: END OF tp_alv2_data.
    TYPE-POOLS: slis.
    DATA: gt_vbak TYPE STANDARD TABLE OF tp_vbak WITH HEADER LINE.
    DATA: gt_mara TYPE STANDARD TABLE OF tp_mara WITH HEADER LINE.
    DATA: gs_variant LIKE disvariant.
    DATA: gt_alv1_data TYPE STANDARD TABLE OF tp_alv1_data WITH HEADER LINE.
    DATA: gt_alv2_data TYPE STANDARD TABLE OF tp_alv2_data WITH HEADER LINE.
    SELECTION-SCREEN                                                     *
    BLOCK b0                                                             *
    SELECTION-SCREEN BEGIN OF BLOCK b0 WITH FRAME.
    SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.        "<field not defined?>
    PARAMETERS: p_matnr LIKE mara-matnr.           "<field not defined?>
    SELECTION-SCREEN END OF BLOCK b0.
    BLOCK bvar                                                           *
    SELECTION-SCREEN BEGIN OF BLOCK bvar WITH FRAME.
    PARAMETERS: p_vari  LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK bvar.
    BLOCK bbox                                                           *
    SELECTION-SCREEN BEGIN OF BLOCK bbox WITH FRAME.
    PARAMETERS: p_box_up  RADIOBUTTON GROUP b1,
                p_box_do  RADIOBUTTON GROUP b1 DEFAULT 'X',
                p_box_no  RADIOBUTTON GROUP b1.
    SELECTION-SCREEN END OF BLOCK bbox.
          AT SELECTION-SCREEN ON P_VARI                                 *
    AT SELECTION-SCREEN ON p_vari.
      PERFORM alv_variant_existence USING    p_vari
                                    CHANGING gs_variant.
          AT SELECTION-SCREEN ON VALUE REQUEST FOR P_VARI               *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM alv_variant_f4 CHANGING p_vari
                                      gs_variant.
    INITIALIZATION                                                       *
    INITIALIZATION.
    START-OF-SELECTION                                                   *
    START-OF-SELECTION.
      PERFORM authority_check.
      PERFORM get_control_data.
      PERFORM get_transaction_data.
      PERFORM process_transaction_data.
    END-OF-SELECTION                                                     *
    END-OF-SELECTION.
      PERFORM output_data.
    F   O   R   M   S                                                   *
          FORM AUTHORITY_CHECK                                          *
          Perform authority checks for the report                       *
    FORM authority_check.
    !!! Note: authorisation checks are application-dependent.
    !!! Some common cases are listed below - please select one of them
    !!! or add new authorisation checks.
    !!! If the report is creating batch input session or using LDB
    !!! it may be sufficient to use automatic SAP auth.checks.
    Authorisation for displaying documents in a single company code
    authority-check object 'F_BKPF_BUK'
           id 'BUKRS' field p_bukrs
           id 'ACTVT' field '03'.
    if sy-subrc <> 0.
      message e001(z9) with 'No authorisation to display documents'
                            'in company code' p_bukrs.
    endif.
    Displaying documents from a list of company codes (select-options)
    call function 'Y_BUKRS_AUTHORITY_CHECK'
       EXPORTING
            ACTVT     = '03'
            NOMESSAGE = ' '
       tables
            s_bukrs   = s_bukrs.
    ENDFORM.                              " AUTHORITY_CHECK
          FORM GET_CONTROL_DATA                                         *
          Read configuration etc.                                       *
    FORM get_control_data.
    ENDFORM.                               " GET_CONTROL_DATA
          FORM GET_TRANSACTION_DATA                                     *
          Read documents etc.                                           *
    FORM get_transaction_data.
    !!! Data selection statement below has been generated automatically.
    !!! Please check if it is correct and complete.
    !!! Use table joins or 'SELECT FOR ALL ENTRIES' when selecting data
    !!! from related tables.
      SELECT
                vbeln
                erdat
                erzet
                ernam
       FROM vbak
          INTO CORRESPONDING FIELDS OF TABLE gt_vbak
      CHECK NOT gt_vbak[] IS INITIAL.
      SELECT
                matnr
       FROM mara
          INTO CORRESPONDING FIELDS OF TABLE gt_mara
          FOR ALL ENTRIES IN gt_vbak
          WHERE ernam = gt_vbak-ernam
    ENDFORM.                               " GET_TRANSACTION_DATA
          FORM PROCESS_TRANSACTION_DATA                                 *
    FORM process_transaction_data.
      LOOP AT gt_vbak .
        MOVE-CORRESPONDING gt_vbak TO gt_alv1_data .
        APPEND gt_alv1_data .
      ENDLOOP.
      FREE gt_vbak .
      LOOP AT gt_mara .
        MOVE-CORRESPONDING gt_mara TO gt_alv2_data .
        APPEND gt_alv2_data .
      ENDLOOP.
      FREE gt_mara .
    ENDFORM.                               " PROCESS_TRANSACTION_DATA
          FORM OUTPUT_DATA                                              *
    FORM output_data.
      PERFORM alv_list_display.
    ENDFORM.                               " OUTPUT_DATA
          FORM DISPLAY_RECORD                                           *
          Display object associated with the current ALV line           *
    FORM display_record USING is_selfield TYPE slis_selfield.
      READ TABLE gt_alv1_data INDEX is_selfield-tabindex.
      CHECK sy-subrc = 0.
    !!! SAMPLE IMPLEMENTATION FOR DISPLAYING FI DOCUMENTS:
      SET PARAMETER ID 'BUK' FIELD gt_alv1_data-vbeln.
    set parameter id 'BLN' field gt_alv1_data-belnr.
    set parameter id 'GJR' field gt_alv1_data-gjahr.
      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDFORM.                               " DISPLAY_RECORD
          FORM ALV_LIST_DISPLAY                                         *
          Invoke main ALV function to format and show the report        *
    FORM alv_list_display.
      DATA: ls_layout      TYPE slis_layout_alv,
            ls_print       TYPE slis_print_alv,
            ls_keyinfo     TYPE slis_keyinfo_alv,
            lt_fieldcat    TYPE slis_t_fieldcat_alv,
            lt_exctab      TYPE slis_t_extab,
            lt_sorttab     TYPE slis_t_sortinfo_alv,
            lt_events      TYPE slis_t_event.
      PERFORM alv_init_report_events TABLES   lt_events.
      PERFORM alv_init_report_layout TABLES   lt_fieldcat
                                              lt_exctab
                                              lt_sorttab
                                     CHANGING ls_layout
                                              ls_print
                                              ls_keyinfo.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
          i_interface_check        = ' '
          i_callback_program       = sy-cprog
          is_layout                = ls_layout
          it_fieldcat              = lt_fieldcat
          it_excluding             = lt_exctab
        IT_SPECIAL_GROUPS        =
          it_sort                  = lt_sorttab
        IT_FILTER                =
        IS_SEL_HIDE              =
        I_SCREEN_START_COLUMN    = 0
        I_SCREEN_START_LINE      = 0
        I_SCREEN_END_COLUMN      = 0
        I_SCREEN_END_LINE        = 0
        I_DEFAULT                = 'X'
          i_save                   = 'A'
          is_variant               = gs_variant
          it_events                = lt_events
        IT_EVENT_EXIT            =
          i_tabname_header         = 'GT_ALV1_DATA'
          i_tabname_item           = 'GT_ALV2_DATA'
        I_STRUCTURE_NAME_HEADER  =
        I_STRUCTURE_NAME_ITEM    =
          is_keyinfo               =  ls_keyinfo
          is_print                 =  ls_print
        IS_REPREP_ID             =
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER  =
        ES_EXIT_CAUSED_BY_USER   =
        TABLES
          t_outtab_header          = gt_alv1_data
          t_outtab_item            = gt_alv2_data.
      EXCEPTIONS
        PROGRAM_ERROR            = 1
        OTHERS                   = 2
    ENDFORM.                           " ALV_LIST_DISPLAY
          FORM ALV_INIT_REPORT_LAYOUT                                   *
          Set up report layout definition for ALV_LIST_DISPLAY          *
    <-- OT_FIELDCAT list of fields                                     *
    <-- OT_EXCTAB   excluded menu options                              *
    <-- OT_SORTTAB  sorting/grouping definition                        *
    <-- OS_LAYOUT   global report layout settings                      *
    <-- OS_PRINT    global report printout settings                    *
    <-- OS_KEYINFO  itab key fields (required only for hier.lists)     *
    FORM alv_init_report_layout TABLES ot_fieldcat TYPE slis_t_fieldcat_alv
                                       ot_exctab   TYPE slis_t_extab
                                       ot_sorttab  TYPE slis_t_sortinfo_alv
                              CHANGING cs_layout   TYPE slis_layout_alv
                                       cs_print    TYPE slis_print_alv
                                       cs_keyinfo  TYPE slis_keyinfo_alv.
    add menu items to be excluded to ot_exctab.
      REFRESH ot_exctab.
      REFRESH ot_fieldcat.
      REFRESH ot_sorttab.
    !!! List all ALV data fields for display here:
    DD-struct  = data dictionary structure name
    DD-field   = field of data dictionary structure
    itab       = internal table for output data
    itab-field = internal table field name
    key        = set to 'X' if key field
    sum        = set to 'X' for totals
    hid        = set to 'X' if field is initially hidden
    row        = list row number (multi-line list if >1)
    DD-struct    DD-field     itab         itab-field  key sum hid row
      PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
    'VBAK'       'VBELN'      'GT_ALV1_DATA' 'VBELN'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERDAT'      'GT_ALV1_DATA' 'ERDAT'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERZET'      'GT_ALV1_DATA' 'ERZET'     ' ' ' ' ' ' 1 ,
    'VBAK'       'ERNAM'      'GT_ALV1_DATA' 'ERNAM'     ' ' ' ' ' ' 1.
      PERFORM alv_build_fieldcat TABLES ot_fieldcat USING:
    'MARA'       'MATNR'      'GT_ALV2_DATA' 'MATNR'     ' ' ' ' ' ' 1 .
    !!! List all ALV data fields for sorting/grouping here
    itab       = internal table for output data
    itab-field = internal table field name
    up         = sort ascending
    down       = sort descending
    grp        = group by
    comp       = group initially compressed
    pos        = field position in sort sequence
    itab                   field              up down grp comp        pos
      PERFORM alv_build_sorttab TABLES ot_sorttab USING:
    'GT_ALV1_DATA'         'VBELN'             'X' ' ' ' ' ' '           1.
      PERFORM alv_build_sorttab TABLES ot_sorttab USING:
    'GT_ALV2_DATA'         'MATNR'             'X' ' ' ' ' ' '           1.
    !!! key definition - required only for hierarchical display (2 itabs)
      cs_keyinfo-header01 = 'VBELN' .
      cs_keyinfo-item01   = 'MATNR' .
    !!! See the declaration of type SLIS_LAYOUT_ALV and set the fields
    !!! of OS_LAYOUT record to change list-level attributes
    os_layout-no_colhead     = 'X'.         " no headings
      cs_layout-zebra          = 'X'.         " stripped pattern
    os_layout-no_vline       = 'X'.         " columns separated by space
    os_layout-totals_only    = 'X'.         " show only totals
    os_layout-totals_text    = 'Total'.     " totals line label
    os_layout-subtotals_text = 'Subtotal'.  " subtotals line label
    os_layout-subtotals_text = 'Subtotal'.  " subtotals line label
    os_layout-key_hotspot    = 'X'.         " keys as hotspot
    os_layout-expand_all     = 'X'.         " Expand all positions
    os_layout...
      cs_print-no_print_selinfos = 'X'.       " Skip selection statistics
      cs_print-no_print_listinfos = 'X'.      " Skip list statistics
    os_print-...
    ENDFORM.                               " INIT_REPORT_LAYOUT
          FORM ALV_BUILD_FIELDCAT                                       *
          Format a single line for ALV_INIT_REPORT_LAYOUT               *
    FORM alv_build_fieldcat TABLES ot_fieldcat
                            USING  iv_ref_tabname   "ref to a table/field
                                   iv_ref_fieldname
                                   iv_tabname     "actual table/field name
                                   iv_fieldname
                                   iv_key
                                   iv_do_sum
                                   iv_no_out
                                   iv_row_pos.
    status variables for auto-numbering of field column position
    (column number reset when a new table or row begins)
      STATICS: sv_last_tabname TYPE slis_tabname,
               sv_last_row_pos TYPE i,
               sv_current_col  TYPE i.
      IF sv_last_tabname <> iv_tabname OR sv_last_row_pos <> iv_row_pos.
        sv_current_col = 1.
      ELSE.
        ADD 1 TO sv_current_col.
      ENDIF.
      sv_last_tabname = iv_tabname.
      sv_last_row_pos = iv_row_pos.
      DATA: ls_fieldcat    TYPE slis_fieldcat_alv.
      DATA: lv_fieldname   TYPE slis_fieldname.
      lv_fieldname = iv_fieldname.
    !!! List all the special formatting requirements in cases below
    case lv_fieldname.
      when 'WRBTR'.                      "<-- link with currency required
        ls_fieldcat-cfieldname = 'WAERS'.
        ls_fieldcat-ctabname   = iv_tabname.
      when 'HKONT'.                     "<-- change default column header
        ls_fieldcat-seltext_s  = 'GL Acc.'.
        ls_fieldcat-ddictxt    = 'S'.          " (S)hort (M)iddle (L)ong
      when 'SOME_NUMBER'                 "<-- change number formatting
        ls_fieldcat-nosign     = 'X'.
        ls_fieldcat-nozero     = 'X'.
        ls_fieldcat-just       = 'L'.         " (L)eft (R)ight (C)enter
    endcase.
      ls_fieldcat-ref_tabname   = iv_ref_tabname.
      ls_fieldcat-ref_fieldname = iv_ref_fieldname.
      ls_fieldcat-tabname       = iv_tabname.
      ls_fieldcat-fieldname     = iv_fieldname.
      ls_fieldcat-key           = iv_key.
      ls_fieldcat-do_sum        = iv_do_sum.
      ls_fieldcat-no_out        = iv_no_out.
      ls_fieldcat-row_pos       = iv_row_pos.
      ls_fieldcat-col_pos       = sv_current_col.
      APPEND ls_fieldcat TO ot_fieldcat.
    ENDFORM.                          " ALV_BUILD_FIELDCAT
          FORM ALV_BUILD_SORTTAB                                        *
          Set up sorting information for ALV_INIT_REPORT_LAYOUT         *
    FORM alv_build_sorttab TABLES ot_sorttab TYPE slis_t_sortinfo_alv
                           USING  iv_tabname   TYPE slis_fieldname
                                  iv_fieldname TYPE slis_fieldname
                                  iv_up        TYPE c
                                  iv_down      TYPE c
                                  iv_subtot    TYPE c
                                  iv_comp      TYPE c
                                  iv_spos      TYPE n.
      ot_sorttab-spos      = iv_spos.
      ot_sorttab-fieldname = iv_fieldname.
      ot_sorttab-tabname   = iv_tabname.
      ot_sorttab-up        = iv_up.
      ot_sorttab-down      = iv_down.
      ot_sorttab-subtot    = iv_subtot.
      ot_sorttab-comp      = iv_comp.
      APPEND ot_sorttab.
    ENDFORM.                            " ALV_BUILD_SORTTAB
          FORM ALV_INIT_REPORT_EVENTS                                   *
          Set up program events for ALV_LIST_DISPLAY                    *
    <-- OT_EVENTS   list of events and associated report subroutines   *
    FORM alv_init_report_events TABLES ot_events TYPE slis_t_event.
      CLEAR   ot_events.
      REFRESH ot_events.
      ot_events-name = slis_ev_user_command.
      ot_events-form = 'USER_COMMAND'.
      APPEND ot_events.
      ot_events-name = slis_ev_pf_status_set.
      ot_events-form = ''.                         "'PF_STATUS_SET'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_list.
      ot_events-form = 'TOP_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_list.
      ot_events-form = 'END_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_page.
      ot_events-form = 'TOP_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_page.
      ot_events-form = 'END_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_top_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_end_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_before_line_output.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_after_line_output.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_caller_exit_at_start.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_list_modify.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_subtotal_text.
      ot_events-form = ''.
      APPEND ot_events.
    ENDFORM.                            " ALV_INIT_REPORT_EVENTS
          FORM USER_COMMAND                                             *
          Subroutine attached as callback form to ABAP List Viewer      *
      --> UCOMM    - user command code passed from ALV                  *
      --> SELFIELD - information record describing current line/field   *
    FORM user_command USING value(iv_ucomm) LIKE sy-ucomm
                            is_selfield     TYPE slis_selfield.
      CASE iv_ucomm.
        WHEN '&IC1'.                                  "ALV record selection
          PERFORM display_record USING is_selfield.
      when ...
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
          FORM PF_STATUS_SET                                            *
          Subroutine attached as callback form to ABAP List Viewer,     *
          allows setting alternative menu.  If necessary:               *
          1. Copy 'STANDARD' menu from SAPLKKBL and modify as required, *
          2. Activate callback                                          *
    FORM pf_status_set USING it_exctab TYPE slis_t_extab.
    set pf-status 'STANDARD' excluding it_exctab.
    ENDFORM.                               " PF_STATUS_SET
          FORM TOP_OF_LIST                                              *
          Subroutine attached as callback form to ABAP List Viewer,     *
          executed once at the start of list output.                    *
    FORM top_of_list.
      DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
      DATA: lv_report LIKE sy-repid.
      lv_report = sy-repid.             "do not pass sy-repid to function!
      IF p_box_up = 'X'. "display select options at report start
        CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
          EXPORTING
            curr_report     = lv_report
          TABLES
            selection_table = lt_seltab.
    remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
    before display, if necessary
        CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
           EXPORTING
                report        = lv_report
                seltext       = 'X'
            dyn_range     =
                newpage       = ' '
            screennr      = 1000
           TABLES
                sel_tab       = lt_seltab
           EXCEPTIONS
                sel_tab_empty = 1.
      ENDIF. "p_box_up = 'X'
    ENDFORM.                               " TOP_OF_LIST
          FORM END_OF_LIST                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
          executed once at the end of list output.                      *
    FORM end_of_list.
      DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
      DATA: lv_report LIKE sy-repid.
      lv_report = sy-repid.             "do not pass sy-repid to function!
      IF p_box_do = 'X'. "display select options at report end
        CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
          EXPORTING
            curr_report     = lv_report
          TABLES
            selection_table = lt_seltab.
    remove 'technical' parameters with 'DELETE LT_SELTAB WHERE...'
    before display, if necessary
        CALL FUNCTION 'RS_LIST_SELECTION_TABLE'
           EXPORTING
                report        = lv_report
                seltext       = 'X'
            dyn_range     =
                newpage       = ' '
            screennr      = 1000
           TABLES
                sel_tab       = lt_seltab
           EXCEPTIONS
                sel_tab_empty = 1.
      ENDIF. "p_box_do = 'X'
    ENDFORM.                               " END_OF_LIST
          FORM TOP_OF_PAGE                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
    FORM top_of_page.
    standard Ingram Micro report page heading
      DATA: lv_coco_pos TYPE i,          "CurPos of 'Company confidential'
            lv_title_pos TYPE i,           "CurPos of report title
            lv_title(70) TYPE c,           "Truncated report title
            lv_page_pos TYPE i,            "CurPos of page number
            lv_date_pos TYPE i,            "CurPos of date and time
            lv_page_no(10) TYPE c,
            lv_date(25) TYPE c,
            lv_time(20) TYPE c,
            lv_page(10) TYPE c.
    We may need to truncate title if the line size is < 81.
      IF sy-linsz < 81.
        lv_title = sy-title+0(50).
      ELSE.
        lv_title = sy-title.
      ENDIF.
    Decide on positioning of text depending on width of page
      lv_title_pos = ( sy-linsz / 2 ) - ( STRLEN( lv_title ) / 2 ).
      lv_coco_pos = sy-linsz - 20.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.
      WRITE: / 'Ingram Micro',
               AT lv_title_pos lv_title,
               AT lv_coco_pos 'Company Confidential'.
    Setup data correctly in the correct format for the display fields.
      lv_page = sy-pagno.
      SHIFT lv_page LEFT DELETING LEADING ' '.
      CONCATENATE sy-datum6(2) sy-datum4(2) sy-datum+0(4)
                   INTO lv_date SEPARATED BY '.'.
      CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) INTO lv_time.
      CONCATENATE lv_date lv_time INTO lv_date SEPARATED BY ' '.
      CONCATENATE 'Page' lv_page INTO lv_page_no SEPARATED BY ' '.
    Decide on positioning of text depending on width of page.
      lv_page_pos = sy-linsz - ( STRLEN( lv_page_no ) ).
      WRITE: / lv_date,
               AT lv_page_pos lv_page_no.
      ULINE.
    ENDFORM.                               " TOP_OF_PAGE
          FORM END_OF_PAGE                                              *
          Subroutine attached as callback form to ABAP List Viewer      *
    FORM end_of_page.
    ENDFORM.                               " END_OF_PAGE
          Form  ALV_VARIANT_EXISTENCE
          Reads ALV variant definition
    FORM alv_variant_existence  USING    iv_variant LIKE disvariant-variant
                                CHANGING os_variant LIKE disvariant.
      CHECK NOT iv_variant IS INITIAL.
      os_variant-report  = sy-repid.
      os_variant-variant = iv_variant.
      IF iv_variant CP '/*'.    "user-specific variants begin with slash
        os_variant-username = sy-uname.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
        EXPORTING
          i_save        = 'A'
        CHANGING
          cs_variant    = os_variant
        EXCEPTIONS
          wrong_input   = 1
          not_found     = 2
          program_error = 3
          OTHERS        = 4.
      IF sy-subrc <> 0.
        MESSAGE e001(z9) WITH 'Please select a valid display variant.'.
      ENDIF.
    ENDFORM.                               " ALV_VARIANT_EXISTENCE
          FORM ALV_VARIANT_F4                                           *
          Display list of layout variants on report selection screen    *
    FORM alv_variant_f4  CHANGING cv_varname  LIKE disvariant-variant
                                  cs_variant  LIKE disvariant.
      DATA: lv_exit(1) TYPE c.
      cs_variant-report = sy-repid.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
           EXPORTING
                is_variant          = cs_variant
                i_save              = 'A'
              it_default_fieldcat =
           IMPORTING
                e_exit              = lv_exit
                es_variant          = cs_variant
           EXCEPTIONS
                not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF lv_exit = space.
          cv_varname = cs_variant-variant.
        ENDIF.
      ENDIF.
    hope this will help.
    see form  user_command.
    regards,
    Ruchika

  • Drill Down for Multiple Series in a Line Chart

    Hello,
    I seem to have a problem with the drill-down functionality in a line chart that has multiple series.
    I have a line chart that displays the readings of a patient over a period of 1 month. For each day, there is the glucose level reading, blood pressure reading, etc... So, each reading is a different series in my line chart graph.
    The basic requirement is: With a mouse over event on the chart, I am willing to display all the data that belongs to that day. The data will be displayed at the bottom of the screen in a small panel. It is very simple to do it when the line chart has only 1 series:
    i) Enable drill down.
    ii) Choose 'Row' as insertion type.
    iii) Fill out the destination field.
    iv) Make sure your labels (at the bottom of the screen) get the data from the destination cell.
    When there is more than one series, it becomes very difficult. XCelsius will not let me use the same destination cells for different series. So, I will have to use other destination cells. In that case, I will not know on which day is the user on. Is there any way to achieve this functionality?
    Let me know if you need further information.

    This is certainly possible, but there's a bit of a trick to it (and really hard to explain without screenshots!). There's two halves to it:
    1. Write the date that has been selected to a cell (for each series).
    2. Write the name of the series that was clicked to some cell (this is the property 'Series Name Destination').
    So let's say your three series are Glucose, Blood Pressure and Temp. Have those series names in B1,C1,D1 (with your dates down in column A). Insert a row below the series names (2:2), and then set up your insertion type for the chart as 'row'. The source data (for all three series) should be your list of dates in column a. The insertion cells for the three series will be, in order, B2,C2,D2. Now, depending on which point is clicked in the chart, the selected day will be inserted into one of those three cells. Completely useless unless you know which series was clicked.
    So you need to insert the name of the series that was clicked ('Series Name Destination') into the spreadsheet, let's say in F1. The rest is just Excel formulas. The logic is, you can now tell what series was clicked, and go and look up the date that was inserted for that series, then go and look up the row that corresponds to that date. So to get the date that was just clicked, your formula (in F2) would be =HLOOKUP(F1,B1:D2,2,0).
    Then a VLOOKUP will get the results from that row of data. For example, if I inserted another row at row 3 (to show my 'result' values) the formula in B3 would be =VLOOKUP($F$2,$A$4:$D$13,2,0).
    I hope that makes sense.

  • Unable to create a drill through or drill down report

     
    Hello I am new to report builder (or any SQL related tools) and I am still learning to do a many things.
    Background: I have managed to design a pie-chart report that shows Number of Assets, and when they were maintained. The fields I have for the table seven columns
    Asset ID (e. 123456), Accepted On Date(dd/mm/yyyy), Last Serviced on Date(dd/mm/yyyy),  Min. Service interval per year (e.g 1,2,3,4) Overall Risk Score (between 0-16), Risk Category (e.g Green or Orange), maintenance
    Compliance (e.g Compliant or No Proof)
    I get an extract in .rdl format from our Asset Database (CRM) which includes Asset ID, Accepted On Dates, Last Serviced on Date, Min Service Interval per year, Overall Risk Score
    I add calculated field of Risk Category as Orange or Green, where an overall risk score > 8 will make the Asset ID fall in the Orange Category and any risk < 8 will be Green Category
    The second calculated field is the Maintenance Compliance, where I have added formula when certain conditions between Accepted On Date(dd/mm/yyyy), Last Serviced on Date(dd/mm/yyyy) and Min. Service interval per year, are
    met. When they are met, it is "Compliant", when not met it is "No Proof".
    The pie chart has
    Values as Count(Risk Category)
    category Groups (Risk category) + (Maintenance Compliance)
    Probelm: I am trying to design a drill down or a drill through report where if I click on the slice, the table displayed below will only contain values (or rows) corresponding to that region. So, if I click on Green - Compliant,
    then a table should appear which shows only asset values which have Risk category value Green and Maintenance Compliance Value as Compliant
    Please let me know if anyone can help     (Link Copy Paste in browser: https://drive.google.com/file/d/0BzjF_kUloVtkSUk0YlZDbFVYR3c/edit?usp=sharing)
    Note: I am doing this report offline, as the server connection does not work. So i usually edit the .rdl file and then upload it to the server to check if it runs

    Hello Alisa
    Thank you for the response. I tried doing the following, and I am pretty sure I must be doing something wrong because of my inexperience with SQL tools.
    But I get an error while I try to upload it onto the server. I have uploaded my files here
    https://drive.google.com/folderview?id=0BzjF_kUloVtkSjhCd3J6VU11alk&usp=sharing
    Is it possible to check these. The files are (.rdl file, error log text file, screen shot of error when uploading to server)
    Also, in your explanation you mentioned
    Add a dataset (DataSet1) in the report with the corresponding fields (when I try to add another data set(DS1) with the values shown in DSMain (my main report), it does not allow populate the query fields of the main report (DSMain). So I have to manually
    add all query field + the two calculated fields (Risk_Category & Maintenance_Compliance). Add another dataset (DataSet2) with RiskCategory, MaintenanceCompliance two fields (I added another Dataset and named it as DS2, and copied the same Calculated
    fields from DSMain (main report) for Risk_Category & Maintenance_Compliance
    Add two parameters (RiskCategory, MaintenanceCompliance) in the report, get these Available value from DataSet2 fields.( two parameters appears new
    RiskCategory --> Dataset-DS2, Value Field- Risk_Category, Label Field: Risk_Category
    MaintenanceCompliance --> Dataset-DS2, Value Field- Maintenance_Compliance, Label Field: Maintenance_Compliance
    3. Add two filters of DataSet1. Please refer to the following values:
    Expression: [RiskCategory]
    Operator: =
    Value: [@RiskCategory](I am not sure I have clearly understood this part. As my values in Dataset 1 (DS1) are the same as the main report (DSMain), the query + calculated fields are the same. Hence my Dataset 1 (DS1) will also have a Calculated field
    as Risk_Category and Maintenance_Compliance. And do I have to add these values as filters in DataSet2 (DS2) ? In which am actually manually typing Expression: [RiskCategory]
    Operator: = 
    Value: [@RiskCategory] 
    Expression: [MaintenanceCompliance] 
    Operator: = 
    Value: [@MaintenanceCompliance]
    Main Report
    3. Add the subreport below “Specify a report”. (I had to give a random name as 'DrillThrough' in this field. Am I doing something wrong)
    4. Click Add icon to add parameter to run the subreport. Please refer to the following values:
    Name: RiskCategory (Note: This is parameter name in the subreport.)      Value: RiskCategory
    Name: MaintenanceCompliance         Valeu: MaintenanceCompliance
    (I had to manually type the Name & Value fields, as they did not appear in the drop down list when I click on add)
    I am sure by now you must have realised how amateur I am with this tool
    Please let me know
    Thank you once again for being patient
    Silent_Tracker

Maybe you are looking for

  • IWeb Crashing at Open due to SFWordProcessing plugin

    My iWeb program suddenly will not open - it says "iWeb quit unexpectedly while using the SFWordProcessing plugin". It started happening when I used the software "Delicious Library 2" - which allows you to scan barcodes off books, DVDs, CDs etc - I wa

  • Tomcat 5.0.28 root web app

    One of my webapps is deployed under ROOT on linux. I've deployed another webapp under a different context, but for some reason, when I try to access it, tomcat still looks for it under ROOT. The other standard webapps like jsp-examples don't work eit

  • Strangeness Using HTML with JTabbedPane

    I'm getting some weird behavior when using html format for a JTabbedPane. It seems when I create tabs using HTML, it works fine, but when I subsequently try to change the tab title using JTabbedPane.setTitleAt(), the title doesn't change. The title d

  • Display "Juarez" correctly in html page

    How to display Juarez (with the tilda/accent over the a in Juarez correctly ?? Using iPlanet Web Server 4.1 on Unix/Solaris 8 Thanks Jer

  • Population in MS Word

    I have two forms. From form1 i am passing the parameters on form2 i want to display those parameters in word file based on some conditions. How can i do that?