About flexible report

Hi.
I'm aware that by using lexical parameters and even a pl/sql function that returns a cursor variable, you can build very flexible reports: dynamic where clause, even dynamic select list, dynamic order by, etc. However, i'd like address some specifics issues and see if some feedback is provided:
1) I'd like to give users the abitlity to choose a summary function to apply to some columns: for example, given the amount and quantity columns, give users the option to dynamically select a summary function to be applied: i.e. sum, avg, max, min, etc. Is there a way to dynamically change a summary function?.
2) As flexible as data model can be, i find the layout model not that flexible: you have to use format triggers, anchors and so forth to get the job done. Consider these two situations:
- You allow the user to select the fields he wants in the report. On the data model size it's quite easy, if you use lexical parameters, on the layout side, you have to consider things like column size, spacing, labels, etc. These can get a bit tricky here.
- You want to give the user the ability to configure a let's say a receipt report: i mean he decides where in the paper he wants to place receipt number, customer name, code ,etc. I mean there isn't seem to exist an option such as a dynamic layout as far as i know. How flexible or dynamic a layout can be without having to write too much code?.
Any feedback will be greatly appreciated ... Thanks in advance ...!

1. If aggregate function is done in the SQL, the same lexical approach can be used to change the operation. If aggregation is done in the data model using summary column, you will need to create several summary columns for all possible summary functions that user can choose from. Then one more formula columns will be needed to pick one of the created summary columns based on the summary parameter value.
2.1 The layout can be flexible to some extent. It should be known in advance how many columns user can select, e.g. either 4, or 5, or 6. Then you can create different layouts for each case and switch between them, or you can even adjust the same layout using triggers, anchors, and frame elasicities, which is not too easy. For more user flexibility the Discoverer would be a better option, but you will trate flexibility for formatting and layout possibilities.
2.2 Offering the user more formatting options is also limited to what is envisaged in the layout. For example, you can ask user if he wants page numbers in the top, in the bottom, to the left, to the right, but you will have to place the page numbers in all the places and then suppress all of them except for what user has selected. For more end user freedom, XML Publisher can be the better option. The user will be able to create his own template in MS Word and move the fields as he likes.

