Need Help in Store Report.

Dear Gurus.
Im trying to make a report which shows the output like this
PLANT|      Matt No.|      Matt Description | Valuation Type |     UOM | Opening Bal Qty |     Opening Bal (RS) |     Receipts Qty |      Receipt Value (RS) |  Issues Qty | Issue Value (RS)|      Closing Bal Qty | Closing Bal (RS) |      Rate/Unit (RS) |
Im attaching my code for your reference.
[Store Summary|http://snak.freewebspace.com/zsnak_store_activities.html]
the problem im getting is that .
my report does not match the detail with MB51 data.
please guide me.

You'd get better response if you do some analysis and at least tell us where the two reports don't match.
Locked.
Rob

Similar Messages

  • Need help on classical report

    hi friends i need help on classical reports,
    sold-party,
    material
    sales and distrubitutation channel ,division,
    incoming orders,order number,invoice ,credit,
    i need sub totals and final total of invoice and each customer should display in new page .

    Hi
    Use the Tables KNA1,VBAk,VBAP,VBRK and VBRP and design the report
    see the sample report using KNA1,VBAK and VBAP.
    REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
    HEADING.
    *TABLES DECLARATION
    TABLES : KNA1, VBAK, VBAP.
    *SELECT OPTIONS
    SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
    *INITIALIZATION
    INITIALIZATION.
    CUST_NO-LOW = '01'.
    CUST_NO-HIGH = '5000'.
    CUST_NO-SIGN = 'I'.
    CUST_NO-OPTION = 'BT'.
    APPEND CUST_NO.
    *SELECTION SCREEN VALIDATION
    AT SELECTION-SCREEN ON CUST_NO.
    LOOP AT SCREEN.
    IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
    MESSAGE E001(ZTJ1).
    ENDIF.
    ENDLOOP.
    *BASIC LIST SELECTION
    START-OF-SELECTION.
    SELECT KUNNR NAME1 ORT01 LAND1 INTO
    (KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
    FROM KNA1
    WHERE KUNNR IN CUST_NO.
    WRITE:/1 SY-VLINE,
    KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    KNA1-NAME1 UNDER 'NAME',
    61 SY-VLINE,
    KNA1-ORT01 UNDER 'CITY',
    86 SY-VLINE,
    KNA1-LAND1 UNDER 'COUNTRY',
    103 SY-VLINE.
    HIDE: KNA1-KUNNR.
    ENDSELECT.
    ULINE.
    *SECONDARY LIST ACCESS
    AT user-command.
    IF SY-UCOMM = 'IONE'.
    PERFORM SALES_ORD.
    ENDIF.
    IF SY-UCOMM = 'ITWO'.
    PERFORM ITEM_DET.
    ENDIF.
    *TOP OF PAGE
    TOP-OF-PAGE.
    FORMAT COLOR 1.
    WRITE : 'CUSTOMER DETAILS'.
    FORMAT COLOR 1 OFF.
    ULINE.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'NAME',
    61 SY-VLINE,
    63 'CITY',
    86 SY-VLINE,
    88 'COUNTRY',
    103 SY-VLINE.
    ULINE.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR SECONDARY LISTS
    TOP-OF-PAGE DURING LINE-SELECTION.
    *TOP OF PAGE FOR 1ST SECONDARY LIST
    IF SY-UCOMM = 'IONE'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'SALES ORDER DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'DATE',
    60 SY-VLINE,
    62 'CREATOR',
    85 SY-VLINE,
    87 'DOC DATE',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR 2ND SECONDARY LIST
    IF SY-UCOMM = 'ITWO'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'ITEM DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'SALES ITEM NO.',
    60 SY-VLINE,
    62 'ORDER QUANTITY',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *END OF PAGE
    END-OF-PAGE.
    ULINE.
    WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
    SY-PAGNO.
    SKIP.
    *& Form SALES_ORD
    *& FIRST SECONDARY LIST FORM
    FORM SALES_ORD .
    SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
    (VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
    FROM VBAK
    WHERE KUNNR = KNA1-KUNNR.
    WRITE:/1 SY-VLINE,
    VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
    40 SY-VLINE,
    VBAK-ERDAT UNDER 'DATE',
    60 SY-VLINE,
    VBAK-ERNAM UNDER 'CREATOR',
    85 SY-VLINE,
    VBAK-AUDAT UNDER 'DOC DATE',
    103 SY-VLINE.
    HIDE : VBAK-VBELN.
    ENDSELECT.
    ULINE.
    ENDFORM. " SALES_ORD
    *& Form ITEM_DET
    *& SECOND SECONDARY LIST FORM
    FORM ITEM_DET .
    SELECT VBELN POSNR KWMENG INTO
    (VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
    FROM VBAP
    WHERE VBELN = VBAK-VBELN.
    WRITE : /1 SY-VLINE,
    VBAP-VBELN UNDER 'SALES ORDER NO.',
    40 SY-VLINE,
    VBAP-POSNR UNDER 'SALES ITEM NO.',
    60 SY-VLINE,
    VBAP-KWMENG UNDER 'ORDER QUANTITY',
    103 SY-VLINE.
    ENDSELECT.
    ULINE.
    ENDFORM. " ITEM_DET
    REPORT demo_list_at_pf.
    START-OF-SELECTION.
    WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
    AT pf5.
    PERFORM out.
    AT pf6.
    PERFORM out.
    AT pf7.
    PERFORM out.
    AT pf8.
    PERFORM out.
    FORM out.
    WRITE: 'Secondary List by PF-Key Selection',
    / 'SY-LSIND =', sy-lsind,
    / 'SY-UCOMM =', sy-ucomm.
    ENDFORM.
    After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
    Secondary List by PF-Key Selection
    SY-LSIND = 14
    SY-UCOMM = PF06
    Example for AT USER-COMMAND.
    REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
    WRITE: 'Basic List',
    / 'SY-LSIND:', sy-lsind.
    TOP-OF-PAGE.
    WRITE 'Top-of-Page'.
    ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE sy-pfkey.
    WHEN 'TEST'.
    WRITE 'Self-defined GUI for Function Codes'.
    ULINE.
    ENDCASE.
    AT LINE-SELECTION.
    SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
    PERFORM out.
    sy-lsind = sy-lsind - 1.
    AT USER-COMMAND.
    CASE sy-ucomm.
    WHEN 'FC1'.
    PERFORM out.
    WRITE / 'Button FUN 1 was pressed'.
    WHEN 'FC2'.
    PERFORM out.
    WRITE / 'Button FUN 2 was pressed'.
    WHEN 'FC3'.
    PERFORM out.
    WRITE / 'Button FUN 3 was pressed'.
    WHEN 'FC4'.
    PERFORM out.
    WRITE / 'Button FUN 4 was pressed'.
    WHEN 'FC5'.
    PERFORM out.
    WRITE / 'Button FUN 5 was pressed'.
    ENDCASE.
    sy-lsind = sy-lsind - 1.
    FORM out.
    WRITE: 'Secondary List',
    / 'SY-LSIND:', sy-lsind,
    / 'SY-PFKEY:', sy-pfkey.
    ENDFORM.
    When you run the program, the system displays the following basic list with a the page header defined in the program:
    You can trigger the AT LINE-SELECTION event by double-clicking a line. The system sets the status TEST and deactivates the function code PICK. The status TEST contains function codes FC1 to FC5. These are assigned to pushbuttons in the application toolbar. The page header of the detail list depends on the status.
    Here, double-clicking a line no longer triggers an event. However, there is now an application toolbar containing five user-defined pushbuttons. You can use these to trigger the AT USER-COMMAND event. The CASE statement contains a different reaction for each pushbutton.
    For each interactive event, the system decreases the SY-LSIND system field by one, thus canceling out the automatic increase. All detail lists now have the same level as the basic list and thus overwrite it. While the detail list is being created, SY-LSIND still has the value 1.
    Reward points for useful Answers
    Regards
    Anji

  • Need help on Oracle Report format

    Hi,
    I need help on Oracle Reports. I am generating a report in excel sheet. I have a column which is 13 digit number (In database it is CHAR datatype). In excel sheet it showing some thing like 9.78381E+12. I want to show complete number like 9783805591331.
    Also sometimes leading zero's are not showing when my column values is something like 0098794859583. I need to show the leading zero's as well in excel without losing them.
    Below are the parameters i am using for the report
    DESFORMAT=SPREADSHEET AND DESTYPE=FILE
    My Oracle 9i developer version.
    Any help on this would be much appreciated.
    Thanks
    Kishore

    An additional quote string ' character with the number field will solve this problem but if u want to display this field in report then it will look ugly
    '''||yourfield from table; check ur regional settings also
    plz mark it helpful correct if it is

  • Need help Connecting Crystal Reports 8.5 with GBS Agency Expert 6.7.6c

    Need help Connecting Crystal Reports 8.5 with GBS Agency Expert 6.7.6c.  I need assistance on connecting these together so I can run a report.  I am not an IT person so if someone could dumb it down it would be great.
    Thanks,
    NBGHealth

    Hello,
    I assume GBS Agency Expert 6.7.6c is some sort of database or data source? If you have an ODBC driver then create or use a System DSN to the database. Then you can create a report using that DSN.
    Otherwise I suggest you contact the makers of GBS Agency Expert 6.7.6c and ask them how to connect to the database.
    Let them know CR is ANSII 92 ODBC 3 compliant.
    Thank you
    Don

  • Needed help on this report

    When BELNR field is double clicked it is not going to F1 document in FB03
    Could anybody help on this , plz help
    Here is the code,
    *& Report  YALV_1
    REPORT  YALV_1.
    TABLES : BKPF,BSEG.
    Data for ALV display
    TYPE-POOLS: SLIS.
    data : int_fcat type SLIS_T_FIELDCAT_ALV,
           fieldcatalog type slis_t_fieldcat_alv with header line.
    DATA:  wa_sortinfo TYPE slis_sortinfo_alv,
           i_sortcat TYPE slis_t_sortinfo_alv.
    TYPES  : BEGIN OF T_BKPF,
            BUKRS TYPE BKPF-BUKRS,
            BELNR TYPE BKPF-BELNR,
            GJAHR TYPE BKPF-GJAHR,
            BLART TYPE BKPF-BLART,
            BLDAT TYPE BKPF-BLDAT,
            BUDAT TYPE BKPF-BUDAT,
           BUZEI TYPE BSEG-BUZEI,
            END OF T_BKPF.
    types: begin of t_bseg,
           BUZEI TYPE BSEG-BUZEI,
           end of t_bseg.
    DATA : it_bkpf TYPE STANDARD TABLE OF t_bkpf with header line,
          wa_bkpf TYPE t_bkpf,
           it_bseg type standard table of t_bseg.
          wa_bseg type t_bseg.
    field to store report name
    DATA :  i_repid like sy-repid.
    select bukrs belnr gjahr blart bldat budat from bkpf into table
    it_bkpf where blart = 'AA'.
    field to check table length
    *data i_lines like sy-tabix.
    *Start-of-selection.
    START-OF-SELECTION.
    perform data_retrieval.
    perform build_fieldcatalog.
    PERFORM sortcat_init CHANGING i_sortcat.
    perform display_alv_report.
    *&      Form  BUILD_FIELDCATALOG
          Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but
    *can
    also allow you  more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such
    *as
    total. You may need to provide more information than if you were
    simply displaying the result
                  I.e. Field type may be required in-order for
                       the 'TOTAL' function to work.
      fieldcatalog-fieldname   = 'BUKRS'.
      fieldcatalog-seltext_m   = 'Company Code'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 4.
    fieldcatalog-do_sum      = 'X'.
    fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'BELNR'.
      fieldcatalog-seltext_m   = 'Doc No'.
      fieldcatalog-hotspot = 'X'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'GJAHR'.
      fieldcatalog-seltext_m   = 'Fiscal Year'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'BLART'.
      fieldcatalog-seltext_m   = 'DOC Type'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'BLDAT'.
      fieldcatalog-seltext_m   = 'Doc Date'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'BUDAT'.
      fieldcatalog-seltext_m   = 'Popsting Date'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'BUZEI'.
      fieldcatalog-seltext_m   = 'Line Items'.
      fieldcatalog-col_pos     = 6.
      fieldcatalog-do_sum      = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    FORM sortcat_init CHANGING i_sortcat TYPE slis_t_sortinfo_alv.
      CLEAR wa_sortinfo.
      wa_sortinfo-fieldname = 'BUKRS'.
      wa_sortinfo-tabname = 'T_BKPF'.
      wa_sortinfo-spos = 1.            " First sort by this field.
      wa_sortinfo-up = 'X'.            "   Ascending
      wa_sortinfo-subtot = 'X'.        " Subtotal at Name1
      APPEND wa_sortinfo TO i_sortcat.
      CLEAR wa_sortinfo.
      wa_sortinfo-fieldname = 'BELNR'.
      wa_sortinfo-tabname = 'T_BKPF'.
      wa_sortinfo-spos = 2.            " Sec sort by this field.
      wa_sortinfo-up = 'X'.            "   Ascending
      wa_sortinfo-subtot = 'X'.        " Subtotal at Name1
      APPEND wa_sortinfo TO i_sortcat.
    ENDFORM.                    " sortcat_init
    *&      Form  DISPLAY_ALV_REPORT
          Display report using ALV grid
    form display_alv_report.
      i_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = i_repid
               i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
               is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
               it_sort                = i_sortcat
               it_special_groups       = gd_tabgroup
               IT_EVENTS                = GT_XEVENTS
                i_save                  = 'X'
               is_variant              = z_template
           tables
                t_outtab                = IT_bkpf
           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_ALV_REPORT
    *&      Form  DATA_RETRIEVAL
    form data_retrieval.
    IF it_bkpf[] IS NOT INITIAL.
       select buzei from bseg into
         table it_bseg for all entries in it_bkpf
         where bukrs = it_bkpf-bukrs
         and belnr = it_bkpf-belnr
         and gjahr = it_bkpf-gjahr.
         endif.
    endform.                    " DATA_RETRIEVAL.
    FORM USER_COMMAND
    FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield.
    CASE u_com.
      WHEN '&IC1'.
        CASE sel_lin.
          WHEN 'BELNR'.
          read TABLE IT_BKPF INDEX sel_lin-tabindex.
          SET PARAMETER ID 'BLN' FIELD IT_BKPF-BELNR.
          SET PARAMETER ID 'BUK' FIELD IT_BKPF-BUKRS.
          SET PARAMETER ID 'GJR' FIELD IT_BKPF-GJAHR.
          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
        ENDCASE.
    CLEAR u_com.
    ENDCASE.
    ENDFORM. "USER_COMMAND

    Pl. do this change in ur code...
    FORM user_command USING u_com LIKE sy-ucomm sel_lin TYPE slis_selfield.
    CASE u_com.
    WHEN '&IC1'.
    CASE sel_lin-FIELDNAME.
    WHEN 'BELNR'.
    read TABLE IT_BKPF INDEX sel_lin-tabindex.
    SET PARAMETER ID 'BLN' FIELD IT_BKPF-BELNR.
    SET PARAMETER ID 'BUK' FIELD IT_BKPF-BUKRS.
    SET PARAMETER ID 'GJR' FIELD IT_BKPF-GJAHR.
    CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
    ENDCASE.
    CLEAR u_com.
    ENDCASE.
    ENDFORM. "USER_COMMAND
    Regards,
    Joy.

  • Need Help XML Publisher Report

    Hi Friends
    I need to generate a report in xml publisher responsibility .
    I have create and designed the RTF file using word , And i have genetared an XML file(template )
    I have some doubt please clarify by doubts
    In RTF template i have some 4columns
    For EXample i Give some column name
    Invoice Number , Invoice Line Number ,Tax Type ,Tax Code Name etc....
    In my RTF I have done like this
    I have created two 2 row and 4column
    In the 1st row i have all the 4 column heading
    In the 2nd row i have done like this
    Developer tab> Design mode > In the legacy tool i have selected text Form field
    Once i double click the text form field in the default text i have Given C1 Then in the Add help text button i have given <?C_INVOICE_NUMBER?> like this i have done for alls the columns
    My RTF design is completed
    Now i need load the XML is it?
    In the XMl data query i have placed my sql statement
    Here my doubt starts
    wether all the column in the RTF should be in the XML sql statement ha?
    2)In the top of my RTF i need to add date and page No how to add that ?
    Thanks In advance
    AT

    Hi Friend
    Iam saying this is my XML file
    <LIST_G_TAX_NAME>
    <G_TAX_NAME>
    <C_SORT_TAX_NAME>USE TAX</C_SORT_TAX_NAME>
    <C_TAX_NAME>Use Tax</C_TAX_NAME>
    <C_TAX_RATE>8.25</C_TAX_RATE>
    <C_TAX_TYPE>USE</C_TAX_TYPE>
    <C_PERIOD_NAME>OCT-11</C_PERIOD_NAME>
    <LIST_G_VENDOR>
    <G_VENDOR>
    <C_SORT_VENDOR_NAME/>
    <C_SORT_SITE_CODE/>
    <C_VENDOR_ID>851</C_VENDOR_ID>
    <C_VENDOR_NAME>ORACLE CORPORATION</C_VENDOR_NAME>
    <C_SITE_CODE>CHICAGO</C_SITE_CODE>
    <LIST_G_INVOICE>
    <G_INVOICE>
    <C_INVOICE_DATE>17-OCT-11</C_INVOICE_DATE>
    <C_SORT_INVOICE_NUMBER>1308</C_SORT_INVOICE_NUMBER>
    <C_INVOICE_ID>350889</C_INVOICE_ID>
    <C_INVOICE_NUMBER>1308</C_INVOICE_NUMBER>
    <C_INVOICE_LINE_NUMBER>1</C_INVOICE_LINE_NUMBER>
    <C_PO_NUMBER>256388</C_PO_NUMBER>
    <C_DESCRIPTION>TEST</C_DESCRIPTION>
    <C_GL_DATE>17-OCT-11</C_GL_DATE>
    <C_INVOICE_LINE_AMOUNT>15</C_INVOICE_LINE_AMOUNT>
    <C_CHARGE_ACCOUNT>412.00.6410.7831.1076.1001.00.000.0000</C_CHARGE_ACCOUNT>
    <C_LIABILITY_ACCOUNT>412.00.0000.2152.1208.1001.00.000.0000</C_LIABILITY_ACCOUNT>
    <C_BATCH_NAME>101711</C_BATCH_NAME>
    <C_SITE_CODE2>CHICAGO</C_SITE_CODE2>
    <C_INVOICE_AMOUNT>15</C_INVOICE_AMOUNT>
    <LIST_G_DIST>
    <G_DIST>
    <C_INVOICE_TAX_ID>10061</C_INVOICE_TAX_ID>
    <C_LINE_TYPE>ITEM</C_LINE_TYPE>
    </G_DIST>
    </LIST_G_DIST>
    <C_TAXABLE_AMOUNT>15</C_TAXABLE_AMOUNT>
    <C_TAX_AMOUNT>1.24</C_TAX_AMOUNT>
    <C_INVOICE_AMOUNT_DISP> 15.00 </C_INVOICE_AMOUNT_DISP>
    <C_TAXABLE_AMOUNT_DISP> 15.00 </C_TAXABLE_AMOUNT_DISP>
    <C_TAX_AMOUNT_DISP> 1.24 </C_TAX_AMOUNT_DISP>
    </G_INVOICE>
    </LIST_G_INVOICE>
    <C_INVOICE_SITE_SUM>124.9</C_INVOICE_SITE_SUM>
    <C_INVOICE_SITE_SUM_DISP> 124.90 </C_INVOICE_SITE_SUM_DISP>
    <C_TAX_SITE_SUM>5.4</C_TAX_SITE_SUM>
    <C_TAX_SITE_SUM_DISP> 5.40 </C_TAX_SITE_SUM_DISP>
    <C_TAXABLE_SITE_SUM>65.66</C_TAXABLE_SITE_SUM>
    <C_TAXABLE_SITE_SUM_DISP> 65.66 </C_TAXABLE_SITE_SUM_DISP>
    </G_VENDOR>
    </LIST_G_VENDOR>
    <C_OLD_VENDOR_ID>0</C_OLD_VENDOR_ID>
    <C_INVOICE_SUM>124.9</C_INVOICE_SUM>
    <C_INVOICE_SUM_DISP> 124.90 </C_INVOICE_SUM_DISP>
    <C_TAX_SUM>5.4</C_TAX_SUM>
    <C_TAX_SUM_DISP> 5.40 </C_TAX_SUM_DISP>
    <C_TAXABLE_SUM>65.66</C_TAXABLE_SUM>
    <C_TAXABLE_SUM_DISP> 65.66 </C_TAXABLE_SUM_DISP>
    </G_TAX_NAME>
    </LIST_G_TAX_NAME>
    And if i need all the column to be displayed in my report
    1)Invoice Number
    2)Invoice Line Number
    3)Tax Type
    4)Tax Code Name
    5)Tax Rate Percent
    6)Supplier Name
    7)Description
    8)Gl Date
    9)Invoive Line Amount
    10)Taxable Line Amount
    11)Tax Liability
    12)Po Number
    13)Charge Account
    14)Liability Account
    Which tag do i need to use fro grouping
    For ex
    Instead of this <?for-each:G_TAX_NAME?> <?end for-each?>
    which one i need to use
    Please help
    Thanks
    AT

  • Need help in dynamic report for a range of year and period

    Dear all,
    I need help in creating an ALV report with dynamic columns based on the Year and period entered on the selection screen. for example if in the year we enter 2002 and period range from 10 to 12 then we should get the 3 columns display for cost(example) for period 10/2002, 11/2002 and 12/2002.
    Can anyone help me in achieving this dynamically since the user can enter the year also in intervals along with the period and data also needs to be populated in the corresponding columns.
    An example code would be of great help.
    Thanks,
    Amit

    Hi,
    Use field symbols as follows.
    TYPE-POOLS : SLIS.
    TABLES : MARC,T001W.
    DATA : BEGIN OF ITAB OCCURS 0,
           MATNR LIKE MARC-MATNR,
           END OF ITAB.
    DATA : FIELDSTAB TYPE LVC_T_FCAT,
           STAB      TYPE LVC_S_FCAT,
           T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           S_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
           NEW_LINE TYPE REF TO DATA,
           NEW_TABLE TYPE REF TO DATA,
           INDEX(3) TYPE C,
           STR(70),
           TEXT(6),
           CNT(1),
           TEXT1(16),
           REPID LIKE SY-REPID.
    FIELD-SYMBOLS : <FS> TYPE STANDARD TABLE,
                    <WA> TYPE ANY.
    SELECT-OPTIONS : S_WERKS FOR MARC-WERKS NO INTERVALS,
                     S_MATNR FOR MARC-MATNR NO INTERVALS.
    INITIALIZATION.
      REPID = SY-REPID.
    START-OF-SELECTION.
      SELECT * FROM MARC
               INTO CORRESPONDING FIELDS OF TABLE ITAB
               WHERE MATNR IN S_MATNR
               AND   WERKS IN S_WERKS.
      SORT ITAB BY MATNR.
      DELETE ADJACENT DUPLICATES FROM ITAB COMPARING MATNR.
      STAB-FIELDNAME = 'MATNR'.
      STAB-DATATYPE  = 'CHAR'.
      STAB-INTLEN    = '18'.
      APPEND STAB TO FIELDSTAB.
      CLEAR CNT.
      LOOP AT S_WERKS.
        CLEAR TEXT.
        CNT = CNT + 1.
        CONCATENATE  'EISLO' CNT INTO TEXT.
        STAB-FIELDNAME = TEXT.
        STAB-DATATYPE  = 'CHAR'.
        STAB-INTLEN    = '16'.
        APPEND STAB TO FIELDSTAB.
        CLEAR S_WERKS.
      ENDLOOP.
      CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
        EXPORTING
          IT_FIELDCATALOG = FIELDSTAB
        IMPORTING
          EP_TABLE        = NEW_TABLE.
      ASSIGN NEW_TABLE->* TO <FS>.
      CREATE DATA NEW_LINE LIKE LINE OF <FS>.
      ASSIGN NEW_LINE->* TO <WA>.
      PERFORM MOVE_DATA.
      CLEAR S_FIELDCAT.
      S_FIELDCAT-FIELDNAME = 'MATNR'.
      S_FIELDCAT-TABNAME = ITAB.
      S_FIELDCAT-SELTEXT_M = 'Part Number'.
      S_FIELDCAT-NO_ZERO = 'X'.
      S_FIELDCAT-DDICTXT   = 'M'.
      APPEND S_FIELDCAT TO T_FIELDCAT.
      CLEAR CNT.
      LOOP AT S_WERKS.
        CLEAR T001W.
        CNT = CNT + 1.
        SELECT SINGLE * FROM T001W WHERE WERKS = S_WERKS-LOW AND SPRAS = SY-LANGU.
        CLEAR TEXT.
        CONCATENATE 'EISLO' CNT INTO TEXT.
        S_FIELDCAT-FIELDNAME = TEXT.
        S_FIELDCAT-SELTEXT_M = T001W-NAME2.
    S_FIELDCAT-NO_ZERO = 'X'.
        S_FIELDCAT-DDICTXT   = 'M'.
        APPEND S_FIELDCAT TO T_FIELDCAT.
        CLEAR S_WERKS.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          IT_FIELDCAT = T_FIELDCAT[]
        TABLES
          T_OUTTAB    = <FS>.
    *&      Form  MOVE_DATA
          text
    FORM MOVE_DATA.
      LOOP AT ITAB.
        CLEAR STR.
        CONCATENATE ITAB-MATNR ' ' INTO STR SEPARATED BY SPACE.
        LOOP AT S_WERKS.
          CLEAR MARC.
          SELECT SINGLE * FROM MARC WHERE MATNR = ITAB-MATNR AND WERKS = S_WERKS-LOW.
          IF SY-SUBRC EQ 0.
            CLEAR TEXT1.
            TEXT1 = MARC-EISLO.
            CONCATENATE STR TEXT1 INTO STR SEPARATED BY SPACE.
          ELSE.
            CONCATENATE STR '0' INTO STR SEPARATED BY SPACE.
          ENDIF.
        ENDLOOP.
        <WA> = STR.
        APPEND <WA> TO <FS>.
        CLEAR ITAB.
      ENDLOOP.
    ENDFORM.                    "MOVE_DATA
    Reward points if helpful.
    Regards,
    Sankar..

  • I need help in Custom Reporting

    Hi,
    i need help in auditing, SCOM 2012 R2 is deployed in 2 servers with ACS, i have 2 file server that has some shared folder in which users work on some certain document i need to have a report that i can run on certain file that will show me who access that
    file when he access what he did like (read write, delete). i don't think we have this type of capability in default report. let me know if someone can help me in that. (free/paid) i know its a bit customized. let me know if u need any more info.
    Syed Kasif

    Hi,
    As far as I know, to audit file access, we should Enable Audit Policy, and then Set up Audit System Access Control List (SACL).
    After that, we can make sure that under security event logs there are auditing logs for file access.
    Please refer to the below link for more details about auditing file access on file server:
    http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx
    And for Collecting Security Events Using Audit Collection Services in Operations Manager:
    http://technet.microsoft.com/en-us/library/hh212908.aspx
    Regards,
    Yan Li
    Regards, Yan Li

  • Need Help on calling report in OAF Page

    Hi,
    At present i am wokring EAM Module. Here i need to call one report.
    In my OAF Page one button is there("The name of the button is *Issue*"). After clicking this button i need to fire one report(The name of the report is "Maintenance Picking Slip Issued Report").
    Please help me how to call report? I don't have any idea how to proceed for this.please explain clearly.
    Thanks in advance..
    Thanks,
    Somasekhar.

    Somasekhar,
    you want to call PLSQL Report or XML Publisher report or you want to submit the concurrent request.
    If this XML Publisher report then refer following code for your refrence
    public BlobDomain getXMLData(String as[], String s, String s1, String s2, String s3, String s4, String s5,
    String s6, String s7, String s8, String s9, String s10)
    throws Throwable
    int i;
    int j;
    int k;
    int l;
    int i1;
    int j1;
    int k1;
    int l1;
    int i2;
    int j2;
    int k2;
    OracleCallableStatement oraclecallablestatement;
    ARRAY array;
    int ai[] = new int[as.length];
    i = 0;
    j = 0;
    k = 0;
    l = 0;
    i1 = 0;
    j1 = 0;
    k1 = 0;
    l1 = 0;
    i2 = 0;
    j2 = 0;
    k2 = 0;
    for(int l2 = 0; l2 < as.length; l2++)
    ai[l2] = Integer.parseInt(as[l2]);
    if(s.equals("Y"))
    i = 1;
    if(s1.equals("Y"))
    j = 1;
    if(s2.equals("Y"))
    k = 1;
    if(s3.equals("Y"))
    l = 1;
    if(s4.equals("Y"))
    i1 = 1;
    if(s5.equals("Y"))
    j1 = 1;
    if(s6.equals("Y"))
    k1 = 1;
    if(s7.equals("Y"))
    l1 = 1;
    if(s8.equals("Y"))
    j2 = 1;
    if(s10.equals("Y"))
    k2 = 1;
    i2 = Integer.parseInt(s9);
    DBTransaction dbtransaction = getDBTransaction();
    String s11 = "BEGIN :1 :=EAM_WorkOrderRep_PVT.getWoReportXML(:2, :3, :4, :5, :6, :7, :8, :9,:10,:11,:12,:13); END;";
    oraclecallablestatement = (OracleCallableStatement)dbtransaction.createCallableStatement(s11, 1);
    java.sql.Connection connection = oraclecallablestatement.getConnection();
    ArrayDescriptor arraydescriptor = ArrayDescriptor.createDescriptor("SYSTEM.EAM_WIPID_TAB_TYPE", connection);
    array = new ARRAY(arraydescriptor, connection, ai);
    BlobDomain blobdomain;
    oraclecallablestatement.registerOutParameter(1, 2005);
    oraclecallablestatement.setArray(2, array);
    oraclecallablestatement.setInt(3, i);
    oraclecallablestatement.setInt(4, j);
    oraclecallablestatement.setInt(5, k);
    oraclecallablestatement.setInt(6, l);
    oraclecallablestatement.setInt(7, k1);
    oraclecallablestatement.setInt(8, l1);
    oraclecallablestatement.setInt(10, i1);
    oraclecallablestatement.setInt(11, j1);
    oraclecallablestatement.setInt(9, j2);
    oraclecallablestatement.setInt(12, i2);
    oraclecallablestatement.setInt(13, k2);
    oraclecallablestatement.execute();
    CLOB clob = ((OracleCallableStatement)oraclecallablestatement).getCLOB(1);
    blobdomain = new BlobDomain();
    OutputStream outputstream = blobdomain.getBinaryOutputStream();
    long l3 = clob.length();
    byte abyte0[] = new byte[(int)l3];
    String s12 = clob.getSubString(1L, (int)l3);
    abyte0 = s12.getBytes("UTF-8");
    outputstream.write(abyte0);
    outputstream.close();
    return blobdomain;
    SQLException sqlexception;
    sqlexception;
    try
    oraclecallablestatement.close();
    catch(Exception exception) { }
    throw OAException.wrapperException(sqlexception);
    public void initSearchCriteria()
    log(this, "init search crieria", 1);
    getWorkPlanSearchCriteriaVO().executeQuery();
    Let me know you got your point or not.
    Thanks,
    Kumar

  • Need help to create report with jpeg/gif image

    Hello,
    I need help with creating a form with a special jpeg/gif seal. I never done this Java. Until now, I created all forms with ansi C++ with HP escape characters to draw lines, boxs, and text. This form will contain boxes which is populated with database information read from a text file.
    Since this form contains a special seal on the upper right, I don't think it can be done with old fashion ansi C++. How can I create a form with Java and create it as a simple exe to just print the form to a specified printer.
    Thanks,
    John

    Hi,
    I am creating a form with boxes (lines and text). What is special about this form is that it has an image jpeg or gif at the top right corner. Is is a state department seal. Up to this form, I had used ansi C++ and print out escape HP character to print out the lines, boxes, and text. I have no idea how to print out the image. I am new to JAVA and only 1 class in it. Is there sample code out there to create this type of form with the image? I need a starting point.
    Thanks,
    John

  • HT1923 need help itunes store not open

    i need help opening itunes store

    Does it show any errors? If not just go on the uninstaller and look for itunes and click repair. It worked for me

  • Need help with simple report built in CR in Eclipse

    I'm using the Java SDK in Eclipse to be able to leverage a function that does not appear to be native in Crystal Reports - auto refresh.  Looking at the SDK, it appears straight forward to create a viewer on an existing report (built via Crystal Reports) and then refresh the data in a loop.  First glance at the SDK it appeared CrystalReportViewer would be the right class, but I didn't find that in the CR Java Runtime Library that comes with cr4e download.  So, I used ReportViewerBean, at least to prove out the concept.  Here's the prototype code (high-level), using the bean:
    public static void main (...) throws ReportSDKException
         ReportViewerBean viewer = new ReportViewerBean();
         viewer.setReportSource(path to the .rpt file);
         viewer.init();
         viewer.start();
         while (...) {
              viewer.refreshReport();
    What else is needed to display the report?
    Thanks,
    Roger

    I'm using the Java SDK in Eclipse to be able to leverage a function that does not appear to be native in Crystal Reports - auto refresh.  Looking at the SDK, it appears straight forward to create a viewer on an existing report (built via Crystal Reports) and then refresh the data in a loop.  First glance at the SDK it appeared CrystalReportViewer would be the right class, but I didn't find that in the CR Java Runtime Library that comes with cr4e download.  So, I used ReportViewerBean, at least to prove out the concept.  Here's the prototype code (high-level), using the bean:
    public static void main (...) throws ReportSDKException
         ReportViewerBean viewer = new ReportViewerBean();
         viewer.setReportSource(path to the .rpt file);
         viewer.init();
         viewer.start();
         while (...) {
              viewer.refreshReport();
    What else is needed to display the report?
    Thanks,
    Roger

  • Need help in executing report in OIM 10g

    Hi,
    I am getting error while executing a stored procedure for a report. The error is :
    ERROR,10 May 2012 00:25:07,649,[XELLERATE.WEBAPP],Class/Method: ReportAction/displayTabularReport encounter some problems: {1}
    Thor.API.Exceptions.tcColumnNotFoundException
    at Thor.API.tcMetaDataSet.getColumnType(Unknown Source)
    at com.thortech.xl.webclient.util.ReportUtilities.populateTableDataForTabularDisplay(Unknown Source)
    at com.thortech.xl.webclient.util.ReportUtilities.displayReportWithTabularLayout(Unknown Source)
    at com.thortech.xl.webclient.util.ReportUtilities.displayReportWithLayout(Unknown Source)
    at com.thortech.xl.webclient.actions.ReportAction.displayTabularReport(Unknown Source)
    at com.thortech.xl.webclient.actions.ReportAction.displayReport(Unknown Source)
    at com.thortech.xl.webclient.actions.ReportAction.handleInputParameters(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    for 2 days I am trying to solve this issue by trying different permutation and conbination but its not working. The table takes values from only two tables. Also I tried removing the othertable values and fetch value only from one table but still I am getting above error.
    Please help if anybody knows the solution for this.
    Thanks,
    Kalpana.

    I created my own report by copying from existing stored procedure. I just changed the select, from & where clause. I am not using any java program. Just changed the stored procedure, created the xml file, saved the parameter mappings in properties file, bounced the server but when I run the report I get this error.
    This is the xml file:
    <Report layout="tabular">
    <StoredProcedure>
    <InputParameters>
    <InputParameter name="struserlogin_in" order="1" fieldType="TextField" fieldLabel="report.contractorextension.label.reportDateRange" required="true" />
    </InputParameters>
    </StoredProcedure>
    <ReturnColumns>
    <ReturnColumn name="Contractor_Id" label="report.contractorextension.label.Contractor_Id" position="Table" order ="1"/>
    <ReturnColumn name="Contractor_Name" label="report.contractorextension.label.Contractor_Name" position="Table" order ="2"/>
    <ReturnColumn name="Contractor_NTLogon" label="report.contractorextension.label.Contractor_NTLogon" position="Table" order ="3"/>
    <ReturnColumn name="USR_STATUS" label="report.contractorextension.label.USR_STATUS" position="Table" order ="4"/>
    <ReturnColumn name="USR_END_DATE" label="report.contractorextension.label.USR_END_DATE" position="Table" order ="5"/>
    <ReturnColumn name="Supervisor_Name" label="report.contractorextension.label.Supervisor_Name" position="Table" order ="6"/>
    <ReturnColumn name="Supervisor_NTLogon" label="report.contractorextension.label.Supervisor_NTLogon" position="Table" order ="7"/>
    <ReturnColumn name="Supervsior_EmailId" label="report.contractorextension.label.Supervsior_EmailId" position="Table" order ="8"/>
    <ReturnColumn name="Notification_Send_Date" label="report.contractorextension.label.Notification_Send_Date" position="Table" order ="9"/>
    <ReturnColumn name="Extension_Date" label="report.contractorextension.label.Extension_Date" position="Table" order ="10"/>
    </ReturnColumns>
    </Report>
    this is the stored procedure:
    create or replace
    PROCEDURE "XL_SP_CONTRACTOREXTENSION" (
    csrresultset_inout IN OUT sys_refcursor,
    intuserkey_in IN NUMBER,
    strsortcolumn_in IN VARCHAR2,
    strsortorder_in IN VARCHAR2,
    intstartrow_in IN NUMBER,
    intpagesize_in IN NUMBER,
    intdocount_in IN NUMBER,
    inttotalrows_out OUT NUMBER,
    strfiltercolumnlist_in IN VARCHAR2,
    strfiltercolumnvaluelist_in IN VARCHAR2,
    strudfcolumnlist_in IN VARCHAR2,
    strudfcolumnvaluelist_in IN VARCHAR2,
    struserlogin_in IN VARCHAR2
    AS
    BEGIN
    Declare
    whereclause VARCHAR2(8000);
    select_stmt VARCHAR2(8000);
    strColumnList VARCHAR2(4000);
    strFromClause VARCHAR2(4000);
    strWhereClause VARCHAR2(4000);
    strOrderByClause VARCHAR2(2000);
    intSortDirection_in PLS_INTEGER;
    userkey NUMBER(30);
    str_row EXCEPTION;
    do_cnt EXCEPTION;
    no_logged_in_user EXCEPTION;
    property_not_found EXCEPTION;
    pragma exception_init(Str_row,-20001);
    pragma exception_init(Do_cnt,-20002);
    pragma exception_init(no_logged_in_user,-20003);
    BEGIN
    -- Throw exception if the start row or page size is either NULL or have
    -- values less than or equal to zero
    IF (intstartrow_in <= 0 OR intpagesize_in <= 0 OR intstartrow_in IS NULL
    OR intpagesize_in IS NULL) THEN
    RAISE str_row;
    END IF;
    -- Throw exception if the intdocount_in parameter is NULL or has a value
    -- other than 0 and 1
    IF intdocount_in NOT IN (0, 1, 2) OR intdocount_in IS NULL THEN
    RAISE do_cnt;
    END IF;
    -- Throw exception if the intuserkey_in (logged in user) parameter is NULL
    IF intuserkey_in IS NULL or intuserkey_in <= 0 THEN
    RAISE no_logged_in_user;
    END IF;
    -- Now, we start accumulating the whereclause based on the input
    -- parameters, performing error checking along the way.
    IF struserlogin_in IS NOT NULL THEN
    Whereclause :=
    whereclause || ' extn.udf_extn_ntlogon IN ( ''' || struserlogin_in || ''')' ;
    -- Perform the count query and store the result in inttotalrows_out
    -- inttotalrows_out := 0;
    IF intdocount_in IN (1,2)
    THEN
    EXECUTE IMMEDIATE ' SELECT count(*)'
    || ' FROM '
    || ' usr usr,usr usr2 '
    || ' where usr.USR_MANAGER_KEY = usr2.USR_KEY and'
    || ' extn.usr_key= usr.usr_key and '
    || whereclause INTO inttotalrows_out;
    -- UI needs the SP to return result set always. The following is returned
    -- when the indocount is 2 which does not return any result set but count
    IF intdocount_in = 2 THEN
    select_stmt := 'SELECT ''dummy'' FROM dual';
    OPEN csrresultset_inout FOR select_stmt;
    END IF;
    END IF;
    -- If intdocount_in is 2, UI just wants to get the totalrows to give
    -- the warning to users if the result set exceeds the limit set by
    -- UI. When ntdocount_in is 2, the following block won't be executed.
    -- This is the main query for this stored procedure
    If Intdocount_In In (0,1) Then
    -- The value of attestation field is NA in case of GTC resource names.
    -- If the GTC resource is selected, then "NA" will be displayed in the role name column
    Strcolumnlist :='usr.USR_LOGIN AS Contractor_Id, '
    --|| 'usr.USR_FIRST_NAME || '' '' || usr.usr_middle_name || '' '' || usr.USR_LAST_NAME AS "Contractor_NTLogon", '
    || 'usr.USR_FIRST_NAME AS Contractor_Name, '
    || 'usr.USR_UDF_NTLOGON AS Contractor_NTLogon,'
    || 'usr.USR_STATUS AS USR_STATUS, '
    || 'usr.USR_END_DATE AS USR_END_DATE, '
    --|| 'usr2.usr_first_name || '' '' || usr2.usr_middle_name || '' '' || usr2.usr_last_name AS "Supervisor_Name", '
    ||'usr2.usr_first_name AS Supervisor_Name, '
    || 'usr2.USR_UDF_NTLOGON AS Supervisor_NTLogon, '
    || 'usr2.USR_EMAIL AS Supervsior_EmailId'
    || 'extn.UDF_EXTN_CREATED AS Notification_Send_Date, '
    || 'extn.UDF_EXTN_EXTENDED AS Extension_Date';
    strFromClause :=' ud_co_extn_q extn, usr usr,usr usr2';
    strWhereClause := ' usr.USR_MANAGER_KEY = usr2.USR_KEY and '
    ||' extn.usr_key= usr.usr_key and '
    || whereclause;
    IF strsortcolumn_in IS NULL THEN
    strOrderByClause := 'extn.UDF_EXTN_EXTENDED';
    ELSE
    strOrderByClause := strsortcolumn_in;
    END IF;
    IF strsortorder_in = 'DESC' THEN
    intSortDirection_in := 0;
    ELSE
    intSortDirection_in := 1;
    END IF;
    XL_SPG_GetPagingSql(strColumnList,
    strFromClause,
    strWhereClause,
    strOrderByClause,
    intSortDirection_in,
    intStartRow_in,
    intPageSize_in,
    select_stmt);
    OPEN csrresultset_inout FOR select_stmt;
    END IF;
    END IF;
    -- Exception Handling
    EXCEPTION
    WHEN Str_row THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Start Row/Page Size cannot be NULL OR less than or equal to zero ');
    WHEN Do_cnt THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Do Count must be 0, 1 or 2. ');
    WHEN no_logged_in_user THEN
    RAISE_APPLICATION_ERROR(sqlcode,
    'Logged-in User Key cannot be NULL OR less than or equal to zero ');
    END;
    END XL_SP_CONTRACTOREXTENSION;

  • Needs Help in Backorder Report!

    Good day to everyone.
    I would like to ask for help in checking the Backorder Report below. The user requirement is to include the plant field in the Report. Though I already included the plant field, the program encounters ABAP runtime upon execution. Please help me correct the errors that is being encountered.
    Thank you very much.
    Raffee
    REPORT zsdr_out_of_stock  LINE-SIZE  380
              LINE-COUNT 65 NO STANDARD PAGE HEADING.
    TABLES:  mara,
             zcust,
             vbrk,
             vbak,
             vbap.
    Start of Internal tables for Out of Stock
    DATA: BEGIN OF it_total_out_stock1 OCCURS 0,
            fkdat  LIKE vbrk-fkdat,         "Billing Date
            bukrs  LIKE vbrk-bukrs,         "Company
            knumv  LIKE vbrk-knumv,         "No of the document condition
            vbeln  LIKE vbrp-vbeln,         "Billing Doc
            posnr  LIKE vbrp-posnr,         "Item
            aubel  LIKE vbrp-aubel,         "Sales Order
            aupos  LIKE vbrp-aupos,         "Sales Item
            matnr  LIKE vbrp-matnr,         "Material No.
            fkimg  TYPE p DECIMALS 2,       "Billed Quantity
            auart  LIKE vbak-auart,
            kunnr  LIKE vbak-kunnr,
            vkbur  LIKE vbak-vkbur,           "Sales office
            vkorg  LIKE vbak-vkorg,           "Sales organization
            vkgrp  LIKE vbak-vkgrp,           "Sales group
            zcusno LIKE zcust-zcusno,
            zregion LIKE zcust-zregion,
          END OF it_total_out_stock1.
    DATA: BEGIN OF it_total_out_stock2 OCCURS 0,
            vbeln   LIKE vbak-vbeln,
            auart   LIKE vbak-auart,
            kunnr   LIKE vbak-kunnr,
            vkbur   LIKE vbak-vkbur,           "Sales office
            vkorg   LIKE vbak-vkorg,           "Sales organization
            vkgrp   LIKE vbak-vkgrp,           "Sales group
            zcusno  LIKE zcust-zcusno,
            zregion LIKE zcust-zregion,
          END OF it_total_out_stock2.
    DATA: BEGIN OF it_vbap OCCURS 0,
              vbeln  LIKE vbap-vbeln,
              posnr  LIKE vbap-posnr,
              werks  LIKE vbap-werks,
              matnr  LIKE vbap-matnr,
              netwr  LIKE vbap-netwr,
              kwmeng LIKE vbap-kwmeng,
              bukrs_vf LIKE vbak-bukrs_vf,
              knumv  LIKE vbak-knumv,
              kunnr  LIKE vbak-kunnr,
              vkbur   LIKE vbak-vkbur,           "Sales office
              vkorg   LIKE vbak-vkorg,           "Sales organization
              vkgrp   LIKE vbak-vkgrp,           "Sales group
          END OF it_vbap.
    DATA: BEGIN OF it_vbap_stock OCCURS 0,
              vbeln  LIKE vbap-vbeln,
              posnr  LIKE vbap-posnr,
              werks  LIKE vbap-werks,
              matnr  LIKE vbap-matnr,
              netwr  LIKE vbap-netwr,
              kwmeng TYPE p DECIMALS 2,
              bukrs_vf LIKE vbak-bukrs_vf,
              knumv   LIKE vbak-knumv,
              kunnr   LIKE vbak-kunnr,
              vkbur   LIKE vbak-vkbur,           "Sales office
              vkorg   LIKE vbak-vkorg,           "Sales organization
              vkgrp   LIKE vbak-vkgrp,           "Sales group
          END OF it_vbap_stock.
    DATA: BEGIN OF it_out_stock OCCURS 0,
              vbeln LIKE vbap-vbeln,
              posnr LIKE vbap-posnr,
              werks LIKE vbap-werks,
              matnr LIKE vbap-matnr,
              netwr LIKE vbap-netwr,
              knumv LIKE vbak-knumv,
              bukrs_vf LIKE vbak-bukrs_vf,
              kunnr   LIKE vbak-kunnr,
              vkbur   LIKE vbak-vkbur,           "Sales office
              vkorg   LIKE vbak-vkorg,           "Sales organization
              vkgrp   LIKE vbak-vkgrp,           "Sales group
              fkimg   TYPE p DECIMALS 2,         "Billed Quantity
              kwmeng LIKE vbap-kwmeng,
              counter TYPE i,
          END OF it_out_stock.
    DATA: BEGIN OF it_mara_totals_stock OCCURS 0,
            matnr LIKE mara-matnr,
            matkl LIKE mara-matkl,
            spart LIKE mara-spart,
          END OF it_mara_totals_stock.
    DATA: BEGIN OF it_tspat_totals_stock OCCURS 0,
            spart LIKE tspat-spart,
            vtext LIKE tspat-vtext,
          END OF it_tspat_totals_stock.
    DATA: BEGIN OF it_t023t_totals_stock OCCURS 0,
            matkl  LIKE t023t-matkl,
            wgbez  LIKE t023t-wgbez,
          END OF it_t023t_totals_stock.
    DATA: BEGIN OF it_konv_totals_stock OCCURS 0,
            knumv LIKE konv-knumv,
            kposn LIKE konv-kposn,
            kschl LIKE konv-kschl,
            kawrt LIKE konv-kawrt,
            kwert LIKE konv-kwert,
            kbetr LIKE konv-kbetr,
          END OF it_konv_totals_stock.
    DATA: BEGIN OF it_total_stock_final OCCURS 0,
            cnt1   TYPE i,
            cnt2   TYPE i,                  "DPM Category
            werks  LIKE vbap-werks,         "Plant
            spart  LIKE mara-spart,         "Division Description
            matkl  LIKE mara-matkl,         "Material Type
            vbeln  LIKE vbrk-vbeln,         "Billing Doc
            aubel  LIKE vbrp-aubel,         "Sales document
            aupos  LIKE vbrp-aupos,         "Sales document item
            vkbur  LIKE vbak-vkbur,         "Sales office
            vkorg  LIKE vbak-vkorg,         "Sales organization
            vkgrp  LIKE vbak-vkgrp,         "Sales group
            kunnr  LIKE vbak-kunnr,         "Customer
            matnr  LIKE vbrp-matnr,         "Material
            vtext  LIKE tspat-vtext,        "Material Group Desc
            kbetr1 LIKE konv-kbetr,
            kbetr2 LIKE konv-kbetr,
            kawrt  LIKE konv-kawrt,         "Condition Rate
            kwert1 LIKE konv-kwert,         "Volume Discount
            kwert2 LIKE konv-kwert,         "Promo Discount
            fkimg  TYPE p DECIMALS 2,       "Billed Quantity
            kwmeng LIKE vbap-kwmeng,
            counter TYPE i,
         END OF it_total_stock_final.
    Start of Internal tables for Held
    DATA: BEGIN OF it_total_held1 OCCURS 0,
            erdat     LIKE vbak-erdat,
            bukrs_vf  LIKE vbak-bukrs_vf,
            knumv     LIKE vbak-knumv,
            kunnr     LIKE vbak-kunnr,
            werks     LIKE vbap-werks,           "Plant
            vkbur     LIKE vbak-vkbur,           "Sales office
            vkorg     LIKE vbak-vkorg,           "Sales organization
            vkgrp     LIKE vbak-vkgrp,           "Sales group
            vbeln     LIKE vbap-vbeln,
            posnr     LIKE vbap-posnr,
            matnr     LIKE vbap-matnr,
            kwmeng    LIKE vbap-kwmeng,         "Order Quantity
            cmgst     LIKE vbuk-cmgst,
          END OF it_total_held1.
    DATA: BEGIN OF it_total_held2 OCCURS 0,
            zcusno    LIKE zcust-zcusno,
            zregion   LIKE zcust-zregion,
          END OF it_total_held2.
    DATA: BEGIN OF it_mara_totals_held OCCURS 0,
            matnr LIKE mara-matnr,
            matkl LIKE mara-matkl,
            spart LIKE mara-spart,
          END OF it_mara_totals_held.
    DATA: BEGIN OF it_tspat_totals_held OCCURS 0,
            spart LIKE tspat-spart,
            vtext LIKE tspat-vtext,
          END OF it_tspat_totals_held.
    DATA: BEGIN OF it_t023t_totals_held OCCURS 0,
            matkl  LIKE t023t-matkl,
            wgbez  LIKE t023t-wgbez,
          END OF it_t023t_totals_held.
    DATA: BEGIN OF it_konv_totals_held OCCURS 0,
            knumv LIKE konv-knumv,
            kposn LIKE konv-kposn,
            kschl LIKE konv-kschl,
            kawrt LIKE konv-kawrt,
            kwert LIKE konv-kwert,
          END OF it_konv_totals_held.
    DATA: BEGIN OF it_total_held_final OCCURS 0,
            cnt1   TYPE i,
            cnt2   TYPE i,                  "DPM Category
            werks  LIKE vbap-werks,         "Plant
            spart  LIKE mara-spart,         "Division Description
            matkl  LIKE mara-matkl,         "Material Type
            vbeln  LIKE vbrk-vbeln,         "Billing Doc
            aubel  LIKE vbrp-aubel,         "Sales document
            aupos  LIKE vbrp-aupos,         "Sales document item
            erdat  LIKE vbak-erdat,
            vkbur  LIKE vbak-vkbur,         "Sales office
            vkorg  LIKE vbak-vkorg,         "Sales organization
            vkgrp  LIKE vbak-vkgrp,         "Sales group
            kunnr  LIKE vbak-kunnr,         "Customer
            matnr  LIKE vbrp-matnr,         "Material
            vtext  LIKE tspat-vtext,        "Material Group Desc
            kwmeng LIKE vbap-kwmeng,        "Order Quantity
            kawrt  LIKE konv-kawrt,         "Condition Rate
            kwert1 LIKE konv-kwert,         "Volume Discount
            kwert2 LIKE konv-kwert,         "Promo Discount
         END OF it_total_held_final.
    End of Internal tables for Held
    DATA: l_quantity LIKE vbap-kwmeng.
    DATA: g_div(20),      "Division
          g_mat(20),      "Material Group
          g_maktx(40),
          g_name1(40),
          v_net_value TYPE p DECIMALS 2.
            CONSTANTS DECLARATION
    Constants are named data objects that you create statically using
    a declarative statement. They allow you to store data under a
    particular name within the memory area of a program.
    The value of a constant cannot be changed during the execution of
    the program.
    CONSTANTS: header01(10)    TYPE c VALUE 'Invoice #',
               header02(06)    TYPE c VALUE 'Item',
               header03(10)    TYPE c VALUE 'Sales Doc.',
               header04(03)    TYPE c VALUE 'Div',
               header05(20)    TYPE c VALUE 'Division Desc',
               header06(10)    TYPE c VALUE 'Customer #',
               header07(35)    TYPE c VALUE 'Customer Name',
               header08(18)    TYPE c VALUE 'Material No.',
               header09(40)    TYPE c VALUE 'Material Text',
               header10(09)    TYPE c VALUE 'MType',
               header11(20)    TYPE c VALUE 'Material Grp Desc',
               header12(20)    TYPE c VALUE 'Condition Rate',
               header13(20)    TYPE c VALUE 'Vol Discount',
               header14(20)    TYPE c VALUE 'Promo Discount',
               header15(12)    TYPE c VALUE 'Date Created',
               header16(12)    TYPE c VALUE 'Invoice Date',
               header17(20)    TYPE c VALUE 'Net Value',
               header18(12)    TYPE c VALUE 'Sales office',
               header19(10)    TYPE c VALUE 'Sales Org',
               header20(10)    TYPE c VALUE 'Sales Grp',
               header21(20)    TYPE c VALUE 'Quantity',
               header22(04)    TYPE c VALUE 'Plnt'.
    End of Internal tables for Out of Stock
    Start of selection screen criteria
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_zreg  FOR zcust-zregion,               "Region
                    s_matkl FOR mara-matkl,                  "Material Group
                    s_spart FOR mara-spart,                  "Division
                    s_vkorg FOR vbak-vkorg,                  "Sales Org
                    s_vkbur FOR vbak-vkbur,                  "Sales Office
                    s_class FOR zcust-zaclass.               "Account Class
    SELECT-OPTIONS: s_curr  FOR vbrk-fkdat OBLIGATORY.       "Date
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS p0 RADIOBUTTON GROUP radi.
    PARAMETERS p1 RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    Start of Selection
    START-OF-SELECTION.
      IF p0 = 'X'.
    ****Get the Out of Stock
        PERFORM out_stock.
        PERFORM write_report.
      ELSEIF p1 = 'X'.
        PERFORM held_order.
        PERFORM write_report1.
      ENDIF.
    *&      Form  out_stock
          text
    -->  p1        text
    <--  p2        text
    FORM out_stock.
      DATA: l_cnt1 TYPE i,
            l_cnt2 TYPE i,
            l_spart LIKE mara-spart,
            l_matkl LIKE mara-matkl,
            l_text  LIKE tspat-vtext,
            l_amount TYPE p DECIMALS 2,
            l_aupos LIKE vbrp-aupos,
            l_aubel LIKE vbrp-aubel.
      SELECT vbrk~fkdat
             vbrk~bukrs
             vbrk~knumv
             vbrp~vbeln
             vbrp~posnr
             vbrp~aubel
             vbrp~aupos
             vbrp~matnr
             vbrp~fkimg
           vbap~werks
             vbak~auart
             vbak~kunnr
             vbak~vkbur           "Sales office
             vbak~vkorg           "Sales organization
             vbak~vkgrp           "Sales group
             zcust~zcusno
             zcust~zregion
             INTO TABLE it_total_out_stock1
             FROM vbrk
             INNER JOIN vbrp
             ON vbrkvbeln = vbrpvbeln
             INNER JOIN vbak
             ON vbrpaubel = vbakvbeln
             INNER JOIN zcust
             ON vbakkunnr = zcustzcusno
             WHERE vbrk~fkdat IN s_curr
               AND vbrp~matkl IN s_matkl
               AND vbrp~spart IN s_spart
               AND vbak~auart IN ('ZDOA', 'ZDTO', 'ZQOA', 'ZDTA', 'ZQTO')
               AND zcust~zregion IN s_zreg
               AND zcust~zaclass IN s_class
               AND vbak~vkorg IN s_vkorg
               AND vbak~vkbur IN s_vkbur
               AND vbak~bukrs_vf IN ('5116', '5106')
               AND vbak~vkbur <> '5100'.
      IF sy-subrc = 0.
        IF NOT it_total_out_stock1[] IS INITIAL.
    ***Check if the Order is Out of Stock compare to billing invoice
          SELECT vbap~vbeln
                 vbap~posnr
                 vbap~matnr
                 vbap~netwr
                 vbap~kwmeng
                 vbak~bukrs_vf
                 vbak~knumv
                 vbak~kunnr
                 vbap~werks
                 vbak~vkbur           "Sales office
                 vbak~vkorg           "Sales organization
                 vbak~vkgrp           "Sales group
                 INTO TABLE it_vbap
                 FROM vbap
                 INNER JOIN vbak
                 ON vbapvbeln = vbakvbeln
                 FOR ALL entries IN it_total_out_stock1
                 WHERE vbap~vbeln = it_total_out_stock1-aubel
                   AND vbap~posnr <> it_total_out_stock1-aupos
                   AND vbak~auart IN ('ZDOA', 'ZDTO', 'ZQOA',
                                  'ZDTA', 'ZQTO')
                   AND vbak~vkorg IN s_vkorg
                   AND vbak~vkbur IN s_vkbur
                   AND vbap~matkl IN s_matkl
                   AND vbap~spart IN s_spart.
    ***Check if the Order is Out of Stock by Quantity
          SELECT vbap~vbeln
                 vbap~posnr
                 vbap~matnr
                 vbap~netwr
                 vbap~kwmeng
                 vbak~bukrs_vf
                 vbak~knumv
                 vbak~kunnr
                 vbap~werks
                 vbak~vkbur           "Sales office
                 vbak~vkorg           "Sales organization
                 vbak~vkgrp           "Sales group
                 INTO TABLE it_vbap_stock
                 FROM vbap
                 INNER JOIN vbak
                 ON vbapvbeln = vbakvbeln
                  FOR ALL entries IN it_total_out_stock1
                   WHERE vbap~posnr = it_total_out_stock1-aupos
                     AND vbap~vbeln = it_total_out_stock1-aubel
                     AND vbap~kwmeng NE it_total_out_stock1-fkimg
                     AND vbak~auart IN ('ZDOA', 'ZDTO', 'ZQOA',
                                        'ZDTA', 'ZQTO')
                     AND vbak~vkorg IN s_vkorg
                     AND vbak~vkbur IN s_vkbur
                     AND vbap~matkl IN s_matkl
                     AND vbap~spart IN s_spart.
        ENDIF.
        IF NOT it_vbap[] IS INITIAL.
          SORT it_vbap BY vbeln posnr.
          SORT it_total_out_stock1 BY aubel aupos.
          LOOP AT it_vbap.
            READ TABLE it_total_out_stock1
              WITH KEY aubel = it_vbap-vbeln
                       aupos = it_vbap-posnr.
            IF sy-subrc NE 0.
              it_out_stock-vbeln    = it_vbap-vbeln.
              it_out_stock-posnr    = it_vbap-posnr.
              it_out_stock-matnr    = it_vbap-matnr.
              it_out_stock-netwr    = it_vbap-netwr.
              it_out_stock-knumv    = it_vbap-knumv.
              it_out_stock-bukrs_vf = it_vbap-bukrs_vf.
              it_out_stock-kunnr    = it_vbap-kunnr.
              it_out_stock-werks    = it_vbap-werks.
              it_out_stock-vkbur    = it_vbap-vkbur.  "Sales office
              it_out_stock-vkorg    = it_vbap-vkorg.  "Sales organization
              it_out_stock-vkgrp    = it_vbap-vkgrp.  "Sales group
              it_out_stock-kwmeng   = it_vbap-kwmeng.
              APPEND it_out_stock.
            ENDIF.
          ENDLOOP.
        ENDIF.
        IF NOT it_vbap_stock[] IS INITIAL.
          SORT it_vbap_stock BY vbeln posnr.
          SORT it_total_out_stock1 BY aubel aupos.
          LOOP AT it_vbap_stock.
            LOOP AT it_total_out_stock1 WHERE aubel = it_vbap_stock-vbeln
                                         AND  aupos = it_vbap_stock-posnr
                                         AND  fkimg NE it_vbap_stock-kwmeng.
              it_out_stock-vbeln    = it_vbap_stock-vbeln.
              it_out_stock-posnr    = it_vbap_stock-posnr.
              it_out_stock-matnr    = it_vbap_stock-matnr.
              it_out_stock-netwr    = it_vbap_stock-netwr.
              it_out_stock-knumv    = it_vbap_stock-knumv.
              it_out_stock-bukrs_vf = it_vbap_stock-bukrs_vf.
              it_out_stock-kunnr    = it_vbap_stock-kunnr.
              it_out_stock-werks    = it_vbap_stock-werks.
              it_out_stock-vkbur    = it_vbap_stock-vkbur.  "Sales office
              it_out_stock-vkorg    = it_vbap_stock-vkorg.  "Sales org
              it_out_stock-vkgrp    = it_vbap_stock-vkgrp.  "Sales group
    ****Begin Insert by Ron
              it_out_stock-kwmeng   = it_vbap_stock-kwmeng.
              it_out_stock-fkimg    = it_total_out_stock1-fkimg.
              it_out_stock-counter  = 1.
    ****End Insert
              APPEND it_out_stock.
            ENDLOOP.
          ENDLOOP.
        ENDIF.
      ENDIF.      "it_total_out_stock1
      IF NOT it_out_stock[] IS INITIAL.
    ***get the value of material and material group
        SELECT matnr
               matkl
               spart
               INTO TABLE it_mara_totals_stock
               FROM mara
               FOR ALL ENTRIES IN it_out_stock
               WHERE matnr = it_out_stock-matnr.
      ENDIF.
    ***Get the Value of Division Description
      IF NOT it_mara_totals_stock[] IS INITIAL.
        SELECT spart
               vtext
               INTO TABLE it_tspat_totals_stock
               FROM tspat
               FOR ALL ENTRIES IN it_mara_totals_stock
               WHERE spart = it_mara_totals_stock-spart AND
                     spras = sy-langu.
      ENDIF.
    ***Get the Material Group Description
      IF NOT it_mara_totals_stock[] IS INITIAL.
        SELECT matkl
               wgbez
               INTO TABLE it_t023t_totals_stock
               FROM t023t
               FOR ALL ENTRIES IN it_mara_totals_stock
                WHERE matkl = it_mara_totals_stock-matkl AND
                      spras = sy-langu.
      ENDIF.
    ***Get the Value of Condition Type
      IF NOT it_out_stock[] IS INITIAL.
        SELECT knumv
               kposn
               kschl
               kawrt
               kwert
               kbetr
               INTO TABLE it_konv_totals_stock
               FROM konv
               FOR ALL ENTRIES IN it_out_stock
                WHERE knumv = it_out_stock-knumv
                  AND kposn = it_out_stock-posnr
                  AND kschl IN ('ZQPR', 'ZQD3', 'ZQP3',
                                'ZDPR', 'ZDD3', 'ZDP3').
      ENDIF.
      SORT it_out_stock          BY vbeln posnr.
      SORT it_mara_totals_stock  BY matnr.
      SORT it_tspat_totals_stock BY spart.
      SORT it_t023t_totals_stock BY matkl.
      SORT it_konv_totals_stock  BY knumv kposn.
      LOOP AT it_out_stock.
        CLEAR: it_total_stock_final-kawrt,  it_total_stock_final-kwert1,
               it_total_stock_final-kwert2, it_total_stock_final-vtext,
               it_total_stock_final-matkl,  it_total_stock_final-spart,
               it_total_stock_final-aubel,  it_total_stock_final-aupos,
               it_total_stock_final-cnt1,   it_total_stock_final-cnt2.
    ***Begin Insert by RONCR
        CLEAR: it_total_stock_final-kwmeng, it_total_stock_final-fkimg,
               it_total_stock_final-counter.
    ***End Insert by RONCR
        CLEAR: it_mara_totals_stock, it_tspat_totals_stock,
               it_t023t_totals_stock, it_konv_totals_stock,
               l_cnt1, l_cnt2.
    **Counter for Total Orders Column
        l_cnt1 = 4.
        READ TABLE it_mara_totals_stock
            WITH KEY matnr = it_out_stock-matnr.
        IF sy-subrc EQ 0.
          it_total_stock_final-matnr = it_mara_totals_stock-matnr.
          it_total_stock_final-matkl = it_mara_totals_stock-matkl.
          it_total_stock_final-spart = it_mara_totals_stock-spart.
    ***DPM
          IF it_total_stock_final-matkl EQ 'DPM' OR
             it_total_stock_final-matkl EQ 'SSN'.
            READ TABLE it_tspat_totals_stock
             WITH KEY spart = it_mara_totals_stock-spart.
            IF sy-subrc EQ 0.
              it_total_stock_final-vtext  = it_tspat_totals_stock-vtext.
            ENDIF.
    ***Non Dole
          ELSE.
            READ TABLE it_t023t_totals_stock
             WITH KEY matkl = it_mara_totals_stock-matkl.
            IF sy-subrc EQ 0.
              it_total_stock_final-vtext  = it_t023t_totals_stock-wgbez.
            ENDIF.
          ENDIF.
        ENDIF.
        IF it_total_stock_final-matkl = 'DPM' OR
           it_total_stock_final-matkl = 'SSN'.
          l_cnt2 = 1.
        ELSE.
          l_cnt2 = 2.
        ENDIF.
    ***Condition Value for Comapny Code 5116
        IF it_out_stock-bukrs_vf EQ '5116'.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZQPR'.
          IF sy-subrc EQ 0.
            it_total_stock_final-kawrt = it_konv_totals_stock-kawrt.
          ENDIF.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZQD3'.
          IF sy-subrc EQ 0.
            it_konv_totals_stock-kwert = it_konv_totals_stock-kwert * -1.
            it_total_stock_final-kwert1 = it_konv_totals_stock-kwert.
            it_total_stock_final-kbetr1 = it_konv_totals_stock-kbetr.
            it_total_stock_final-kbetr1 = it_total_stock_final-kbetr1 * -1.
          ENDIF.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZQP3'.
          IF sy-subrc EQ 0.
            it_konv_totals_stock-kwert = it_konv_totals_stock-kwert * -1.
            it_total_stock_final-kwert2 = it_konv_totals_stock-kwert.
            it_total_stock_final-kbetr2 = it_konv_totals_stock-kbetr.
            it_total_stock_final-kbetr2 = it_total_stock_final-kbetr2 * -1.
          ENDIF.
        ENDIF.
    ***Condition Value for Company Code 5106
        IF it_out_stock-bukrs_vf EQ '5106'.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZDPR'.      "Base price
          IF sy-subrc EQ 0.
            it_total_stock_final-kawrt = it_konv_totals_stock-kawrt.
          ENDIF.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZDD3'.      "Volume Discount
          IF sy-subrc EQ 0.
            it_konv_totals_stock-kwert = it_konv_totals_stock-kwert * -1.
            it_total_stock_final-kwert1 = it_konv_totals_stock-kwert.
            it_total_stock_final-kbetr1 = it_konv_totals_stock-kbetr.
            it_total_stock_final-kbetr2 = it_total_stock_final-kbetr2 * -1.
          ENDIF.
          READ TABLE it_konv_totals_stock
            WITH KEY knumv = it_out_stock-knumv
                     kposn = it_out_stock-posnr
                     kschl = 'ZDP3'.      "Promo Discount
          IF sy-subrc EQ 0.
            it_konv_totals_stock-kwert = it_konv_totals_stock-kwert * -1.
            it_total_stock_final-kwert2 = it_konv_totals_stock-kwert.
            it_total_stock_final-kbetr2 = it_konv_totals_stock-kbetr.
            it_total_stock_final-kbetr2 = it_total_stock_final-kbetr2 * -1.
          ENDIF.
        ENDIF.
        it_total_stock_final-cnt1  = l_cnt1.
        it_total_stock_final-cnt2  = l_cnt2.
        it_total_stock_final-aubel = it_out_stock-vbeln.
        it_total_stock_final-aupos = it_out_stock-posnr.
        it_total_stock_final-kunnr = it_out_stock-kunnr.
        it_total_stock_final-werks = it_out_stock-werks.
        it_total_stock_final-vkbur = it_out_stock-vkbur.  "Sales office
        it_total_stock_final-vkorg = it_out_stock-vkorg.  "Sales org
        it_total_stock_final-vkgrp = it_out_stock-vkgrp.  "Sales group
    ***Begin Insert by RONCR
        it_total_stock_final-kwmeng = it_out_stock-kwmeng.
        it_total_stock_final-fkimg = it_out_stock-fkimg.
        it_total_stock_final-counter = it_out_stock-counter.
    **End of Insert by RONCR
        APPEND it_total_stock_final.
      ENDLOOP.
    ENDFORM.                    " out_stock
    *&      Form  write_report
          text
    -->  p1        text
    <--  p2        text
    FORM write_report.
      ULINE (360).
      FORMAT COLOR 1.
      WRITE: / sy-vline, header01,
            12 sy-vline, header02,
            19 sy-vline, header03,
            30 sy-vline, header04,
            35 sy-vline, header05,
            55 sy-vline, header18,
            75 sy-vline, header19,
            87 sy-vline, header20,
           100 sy-vline, header06,
           112 sy-vline, header07,
           150 sy-vline, header08,
           170 sy-vline, header09,
           215 sy-vline, header10,
           225 sy-vline, header11,
           247 sy-vline, header21,
           271 sy-vline, header12,
           293 sy-vline, header13,
           315 sy-vline, header14,
           337 sy-vline, header17,
           360 sy-vline, header22,
           363 sy-vline.
      ULINE (360).
      FORMAT COLOR 2.
      SORT it_total_stock_final BY cnt2 cnt1 spart aubel aupos.
      LOOP AT  it_total_stock_final.
        CLEAR: g_div, g_mat, g_maktx, g_name1, v_net_value.
        SELECT SINGLE vtext INTO g_div
           FROM tspat
           WHERE spart = it_total_stock_final-spart
             AND spras = sy-langu.
        SELECT SINGLE wgbez INTO g_mat
           FROM t023t
           WHERE matkl = it_total_stock_final-matkl
             AND spras = sy-langu.
        SELECT SINGLE maktx INTO g_maktx
           FROM makt
             WHERE matnr = it_total_stock_final-matnr
               AND spras = sy-langu.
        SELECT SINGLE name1  INTO g_name1
           FROM kna1
              WHERE kunnr = it_total_stock_final-kunnr.
        IF it_total_stock_final-counter = 1.
          CLEAR: l_quantity.
          l_quantity = it_total_stock_final-kwmeng -
                       it_total_stock_final-fkimg.
          it_total_stock_final-kawrt = it_total_stock_final-kawrt /
                      it_total_stock_final-kwmeng.
          it_total_stock_final-kawrt = it_total_stock_final-kawrt *
                       l_quantity.
          it_total_stock_final-kbetr1 = it_total_stock_final-kbetr1 /
                                         1000.
          it_total_stock_final-kbetr2 = it_total_stock_final-kbetr2 /
                                         1000.
          it_total_stock_final-kwert1 = it_total_stock_final-kawrt *
                                        it_total_stock_final-kbetr1.
          it_total_stock_final-kwert2 = it_total_stock_final-kawrt *
                                        it_total_stock_final-kbetr2.
              clear:  it_total_stock_final-kawrt,
                      it_total_stock_final-kbetr1,
                      it_total_stock_final-kbetr2,
                      it_total_stock_final-kwert1,
                      it_total_stock_final-kwert2.
        ENDIF.
        v_net_value = it_total_stock_final-kawrt -
                      it_total_stock_final-kwert1 -
                      it_total_stock_final-kwert2.
        WRITE: / sy-vline, it_total_stock_final-vbeln,
              12 sy-vline, it_total_stock_final-aupos,
              19 sy-vline, it_total_stock_final-aubel,
              30 sy-vline, it_total_stock_final-spart,
              35 sy-vline, g_div,
              55 sy-vline, it_total_stock_final-vkbur,
              75 sy-vline, it_total_stock_final-vkorg,
              87 sy-vline, it_total_stock_final-vkgrp,
             100 sy-vline, it_total_stock_final-kunnr,
             112 sy-vline, g_name1,
             150 sy-vline, it_total_stock_final-matnr,
             170 sy-vline, g_maktx,
             215 sy-vline, it_total_stock_final-matkl,
             225 sy-vline, it_total_stock_final-vtext.
        IF it_total_stock_final-counter = 1.
          WRITE:  247 sy-vline, l_quantity,
                  271 sy-vline, it_total_stock_final-kawrt,
                  293 sy-vline, it_total_stock_final-kwert1,
                  315 sy-vline, it_total_stock_final-kwert2,
                  337 sy-vline, v_net_value,
                  360 sy-vline, it_total_stock_final-werks,
                  363 sy-vline.
        ELSE.
          WRITE:  247 sy-vline, it_total_stock_final-kwmeng,
                  271 sy-vline, it_total_stock_final-kawrt,
                  293 sy-vline, it_total_stock_final-kwert1,
                  315 sy-vline, it_total_stock_final-kwert2,
                  337 sy-vline, v_net_value,
                  360 sy-vline, it_total_stock_final-werks,
                  363 sy-vline.
        ENDIF.
      ENDLOOP.
      ULINE (360).
    ENDFORM.                    " write_report
    *&      Form  held_order
          text
    -->  p1        text
    <--  p2        text
    FORM held_order.
      DATA: l_cnt1 TYPE i,
            l_cnt2 TYPE i,
            l_spart LIKE mara-spart,
            l_matkl LIKE mara-matkl,
            l_text  LIKE tspat-vtext,
            l_amount TYPE p DECIMALS 2,
            l_aupos LIKE vbrp-aupos,
            l_aubel LIKE vbrp-aubel.
      SELECT vbak~erdat
             vbak~bukrs_vf
             vbak~knumv
             vbak~kunnr
             vbap~werks
             vbak~vkbur                          "Sales office
             vbak~vkorg                          "Sales organization
             vbak~vkgrp                          "Sales group
             vbap~vbeln
             vbap~posnr
             vbap~matnr
             vbap~kwmeng                         "Order Quantity
             vbuk~cmgst
             INTO TABLE it_total_held1
             FROM vbak
             INNER JOIN vbap
             ON vbakvbeln = vbapvbeln
             INNER JOIN vbuk
             ON vbapvbeln = vbukvbeln
             WHERE vbak~erdat IN s_curr
               AND vbak~vkorg IN s_vkorg
               AND vbak~vkbur IN s_vkbur
               AND vbap~matkl IN s_matkl
               AND vbak~bukrs_vf IN ('5116', '5106')
               AND vbak~vkbur NE '5100'
               AND vbak~auart IN ('ZDOA', 'ZDTO', 'ZQOA', 'ZDTA', 'ZQTO')
               AND vbak~kkber = '5116'
               AND vbuk~cmgst = 'B'
               AND vbap~spart IN s_spart.
      IF sy-subrc = 0.
        SELECT zcusno
               zregion
               INTO TABLE it_total_held2
               FROM zcust
               FOR ALL ENTRIES IN it_total_held1
                WHERE zcusno = it_total_held1-kunnr
                  AND zcust~zregion IN s_zreg
                  AND zcust~zaclass IN s_class.
        IF sy-subrc EQ 0.
    ***get the value of material and material group
          SELECT matnr
                 matkl
                 spart
                 INTO TABLE it_mara_totals_held
                 FROM mara
                 FOR ALL ENTRIES IN it_total_held1
                 WHERE matnr = it_total_held1-matnr.
    ***Get the Value of Division Description
          IF NOT it_mara_totals_held[] IS INITIAL.
            SELECT spart
                   vtext
                   INTO TABLE it_tspat_totals_held
                   FROM tspat
                   FOR ALL ENTRIES IN it_mara_totals_held
                   WHERE spart = it_mara_totals_held-spart AND
                         spras = sy-langu.
          ENDIF.
    ***Get the Material Group Description
          IF NOT it_mara_totals_held[] IS INITIAL.
            SELECT matkl
                   wgbez
                   INTO TABLE it_t023t_totals_held
                   FROM t023t
                   FOR ALL ENTRIES IN it_mara_totals_held
                    WHERE matkl = it_mara_totals_held-matkl AND
                          spras = sy-langu.
          ENDIF.
    ***Get the Value of Condition Type
          IF NOT it_total_held1[] IS INITIAL.
            SELECT knumv
                   kposn
                   kschl
                   kawrt
                   kwert
                   INTO TABLE it_konv_totals_held
                   FROM konv
                   FOR ALL ENTRIES IN it_total_held1
                    WHERE knumv = it_total_held1-knumv
                      AND kposn = it_total_held1-posnr
                      AND kschl IN ('ZQPR', 'ZQD3', 'ZQP3',
                                    'ZDPR', 'ZDD3', 'ZDP3').
          ENDIF.
        ENDIF.
      ENDIF.
      SORT it_total_held1       BY vbeln posnr.
      SORT it_total_held2       BY zcusno zregion.
      SORT it_mara_totals_held  BY matnr.
      SORT it_tspat_totals_held BY spart.
      SORT it_t023t_totals_held BY matkl.
      SORT it_konv_totals_held  BY knumv kposn.
      LOOP AT it_total_held1.
        CLEAR: it_total_held_final-kawrt,  it_total_held_final-kwert1,
               it_total_held_final-kwert2, it_total_held_final-vtext,
               it_total_held_final-matkl,  it_total_held_final-spart,
               it_total_held_final-aubel,  it_total_held_final-aupos,
               it_total_held_final-cnt1,   it_total_held_final-cnt2.
        CLEAR: it_mara_totals_held, it_tspat_totals_held,
               it_t023t_totals_held, it_konv_totals_held,
               l_cnt1, l_cnt2.
        READ TABLE it_total_held2
            WITH KEY zcusno = it_total_held1-kunnr.
        IF sy-subrc = 0.
    **Counter for Total Orders Column
          l_cnt1 = 3.
          READ TABLE it_mara_totals_held
              WITH KEY matnr = it_total_held1-matnr.
          IF sy-subrc EQ 0.
            it_total_held_final-matnr = it_mara_totals_held-matnr.
            it_total_held_final-matkl = it_mara_totals_held-matkl.
            it_total_held_final-spart = it_mara_totals_held-spart.
    ***Dole
            IF it_total_held_final-matkl EQ 'DPM' OR
               it_total_held_final-matkl EQ 'SSN'.
              READ TABLE it_tspat_totals_held
               WITH KEY spart = it_mara_totals_held-spart.
              IF sy-subrc EQ 0.
                it_total_held_final-vtext  = it_tspat_totals_held-vtext.
              ENDIF.
    ***Non Dole
            ELSE.
              READ TABLE it_t023t_totals_held
               WITH KEY matkl = it_mara_totals_held-matkl.
              IF sy-subrc EQ 0.
                it_total_held_final-vtext  = it_t023t_totals_held-wgbez.
              ENDIF.
            ENDIF.
          ENDIF.
          IF it_total_held_final-matkl = 'DPM' OR
             it_total_held_final-matkl = 'SSN'.
            l_cnt2 = 1.
          ELSE.
            l_cnt2 = 2.
          ENDIF.
    ***Condition Value for Comapny Code 5116
          IF it_total_held1-bukrs_vf EQ '5116'.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZQPR'.
            IF sy-subrc EQ 0.
              it_total_held_final-kawrt = it_konv_totals_held-kawrt.
            ENDIF.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZQD3'.
            IF sy-subrc EQ 0.
              it_konv_totals_held-kwert = it_konv_totals_held-kwert * -1.
              it_total_held_final-kwert1 = it_konv_totals_held-kwert.
            ENDIF.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZQP3'.
            IF sy-subrc EQ 0.
              it_konv_totals_held-kwert = it_konv_totals_held-kwert * -1.
              it_total_held_final-kwert2 = it_konv_totals_held-kwert.
            ENDIF.
          ENDIF.
    ***Condition Value for Comapny Code 5106
          IF it_total_held1-bukrs_vf EQ '5106'.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZDPR'.      "Base price
            IF sy-subrc EQ 0.
              it_total_held_final-kawrt = it_konv_totals_held-kawrt.
            ENDIF.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZDD3'.      "Volume Discount
            IF sy-subrc EQ 0.
              it_konv_totals_held-kwert = it_konv_totals_held-kwert * -1.
              it_total_held_final-kwert1 = it_konv_totals_held-kwert.
            ENDIF.
            READ TABLE it_konv_totals_held
              WITH KEY knumv = it_total_held1-knumv
                       kposn = it_total_held1-posnr
                       kschl = 'ZDP3'.      "Promo Discount
            IF sy-subrc EQ 0.
              it_konv_totals_held-kwert = it_konv_totals_held-kwert * -1.
              it_total_held_final-kwert2 = it_konv_totals_held-kwert.
            ENDIF.
          ENDIF.
          it_total_held_final-cnt1   = l_cnt1.
          it_total_held_final-cnt2   = l_cnt2.
          it_total_held_final-aubel  = it_total_held1-vbeln.
          it_total_held_final-aupos  = it_total_held1-posnr.
          it_total_held_final-kunnr  = it_total_held1-kunnr.
          it_total_held_final-erdat  = it_total_held1-erdat.
          it_total_held_final-werks  = it_total_held1-werks.
          it_total_held_final-vkbur  = it_total_held1-vkbur.  "Sales office
          it_total_held_final-vkorg  = it_total_held1-vkorg.  "Sales Org
          it_total_held_final-vkgrp  = it_total_held1-vkgrp.  "Sales group
          it_total_held_final-kwmeng = it_total_held1-kwmeng. "Order qty
          APPEND it_total_held_final.
        ENDIF.     "it_total_held2
      ENDLOOP.
    ENDFORM.                    " held_order
    *&      Form  write_report1
          text
    -->  p1        text
    <--  p2        text
    FORM write_report1.
      ULINE (360).
      FORMAT COLOR 1.
      WRITE: / sy-vline, header01,
               12 sy-vline, header02,
               19 sy-vline, header03,
               30 sy-vline, header15,
               45 sy-vline, header04,
               50 sy-vline, header05,
               75 sy-vline, header18,
               90 sy-vline, header19,
              103 sy-vline, header20,
              115 sy-vline, header06,
              127 sy-vline, header07,
              167 sy-vline, header08,
              184 sy-vline, header09,
              227 sy-vline, header10,
              237 sy-vline, header11,
              260 sy-vline, header21,
              282 sy-vline, header12,
              306 sy-vline, header13,
              330 sy-vline, header14,
              354 sy-vline, header17,
              376 sy-vline, header22,
              380 sy-vline.
          ULINE (376).
          FORMAT COLOR 2.
          SORT it_total_held_final BY cnt2 cnt1 spart aubel aupos.
          LOOP AT  it_total_held_final.
            CLEAR: g_div, g_mat, g_maktx, g_name1, v_net_value.
            SELECT SINGLE vtext INTO g_div
               FROM tspat
               WHERE spart = it_total_held_final-spart
                 AND spras = s

    Hi,
    790072 wrote:
    Hi Gurus,
    Need your help in writing an sql to search records which has length of 4000 bytes from an varchar2(4000) column and inserting the same records to another table by truncating the record to 3500 bytes .Something like this:
    INSERT INTO new_table (txt_column)
    SELECT  SUBSTRB (txt_column, 1, 3500)
    FROM    old_table;SUBSTR returns a string with a specified number of characters , SUBSTR<b>B</b> has a specified number of bytes .

  • Need help to develop report with column chart

    Hi
    I am new to SAP BO world.Could  anyone please help me to design report with column chart.Please guide me how to develop report for the following requirement.I am not aware of variance columns and variance labels.Please provide some guidance or some tutorials(for column Chart) so that I can complete the task. Please reply me as soon as possible.Waiting for reply.Thanks in advance.
    Type: Column Chart
    u2022     Rows: Banking Asset Margin (%)
    u2022     Start / End Columns: PY YTD Act(Prior year year to date); CY YTD Act(Current year Year to date)
    u2022     Variance Columns: # Var (CY-PY Act) for GOLM; Volume; Rate; Non Banking NII; Banking Volatility in NII; Banking Volatility in OOI; Fees/One Offs/Other; Volatile Items; Sophie
    u2022     Sub-total columns: PY YTD Underlying; CY YTD Underlying.
    u2022     Variance Labels: % Var (CY-PY Act) for Total Income and Underlying Income
    u2022     Sub-Total Labels: # Var (CY-PY Act) for Net Insurance Income; Banking Volatility; Other Operating Income
    Additional information
    u2022     Variance columns (bar) colours: Red = Adverse to Prior Year; Green = Favourable to Prior Year
    u2022     Columns to show values. Adverse values to be shown in red text in brackets. Favourable results in black text.
    u2022     All values in Black, but adverse to be shown below the bar.

    Hi,
    This type of question is almost impossible to answer over a forum .
    You need to work with your business to understand what these requirements mean in terms of data modelling and relationships between object entities.
    - Some of these metrics should be delegated to source, and calculated in the update routines to your datatargets (aka Cubes/Tables)
    - Others could be resolved in the semantic layer (Universe)
    - Other will be calculated in the presentation layer as local formulae or variables.
    whilst BusinessObjects is a fairly intuitive tool, it may be unreasonble to expect a new learner to deliver an advanced report with conditional formatting.
    Regards,
    H

Maybe you are looking for

  • VT02n : User Exit (Urgent)

    Hi all, I have a requirement where in i need to incorporate some logic when the user presses the Exit and Cancel Button in VT02N based on the function code for eg. for Exit FC (MM_BEEN) and For Cancel (MM_ABBR).Can anyone tell me the user exit which

  • Itunes and Quicktime won't start, error

    my itunes/Quicktime suddenly failed to open. I get a message saying iTunes needs to close. This happened after it would not close by itself one time. I've tried to remove programs from my pc then readd them but the same error keeps happening. Can any

  • [nForce] New motherboard not POSTing/booting (MSI K7N2GM2-ILSR)

    You peeps seem like a knowledgeable lot so should be able to help with my problem. I've just got a new motherboard (MSI K7N2GM2-ILSR) to replace my old one (which was a bit iffy in the USB department). I assembled the new motherboard and all the orig

  • Conecting iPod to stereo

    Do I really have to use the dock or can I use the headphone jack as a line out and just put the stereo cable there? Thanks

  • Noise on K7N420.

    Has anyone experienced this? I am using analog stereo output of nForce on-board audio and I get a hissing sound on my Creative 2.1 analog speakers when I turn the volume all the way up. It's not there when I pull the speakers out from the jack so it'