Derive quarters using Calender month range as input

Hi Gurus,
In a particular query, the mandatory input is 0calmonth range. Variable used is 0CALMONS.
Users enters 24 months i.e 02/2006 - 02/2008 as an input and during runtime,Key figures data should display in quarters.
I have 10 Key figures( Inventory) in Rows and calender/month in free chars.
Can you please help me getting this?
Plz tell me the steps from variable creation and writing code in cmod.
Thanks in advance.
Priya
Sample format -
Quarter -  Feb 2006 - Mar 2006          April 2006-June 2006       Jul2006-Sep - 2006 etc
Inventory      100                                      50                                  100
Projected     100                                      50                                    50
Receipts       50                                     100                                    50

Hi,
I have added 0CALQUARTER to my cube and pulled that information into the report.
Since I am pulling current Inventory information, I need only last month of that quarter information only.
means, I want to display only March Inventoty in QRT1 and june Inventoty in QTR2
How can I achieve that?
Currently it is pulling this way...
Ex:                   Jan       Feb     mar     Qtr 1   April           May        Jun     Qtr2
Inventory             10       20        30       60         5                10        20        35
But I wanted to have like this ..
Ex:                   Jan       Feb     mar     Qtr 1   April           May        Jun     Qtr2
Inventory             10       20        30       30         5                10        20        20
Thanks for your help
Priya