Similar Messages

  • Flexible Report - choose the cols (and # of cols) on the fly - PDF

    Hi
    I have a user community who would like to be able to choose the columns in a "Flexible Report" when they want to run a report to output to the browser, and then to PDF.
    Now, I've played around a bit with setting up a number of page items - say 5 - called COL1..COL5 and setting the values from list-boxes and then running a report SQL:-
    Select :col1 COL1,
    :col5 COL5
    from my_table
    etc.
    This produces the data, but its pretty tacky and the column names are COL1, COL2.... - also tacky, and the number of columns is fixed.
    Anyone got any slick ideas on how to do this so the column names and # are variable?
    I have tried a javascript example (posted elsewhere in the forum) that runs the report with all it's columns, and allows the columns to be shown / hidden depending on the state of a ccheckbox. This is very cool but it doesn't translate the flexibility to PDF output.
    For those who have used Discoverer - I need a mini-Discoverer reportwriter!!
    Any input greatfully received - Thanks in anticipation.
    Mike
    Message was edited by:
    Mike Mac

    hi
    see this thread,it may help you...
    column name/table name
    regards
    vally.s

  • About  Interactve Reports

    Hi Falks,
      If any one knows about interactive report transaction code than plz give reply as well as send  me one step by step example how to create interactive reports.
    mail me on "[email protected]".
    Thanx and regards,
    Rahul Talele

    Hi,
    There is separate Tcode for interactive reports ..
    you can create a basic list report for one table data, and use the commands of intercative reports, like At line-selection, At user-command and write the code to display the another table records .
    see the sample code:
    report zf_rept_debtor_ageing
           no standard page heading
           message-id fb
           line-count 65
           line-size 230.
    Purpose : This ABAP program will fetch the Account Receivables for
               a Customer for the given period and display the due days.
    tables: t001,       " Company Codes
            t005,       " Countries
            skb1,       " GL Master
            kna1.       " Customer Master
    Internal Tables
    Internal table for BSID (Open Items) data
    data: begin of it_bsid occurs 0,
            kunnr like bsid-kunnr,         " Customer Number
            gjahr like bsid-gjahr,         " Fiscal Year
            belnr like bsid-belnr,         " Acc.Document
            buzei like bsid-buzei,         " Item
            budat like bsid-budat,         " Posting Date
            shkzg like bsid-shkzg,         " Dr/Cr Indicator
            dmbtr like bsid-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsid-dmbe2,         " Amount(USD)
            waers like bsid-waers,         " Currency
            zterm like bsid-zterm,         " Payment Terms
            vbeln like bsid-vbeln,         " Billing Doc
            zfbdt like bsid-zfbdt,         " Baseline Date
            zbd1t like bsid-zbd1t,         " No of days
            hkont like bsid-hkont,         " GL Account
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
          end of it_bsid.
    Internal table for BSAD (Closed Items) data
    data: begin of it_bsad occurs 0,
            kunnr like bsad-kunnr,         " Customer Number
            gjahr like bsad-gjahr,         " Fiscal Year
            belnr like bsad-belnr,         " Acc.Document
            buzei like bsad-buzei,         " Item
            budat like bsad-budat,         " Posting Date
            shkzg like bsad-shkzg,         " Dr/Cr Indicator
            dmbtr like bsad-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsad-dmbe2,         " Amount(USD)
            waers like bsad-waers,         " Currency
            zterm like bsid-zterm,         " Payment Terms
            vbeln like bsid-vbeln,         " Billing Doc
            zfbdt like bsid-zfbdt,         " Baseline Date
            zbd1t like bsid-zbd1t,         " No of days
            hkont like bsid-hkont,         " GL Account
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
          end of it_bsad.
    Internal table for Report Output
    data: begin of it_report occurs 0,
            kunnr like bsid-kunnr,         " Customer Number
            belnr like bsid-belnr,         " Acc.Document
            name1 like kna1-name1,         " Customer Name
            land1 like kna1-land1,         " Country
            shkzg like bsid-shkzg,         " Dr/Cr Indicator
            budat like bsid-budat,         " Posting Date
            dmbtr like bsid-dmbtr,         " Amount(Local Curr)
            wrbtr like bsid-wrbtr,         " Amount(Doc Curr)
            dmbe2 like bsid-dmbe2,         " Amount(USD)
            waers like bsid-waers,         " Currency
            due_amnt like bsid-dmbtr,      " Amount(Over Due)
            d_amnt1  like bsid-dmbtr,      " Amount(0-30 Future Due)
            d_amnt2  like bsid-dmbtr,      " Amount(31-60 Future Due)
            d_amnt3  like bsid-dmbtr,      " Amount(61-90 Future Due)
            d_amnt4  like bsid-dmbtr,      " Amount(91-120 Future Due)
            d_amnt5  like bsid-dmbtr,      " Amount(more than 120)
            due_date like bsid-budat,      " Due date
            zterm    like bsid-zterm,      " Payment Terms
            vbeln    like bsid-vbeln,      " Billing Doc
          end of it_report.
           Declaration of Data and Variables
    data: v_days  type i,            " Difference days
          v_waers like t001-waers,   " Co.Code Currency
          v_sum1  like bsid-dmbtr,                              " Totals 1
          v_sum2  like bsid-dmbtr,                              " Totals 2
          v_sum3  like bsid-dmbtr,                              " Totals 3
          v_sum4  like bsid-dmbtr,                              " Totals 4
          v_sum5  like bsid-dmbtr,                              " Totals 5
          v_sum6  like bsid-dmbtr,                              " Totals 6
          v_sum7  like bsid-dmbtr,                              " Totals 7
          v_sum8  like bsid-dmbe2.                              " Totals 8
    Constants
    constants: c_doc_waers(3) value 'USD',
               c_mitkz type c value 'D'.
                       Selection Screen
    selection-screen : begin of block b1 with frame title text-001.
    parameters: p_bukrs like t001-bukrs obligatory.      " Company Code
    select-options:s_kunnr for kna1-kunnr,               " Customer Number
                   s_land1 for t005-land1,               " Country
                   s_hkont for skb1-saknr.               " G/L Account
    parameters: p_date  like sy-datum obligatory.        " Report Date
    selection-screen: end of block b1.
    selection-screen : begin of block b2 with frame title text-002.
    selection-screen begin of line.
    selection-screen comment 2(30) text-003 for field p_rb1.
    parameters: p_rb1 radiobutton group rb.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 2(30) text-004 for field p_rb2.
    parameters: p_rb2 radiobutton group rb.
    selection-screen end of line.
    selection-screen: end of block b2.
    selection-screen : begin of block b4 with frame.
    selection-screen begin of line.
    selection-screen comment 2(29) text-038 for field p_chk1.
    parameters: p_chk1 as checkbox.
    selection-screen end of line.
    selection-screen: end of block b4.
    selection-screen : begin of block b3 with frame title text-030.
    selection-screen begin of line.
    selection-screen comment 2(30) text-031 for field p_rb3.
    parameters: p_rb3 radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 2(30) text-032 for field p_rb4.
    parameters: p_rb4 radiobutton group rb1.
    selection-screen end of line.
    selection-screen: end of block b3.
    *********Initialization**********************************************
    initialization.
    At Selection Screen
    at selection-screen.
    Checking for the input values of selection screen.
      perform screen_check.
    Top-Of-Page
    top-of-page.
      if p_rb3 = 'X'.
        if p_chk1 = 'X'.
    Write the Column Headings for detailed report(in Doc Currency)
          perform col_heading2.
        else.
    Write the Column Headings for detailed report
          perform col_heading.
        endif.
      else.
    Write the Column Headings for summary report
        perform col_heading1.
      endif.
    Start-Of-Selection
    start-of-selection.
    Get the Customer Open Items from BSID
      perform get_open_data.
    Get the Customer Closed Items from BSAD
      perform get_close_data.
    Get the data from BSID,BSAD and KNA1 into one int.table
      perform process_data.
    End-Of-Selection
    end-of-selection.
      if it_report[] is initial.
        write : 'No Documents found'(005).
      else.
        if p_rb3 = 'X'.
    Write the Detailed Report
          perform write_report.
        else.
    Write the Summary Report
          perform write_report1.
        endif.
      endif.
    At Line-Selection
    at line-selection.
    When double clicked on BELNR leave to transaction FB03
      perform line_sel.
    *&      Form  SCREEN_CHECK
    Checking for the input values of selection screen
    form screen_check.
    Validation of Company Code
      clear t001.
      if not p_bukrs is initial.
        select bukrs from t001 up to 1 rows
               into t001-bukrs
               where bukrs = p_bukrs.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Company Code'(006).
        endif.
      endif.
    Validation of Customer Number
      clear kna1.
      if not s_kunnr is initial.
        select kunnr from kna1 up to 1 rows
               into kna1-kunnr
               where kunnr in s_kunnr.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Customer Number'(007).
        endif.
      endif.
    Validation of Country
      clear t005.
      if not s_land1 is initial.
        select land1 from t005 up to 1 rows
               into t005-land1
               where land1 in s_land1.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid Country'(036).
        endif.
      endif.
    Validation of GL Account
      clear skb1.
      if not s_hkont is initial.
        select saknr from skb1 up to 1 rows
               into skb1-saknr
               where saknr in s_hkont and
                     mitkz = c_mitkz.
        endselect.
        if sy-subrc ne 0.
          message e000 with 'Invalid GL Reconciliation Account'(037).
        endif.
      endif.
    endform.                    " SCREEN_CHECK
    *&      Form  COL_HEADING
    Write the Column Headings for detailed report
    form col_heading.
      skip .
      write: /88 'DEBTOR AGEING REPORT AS AT:'(019) centered,
             116  p_date  centered, 198 sy-pagno.
      skip .
      write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 183 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(203) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline,165(10) 'Due Date'(024) centered,
           175 sy-vline,176(5)  'PayT'(025) centered,
           181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
           192 sy-vline,193(10) 'Doc.No.'(027) centered,
           203 sy-vline.
      write at /1(203) sy-uline.
      format color off.
    endform.                    " COL_HEADING
    *&      Form  COL_HEADING1
    Write the Column Headings for summary report
    form col_heading1.
      skip .
      write: /54 'DEBTOR AGEING REPORT (SUMMARY) AS AT:'(033) centered,
              92  p_date  centered, 158 sy-pagno.
      skip .
      write: /2 'CoCode:'(016), 13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 144 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(164) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline.
      write at /1(164) sy-uline.
      format color off.
    endform.                    " COL_HEADING1
    *&      Form  COL_HEADING2
    Write the Column Headings for summary report(in Doc Curr)
    form col_heading2.
      skip .
      write: /99 'DEBTOR AGEING REPORT AS AT:'(019) centered,
             127  p_date  centered, 220 sy-pagno.
      skip .
      write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
      if not s_kunnr is initial.
        if not s_kunnr-high is initial.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3,
                    '-', s_kunnr-high color 3.
        else.
          write: 20 'Customer:'(041),33 s_kunnr-low color 3.
        endif.
      endif.
      if not s_land1 is initial.
        if not s_land1-high is initial.
          write: /2 'Country:'(042),13(4) s_land1-low color 3,
                  '-', s_land1-high color 3.
        else.
          write: /2 'Country:'(042),13(4) s_land1-low color 3.
        endif.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: 20 'GL Account:'(043),33 s_hkont-low color 3.
          endif.
        endif.
      else.
        if not s_hkont is initial.
          if not s_hkont-high is initial.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3,
                      '-', s_hkont-high color 3.
          else.
            write: /2 'GL Account:'(043),14 s_hkont-low color 3.
          endif.
        endif.
      endif.
      write: 204 'Run Date:'(029), sy-datum.
      format color col_heading.
      write at /1(225) sy-uline .
      write: / sy-vline,  2(10) 'Customer'(008) centered,
            12 sy-vline, 13(30) 'Customer Name'(009),
            43 sy-vline, 44(3)  'Cty'(014) centered,
            47 sy-vline, 48(15) 'Amount'(013) right-justified,
            63 sy-vline, 64(4)  'Curr'(011) centered,
            68 sy-vline, 69(15) 'Overdue'(012) centered,
            84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
           100 sy-vline,101(15) '31 - 60 Days'(028) centered,
           116 sy-vline,117(15) '61 - 90 Days'(021) centered,
           132 sy-vline,133(15) '91 - 120 Days'(022) centered,
           148 sy-vline,149(15) 'Above 120 Days'(023) centered,
           164 sy-vline,165(10) 'Due Date'(024) centered,
           175 sy-vline,176(5)  'PayT'(025) centered,
           181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
           192 sy-vline,193(10) 'Doc.No.'(027) centered,
           203 sy-vline,204(16) 'Amount(Doc.Curr)'(039),
           220 sy-vline,221(4)  'Curr'(040),
           225 sy-vline.
      write at /1(225) sy-uline.
      format color off.
    endform.                    " COL_HEADING2
    *&      Form  GET_OPEN_DATA
    Get the Customer Open Items from BSID
    form get_open_data.
      select a~kunnr          " Customer Number
             a~gjahr          " Fiscal Year
             a~belnr          " Acc.Document
             a~buzei          " Item
             a~budat          " Posting Date
             a~shkzg          " Dr/Cr Indicator
             a~dmbtr          " Amount(Local Curr)
             a~wrbtr          " Amount(Doc Curr)
             a~dmbe2          " Amount(USD)
             a~waers          " Currency
             a~zterm          " Payment Terms
             a~vbeln          " Billing Doc
             a~zfbdt          " Baseline Date
             a~zbd1t          " No of days
             a~hkont          " GL account
             b~name1          " Customer Name
             b~land1          " Country
         into table it_bsid
         from bsid as a join kna1 as b
         on akunnr = bkunnr
         where a~bukrs = p_bukrs  and
               a~kunnr in s_kunnr and
               a~hkont in s_hkont and
               b~land1 in s_land1 and
               a~budat le p_date.
      sort it_bsid by kunnr gjahr belnr buzei budat.
    endform.                    " GET_OPEN_DATA
    *&      Form  GET_CLOSE_DATA
    Get the Customer closed Items from BSID
    form get_close_data.
      select a~kunnr          " Customer Number
             a~gjahr          " Fiscal Year
             a~belnr          " Acc.Document
             a~buzei          " Item
             a~budat          " Posting Date
             a~shkzg          " Dr/Cr Indicator
             a~dmbtr          " Amount(Local Curr)
             a~wrbtr          " Amount(Doc Curr)
             a~dmbe2          " Amount(USD)
             a~waers          " Currency
             a~zterm          " Payment Terms
             a~vbeln          " Billing Doc
             a~zfbdt          " Baseline Date
             a~zbd1t          " No of days
             a~hkont          " GL account
             b~name1          " Customer Name
             b~land1          " Country
        into table it_bsad
        from bsad as a join kna1 as b
        on akunnr = bkunnr
        where a~bukrs = p_bukrs  and
              a~kunnr in s_kunnr and
              a~hkont in s_hkont and
              b~land1 in s_land1 and
              a~augdt > p_date   and
              a~budat le p_date.
      sort it_bsad by kunnr gjahr belnr buzei budat.
    endform.                    " GET_CLOSE_DATA
    *&      Form  PROCESS_DATA
    Get the data from BSID,BSAD and KNA1 into one int.table
    form process_data.
    *Move the data from BSID to final output int table
      loop at it_bsid.
        move-corresponding it_bsid to it_report.
        it_report-due_date = it_bsid-zfbdt + it_bsid-zbd1t.
        append it_report.
        clear it_report.
      endloop.
    *Move the data from BSAD to final output int table
      loop at it_bsad.
        move-corresponding it_bsad to it_report.
        it_report-due_date = it_bsad-zfbdt + it_bsad-zbd1t.
        append it_report.
        clear it_report.
      endloop.
      sort it_report by kunnr belnr.
      loop at it_report.
        if it_report-shkzg = 'H'.    " Credit
          it_report-dmbtr = it_report-dmbtr * -1.
          it_report-dmbe2 = it_report-dmbe2 * -1.
        endif.
        v_days = it_report-due_date - p_date.
    For Company Code Currency
        if p_rb1 = 'X'.
          if v_days le 0.
            it_report-due_amnt = it_report-dmbtr.
          elseif v_days between 1 and 30.
            it_report-d_amnt1 = it_report-dmbtr.
          elseif v_days between 31 and 60.
            it_report-d_amnt2 = it_report-dmbtr.
          elseif v_days between 61 and 90.
            it_report-d_amnt3 = it_report-dmbtr.
          elseif v_days between 91 and 120.
            it_report-d_amnt4 = it_report-dmbtr.
          elseif v_days > 120.
            it_report-d_amnt5 = it_report-dmbtr.
          endif.
    For Group Currency
        else.
          if v_days le 0.
            it_report-due_amnt = it_report-dmbe2.
          elseif v_days between 1 and 30.
            it_report-d_amnt1 = it_report-dmbe2.
          elseif v_days between 31 and 60.
            it_report-d_amnt2 = it_report-dmbe2.
          elseif v_days between 61 and 90.
            it_report-d_amnt3 = it_report-dmbe2.
          elseif v_days between 91 and 120.
            it_report-d_amnt4 = it_report-dmbe2.
          elseif v_days > 120.
            it_report-d_amnt5 = it_report-dmbe2.
          endif.
        endif.
        modify it_report index sy-tabix.
      endloop.
    endform.                    " PROCESS_DATA
    *&      Form  WRITE_REPORT
    Write the Detailed Report Output
    form write_report.
      clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
             v_sum5,v_sum6,v_sum7,v_sum8.
      loop at it_report.
       at new kunnr.
          read table it_report index sy-tabix.
          write: / sy-vline,  2(10) it_report-kunnr,
                12 sy-vline, 13(30) it_report-name1,
                43 sy-vline, 44(3)  it_report-land1,
                47 sy-vline.
       endat.
        if p_rb1 = 'X'.
          select single waers from t001
               into v_waers where bukrs = p_bukrs.
          write:   1 sy-vline, 12 sy-vline,
                  43 sy-vline,
                  47 sy-vline,
                  48(15) it_report-dmbtr currency it_report-waers,
                  63 sy-vline, 64(4) v_waers,
                  68 sy-vline.
        else.
          write:   1 sy-vline, 12 sy-vline,
                  43 sy-vline,
                  47 sy-vline,
                  48(15) it_report-dmbe2 currency it_report-waers,
                  63 sy-vline,64(4) c_doc_waers,
                  68 sy-vline.
        endif.
        write:  69(15) it_report-due_amnt currency it_report-waers,
                84 sy-vline,
                85(15) it_report-d_amnt1 currency it_report-waers,
               100 sy-vline,
               101(15) it_report-d_amnt2 currency it_report-waers,
               116 sy-vline,
               117(15) it_report-d_amnt3 currency it_report-waers,
               132 sy-vline,
               133(15) it_report-d_amnt4 currency it_report-waers,
               148 sy-vline,
               149(15) it_report-d_amnt5 currency it_report-waers,
               164 sy-vline,165(10) it_report-due_date,
               175 sy-vline,176(5)  it_report-zterm,
               181 sy-vline,182(10) it_report-vbeln,
               192 sy-vline,193(10) it_report-belnr,
               203 sy-vline.
        if p_chk1 = 'X'.
          write: 204(16) it_report-wrbtr currency it_report-waers,
               220 sy-vline, 221(4) it_report-waers,
               225 sy-vline.
        endif.
       new-line.
    Totals for end of each Customer
        at end of kunnr.
          if p_chk1 = 'X'.
            write at /1(225) sy-uline.
          else.
            write at /1(203) sy-uline.
          endif.
          sum.
          format color 4.
          if p_rb1 = 'X'.
            write: /1 sy-vline, 2 'Total:'(015),
                 12 sy-vline,
                 13(10) it_report-kunnr,
                 43 sy-vline,47 sy-vline,
                 48(15) it_report-dmbtr currency it_report-waers,
                 63 sy-vline, 64(3) v_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
            if p_chk1 = 'X'.
              write: 220 sy-vline, 225 sy-vline.
            endif.
          else.
            write: /1 sy-vline, 2 'Total:'(015),
                   12 sy-vline,
                 13(10) it_report-kunnr,
                 43 sy-vline,
                 47 sy-vline,
                 48(15) it_report-dmbe2 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
            if p_chk1 = 'X'.
              write: 220 sy-vline, 225 sy-vline.
            endif.
          endif.
          format color off.
          if p_chk1 = 'X'.
            write at /1(225) sy-uline.
          else.
            write at /1(203) sy-uline.
          endif.
        endat.
        v_sum1 = v_sum1 + it_report-dmbtr.
        v_sum2 = v_sum2 + it_report-due_amnt.
        v_sum3 = v_sum3 + it_report-d_amnt1.
        v_sum4 = v_sum4 + it_report-d_amnt2.
        v_sum5 = v_sum5 + it_report-d_amnt3.
        v_sum6 = v_sum6 + it_report-d_amnt4.
        v_sum7 = v_sum7 + it_report-d_amnt5.
        v_sum8 = v_sum8 + it_report-dmbe2.
    Hiding the Acc doc no for interactic screen.
        hide it_report-belnr.
        hide it_report-budat.
        clear:it_report-belnr, it_report-budat.
      endloop.
    Grand Totals for all customers
      format color 3.
      write: /1 sy-vline, 2 'Gr.Total'(034),
                 12 sy-vline,13 'As At:'(035),p_date,
                 43 sy-vline,
                 47 sy-vline.
    For Company Code Currency
      if p_rb1 = 'X'.
        write:  48(15) v_sum1 currency it_report-waers,
                63 sy-vline, 64(4) v_waers,
                68 sy-vline.
    For Group Currency (USD)
      else.
        write:   48(15) v_sum8 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline.
      endif.
      write:     69(15) v_sum2 currency it_report-waers,
                 84 sy-vline,
                 85(15) v_sum3 currency it_report-waers,
                100 sy-vline,
                101(15) v_sum4 currency it_report-waers,
                116 sy-vline,
                117(15) v_sum5 currency it_report-waers,
                132 sy-vline,
                133(15) v_sum6 currency it_report-waers,
                148 sy-vline,
                149(15) v_sum7 currency it_report-waers,
                164 sy-vline, 175 sy-vline,
                181 sy-vline, 192 sy-vline,
                203 sy-vline.
      if p_chk1 = 'X'.
        write: 220 sy-vline, 225 sy-vline.
      endif.
      format color off.
      if p_chk1 = 'X'.
        write at /1(225) sy-uline.
      else.
        write at /1(203) sy-uline.
      endif.
    endform.                    " WRITE_REPORT
    *&      Form  WRITE_REPORT1
    Write the Summary Report Output
    form write_report1.
      clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
             v_sum5,v_sum6,v_sum7,v_sum8.
      loop at it_report.
        at new kunnr.
          read table it_report index sy-tabix.
          write: / sy-vline,  2(10) it_report-kunnr,
                12 sy-vline, 13(30) it_report-name1,
                43 sy-vline, 44(3)  it_report-land1,
                47 sy-vline.
        endat.
        at end of kunnr.
          sum.
          if p_rb1 = 'X'.
            select single waers from t001
              into v_waers where bukrs = p_bukrs.
            write: 1 sy-vline, 12 sy-vline,
                 43 sy-vline,  47 sy-vline,
                 48(15) it_report-dmbtr currency it_report-waers,
                 63 sy-vline, 64(4) v_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline.
          else.
            write: 1 sy-vline, 12 sy-vline,
                 43 sy-vline,  47 sy-vline,
                 48(15) it_report-dmbe2 currency it_report-waers,
                 63 sy-vline, 64(4) c_doc_waers,
                 68 sy-vline,
                 69(15) it_report-due_amnt currency it_report-waers,
                 84 sy-vline,
                 85(15) it_report-d_amnt1 currency it_report-waers,
                100 sy-vline,
                101(15) it_report-d_amnt2 currency it_report-waers,
                116 sy-vline,
                117(15) it_report-d_amnt3 currency it_report-waers,
                132 sy-vline,
                133(15) it_report-d_amnt4 currency it_report-waers,
                148 sy-vline,
                149(15) it_report-d_amnt5 currency it_report-waers,
                164 sy-vline.
          endif.
          write at /1(164) sy-uline.
        endat.
    Totals
        v_sum1 = v_sum1 + it_report-dmbtr.
        v_sum2 = v_sum2 + it_report-due_amnt.
        v_sum3 = v_sum3 + it_report-d_amnt1.
        v_sum4 = v_sum4 + it_report-d_amnt2.
        v_sum5 = v_sum5 + it_report-d_amnt3.
        v_sum6 = v_sum6 + it_report-d_amnt4.
        v_sum7 = v_sum7 + it_report-d_amnt5.
        v_sum8 = v_sum8 + it_report-dmbe2.
    Hiding the Acc doc no for interactic screen.
        hide it_report-belnr.
        hide it_report-budat.
        clear: it_report-belnr,
               it_report-budat.
      endloop.
    Calculation of Grand Totals
      format color 3.
      write: /1 sy-vline, 2 'Gr.Total'(034),
                 12 sy-vline,13 'As At:'(035),p_date,
                 43 sy-vline,
                 47 sy-vline.
    For Company Code Currency
      if p_rb1 = 'X'.
        write:  48(15) v_sum1 currency it_report-waers,
                63 sy-vline, 64(4) v_waers,
                68 sy-vline.
    For Group Currency (USD)
      else.
        write:   48(15) v_sum8 currency it_report-waers,
                 63 sy-vline, 64(3) c_doc_waers,
                 68 sy-vline.
      endif.
      write:     69(15) v_sum2 currency it_report-waers,
                 84 sy-vline,
                 85(15) v_sum3 currency it_report-waers,
                100 sy-vline,
                101(15) v_sum4 currency it_report-waers,
                116 sy-vline,
                117(15) v_sum5 currency it_report-waers,
                132 sy-vline,
                133(15) v_sum6 currency it_report-waers,
                148 sy-vline,
                149(15) v_sum7 currency it_report-waers,
                164 sy-vline.
      format color off.
      write at /1(164) sy-uline.
    endform.                    " WRITE_REPORT1
    *&      Form  LINE_SEL
    When double clicked on BELNR leave to transaction FB03
    form line_sel.
      data: lv_field(20),
            lv_value(10),
            lv_date(10),
            lv_gjahr like bsad-gjahr.
      get cursor field lv_field value lv_value.
      if lv_field = 'IT_REPORT-BELNR'.
        if not lv_value is initial.
          read current line field value it_report-budat into lv_date.
          lv_gjahr = lv_date+6(4).
          set parameter id 'BUK' field p_bukrs.
          set parameter id 'GJR' field lv_gjahr.
          set parameter id 'BLN' field lv_value.
          call transaction 'FB03' and skip first screen.
        endif.
      endif.
    endform.                    " LINE_SEL
    reward points if useful
    regards,
    Anji

  • QM Sample archive process and Flexible Reports

    Hi
    I'm looking for help in QM, regarding.
    1) QM Flexible Reports with t-codes please.
    2) Sample archive process with t-codes please.
    Thank you.

    Few QM reoprts:
    QA33,QGA1,QGA2,QGP1,QS58,QDH2,QM11,QI06.
    Archiving tcode:SARA.
    Hope this will help.

  • QM Flexible Reports and Sample Archive

    Hi
    I'm looking for help in QM, regarding.
    1) QM Flexible Reports with t-codes please.
    2) Sample archive process with t-codes please.
    Thank you.

    Few QM reoprts:
    QA33,QGA1,QGA2,QGP1,QS58,QDH2,QM11,QI06.
    Archiving tcode:SARA.
    Hope this will help.

  • My ipad was stolen today in China today. Any suggestions about police report?

    They haven been connected to a wireless network. Ialready sent the wipe order. Any suggestions about police report with serial ?

    It's doubtful you'll get it back.
    Report to police along with serial number. Change all your passwords.
    These links may be helpful.
    How to Track and Report Stolen iPad
    http://www.ipadastic.com/tutorials/how-to-track-and-report-stolen-ipad
    Reporting a lost or stolen Apple product
    http://support.apple.com/kb/ht2526
    Report Stolen iPad Tips and iPad Theft Prevention
    http://www.stolen-property.com/report-stolen-ipad.php
    How to recover a lost or stolen iPad
    http://ipadhelp.com/ipad-help/how-to-recover-a-lost-or-stolen-ipad/
    How to Find a Stolen iPad
    http://www.ehow.com/how_7586429_stolen-ipad.html
    Apple Product Lost or Stolen
    http://sites.google.com/site/appleclubfhs/support/advice-and-articles/lost-or-st olen
    Oops! iForgot My New iPad On the Plane; Now What?
    http://online.wsj.com/article/SB10001424052702303459004577362194012634000.html
    If you don't know your lost/stolen iPad's serial number, use the instructions below. The S/N is also on the iPad's box.
    How to Find Your iPad Serial Number
    http://www.ipadastic.com/tutorials/how-to-find-your-ipad-serial-number
    iOS: How to find the serial number, IMEI, MEID, CDN, and ICCID number
    http://support.apple.com/kb/HT4061
     Cheers, Tom

  • Document about Xl reporter

    Hi, evrybody!
    Can you share me document about xl reporter if you have
    I need document about get other data, macro,..
    My email:[email protected]
    Thank you vey much!

    Hi Tien,
    Check in the SAP B1 Customer Portal under "Documentation." Choose your release version and look under "SAP Addons." There are several pdf files about XL Reporter, including one about applying macros. Hope that helps!

  • About oracle reports

    I have question about oracle reports. I have 10 reports user has to run everyday. Is there any way user can run all these reports by pressing single button.
    Thanks
    VK

    Hi,
    In any of the report, in the 'Before report Trigger' add the following code to execute any number of reports.
    srw.run_report('report=test1.rdf destype=file desformat=pdf desname=test1.pdf');
    srw.run_report('report=test2.rdf destype=file desformat=pdf desname=test2.pdf');.....
    Like this, you can add any number srw.run_report (this built-in package will run the report with the given parameters), so that you can able to run any number of reports by running a single report.
    Thanks,
    Vidya Viswanathan,
    Reports Development Team.

  • I have had Firefox for years and in the last 2 weeks, I am getting all of these stupid Pop ups about credit reports and some Epic Play thing. How can I make sure I do not get them and why all of a sudden?

    I have had Firefox for years and in the last 2 weeks, I am getting all of these stupid Pop ups about credit reports and some Epic Play thing. How can I make sure I do not get them and why all of a sudden?

    Identify and remove adware/malware
    http://www.thesafemac.com/arg/

  • Hello guys...im john from the phillippines and im just new to sap business one...ryt now my boss tasked me to research about crystal reports and he is making a demand of report for customer recievables ageing.......i find it hard to look at on the part wh

    hello guys...im john from the phillippines and im just new to sap business one...ryt now my boss tasked me to research about crystal reports and he is making a demand of report for customer recievables ageing.......i find it hard to look at on the part which corresponds to value dates of customer like their lapses in payments for the previous months....anyone who could help me?thanks

    hello guys...im john from the phillippines and im just new to sap business one...ryt now my boss tasked me to research about crystal reports and he is making a demand of report for customer recievables ageing.......i find it hard to look at on the part which corresponds to value dates of customer like their lapses in payments for the previous months....anyone who could help me?thanks

  • How do I make a flexible report model

    we are migrating all our reports from cognos to ssrs. most of our cognos reports are using catalog which is equivalent with a report model. in cognos, we don't define any relationship between the tables on the catalog files to make it flexible tochanges
    on the underlying database tables. all the relationships are defined in the cognos reports. i find that you can't do this in ssrs. ssrsstrictly enforce you to define the relationship in the model. how do i make a report model to be flexible?

    Hi Blusil,
    I don’t know much about Cognos, but for Report Model in Reporting Services I have something to say. A report model is a user-friendly description of an underlying database, with pre-established data relationships and auto-generated queries. Report models
    can be used as data sources for reports created in Report Designer and Report Builder 3.0.
    We can set up connection information, define a view of the data source, define a report model, and publish the model to a report server. Then we can use the report model to build reports using Report Builder. For more details about Creating a Report Model,
    please see the following tutorial:
    http://technet.microsoft.com/en-us/library/ms167048(v=sql.105).aspx
    Hope this helps.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Problem about getting report!

    Hi,all:
    I am trying to get Report which is the query result from the previous canvas, but I don't know how to do it. For example, I put a button called "get transcript" on one canvas, and I set this button's trigger to next block. However, I have no idea about how to attach the previous result to this block. Please help me to solve this problem. Thank you!
    null

    You could try doing it from your purchase history : log into your account on your computer's iTunes via Store > View My Account and you should then see a Purchase History section with a 'see all' link to the right of it ; click on that and you should see a list of your purchases ; find that app and use the 'Report a Problem' link.
    If that doesn't work then try contacting iTunes support : http://www.apple.com/support/itunes/contact/ - click on Express Lane, then iTunes > iTunes Store

  • Quick question about bug reports

    Hi all,
    I was just reading the reporting bug guidelines (https://wiki.archlinux.org/index.php/Re … Guidelines) and was wondering about the section "Upstream or Arch?".
    I'm not an expert on the particular package I want to file a bug against, so I have no idea whether the problem is upstream or Arch. Should I just go ahead anyway? I cannot find a similar bug on any upstream bug trackers.

    eggplantbren wrote:
    Hi all,
    I was just reading the reporting bug guidelines (https://wiki.archlinux.org/index.php/Re … Guidelines) and was wondering about the section "Upstream or Arch?".
    I'm not an expert on the particular package I want to file a bug against, so I have no idea whether the problem is upstream or Arch. Should I just go ahead anyway? I cannot find a similar bug on any upstream bug trackers.
    If you're not sure, try a quick post on the forums.
    In general, once you've used your google-fu you should know whether the problem is distro-specific. Its normally highly unlikely that you'd be the first in the world to run into a real bug (if no-one else has reported anything, its likely user error, especially if you're not using [testing]).

  • About displaying report in web ?

    Will everything be displayed in web using oracle 10g ?
    Do I need to install any software on the client machine if I want to generate paper report ?
    The report format displayed in web and paper layout are different, can I adjust the web layout to display the same as paper layout ?
    Thanks.

    Since Oracle Application Server 9i Rel2 (9.0.2) everything is web only. For a user to get his Reports he only needs a browser, and Acrobat Reader if he wants PDF Reports.
    Paper Layout = html, htmlcss, PDF, file, printer etc
    Web Layout is programmed in jsp and is most bound to html
    For more information about Reports:
    http://www.oracle.com/technology/products/reports/
    Regards,
    Martin

  • About a report's performance.

    Hi , i use Report Builder 9.0.4.0.33 , i have here a sample query that i put in about 6 or 7 Formulas to return different values based on different parameters , when the client runs this reports through the browser it takes forever to show .... is there any way to increase the performance of this report ?
    select sum(nvl(invoice_commission,0))
      into v_comm
      from invoice
      where trunc(invoice_date) between :date1 and :date2
      and currency_code = '$'   -- sometimes 'euro' and so no
      and ISSUE_PLACE <> =  'xx'
      and investor_code = :investor_code;
      return(v_comm*5.5137);

    One performance consideration I'd do is try to avoid multiple similar queries or even repeats of the same query.
    Is
    from invoice
    where trunc(invoice_date) between :date1 and :date2
    and currency_code = '$' -- sometimes 'euro' and so no
    and ISSUE_PLACE = 'xx'
    and investor_code = :investor_code;
    return(v_comm*5.5137);
    in main query? Can those Formulas be included/replaced into the main query? Are appropriate Indexes created for the joins?

Maybe you are looking for