Similar Messages

  • Can I use the value range as F4 ValueHelp in WebUI?

    Hi,
    I have a Z-field in CustomerH. Its datatype has a domain with a fixed value range attached.
    I show this field in the header of a sales order but the value help does not show up automatically.
    My question is: Can I use this value range as input for the value help or do I have to code a "real" value help and attach it via the V-Getter?
    Thanks.

    Hi,
    /people/tim.back/blog/2009/02/09/learn-how-to-create-drop-down-listboxes-in-crm-70s-web-client-ui
    to fetch data, you can use table mentioned above. Pass domain name and language to get all values maintained in domain.
    Regards,
    BJ

  • Query using 0calmonth, to input the month range, data incorrect

    hi, experts,
    I have a query using 0CALMONTH in the filter, restricted the range value ( eg. 2009.01-2009.08 ),
    but the data in Bex Analyzer only 2009.08, doest not collect the cube data from 2009.01 to 2009.08.
    If restrict the single value (eg, 2009.02), the data is correct.
    I tried to restrict the key figure by 0CALMONTH and then tried using variables with an offset but it does not work as input is a month range.
    my bw support package13, basis sp12.
    thanks in advance,
    xwu.

    this issue solved by myself, there is a non-cumulative Key Figure.
    thanks,
    xwu.

  • Days of a month using Calender

    Hi,
    I have a requirement to get number of days for a month for the input of month and year.
    Please anyone help me to know whether any API is available in java? (Can we use Calender/Date?)
    -V

    Can we use Calender/Date?You can set the time of a calendar to that represented by a date.

  • Calculate Month Range from Single Month input

    Hi Gurus,
    In a particular query, the mandatory input is 0calmonth. Variable used is 0PCALMON.
    When user inputs 12.2007, then during runtime one of the keyfigure i need to calculate is quarter quantity for the month range 10.2007 to 12.2007 as 12.2007 falls in this quarter.
    Similarly if user inputs 03.2008, quarter quantity will be for these months 01.2008 to 03.2008.
    Plz tell me the steps from variable creation and writing code in cmod.
    Thanks in advance.
    Vaishnavi.

    Hi Jaya,
    I have written this code in cmod and activated.
    when 'ZMQ_RNG'.
    Data : ZYear(4) .
    Data : ZMon(2) type N .
    loop at i_t_var_range into loc_var_range
    where vnam = '0PCALMON'.
    clear l_s_range.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'BT'.
    ZYear = loc_var_range-low(4) .
    ZMon = loc_var_range-low+4(2) .
    If ( ZMon = '04' or ZMon = '05' or ZMon = '06' ) .
    l_s_range-high+4(3) = '06' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '04' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '07' or ZMon = '08' or ZMon = '09' ) .
    l_s_range-high+4(3) = '09' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '07' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '10' or ZMon = '11' or ZMon = '12' ) .
    l_s_range-high+4(3) = '012' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '010' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '01' or ZMon = '02' or ZMon = '03' ) .
    l_s_range-high+4(3) = '03' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '01' .
    l_s_range-low(4) = ZYear .
    Endif .
    append l_s_range to e_t_range.
    exit.
    endloop.
    ZMQ_RNG variable is customer exit, not ready for input, and mandatory field whereas oPcalmon variable is user entry, ready for input, mandatory.
    I have a RKF with 0CALMONTH restricted with ZMQ_RNG on quantity. free characteristics i have ocalmonth with variable 0pcalmon.
    Still my RKF doesnot calculate quantities for the 3 month range..
    Plz help.
    Rgrds,
    Vaishnavi

  • Current Calender month in Varient

    Hi all,
    I'm running abap program where the input has Calender month (MM/YYYY).  So i have created the varient where this calender month selection will always be the current month whenever this program executes.   Say for eg. if i'm running today it is 02/2008, if im running next month it is 03/2008.  How can i define this in variant's Selection Variable.   The type of the calender month is char6.  the Calendar month is mandatory to execute this program, this to automate the process, as not to change variant values periodically each month.
    Thanks
    Sreedh

    hi,
    Step 1: Go to transaction SE38 to specify the Program name and select u2018Variantu2019 radio button and u2018Displayu2019.
    Then it will lead you to next screen u2018ABAP:Variants u2013Initial Screenu2019 as shown below: Specify the variant which needs to be created or changed. 
    Step2: Specify all those values which are static on the selection screen in this step. Then click u2018Variant Attributesu2019 to define selection variable for u2018Date Createdu2019 on the selection screen.
    Step 3: In this step, provide suitable meaning for the variant. As we need to define selection variable for u2018Date createdu2019 item on selection screen, check the box under L
    Step 4: In the previous step, select u2018Selection Variablesu2019 on the menu. It leads to the next screen as shown below. As we have decided to create selection variable for u2018Date createdu2019 item only, in this screen you get to see the variable as u2018Date createdu2019. Here you are provided with three options.
    T: Table variable from TVARV
    D: Dynamic Date Calculation
    B: User defined Variables. 
    From the provided options as per our requirement select u2018Du2019 option. This can be done by clicking the Traffic lights under u2018Du2019as shown below to know that the particular option is selected.
    Now click the black arrow  and you will be prompted with search help of different formulas for the selection variable.
    Step 5: Find the suitable formula as u2018Current date u2013 xxx, current date + yyyu2019 and select it. This will lead you to the next screen to enter the values for xxx and yyy. So, provide values as 15 for xxx and 0 for yyy. Save the variant and this will conclude the creation of dynamic variant with the help of selection variable. This variant can also be used in the background jobs.
    i tried pasting the link but some issue is ther..open google and type how to make dynamic variant in sap see the first result...its very useful

  • Month Range from Single Month Entry

    Hi Gurus,
    In a particular query, the mandatory input is 0calmonth. Variable used is 0PCALMON.
    When user inputs 12.2007, then during runtime one of the keyfigure i need to calculate is quarter quantity for the month range 10.2007 to 12.2007 as 12.2007 falls in this quarter.
    Similarly if user inputs 03.2008, quarter quantity will be for these months 01.2008 to 03.2008.
    have written this code in cmod and activated.
    when 'ZMQ_RNG'.
    Data : ZYear(4) .
    Data : ZMon(2) type N .
    loop at i_t_var_range into loc_var_range
    where vnam = '0PCALMON'.
    clear l_s_range.
    l_s_range-sign = 'I'.
    l_s_range-opt = 'BT'.
    ZYear = loc_var_range-low(4) .
    ZMon = loc_var_range-low+4(2) .
    If ( ZMon = '04' or ZMon = '05' or ZMon = '06' ) .
    l_s_range-high+4(3) = '06' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '04' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '07' or ZMon = '08' or ZMon = '09' ) .
    l_s_range-high+4(3) = '09' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '07' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '10' or ZMon = '11' or ZMon = '12' ) .
    l_s_range-high+4(3) = '012' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '010' .
    l_s_range-low(4) = ZYear .
    Endif .
    If ( ZMon = '01' or ZMon = '02' or ZMon = '03' ) .
    l_s_range-high+4(3) = '03' .
    l_s_range-high(4) = ZYear .
    l_s_range-low+4(3) = '01' .
    l_s_range-low(4) = ZYear .
    Endif .
    append l_s_range to e_t_range.
    exit.
    endloop.
    ZMQ_RNG variable is customer exit, not ready for input, and mandatory field whereas oPcalmon variable is user entry, ready for input, mandatory.
    I have a RKF with 0CALMONTH restricted with ZMQ_RNG on quantity. free characteristics i have ocalmonth with variable 0pcalmon.
    Still my RKF doesnot calculate quantities for the 3 month range..
    Plz help.
    Rgrds,
    Thanks in advance.
    Vaishnavi.

    Hi USERPV,
    Thanks a ton!
    I created one more RKF (hidden) as well as replaced 3 by 2.
    The problem is solved. n my query is executed.
    Assigned points.
    Rgrds,
    vaishnavi

  • Error while using the Geospatial Range FIlter

    Hello,
    When I try to use the Geospatial Range Filter I get the error:
    javax.portlet.PortletException: com.endeca.portal.data.DataSourceException: An error occurred while executing query: exception encountered while executing external function 'internal:navigation-query', caused by error endeca-err:MDEX0001 : Invalid input : Error in selection filter: "DISTANCE" is not a valid function on the types (mdex:geocode-set, mdex:geocode)
    Can anybody help me?
    Thanks!
    Marco

    Marco,
    you are dealing here with trying to use a function DISTANCE on mdex:geocode type and mdex:geocode-set, where:
    mdex:geocode Represents a latitude and longitude pair. Used for atomic values (from single-assign geocode attributes).
    mdex:geocode-set  Represents a latitude and longitude pair. Used for sets (from multi-assign geocode attributes).
    However, many functions and operators work on atomic data types and do not support sets.
    Quoting from the EQL Guide:
    Important: With three exceptions, all the functions and operators described in this chapter work only on atomic data types. That is, they are not supported with sets. The three exceptions are
    ARB,COUNT, and
    COUNTDISTINCT. For information on the set functions, see  Sets and Multi-assign Data.

  • Need help with select that month range with flexible first date

    Hello everyone,
    I am trying to create a selection of month range (will be in a WITH clause) for a report to display monthly data. But the first month start date can be any date. (Not necessarily the first date of the month)
    Examples:
    Report input parameters:
    Start Date: 08/10/12
    End Month: Dec 2012
    I was trying to build a with select that will list
    Month_Start, Month_End
    08/10/12, 31/10/12
    01/11/12, 30/11/12
    01/12/12, 31/12/12
    OR
    Month_Start, Next_Month
    08/10/12, 01/11/12
    01/11/12, 01/12/12
    01/12/12, 01/01/13
    End month is optional, so if no value the select will list only
    08/10/12, 01/11/12
    Oracle Database Details is
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    PL/SQL Release 11.1.0.7.0 - Production
    My code so far is
    VARIABLE  P50_START_DATE  VARCHAR2 (10)
    VARIABLE  P50_END_MONTH    VARCHAR2 (10)
    EXEC  :P50_START_DATE  := '10/10/2012';
    EXEC  :P50_END_MONTH   := '31/12/2012';
      SELECT  to_char(:P50_START_DATE) AS start_date
            ,  ADD_MONTHS( TRUNC(to_date(:P50_START_DATE,'DD/MM/YYYY'),'MONTH'), 1) AS next_month
      FROM dual
      union
       SELECT to_char(ADD_MONTHS( TRUNC(to_date(:P50_START_DATE,'DD/MM/YYYY'),'MONTH'), ROWNUM-1)) AS start_date
       ,      ADD_MONTHS( TRUNC(to_date(:P50_START_DATE,'DD/MM/YYYY'),'MONTH'), ROWNUM) AS next_month
       --, rownum
       from all_objects
       where
       rownum <= months_between(to_date(NVL(:P50_END_MONTH, :P50_START_DATE),'DD/MM/YYYY'), add_months(to_date(:P50_START_DATE,'DD/MM/YYYY'), -1))
       and rownum > 1If I put comment – on line and rownum > 1, as
    -- and rownum > 1The result I get is
    START_DATE                     NEXT_MONTH               
    01/10/12                       01/10/12                 
    01/11/12                       01/11/12                 
    01/12/12                       01/01/13                 
    10/10/2012                     01/11/12    But when I try to remove the duplicate period (of the first month) out by restrict rownum, it do not return any rows for the second select at all. The result I get is:
    START_DATE                     NEXT_MONTH               
    10/10/2012                     01/11/12    Can anyone advise what wrong with the select statement ?
    Thanks a lot in advance,
    Ann

    Hi,
    Here's one way:
    WITH   params      AS
         SELECT     TO_DATE (:p50_start_date, 'DD/MM/YYYY')     AS start_date
         ,     TO_DATE (:p50_end_month,  'DD/MM/YYYY')     AS end_date
         FROM     dual
    SELECT     GREATEST ( start_date
               , ADD_MONTHS ( TRUNC (start_date, 'MONTH')
                            , LEVEL - 1
              )               AS month_start
    ,     LEAST     ( end_date
              , ADD_MONTHS ( TRUNC (start_date, 'MONTH')
                          , LEVEL
                        ) - 1
              )               AS month_end
    FROM    params
    CONNECT BY     LEVEL     <= 1 + MONTHS_BETWEEN ( end_date
                                      , TRUNC (start_date, 'MONTH')
    ;:p50_end_month doesn't have to be the last day of the month; any day will work.
    If you want to generate a Counter Table containing the integers 1 througn x in SQL, you could say
    SELECT  ROWNUM  AS n
    FROM    all_objects
    WHERE   ROWNUM  <= x
    ;but, starting in Oracle 9.1, it's much faster to say
    SELECT  LEVEL   AS n
    FROM    dual    -- or any table containing exactly 1 row
    CONNECT BY  LEVEL <= x
    ;Also, x can be greater than the number of rows in all_objects.

  • Month Range Selection in OBIEE against Essbase

    OK. I am pretty knowledgeable on the Hyperion side, but new to the OBIEE world so I am looking for some major assistance in getting this to work.
    We currently have an Essbase outline that is built with the Year and Periods combined like the below example from 2001 - 2015:
    YrPeriod (generation 1)
    -----2011 (generation 2)
    ----------201101 (generation 3)
    ----------201102
    ----------201103
    ----------201104
    ----------201105
    ----------201106
    ----------201107
    ----------201108
    ----------201109
    ----------201110
    ----------201112
    -----2012
    ----------201201
    ----------201202
    ----------201203
    ----------201204
    ----------201205
    ----------201206
    ----------201207
    ----------201208
    ----------201209
    ----------201210
    ----------201211
    ----------201212
    ETC...
    What we are trying to do in OBIEE is build a dashboard that shows multiple reports (analysis) that are graphing 25 months of data (customer request). I have tried to:
    1. use the dashboard prompt to select a Start_Month and a prompt for the End_Month. These were selecting the Gen3 members of the YrPeriod dimension and saving to a Presentation variable. This allows the users to select from the dropdown list all the Gen3 members of the dimension which I want. Those presentation variables where then selected in the BETWEEN filter for the Analysis on the YrPeriod dimension. HOWEVER, it seems to only select the first member in the range which is the START_MONTH presentation variable. Not sure if this approach will work or not.
    SO I tried to do it a different way.
    2. I created Session_Variables, but I am not seeing a way to use them in the BETWEEN filters on the Analysis for YrPeriod dim. It only allows you to select Presentation variables or Request Variables.The only way I have gotten them to work was to add a sql on the Initialization block for the session variable:
    One FOR THE START MONTH - select to_char(add_months(sysdate,-25),'yyyymm') start_month from dual ;
    AND THE END_MONTH - select to_char(add_months(sysdate,-1),'yyyymm') Ending_Month from dual AND) .
    When added to the BETWEEN filter this works in getting the full 25 month range!
    HOWEVER, I would like to give the users the ability to change the run period range and not be stuck with just the system date.
    Ideally, I would like to have just 1 prompt for the Run period and have it update the range based on the selection.
    I hope I have given you all enough info to let you know what we are trying to do and what I have tried to this point. Hopefully this is something relatively simple and I am just missing it completely!
    Thank you in advance for any and all your help with this!
    Robert
    Edited by: user627522 on Nov 12, 2012 3:08 PM

    A web search for "OBIEE rolling months" comes back with i.e. this one: http://shivabizint.wordpress.com/2008/09/19/rolling-months-data-for-year-month-prompt-in-obiee/
    or this one: http://obieetutorialguide.blogspot.ie/2012/02/modeling-time-series-function-in-obiee.html
    In earlier Siebel days, one also used to define multiple alias in OBIEE physical layer for DIM_DATE with different joins to different months. I needed to go this route in a project where we had MS-SQL as the back end where the at that time relatively new AGO and TODATE were performing very badly.
    But now to solve your problem at hand:
    In the very latest release the new OBIEE function PERIODROLLING was introduced. Not sure though how this is function shipped to Essbase, if at all.
    You can read some more details about it i.e. here: http://gerardnico.com/wiki/dat/obiee/function_time
    Thanks for letting us know if it works at all with Essbase in physical layer and if it works, what query is actually being sent to Essbase.

  • Change quarterly quotas to monthly in SAP Pipeline Manager

    Hello
    Is it possible to change quarterly quotas to monthly quotas in the SAP Pipeline Performance Management CRM module without using ABAP code? I have been looking for a solution but I can't find anything.
    Regards

    Although the path vary between release - webservices for Solution Manager are usually available in transaction SICF
    under the following path
                     /default_host/sap/bc/solman                      
                     /default_host/sap/bc/bsp/sap/solutionmanager  
    However I am not aware of an webservice/interface from CHARM to 3rd party service desk products
    What is provided as of Solman 7 is an interface between SAP Service Desk and other 3rd party service desk products
    - so if you setup Solution Manager Service Desk you can have a business process from
    Openview ---> SAP Service Desk ---> SAP Charm
    Best wishes
    Stuart

  • FM 'Fti_Fiscal_year_Month_Get' - month range low - high not working

    Hi Experts,
    My req. is : If I enter: '01' to '12' in month range and '2008' in year ( I have taken out extention and intervals in year). Its should go and read records from '04' (april) '2007' to '03' (march) '2008'
    For this I have used the FM 'Fti_Fiscal_year_Month_Get' but after the parameters I am facing
    a problem, like
    If I give the month range as '04' to '12'  and year '2008' 
    it is reading '01' (april in dbat) to '09' (dec in dbtab)
    and i am getting the correct o/p.
    And if I give '01' to '12' and year '2008' its not fetching
    as '01 ' 2008  means '04' 2007 April in dbat.
    I tried hard coding and faced similar prob.
    Please advice
    Karthik

    Hi I am concatenating year , moth, '01' to date and later passing to the FM.
    Do u have any idea? else please advice me how to hard code it correctly ..
    Please advice
    Edited by: Karthik R on May 28, 2009 7:53 PM

  • V3 Fiscvar to Calender months

    Please see this scenario
    I have data coming from my ODS into a cube. The data is based on periods (ie no date). My reporting requirements are monthly.
    I woudl like to leave the ODS alone but create a time conversion from the update rules to convert from Period to Calender Month. I have tried using the FISCPER_CALMONTH in the update rules but i keep getting an error saying Formula element is not allowed here in the section where I put the year.
    Is there any other way for this to be done?
    I would also like the 4 special periods to be considered.
    Thanks

    Hi,
    I donot understand why are you using the Year in that formula .You need to use <i>Fiscal year period</i> time characterstic (may be use need to use Fiscal year variant also) in that update rule formula.
    With rgds,
    Anil Kumar Sharma .P

  • LOV custom sorting in prompts for calender month

    Hello Everyone,
    I want to do sorting in prompts in webi for Calender Month in the form (Jan,Feb,Mar....)
    Whereas, it comes alphabetically As (Apr,Aug and so on....) i want to know that can we find the solution for the same.
    I also want to know if yes can we do it in webi itself or we will have to do it on Information Design Tool?

    Hi Foram. I, too, am using HANA as my backend. Here's one way you can sort your data-driven prompts that appear in Web Intelligence:
    Open your business layer within the Information Design Tool.
    Verify that the column to be displayed in the Webi prompt (e.g., "Month") has been defined in your business layer.
    Select the "Parameters and Lists of Values" button.
    In the "List of Values" frame, press the down arrow and then select "List of values based on business layer objects".
    Give the the list an intuitive name; e.g., "Month LOV".
    On the Definition tab, press the "Edit Query..." button.
    Drag the column to be displayed in the Webi prompt (e.g, "Month") to the Result Objects frame.
    Press the "Sort dialog..." button.
    In the Sort dialog box, press the "Insert Sort Object" button.
    Select the column to sort on; e.g., "Month" and then press the OK button.
    Verify the sort type; e.g., "Ascending".
    Press the OK button.
    Press the Preview button to confirm the results.
    Save and publish the universe to your repository.
    Open your Webi report.
    Enter into Design mode.
    Open the Query Panel.
    Select the appropriate query.
    In the Query Filters frame, select the prompt (e.g., "Month") and press the "Show prompt properties" button.
    In the Prompt Properties dialog box, in the Prompt Properties frame, make sure "Prompt with List of Values" is selected.
    Press the OK button.
    Press the Close button.
    Press the Refresh button.
    Confirm that the prompt (e.g., "Month") is sorted properly.
    Hope this helps!
    Chris

  • How to find out the Transactions used per month & the USER who used that

    Hi,
    1)How to find out the Transactions used per month & the USER who used that?
    2)and can i get the above same for minimum 20 month?
    System : SAP- Enterprise Core Component.

    You can use my program...
    *& Report  Z_ABAP_TCODE_MONITOR
    *****&  Program Type          : Report                                 *
    *****&  Title                 : Z_ABAP_TCODE_MONITOR                   *
    *****&  Transaction code      : ZTCODE_USAGE                           *
    *****&  Developer name        : Shailendra Kolakaluri                  *
    *****&  Deveopment start date : 26 th Dec 2011                         *
    *****&  Development Package   : ZDEV                                   *
    *****&  Transport No          : DEVK906086                                       *
    *****&  Program Description   : This program is to display
    *List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    *& Modification history
    REPORT  Z_ABAP_TCODE_MONITOR.
    *& List all tcodes executed during previous day.
    *& Show the number of users executing tcodes
    TYPE-POOLS : slis.
    DATA: ind TYPE i,
          fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          layout TYPE slis_layout_alv,
          variant TYPE disvariant,
          events  TYPE slis_t_event WITH HEADER LINE,
          heading TYPE slis_t_listheader WITH HEADER LINE.
    *REPORT  z_report_usage.
    TYPES: BEGIN OF zusertcode,
      date   TYPE swncdatum,
      user   TYPE swncuname,
      mandt     TYPE swncmandt,
      tcode     TYPE swnctcode,
      report TYPE swncreportname,
      count     TYPE swncshcnt,
    END OF zusertcode.
    *data   : date type n.
    DATA: t_usertcode  TYPE swnc_t_aggusertcode,
          wa_usertcode TYPE swncaggusertcode,
          wa           TYPE zusertcode,
          t_ut         TYPE STANDARD TABLE OF zusertcode,
          wa_result    TYPE zusertcode,
          t_result     TYPE STANDARD TABLE OF zusertcode.
    PARAMETER: month TYPE dats DEFAULT sy-datum.
    *PARAMETER: date TYPE dats.
    *select-options : username for wa_usertcode-account.
    START-OF-SELECTION.
    PERFORM get_data.
    PERFORM get_fieldcatalog.
      PERFORM set_layout.
    PERFORM get_event.
    PERFORM get_comment.
      PERFORM display_data.
    FORM get_data .
    *date = sy-datum - 2 .
    After start-of-selection add this line (parameter Month required 01 as day).
      concatenate month+0(6) '01' into month.
      CALL FUNCTION 'SWNC_COLLECTOR_GET_AGGREGATES'
        EXPORTING
          component     = 'TOTAL'
          ASSIGNDSYS    = 'DEV'
          periodtype    = 'M'
          periodstrt    = month
        TABLES
          usertcode     = t_usertcode
        EXCEPTIONS
          no_data_found = 1
          OTHERS        = 2.
      wa-date  = month.
    *wa-date  = date.
      wa-mandt = sy-mandt.
    wa_usertcode-account = username.
      LOOP AT t_usertcode INTO wa_usertcode.
        wa-user = wa_usertcode-account.
        IF wa_usertcode-entry_id+72 = 'T'.
          wa-tcode  = wa_usertcode-entry_id.
          wa-report = space.
        ELSE.
          wa-tcode  = space.
          wa-report = wa_usertcode-entry_id.
        ENDIF.
        COLLECT wa INTO t_ut.
      ENDLOOP.
      SORT t_ut BY report ASCENDING.
      CLEAR: wa, wa_result.
    endform.
    FORM get_fieldcatalog .
    fcat-tabname     = 't_ut'.
    fcat-fieldname   = 'DATE'.
    fcat-seltext_l   = 'Date'.
    fcat-key         = 'X'.
    APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'MANDT'.
      fcat-seltext_l   = 'Client'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'USER'.
      fcat-seltext_l   = 'User Name'.
      fcat-key         = 'X'.
      APPEND fcat.
      CLEAR fcat.
      fcat-tabname     = 't_ut'.
      fcat-fieldname   = 'TCODE'.
      fcat-seltext_l   = 'Transaction Code'.
      fcat-key         = 'X'.
      APPEND fcat.
    ENDFORM.
    *&      Form  SET_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM set_layout .
      layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SET_LAYOUT
    *&      Form  GET_EVENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_event .
    events-name = slis_ev_top_of_page.
    events-form = 'TOP_OF_PAGE'.
    APPEND events.
    *ENDFORM.                    " GET_EVENT
    **&      Form  GET_COMMENT
          text
    -->  p1        text
    <--  p2        text
    *FORM get_comment .
    DATA: text(30).
    text = 'Billing Report'.
    heading-typ = 'H'.
    heading-info = text.
    APPEND heading.
    *ENDFORM.                    " GET_COMMENT
    **&      Form  top_of_page
          text
    -->  p1        text
    <--  p2        text
    *FORM top_of_page .
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         it_list_commentary       = heading[]
      I_LOGO                   =
      I_END_OF_LIST_GRID       =
    *ENDFORM.                    " top_of_page
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      sort t_ut[].
    DELETE ADJACENT DUPLICATES FROM t_ut[] COMPARING ALL FIELDS.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-cprog
          is_layout          = layout
          it_fieldcat        = fcat[]
          i_save             = 'A'
          is_variant         = variant
          it_events          = events[]
        TABLES
          t_outtab           = t_ut
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " DISPLAY_DATA

Maybe you are looking for