Report for LiveCache size

Hi everybody,
is there a report that provides me with the LiveCache size?
Thank you in advance for your help.
Kind regards
Mitch

Hello Mitch
May be this thread will give some insight on Livecache Sizing and maintenance.
Reduce Livecache Database size
Also based on my old notes, following are key considerations while calculating Livecache Size. This has to be for every planning area which exist in your APO system
Number of Characteristic Combinations
Number of Keyfigures in Planning horizon
Number of Periods in planning horizon
Number of Keyfigures in Historical horizon
Number of Periods in Historical horizon
Total Number of Keyfigures in the entire horizon
Total Number of periods in the entire horizon
Number of planning versions in Infocube
Number of planning versions in livecache
Hope this will help.
Thank you
Satish Waghmare

Similar Messages

  • Report for download sizes?

    Hi,
    I realise  that when viewing each file in DW there is a download size/time info panel at the bottom of the page, but  I'm looking to generate a report of the download size for each page of my website so I can evaluate and compare at a glance. Is this possible ?
    Many thanks in advance

    I'm not aware of anything that would give you results for all your pages at once, but you could check each page here:
    http://analyze.websiteoptimization.com
    If you use Firefox and have the Web Development toolbar, it's part of the toolbar and very easy to look up each page as you go.
    http://chrispederick.com/work/web-developer/
    Nadia
    Adobe® Community Expert : Dreamweaver
    Unique CSS Templates |Tutorials |SEO Articles
    http://www.DreamweaverResources.com
    Book: Ultimate CSS Reference
    http://www.sitepoint.com/launch/005dfd4/3/133
    http://twitter.com/nadiap

  • Unable to generate report for size of KM folder

    hi all,
    i want to generate report for size of folder in KM.I am havingthe following roles content admin,content management,system admin,home, are these roles sufficent to generate report or any roles are needed?
    And other issue is after going into Content management role I am clicking reports workset but I am unable to see "Folder Size Calculation" option, any full access are needed to see it.
    I am following help.sap link plz don't send it ,give me any other Material.
    After starting the Km report  in Resource Statistics its showing size as zero.
    help me in sloving this issue.
    thanks in advance,
    Aravind

    You could find all KM reports to the given navigation
    try all these paths...I am unable to findout your issue definitely permission related
    System Administration -> System Configuration -> Knowledge Management -> Content Management -> Related Topics -> CM Repository Reports
    Content Administration -> KM Content -> Toolbox -> Reports
    Content Management -> Reports
    Regards
    Koti

  • Report page scaling/zoom for paper size and field width?

    Are there ways to design a report, or programmatically set a report to dynamically resize based on factors such as paper size (A4 vs. Letter vs. Legal), orientation (portrait vs. landscape), and field width (e.g fields grow and shrink based on data)?  We are looking at ways to dynamically choose paper size and scale.  This would be similar to how Excel files can adjust for printing depending on paper, and PDF files can zoom in/out for paper size.
    Thanks,
    Kyle

    We don't want to add fields dynamically at runtime.  Instead we want to automatically resize fields at runtime to properly fit data on the page.  Currently with our 400 reports, data fields have gotten longer over the years so important data is being truncated.  We'd like it if fields could properly grow/shrink/scale so that the data is always valid.  We'd like it if the user flips from portrait to landscape, the field widths automatically grow to use the entire page.  Or, if a user goes from Letter to A4, pagination still works properly and the fields get slightly wider to fit the A4 standard.
    What we don't want is to have a version of the report for portrait Letter, portrait A4, portrait Legal, landscape Letter, landscape A4, landscape Legal, etc.  It would be a support nightmare.
    I don't know if it is possible, but I'm hoping it is.  Thanks for the help.
    Kyle

  • Crystal Reports for Enterprise - SQL Command - Array Fetch Size

    We're attempting to migrate a report created in Crystal Reports 2013 Support Pack 3  Version 14.1.3.1257 to...
    Crystal Reports for Enterprise Version 14.1.3.1300 Build: 2013 Support Pack 3 Patch 1
    The originating report is successfully connecting and returning data from MySQL through the MySQL ODBC 3.51 Driver (3.51.30.00), using a SQL Command
    When opening up this report in CR for E and running the report against the same database and the same version of database driver, we get the following Crystal Reports error:
    Crystal Reports
    A problem was encountered
    The following error has occurred while trying to retrieve the data:
    Error on Fetch : Largevarchar and Largevarbinary data cannot retrieved as variable-length data if the array fetch size is not set to 1.
    Please check with your System Administrator that the data source is correctly configured.
    How would we check and where would we adjust the array fetch size within Crystal Report for Enterprise?
    Thank you

    Hi Vitaly,
    I had not yet tried creating a new report based on the query, within CR for E, but I did now upon your request\suggestion.  Yes, it fails as well with a brand new report..same new error as above: "Non Supported Datatype"
    I've pasted the SQL we are using below.  I just tried running this exact query natively through MyPHPAdmin, and also creating a brand new report with Crystal Reports 2013 against the same ODBC driver that I am trying to use within CR for E.  In both cases the query was accepted and ran successfully.
    Driver info:
    MySQL ODBC 3.51 Driver -  Version 3.51.30.00
    I have also tried 2 newer versions of the driver:
    MySQL ODBC 5.3 ANSI - Version 5.03.02.00
    MySQL ODBC 5.3 Unicode - Version 5.03.02.00
    ...where I also configure each within the Information Design Tool so that the "Array Fetch Size"=  1
    I receive the same "Non Supported Datatype" error for these drivers as well.  The MySQL server version is:  5.1.73-0ubuntu0.10.04.1-log
    Protocol Version: 10
    MySQL charset:  UTF-8
    Here is the query:
    SELECT ft.seq_id, ft.ticket_date, ft.posttotal,
    wl.name as current_approval_level,
    TIMESTAMPDIFF(DAY,ft.ticket_date,NOW()) AS Days_Since_TicketDate,
    TIMESTAMPDIFF(DAY,ft.date_created,NOW()) AS Days_Since_Created,
    TIMESTAMPDIFF(DAY,wph.workflow_date,NOW()) AS Days_Waiting_Your_Approval,
    ft.internal_comments
    FROM ticket AS ft
    LEFT JOIN unit AS unit ON (ft.unit_id = unit.id)
    LEFT JOIN unit_district AS udist ON (udist.unit_id = unit.id AND (udist.effective_date IS NULL OR udist.effective_date = 0 OR udist.effective_date <= ft.ticket_date)
           AND (udist.expiry_date IS NULL OR udist.expiry_date = 0 OR udist.expiry_date >= ft.ticket_date))
    LEFT JOIN workflow_document_process_map AS wdpm ON (ft.id = wdpm.document_id AND wdpm.document_type_id = 1)
    LEFT JOIN workflow_process AS wp ON (wp.id = wdpm.workflow_process_id)
    LEFT JOIN workflow_rule AS wr ON (wp.workflow_schema_id = wr.workflow_schema_id AND wp.workflow_level_id = wr.workflow_level_id AND wr.workflow_activity_id = 2  AND (wr.effective_date IS NULL OR wr.effective_date = 0 OR wr.effective_date <= ft.ticket_date) AND (wr.expiry_date IS NULL OR wr.expiry_date = 0 OR wr.expiry_date >= ft.ticket_date))
    LEFT JOIN workflow_rule AS wr2 ON (wp.workflow_schema_id = wr2.workflow_schema_id AND wp.workflow_level_id = wr2.workflow_level_id AND wr2.workflow_activity_id = 4 AND (wr2.effective_date IS NULL OR wr2.effective_date = 0 OR wr2.effective_date <= ft.ticket_date) AND (wr2.expiry_date IS NULL OR wr2.expiry_date = 0 OR wr2.expiry_date >= ft.ticket_date))
    LEFT JOIN workflow_process_history AS wph ON (wph.workflow_process_id = wp.id)
    LEFT JOIN ticket_attachment AS ftattach ON (ft.id = ftattach.ticket_id AND ftattach.attachment_type_id = 2)
    LEFT JOIN person AS p ON (ft.supervisor_id = p.id)
    LEFT JOIN person AS p2 ON (ft.head_office_contact_id = p2.id AND (p2.effective_date IS NULL OR p2.effective_date = 0 OR p2.effective_date <= ft.ticket_date)
           AND (p2.expiry_date IS NULL OR p2.expiry_date = 0 OR p2.expiry_date >= ft.ticket_date))
    LEFT JOIN person AS p3 ON (ft.sales_person_id = p3.id)
    LEFT JOIN person_company_sales AS pcs ON (p2.id = pcs.client_person_id AND pcs.company_id = ft.client_company_id)
    LEFT JOIN person AS p4 ON (ft.created_by = p4.id)
    LEFT JOIN person AS p5 ON (ft.well_site_supervisor_id = p5.id)
    LEFT JOIN division AS d ON (ft.division_id = d.id)
    LEFT JOIN district AS dist1 ON (ft.district_id = dist1.id)
    LEFT JOIN district AS dist2 ON (udist.district_id = dist2.id)
    LEFT JOIN company AS c ON (ft.client_company_id = c.id)
    LEFT JOIN province AS prov ON (ft.job_province_id = prov.id)
    LEFT JOIN ticket_attachment AS ftattach2 ON (ft.id = ftattach2.ticket_id AND ftattach2.attachment_type_id != 2)
    LEFT JOIN locale_currency AS lc ON (lc.id = ft.locale_currency_id)
    LEFT JOIN operation_type AS ot ON (ot.id = ft.operation_type_id)
    LEFT JOIN incident AS i ON (i.ticket_id = ft.id)
    LEFT JOIN invoice_type AS it ON (it.id = ft.invoice_type_id)
    LEFT JOIN workflow_level AS wl ON (wl.id = wp.workflow_level_id)
    LEFT JOIN company AS dist1_company ON (dist1_company.id = dist1.internal_company_id)
    WHERE 1
    AND ( pcs.sales_person_id = 2113 AND pcs.effective_date <= ft.ticket_date AND ( pcs.expiry_date >= ft.ticket_date OR pcs.expiry_date = '0000-00-00 00:00:00' OR pcs.expiry_date IS NULL) )
    AND ft.closed_flag <> 1 AND (wr2.id IS NOT NULL OR wr2.id != 0)
    AND ft.commit_flag = 1
    AND ft.dispatch_status = 0
    AND dist1_company.country_id = 1
    AND wr2.role_id = 2
    GROUP BY ft.id
    ORDER BY ticket_date ASC, ft.id ASC
    Thanks you for your help.

  • SCCM Report for Software Updates that show the required update and its size

    Hello-
    I created multiple windows update deployments, but was looking to view a report that shows me the update name (like the KB and MS) along with the size of the update.
    Does anyone know if there's a pre-made report?  If not, does anyone know of a good query to get this info?
    Thanks!
    Andrew

    Yes, I know this is an old post, I’m just trying to clean them up.
    There is no pre-canned report for this. Yes a report can be written to collect this inform but keep in mind that a SU mind have several versions aka 1 for Winxp, 1 for Vista, 1 for Win2k3, 1 for Win2k3 Sp1, etc. if you are trying aggregate
    the data it will take a bit of fancy SQL/SSRS work to get this done. BTW Getting the size of the KB also take a bit of work.
    http://www.enhansoft.com/

  • Advice needed for Jasper Reports - Unacceptable File Size

    Hi,
    we are attempting to use Jasper Reports for online reporting. However, we have found that the filesize for generated reports in HTML formats are simply unacceptable. For example, a Jasper Report of 5000 records is 20MB in size! The download of such files simply takes too long. The reason we believe is due to the image rendering for 'white spaces'. Would greatly appreciate any advice on how to eradicate this problem.

    Have you tried posting this question at jasper forum:
    http://jasperreports.sourceforge.net/community.html
    http://sourceforge.net/forum/?group_id=36382

  • Material Stock Report  for tcode MB5B

    Hello Expert
    I have a SAP report for stock posting date with T-Code as MB5B and
    the report name is RM07MLBD.
    When I enter Material no, plant code , Movement type (101) and selection
    dates for a month, The report is displaying but not break by Movement type instead it is showing all the movement type....?
    Can anyone have idea about this
    REPORT RM07MLBD NO STANDARD PAGE HEADING MESSAGE-ID M7 LINE-SIZE 95.
        REPORT RM07MLBD   (Transaktionscode MB5B)                        *
    correction June 2004 MM                                   "n747306
    wrong the assignment of the MM and FI documents for data  "n747306
    constellation : n MM doc items --> 1 FI doc item          "n747306
    ABAP-Preprocessor removed                                 "n599218 A
    - this version is for release 4.6C and higher             "n599218 A
    - process database table OBEW always                      "n599218 A
    - IS-OIL specific functions :                             "n599218 A
      - define IS-OIL workings fields                         "n599218 A
      - transport and process these fields only when          "n599218 A
        structure MSEG comprise these fields                  "n599218 A
    Improvements :                       Dec. 2003 MM         "n599218
    - print the page numbers                                  "n599218
                                                              "n599218
    - send warnings and error messages only when report is    "n599218
      launched / advoid warnings when user changes entries on "n599218
      the selection screen                                    "n599218
    - send warning M7 689 when user does not restrict the     "n599218
      database in dialog or print mode                        "n599218
    - send warning M7 393 when user deletes the initial       "n599218
      display variant                                         "n599218
                                                              "n599218
    - allow to process the fields MAT_KDAUF, MAT_KDPOS, and   "n599218
      MAT_PSPNR from release 4.5B and higher                  "n599218
                                                              "n599218
    - show the current activity and the progress              "n599218
                                                              "n599218
    - error message 'programmfehler' improved                 "n599218
                                                              "n599218
    - new categories for scope of list                        "n599218
                                                              "n599218
    - use function module for database commit for the update  "n599218
      of the parameters in table ESDUS. This allows to record "n599218
      this transaction for a batch input session using        "n599218
      transaction SHDB                                        "n599218
                                                              "n599218
    - reset the entries for plant when valuation level is     "n599218
      is company code and mode is valuated stock              "n599218
                                                              "n599218
    - enable this report to run in the webreporting mode      "n599218
    Dec. 2002 MM                                              "n571473
    the definition of the selection screen moved from include "n571473
    RM07MLBP into this report                                 "n571473
    Sept 2002 MM                                              "n555246
    log function tax auditor                                  "n555246
    note 547170 :                              August 2002 MM "n547170
    - representation of tied empties improved                 "n547170
      active this function automatically in retail systems    "n547170
    - FORM routines without preprocessor commands and without "n547170
      text elements moved to the new include reports          "n547170
      RM07MLBD_FORM_01and RM07MLBD_FORM_02                    "n547170
    - the function module FI_CHECK_DATE of note 486477 will   "n547170
      be processed when it exists                             "n547170
    - function and documentation of parameter XONUL improved  "n547170
    - display MM documents with MIGO or MB03 depending from   "n547170
      the release                                             "n547170
    - get and save the parameters per user in dialog mode     "n547170
      only in release >= 4.6                                  "n547170
    the following items were improved with note 497992        "n497992
    - wrong results when remaining BSIM entries contain       "n497992
      an other quantity unit as material master MEINS         "n497992
    - improve check FI summarization                          "n497992
    - the messages M7 390, M7 391, and M7 392                 "n497992
    - definition of field g_f_repid for all releases          "n497992
    - incomplete key for access of internal table IT134M      "n497992
      causes wrong plant selection                            "n497992
    - the function "no reversal movement" did not surpress    "n497992
      the original movements; fields "SJAHR" was moved from   "n497992
      from report RM07MLBD_CUST_FIELDS to RM07MLBD            "n497992
    - process valuated subcontractor stock from database      "n497992
      table OBEW if it exists                                 "n497992
    - if FI summarization is active process warning M7 390    "n497992
      for stock type = valuated stock                         "n497992
    - the user wants to restrict the movement type : process  "n497992
      warning M7 391                                          "n497992
    - the user wants to surpress the reversal movements :     "n497992
      process warning M7 392                                  "n497992
    - consider special gain/loss-handling of IS-OIL           "n497992
    - automatic insert of field WAERS currency key into the   "n497992
      field catalogue :                                       "n497992
      - at least one ref. field is active -> WAERS active     "n497992
      - all reference fields are hidden   -> WAERS hidden     "n497992
    - the length of sum fields for values was increased       "n497992
    - customizing for the selection of remaining BSIM entries "n497992
    - customizing for the processing of tied empties          "n497992
    separate time depending authorization for tax auditor     "n486477
    additional fields are displayed in wrong format           "n480130
    report RM07MLBD and its includes improved  Nov 2001       "n451923
    - merging FI doc number into table G_T_MSEG_LEAN improved "n451923
    - handling of the short texts improved                    "n451923
    - some types and data definitions -> include RM07MLDD     "n451923
    error for split valuation and valuated special stock      "n450764
    process 'goods receipt/issue slip' as hidden field        "n450596
    error at start date : material without stock has value    "n443935
    wrong results for docs with customer consignment "W"      "n435403
    error during data selection for plants                    "n433765
    report RM07MLBD and its includes improved  May 10th, 2001 "n400992
    !!! IMPORTANT : DO NOT CHANGE OR DELETE THE COMMENT LINES !!!        *
    - consider the material number during looking for FI documents
    - field "g_cust_color" in include report "RM07MLBD_CUST_FIELDS"
      allows the customer to activate or inactivate the colors in the
      lines with the documents.
    - error during calcuation of start stock for special stock "M"
    - valuted stocks required : no documents found ? continue and
      process empty document table
    - the length of sum fields for quantities has been increased
      to advoid decimal overflow
    - table ORGAN is replaced by G_T_ORGAN
      - it is filled by the following ways :
        - at process time at selection screen if the
          user wants the selection via cc or plant
        - otherwise after the database selection of the stock
          tables
      - it contains less data fields
      - it contains all entries twice, for binary search
        with plant or valuation area
    - selection of databases MKPF and MSEG in one SELECT
      command with an inner JOIN
    - authority checks after the database selections
    - result of database selection from the both database tables
      MSEG and MKPF in working table G_F_MSEG_LEAN instead of
      the tables IMSEG and IMKPF
    - the number of processed data fields was reduced
    - the user has the possibility to increase the number of
      the processed fields deleting the '*' in the types-command
      in include report RM07MLBD_CUST_FIELDS
    - the creation of the field catalog for the ALV considers
      only the fields of structure G_S_MSEG_LEAN
    - the new table G_T_BELEG contains the results for the ALV.
      the number of fields of table G_T_BELEG corresponds with
      the number of fields of table G_T_MSEG_LEAN.
    - the functions "define breakdown" and "choose" are inactivated
      in the menue, because they are are not carried out correctly
      in all blocks of the list
        Anzeige der Materialbestände in einem Zeitintervall              *
    Der Report gliedert sich im wesentlichen in folgende Verarbeitungs- *
    blöcke:                                                             *
    1) Definition des Einstiegsbildes und Vorbelegung einzelner         *
        Selektionsfelder, sowie Prüfung der eingegebenen Selektions-     *
        parameter und Berechtigungsprüfung                               *
    2) Lesen der aktuellen Bestandswerte                                *
    3) Lesen und Verarbeiten der Materialbelege                         *
    4) Berechnung der Bestandswerte zu den vorgegebenen Datümern        *
    5) Ausgabe der Bestände und Materialbelege                          *
    *eject
    *# APP_CALL_DECLARE TEST
    this definitions depend on the release
    TYPE-POOLS:  IMREP,                   " Typen Bestandsführungsreporting
                 SLIS.                    " Typen Listviewer
      for the selection of the reversal movements only in release >=45B
          DATA: BEGIN OF STORNO OCCURS 0,
                  MBLNR LIKE MSEG-MBLNR,
                  MJAHR LIKE MSEG-MJAHR,
                  ZEILE LIKE MSEG-ZEILE,
                  SMBLN LIKE MSEG-SMBLN,
                  SJAHR LIKE MSEG-SJAHR,
                  SMBLP LIKE MSEG-SMBLP,
                END OF STORNO.
    include:  rm07mldd,     " reportspezifische Datendefinitionen
              rm07grid.     " Gitternetz, Formatierung, Farbgebung
    INCLUDE RM07APP1.     "ABAP-PREPROCESSOR  "TEST
    "n571473
    define the selection screen here                          "n571473
    "n571473
    SELECTION-SCREEN BEGIN OF BLOCK Database-selection
              WITH FRAME TITLE TEXT-001.
    Text-001: Datenbankabgrenzungen
    SELECT-OPTIONS: MATNR FOR MARD-MATNR MEMORY ID MAT
                                         MATCHCODE OBJECT MAT1,
                    BUKRS FOR T001-BUKRS  MEMORY ID BUK,
                    WERKS FOR T001W-WERKS MEMORY ID WRK,
                    LGORT FOR T001L-LGORT,
                    CHARG FOR MCHB-CHARG,
                    BWTAR FOR MBEW-BWTAR,
                    BWART FOR MSEG-BWART.
    PARAMETERS SOBKZ LIKE MSEG-SOBKZ.
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS: DATUM FOR MKPF-BUDAT NO-EXTENSION.
    Datumsintervall für Selektion
    SELECTION-SCREEN END OF BLOCK Database-selection.
    SELECTION-SCREEN BEGIN OF BLOCK BESTANDSART
    WITH FRAME TITLE TEXT-002.
    Text-002: Bestandsart
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS LGBST LIKE AM07M-LGBST RADIOBUTTON GROUP BART DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 4(50) TEXT-010 FOR FIELD LGBST.
    Text-010: Lagerort-/Chargenbestand
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS BWBST LIKE AM07M-BWBST RADIOBUTTON GROUP BART.
    SELECTION-SCREEN COMMENT 4(50) TEXT-011 FOR FIELD BWBST.
    Text-011: bewerteter Bestand
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS SBBST LIKE AM07M-SBBST RADIOBUTTON GROUP BART.
    SELECTION-SCREEN COMMENT 4(50) TEXT-012 FOR FIELD SBBST.
    Text-012: Sonderbestand
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK BESTANDSART.
    improved definition of parameters for scope of list       "n599218
    SELECTION-SCREEN BEGIN OF BLOCK listumfang
      with frame title text-003.  "Listumfang
    the following 3 parameters became obsolete do not use     "n599218
    anymor. They are still here to inform the user about      "n599218
    that he is using old variants or SUBMIT commands          "n599218
      PARAMETERS :                                              "n599218
        XONUL  LIKE AM07M-XONUL            no-display,          "n599218
        XVBST  LIKE AM07M-XVBST            no-display,          "n599218
        XNVBST LIKE AM07M-XNVBS            no-display.          "n599218
    7 new categories for the scope of list                    "n599218
                                                              "n599218
    cat. I docs I stock on   I    I stock on I Parameter      "n599218
         I      I start date I    I end date I                "n599218
    ---+--+--------++------+--------      "n599218
    1   I yes  I =  zero    I =  I =  zero  I pa_wdzer       "n599218
    2   I yes  I =  zero    I <> I <> zero  I pa_wdzew       "n599218
    3   I yes  I <> zero    I <> I =  zero  I pa_wdwiz       "n599218
    4   I yes  I <> zero    I <> I <> zero  I pa_wdwuw       "n599218
    5   I yes  I <> zero    I =  I <> zero  I pa_wdwew       "n599218
         I      I            I    I          I                "n599218
    6   I no   I =  zero    I =  I =  zero  I pa_ndzer       "n599218
    7   I no   I <> zero    I =  I <> zero  I pa_ndsto       "n599218
                                                              "n599218
    definition of the pushbutton : show or hide the following "n599218
    parameters for the scope of list                          "n599218
      SELECTION-SCREEN PUSHBUTTON /1(20) PB_LIU                 "n599218
                                 USER-COMMAND LIU.              "n599218
                                                                "n599218
    text line : materials with movements                      "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN COMMENT 1(55) TEXT-072                 "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    with movements / start = zero  =  end = zero              "n599218
    1   I yes  I =  zero    I =  I =  zero  I pa_wdzer       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_wdzer    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      text-083 : no opening stock ; no closing stock          "n599218
        SELECTION-SCREEN COMMENT 5(70) text-083                 "n599218
                                 FOR FIELD pa_wdzer             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    with movements / start = zero  =  end <> zero             "n599218
    2   I yes  I =  zero    I <> I <> zero  I pa_wdzew       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_wdzew    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      text-084 : no opening stock ; with closing stock        "n599218
        SELECTION-SCREEN COMMENT 5(70) text-084                 "n599218
                                 FOR FIELD pa_wdzew             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    with movements / start stock <> 0 / end stock = 0         "n599218
    3   I yes  I <> zero    I <> I =  zero  I pa_wdwiz       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_wdwiz    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      text-085 : with opening stock ; no closing stock        "n599218
        SELECTION-SCREEN COMMENT 5(70) text-085                 "n599218
                                 FOR FIELD pa_wdwiz             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    with movements / with start and end stocks / different    "n599218
    4   I yes  I <> zero    I <> I <> zero  I pa_wdwuw       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_wdwuw    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      with opening stock ; with closing stock ; changed       "n599218
        SELECTION-SCREEN COMMENT 5(70) text-086                 "n599218
                                 FOR FIELD pa_wdwuw             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    with movements / with start and end stock / equal         "n599218
    5   I yes  I <> zero    I =  I <> zero  I pa_wdwew       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_wdwew    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      with opening stock ; with closing stock ; non-changed   "n599218
        SELECTION-SCREEN COMMENT 5(70) text-087                 "n599218
                                 FOR FIELD pa_wdwew             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    text line : materials without movements                   "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN COMMENT 1(55) TEXT-073                 "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    materials without movements / stocks = zero               "n599218
    6   I no   I =  zero    I =  I =  zero  I pa_ndzer       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_ndzer    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      text-083 : no opening stock ; no closing stock          "n599218
        SELECTION-SCREEN COMMENT 5(70) text-083                 "n599218
                                 FOR FIELD pa_ndzer             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    materials without movements / with start or end stock     "n599218
    7   I no   I <> zero    I =  I <> zero  I pa_ndsto       "n599218
      SELECTION-SCREEN BEGIN OF LINE.                           "n599218
        SELECTION-SCREEN POSITION 2.                            "n599218
        PARAMETERS : pa_ndsto    LIKE AM07M-MB5B_XONUL          "n599218
                                 modif id liu.                  "n599218
      with opening stock ; with closing stock ; non-changed   "n599218
        SELECTION-SCREEN COMMENT 5(70) text-087                 "n599218
                                 FOR FIELD pa_ndsto             "n599218
                                 modif id liu.                  "n599218
      SELECTION-SCREEN END OF LINE.                             "n599218
                                                                "n599218
    SELECTION-SCREEN END OF BLOCK listumfang.
    SELECTION-SCREEN BEGIN OF BLOCK EINSTELLUNGEN
       WITH FRAME TITLE TEXT-068.  "Settings
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    PARAMETERS XSUM LIKE AM07M-XSUM.
    SELECTION-SCREEN COMMENT 4(50) TEXT-019 FOR FIELD XSUM.
    Text-019: nur Summen
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 1.
    PARAMETERS XCHAR LIKE AM07M-XCHRG.
    SELECTION-SCREEN COMMENT 4(50) TEXT-015 FOR FIELD XCHAR.
    Text-015: nur chargenpflichtige Materialien
    Das Kennzeichen 'xchar' bestimmt die Art der Listausgabe entweder
    auf Material- oder Chargenebene.
    SELECTION-SCREEN END OF LINE.
    the function "No reversal movements" is only         "n571473
    available from relaese 4.5B and higher               "n571473
    ( TEXT-026 : No reversal movements )                 "n571473
        SELECTION-SCREEN BEGIN OF LINE.                    "n571473
          SELECTION-SCREEN POSITION 1.                     "n571473
          PARAMETERS NOSTO LIKE AM07M-NOSTO.               "n571473
          SELECTION-SCREEN COMMENT 4(50) TEXT-026          "n571473
                                 FOR FIELD NOSTO.          "n571473
        SELECTION-SCREEN END OF LINE.                      "n571473
    SELECTION-SCREEN END OF BLOCK EINSTELLUNGEN.
    SELECTION-SCREEN BEGIN OF BLOCK LISTE WITH FRAME TITLE TEXT-040.
    PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
    SELECTION-SCREEN END OF BLOCK LISTE.
    *eject
    new data definitions
    working fields for reading structures from DDIC           "n599218 A
    and check whether IS-OIL is active                        "n599218 A
    types : stab_x031l           type standard table of x031l   "n599218 A
                                 with default key.              "n599218 A
                                                                "n599218 A
    data : g_s_x031l             type x031l,                    "n599218 A
           g_t_x031l             type stab_x031l.               "n599218 A
                                                                "n599218 A
    data : g_f_dcobjdef-name     like dcobjdef-name,            "n599218 A
           g_flag_is_oil_active(01)        type c,              "n599218 A
           g_cnt_is_oil          type i.                        "n599218 A
    contains the a structure with the max. number of fields of
    the database table MSEG, but those lines are comment lines
    with a '*'. The customer can achtivate those lines.
    The activated fields will be selected from the database table
    and are hidden in the list. With the settings in the display
    variant the can be shown.
    INCLUDE                      RM07MLBD_CUST_FIELDS.
    common types structure for working tables
    a) g_t_mseg_lean   results form database selection
    b) g_t_beleg       data table for ALV
    TYPES : BEGIN OF STYPE_MSEG_LEAN,
              MBLNR             LIKE      MKPF-MBLNR,
               MJAHR             LIKE      MKPF-MJAHR,
               VGART             LIKE      MKPF-VGART,
               BLART             LIKE      MKPF-BLART,
               BUDAT             LIKE      MKPF-BUDAT,
               CPUDT             LIKE      MKPF-CPUDT,
               CPUTM             LIKE      MKPF-CPUTM,
               USNAM             LIKE      MKPF-USNAM,
    process 'goods receipt/issue slip' as hidden field        "n450596
               XABLN             LIKE      MKPF-XABLN,          "n450596
               LBBSA             LIKE      T156M-LBBSA,
               BWAGR             LIKE      T156S-BWAGR,
               BUKRS             LIKE      T001-BUKRS,
               BELNR             LIKE      BKPF-BELNR,
               GJAHR             LIKE      BKPF-GJAHR,
               WAERS             LIKE      MSEG-WAERS,
               ZEILE             LIKE      MSEG-ZEILE,
               BWART             LIKE      MSEG-BWART,
               MATNR             LIKE      MSEG-MATNR,
               WERKS             LIKE      MSEG-WERKS,
               LGORT             LIKE      MSEG-LGORT,
               CHARG             LIKE      MSEG-CHARG,
               BWTAR             LIKE      MSEG-BWTAR,
               KZVBR             LIKE      MSEG-KZVBR,
               KZBEW             LIKE      MSEG-KZBEW,
               SOBKZ             LIKE      MSEG-SOBKZ,
               KZZUG             LIKE      MSEG-KZZUG,
               BUSTM             LIKE      MSEG-BUSTM,
               BUSTW             LIKE      MSEG-BUSTW,
               MENGU             LIKE      MSEG-MENGU,
               WERTU             LIKE      MSEG-WERTU,
               SHKZG             LIKE      MSEG-SHKZG,
               MENGE             LIKE      MSEG-MENGE,
               MEINS             LIKE      MSEG-MEINS,
               DMBTR             LIKE      MSEG-DMBTR,
               DMBUM             LIKE      MSEG-DMBUM,
               XAUTO             LIKE      MSEG-XAUTO,
               KZBWS             LIKE      MSEG-KZBWS,
             special flag for retail                          "n497992
               retail(01)        type c,                        "n497992
    define the fields for the IO-OIL specific functions       "n599218 A
             mseg-oiglcalc     CHAR          1                "n599218 A
             mseg-oiglsku      QUAN         13                "n599218 A
               oiglcalc(01)      type  c,                       "n599218 A
               oiglsku(07)       type  p  decimals 3,           "n599218 A
               insmk             like      mseg-insmk,          "n599218 A
    the following fields are used for the selection of
    the reversal movements
              SMBLN    LIKE      MSEG-SMBLN,    " No. doc
              SJAHR    LIKE      MSEG-SJAHR,    " Year          "n497992
              SMBLP    LIKE      MSEG-SMBLP.    " Item in doc
    additional fields : the user has the possibility to activate
    these fields in the following include report
              INCLUDE           TYPE      STYPE_MB5B_ADD.
    TYPES : END OF STYPE_MSEG_LEAN.
    TYPES: STAB_MSEG_LEAN        TYPE STANDARD TABLE OF STYPE_MSEG_LEAN
                                 WITH KEY MBLNR MJAHR.
    data tables with the results for the ALV
    TYPES : BEGIN OF STYPE_BELEGE.
              INCLUDE            TYPE      STYPE_MSEG_LEAN.
    TYPES :   FARBE TYPE SLIS_T_SPECIALCOL_ALV.
    TYPES : END OF STYPE_BELEGE.
    TYPES : STAB_BELEGE          TYPE STANDARD TABLE OF STYPE_BELEGE
                                 WITH KEY  BUDAT MBLNR ZEILE.
    DATA : G_T_BELEGE            TYPE   STAB_BELEGE WITH HEADER LINE,
           G_T_BELEGE1           TYPE   STAB_BELEGE WITH HEADER LINE.
    global working areas data from MSEG and MKPF
    FIELD-SYMBOLS :        TYPE STYPE_MSEG_LEAN.
    DATA : G_S_MSEG_LEAN         TYPE STYPE_MSEG_LEAN,
           G_S_MSEG_UPDATE       TYPE STYPE_MSEG_LEAN,          "n443935
           G_T_MSEG_LEAN         TYPE STAB_MSEG_LEAN.
    working table for the control break                       "n451923
    types : begin of stype_mseg_work.                           "n451923
              include            type      stype_mseg_lean.     "n451923
    types :    tabix             like      sy-tabix,            "n451923
            end of stype_mseg_work,                             "n451923
                                                                "n451923
            stab_mseg_work       type standard table of         "n451923
                                 stype_mseg_work                "n451923
                                 with default key.              "n451923
                                                                "n451923
    data : g_t_mseg_work         type  stab_mseg_work,          "n443935
           g_s_mseg_work         type  stype_mseg_work.         "n443935
    working table for the requested field name from MSEG and MKPF
    TYPES: BEGIN OF STYPE_FIELDS,
               FIELDNAME           TYPE      NAME_FELD,
           END OF STYPE_FIELDS.
    TYPES: STAB_FIELDS           TYPE STANDARD TABLE OF STYPE_FIELDS
                                 WITH KEY FIELDNAME.
    DATA: G_T_MSEG_FIELDS        TYPE      STAB_FIELDS,
          G_S_MSEG_FIELDS        TYPE      STYPE_FIELDS.
    working table for the requested numeric fields of MSEG
    types : begin of stype_color_fields,
               FIELDNAME           TYPE      NAME_FELD,
             type(01)            type c,
           end of stype_color_fields,
           stab_color_fields     type standard table of
                                 stype_color_fields
                                 with default key.
    data: g_t_color_fields       type      stab_color_fields
                                 with header line.
    DATA: BEGIN OF IMSWEG OCCURS 1000,
            MBLNR LIKE MSEG-MBLNR,
            MJAHR LIKE MSEG-MJAHR,
            ZEILE LIKE MSEG-ZEILE,
            MATNR LIKE MSEG-MATNR,
            CHARG LIKE MSEG-CHARG,
            BWTAR LIKE MSEG-BWTAR,
            WERKS LIKE MSEG-WERKS,
            LGORT LIKE MSEG-LGORT,
            SOBKZ LIKE MSEG-SOBKZ,
            BWART LIKE MSEG-BWART,
            SHKZG LIKE MSEG-SHKZG,
            XAUTO LIKE MSEG-XAUTO,
            MENGE LIKE MSEG-MENGE,
            MEINS LIKE MSEG-MEINS,
            DMBTR LIKE MSEG-DMBTR,
            DMBUM LIKE MSEG-DMBUM,
            BUSTM LIKE MSEG-BUSTM,
            BUSTW LIKE MSEG-BUSTW,                               "147374
    define the fields for the IO-OIL specific functions       "n599218 A
          mseg-oiglcalc        CHAR          1                "n599218 A
          mseg-oiglsku         QUAN         13                "n599218 A
            oiglcalc(01)         type  c,                       "n599218 A
            oiglsku(07)          type  p  decimals 3,           "n599218 A
            insmk                like      mseg-insmk,          "n599218 A
          END OF IMSWEG.
    User settings for the checkboxes                          "n547170
      DATA: oref_settings TYPE REF TO cl_mmim_userdefaults.     "n547170
    *eject
    HAUPTPROGRAMM *********************************
    F4-Hilfe für Reportvariante -
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    "n599218
    INITIALIZATION                                            "n599218
    "n599218
                                                                "n599218
    pay attentions : this process time will not be processed  "n599218
    in the webreporting mode                                  "n599218
    INITIALIZATION.
    PERFORM APP_PROCESS USING 'ME'. "TEST
      PERFORM initialisierung.
    get the parameters from the last run                      "n547170
      perform                    esdus_get_parameters.          "n547170
    set flag when INITILIZATION is processed
      move  'X'        to  g_flag_initialization.
    "n599218
    AT SELECTION-SCREEN                                       "n599218
    "n599218
    Prüfung der eingegebenen Selektionsparameter, -
    Berechtigungsprüfung -
    AT SELECTION-SCREEN.
    the following 3 parameters XONUL, XVBST, and XNVBST       "n599218
    became obsolete; send error when they should be filled.   "n599218
    This could be possible if the user works with old         "n599218
    selection variants or this report is launched by a        "n599218
    SUBMIT command                                            "n599218
      if  XONUL  is initial  and                                "n599218
          XVBST  is initial  and                                "n599218
          XNVBST is initial.                                    "n599218
    ok, the old parameters are empty                         "n599218
      else.                                                     "n599218
      text-088 : note 599218 : obsolete parameter used        "n599218
        MESSAGE E895             with  text-088.                "n599218
      endif.
    did the user hit the pushbutton "Category" ?              "n599218
      case     SSCRFIELDS-UCOMM.                                "n599218
        when  'LIU '.                                           "n599218
        yes, the pushbutton "Category" was hit                "n599218
          IF  g_flag_status_liu  =  C_HIDE.                     "n599218
          show the 7 parameters on the selection srceen       "n599218
            MOVE  C_SHOW         TO  g_flag_status_liu.         "n599218
          ELSE.                                                 "n599218
          hide the 7 paramaters                               "n599218
            MOVE  C_HIDE         TO  g_flag_status_liu.         "n599218
          ENDIF.                                                "n599218
      ENDcase.                                                  "n599218
                                                                "n599218
    go on only if the user wants to launch this report        "n599218
      check : sy-ucomm = 'ONLI'  or                             "n599218
              sy-ucomm = 'PRIN'  or                             "n599218
              sy-ucomm = 'SJOB'.                                "n599218
      PERFORM eingaben_pruefen.
    check whether FI summarization is active and other        "n547170
    restrictions could deliver wrong results                  "n547170
      perform                    f0800_check_restrictions.      "n547170
    - the user wants to surpress the reversal movements :     "n497992
      process warning M7 392                                  "n497992
        IF NOT NOSTO IS INITIAL.                                "n497992
      emerge warning ?                                        "n497992
          CALL FUNCTION            'ME_CHECK_T160M'             "n497992
              EXPORTING                                         "n497992
                I_ARBGB          = 'M7'                         "n497992
                I_MSGNR          = '392'                        "n497992
              EXCEPTIONS                                    

    Please read the KBA document  2012912 - Changeablility of the field "material group" in purchasing documents
    It clearly says that material group can't be changed in case you will use material master in purchase order.
    So, it is clear that you can't use different material group for material master in purchase order.
    For stock report, system will only show you the material group which is assigned to the material master (MARA-MATKL). System will not look into the purchase order section (like EKPO).

  • Reconcillation report for controlling

    My requirement as follows.
    this is a report for developing reconcillation statement for a company.
    i created program as per requirement it is not executing becasuse of  COEP table taking much time for executing.
    any body have reconcillation report with sourcode kindly forward me.
    TECHNICAL SPECIFICATIONS FOR RECONCILIATION REPORT
    SELECTION SCREEN:
    COMPANY CODE:  T001-BUKRS
    FISCAL YEAR         :  BKPF-GJAHR
    PERIOD                :  BKPF-MONAT
    OUTPUT FORMAT:
         PARTICULARS     AMOUNT
    A     TOTAL OF FI P/L ACCOUNTS     
    B     LESS: TOTAL OF FI P/L ACCOUNTS NOT FLOWN TO CO (including VVGK values)     
    C     TOTAL OF FI P/L ACCOUNTS FLOWN TO CO     
    D     TOTAL OF COST VOLUME (MAT+ FEK+MGK+WVK)     
    E     LESS : TOTAL OF RECONCILIATION ITEMS (ITEMS APPEARING ONLY IN CO - FOR E.G. ED,CC ETC)     
    F     (D) – (E)     
         RECONCILIATION -
    ( C ) = ( F )     
    START OF FIELD A
    TABLE : SKB1 (G/L Account Master Table)
    INPUT :  BUKRS (Company Code)
    SAKNR - NUMBER RANGE  4* (G/L Account No.)
    OUTPUT : SAKNR (G/L Account No)
    Result : This step will provide a list of Expenses G/L Accounts
    TABLE : GLT0 (G/L Account Balances table)
    INPUT :  BUKRS (Company Code)
    SAKNR - NUMBER RANGE  4*) (G/L Account No.)
    DRCRK = S (Debit / Credit Indicator)
    RYEAR =  GJAHR (Fiscal year)
    OUTPUT :  HSL0*( * -PERIOD ENTERED IN SELECTION) [G/L Account Balance Amount field in the Table]
    SORT AND SUM  SAKNR WISE WHILE DISPLAYING IN THE REPORT
    Result : This step will provide balances for the list of the  expenses G/L accounts fetched from table SKB1 for the company code, fiscal year and period mentioned in the selection screen
    LIST OF EXPS. G/L ACCOUNTS WITH VALUES AND THEIR TOTAL– LIST A
    TOTAL OF ABOVE LIST = FIELD A
    The List Is To Be Displayed In The Report On Double-Clicking On The Total (Field A)
    END OF FIELD A----
    START OF FIELD B
    TABLE    : SETLEAF (Table for values in a group)
    INPUT     : SETCLASS = 0102 (Code for Cost Element groups)
    SETNAME = FIXED, VARIABLE (Cost Element group names)
    OUTPUT :  VALFROM, VALTO (Cost Element from & to)
    Result : This step will provide a list of cost elements within the cost element groups – Fixed and Variable
    TABLE    : COSP (Cost Accounting postings)
    INPUT     :  GJAHR (Fiscal year)
    KSTAR = VALFROM TO VALTO – SETLEAF (Cost Elements range)
    VRGNG = COIN (CO Business transaction type)
    BEKNZ   = D (Debit / Credit indicator)
    OUTPUT :  KSTAR (Cost Element), WKG0( -PERIOD ENTERED IN SELECTION) [Amount field in the table]
    Result : This step will provide a list of Cost Centre values used for calculating Activity rate and Overheard rates)
    LIST OF COST ELEMENTS WITH VALUES AND THEIR TOTAL – LIST B
    COMPARE LIST A WITH LIST B FIND RECORDS THAT DON’T MATCH
    MAKE A LIST OF UNMATCHED RECORDS (FOUND ONLY IN LIST A) AND THEIR TOTALS – LIST C
    TABLE    : SETLEAF (Table for values in a group)
    INPUT     : SETCLASS = 0101 (Code for Cost Centre groups)
    SETNAME = JL-VVGK (Cost Centre group name)
    OUTPUT :  VALFROM ( COST CENTRE)
    Result : This will provide a list of Cost centers in the JL-VVGK cost element group
    TABLE    : COSP (Cost Accounting Postings)
    INPUT     : OBJNR   = CONCATENATE ‘KSKBX’ TO SETLEAF- VALFROM WITH SPACE, (OBJNR = Object Number)
    GJAHR (Fiscal year)
    VRGNG = COIN (CO Business transaction type)
    OUTPUT :  WKG0( -PERIOD ENTERED IN SELECTION) [Amount field in the table]
    Result : This will provide a list of Cost centers values in the in the JL-VVGK cost element group
    LIST OF VVGK COST CENTRES WITH VALUES AND IT’S TOTAL – LIST D
    ADD LIST C WITH LIST D THE TOTAL OF WHICH IS EQUAL TO FIELD B
    Result : This will provide the costs which are not used to apply Activity Rates and Overhead Rates on the products
    The Lists (List C & D) are To Be Displayed In The Report On Double-Clicking On The Total (Field B)
    END OF FIELD B----
    START OF FIELD C
    SUBTRACT FIELD B FROM FIELD A WHICH IS EQUAL TO FIELD C (NO LINE ITEMS REQUIRED)
    END OF FIELD C----
    START OF FIELD D
    TABLE    :  AUFK (Header table for Orders)
    INPUT     :  KOKRS = KBX (Controlling Area)
    BUKRS = SELECTION SCREEN (Company Code)
    AUART = RM01 (Order Type)
    OUTPUT :   OBJNR (Object Number)
    Result : This will provide a list Product Cost Collector Numbers
    MAT :
    TABLE    :  COSP (Cost Accounting Postings)
    INPUT     :  OBJNR-AUFK (Object number fetched from AUFK table)
    GJAHR = SELECTION SCREEN (fiscal year)
    WRTTP = 4 (Value type for Actuals)
    KSTAR = 41261 TO 41265 (Cost elements range)
    BEKNZ = D (Debit / Credit indicator)
    OUTPUT :  KSTAR (Cost Element), WTG00X (Amount field in the table), OBJNR –CONCATENATE (Object Number)
    Result : This will provide the MAT costs applied to the products through Product Cost Collectors - MATLIST
    FEK :
    TABLE    :  COEP (Cost Accounting Postings)
    INPUT     :  KOKRS = KBX (Controlling Area)
    PERIO = SELECTION SCREEN (Period)
    OBJNR-AUFK (Object Number fetched from AUFK table)
    GJAHR = SELECTION SCREEN (Fiscal year)
    KSTAR = 430001 TO 430010 (Cost Elements range)
    BUKRS = SELECTION SCREEN (Company Code)
    OUTPUT :  KSTAR (Cost Element), WTGBTR (Amount field), OBJNR –CONCATENATE (Object number)
    Result : This will provide the FEK costs applied to the products through Product Cost Collectors - FEKLIST
    MGK :
    TABLE    :  COEP (Cost Accounting Postings)
    INPUT     :  KOKRS = KBX (Controlling Area)
    PERIO = SELECTION SCREEN (Period)
    OBJNR-AUFK (Object Number fetched from AUFK table)
    GJAHR = SELECTION SCREEN (Fiscal year)
    KSTAR = 410001 (Cost Element)
    BUKRS = SELECTION SCREEN (Company Code)
    OUTPUT :  KSTAR (Cost Element), WTGBTR (Amount field), OBJNR – CONCATENATE (Object Number)
    Result : This will provide the MGK costs applied to the products through Product Cost Collectors - MGKLIST
    WVK :
    TABLE    :  COEP (Cost Accounting postings)
    INPUT     :  KOKRS = KBX (Controlling Area)
    PERIO = SELECTION SCREEN (Period)
    OBJNR-AUFK (Object Number fetched from AUFK table)
    GJAHR = SELECTION SCREEN (Fiscal year)
    KSTAR = 410015 (Cost Element)
    BUKRS = SELECTION SCREEN (Company Code)
    OUTPUT :  KSTAR (Cost Element), WTGBTR (Amount field), OBJNR – CONCATENATE (Object Number)
    Result : This will provide the WVK costs applied to the products through Product Cost Collectors - WVKLIST
    TOTAL OF MAT – WTG00X, FEK - WTGBTR, MGK - WTGBTR, WVK – WTGBTR = FIELD D
    The Lists  are (MATLIST, FEKLIST, MGKLIST, WVKLIST) To Be Displayed categorically In The Report On Double-Clicking On The Total (Field D)
    END OF FIELD D----
    START OF FIELD E
    TABLE    :  COSS (Cost Accounting Postings)
    INPUT     :  KOKRS = KBX (Controlling Area)
    GJAHR = SELECTION SCREEN (Fiscal year)
    WRTTP = 4 (Value type for Actuals)
    KSTAR = 44951 TO 44958 (Cost Elements range)
    VRGNG = COIN, RKU1, RKU3, (CO Business transaction type)
    BEKNZ = D (Debit / Credit Indicator)
    OUTPUT :  KSTAR (Cost Element), WTG00X (Amount field)
    Result : This will provide the costs posted only through Controlling (not FI, MM, SD, PP) which are used to calculate Activity rates and Overhead rates applied to the product – EDCCLIST
    The EDCCLIST Is To Be Displayed In The Report On Double-Clicking On The Total (Field E)
    END OF FIELD E----
    START OF FIELD F
    SUBTRACT FIELD D FROM FIELD E WHICH IS EQUAL TO FIELD F (NO LINE ITEMS REQUIRED)
    END OF FIELD F----
    I have return code like as follows.
    *& Report  ZCO_RECONCILIATION_REPORT                                   *
    REPORT  zco_reconciliation_report  NO STANDARD PAGE HEADING
                                    LINE-COUNT 60 LINE-SIZE 180.
    TABLES : t001.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS : p_bukrs  LIKE t001-bukrs MEMORY ID buk ,
                 p_year   LIKE glt0-ryear MEMORY ID gjh ,
                 p_period LIKE bkpf-monat .
    SELECTION-SCREEN END OF BLOCK b1 .
    DATA : BEGIN OF it_skb1 OCCURS 0,
           saknr LIKE skb1-saknr ,
           END OF it_skb1.
    DATA : BEGIN OF it_glt0 OCCURS 0,
           racct LIKE glt0-racct ,
           hsl01 LIKE glt0-hsl01,
           END OF it_glt0.
    DATA : BEGIN OF it_glt0_sum OCCURS 0,
           racct LIKE glt0-racct ,
           hsl01 LIKE glt0-hsl01,
           END OF it_glt0_sum.
    DATA : BEGIN OF it_setb1 OCCURS 0,
           valfrom LIKE cosp-kstar,                " setleaf-valfrom,
           valto   LIKE setleaf-valto,
           END OF it_setb1.
    DATA : BEGIN OF it_setb2 OCCURS 0,
           valfrom LIKE setleaf-valfrom,
           objnr LIKE coss-objnr,
           END OF it_setb2.
    DATA : BEGIN OF it_setd OCCURS 0,
           valfrom LIKE setleaf-valfrom,
           objnr LIKE coss-objnr,
           END OF it_setd.
    DATA : BEGIN OF it_sete OCCURS 0,
           valfrom LIKE setleaf-valfrom,
           objnr LIKE coss-objnr,
           END OF it_sete.
    DATA : BEGIN OF it_cospb OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cospb.
    DATA : BEGIN OF it_cossb OCCURS 0,
           objnr LIKE coss-objnr,
           kstar LIKE coss-kstar,
           wkg001 LIKE coss-wkg001,
           END OF it_cossb.
    DATA : BEGIN OF it_bkpf OCCURS 0,
           belnr LIKE bkpf-belnr,
           END OF it_bkpf.
    DATA : BEGIN OF it_cossd1 OCCURS 0,
          objnr LIKE coss-objnr,
           belnr  LIKE bseg-belnr,
           wkg001 LIKE coss-wkg001,
           END OF it_cossd1.
    DATA : BEGIN OF it_cossd2 OCCURS 0,
           objnr LIKE coss-objnr,
           kstar LIKE coss-kstar,
           wkg001 LIKE coss-wkg001,
           END OF it_cossd2.
    DATA : BEGIN OF it_cosse OCCURS 0,
           objnr LIKE coss-objnr,
           kstar LIKE coss-kstar,
           wkg001 LIKE coss-wkg001,
           END OF it_cosse.
    dATA : itab_period TYPE string .
    DATA : BEGIN OF it_cospb_sum OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cospb_sum.
    DATA : BEGIN OF it_cossb_sum OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cossb_sum.
    DATA : BEGIN OF it_cossd1_sum OCCURS 0,
           kstar  LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cossd1_sum.
    DATA : BEGIN OF it_cossd2_sum OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cossd2_sum.
    DATA : BEGIN OF it_cosse_sum OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_cosse_sum.
    DATA : BEGIN OF it_unmatch OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_unmatch.
    DATA : BEGIN OF it_merge OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_merge.
    DATA : BEGIN OF it_merged OCCURS 0,
           kstar LIKE cosp-kstar,
           wkg001 LIKE cosp-wkg001,
           END OF it_merged.
    DATA : BEGIN OF it_field OCCURS 0,
           fielda TYPE p DECIMALS 2,
           fieldb TYPE p DECIMALS 2,
           fieldc TYPE p DECIMALS 2,
           fieldd TYPE p DECIMALS 2,
           fielde TYPE p DECIMALS 2,
           fieldf TYPE p DECIMALS 2,
           END OF it_field.
    DATA : v_fielda TYPE p DECIMALS 2,
           v_fieldb TYPE p DECIMALS 2,
          v_fieldc TYPE p DECIMALS 2,
           v_fieldd TYPE p DECIMALS 2,
           v_fielde TYPE p DECIMALS 2,
          v_fieldf TYPE p DECIMALS 2,
           v_objnr LIKE coss-objnr,
          v_kstar LIKE cosp-kstar,
           v_field(1).
          yr(4),
          mon(2),
          day(2),
          v_date LIKE sy-datum,
          v_date1 LIKE sy-datum,
          flag1 TYPE c ,
          flag2 TYPE c ,
          flag3 TYPE c ,
          flag4 TYPE c,
          flag5 TYPE c.
    data : begin of iaufk occurs 0 ,
           objnr like aufk-objnr,
           end of iaufk .
    DATA : BEGIN OF IFEK OCCURS 0 ,
           KSTAR LIKE COEP-KSTAR,
           WTGBTR LIKE COEP-WTGBTR,
           OBJNR  LIKE COEP-OBJNR,
           END OF IFEK.
    DATA : BEGIN OF IMAT OCCURS 0 ,
           KSTAR LIKE COSP-KSTAR,
           WTG001 LIKE COSP-WTG001,
           WTG002 LIKE COSP-WTG002,
           WTG003 LIKE COSP-WTG003,
           WTG004 LIKE COSP-WTG004,
           WTG005 LIKE COSP-WTG005,
           WTG006 LIKE COSP-WTG006,
           WTG007 LIKE COSP-WTG007,
           WTG008 LIKE COSP-WTG008,
           WTG009 LIKE COSP-WTG009,
           WTG010 LIKE COSP-WTG010,
           WTG011 LIKE COSP-WTG011,
           WTG012 LIKE COSP-WTG012,
           WTG013 LIKE COSP-WTG013,
           WTG014 LIKE COSP-WTG014,
           WTG015 LIKE COSP-WTG015,
           WTG016 LIKE COSP-WTG016,
           OBJNR LIKE COSP-OBJNR,
           END OF IMAT.
    data : begin of imgk occurs 0 ,
            kstar like coep-kstar,
            wtgbtr like coep-wtgbtr,
            objnr   like coep-objnr,
            end of imgk.
    data : begin of iwvk occurs 0 ,
            kstar  like coep-kstar,
            wtgbtr like coep-wtgbtr,
            objnr  like coep-objnr,
            end of iwvk.
    AT SELECTION-SCREEN.
      PERFORM validity.
    START-OF-SELECTION .
      PERFORM get_period.
      PERFORM fill_skb1.
      PERFORM get_aufk .
      perform get_COEP .
      PERFORM GET_MGK.
      perform get_wvk.
      PERFORM fill_it_glt0.
      PERFORM fill_it_glt0_sum.
      PERFORM fill_set.
      PERFORM fill_cospb_cossb.
      PERFORM sum_cospb_cossb.
      PERFORM fill_cossd1_cossd2.
      PERFORM sum_cossd1_cossd2.
      PERFORM fill_cosse.
      PERFORM sum_cosse.
      PERFORM fill_it_unmatch.
      PERFORM fill_it_merge.
      PERFORM fill_it_merged.
      PERFORM fill_it_fieldb.
      PERFORM fill_it_fieldc.
      PERFORM fill_it_fieldd.
      PERFORM fill_it_fieldf.
      PERFORM display.
    PERFORM fill_it_fielde.
    TOP-OF-PAGE.
      PERFORM header.
    AT LINE-SELECTION.
      PERFORM list_display.
    *&      Form  VALIDITY
          text
    -->  p1        text
    <--  p2        text
    FORM validity .
      SELECT SINGLE bukrs FROM t001 INTO t001-bukrs WHERE bukrs = p_bukrs.
      IF sy-subrc NE 0.
      ENDIF.
    ENDFORM.                    " VALIDITY
    *&      Form  FILL_SKB1
          text
    -->  p1        text
    <--  p2        text
    FORM fill_skb1 .
      SELECT saknr FROM skb1 INTO TABLE it_skb1
               WHERE bukrs = p_bukrs
               AND   saknr LIKE '000004%' .
      SORT it_skb1 BY saknr.
    ENDFORM.                                                    " FILL_SKB1
    *&      Form  FILL_IT_GLT0
          text
    -->  p1        text
    <--  p2        text
    FORM fill_it_glt0 .
      CASE p_period.
        WHEN '1'  OR '01'.
          SELECT racct hsl01
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '2' .
          SELECT racct hsl02
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '3' .
          SELECT racct hsl03
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '4' .
          SELECT racct hsl04
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '5' .
          SELECT racct hsl05
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '6' .
          SELECT racct hsl06
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '7' .
          SELECT racct hsl07
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '8' .
          SELECT racct hsl08
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '9' .
          SELECT racct hsl09
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '10' .
          SELECT racct hsl10
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '11' .
          SELECT racct hsl11
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '12' .
          SELECT racct hsl12
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '13' .
          SELECT racct hsl13
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '14' .
          SELECT racct hsl14
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '15' .
          SELECT racct hsl15
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
        WHEN '16' .
          SELECT racct hsl16
                 FROM glt0
                 INTO TABLE it_glt0
                 FOR ALL ENTRIES IN it_skb1
                 WHERE racct = it_skb1-saknr
                   AND   bukrs = p_bukrs
                   AND   drcrk = 'S'
                   AND   ryear = p_year.
                  AND   rtcur = 'INR' .
      ENDCASE.
      SORT it_glt0 BY racct.
    ENDFORM.                    " FILL_IT_GLT0
    *&      Form  FILL_IT_GLT0_SUM
          text
    -->  p1        text
    <--  p2        text
    FORM fill_it_glt0_sum .
      SORT it_glt0 BY racct.
      LOOP AT it_glt0.
        it_glt0_sum-racct = it_glt0-racct.
        AT END OF racct.
          SUM.
          it_glt0_sum-hsl01 = it_glt0-hsl01.
          APPEND it_glt0_sum.
          CLEAR it_glt0_sum.
        ENDAT.
      ENDLOOP.
      LOOP AT it_glt0_sum.
        AT LAST.
          SUM.
         it_fielda-fielda = it_glt0_SUM-hsl01.
          it_field-fielda = it_glt0_sum-hsl01.
          APPEND it_field.
        ENDAT.
      ENDLOOP.
    ENDFORM.                    " FILL_IT_GLT0_SUM
    *&      Form  fill_SET
          text
    -->  p1        text
    <--  p2        text
    FORM fill_set .
      SELECT valfrom valto FROM setleaf INTO TABLE it_setb1
                          WHERE setclass = '0102' AND
                                setname IN ('FIXED', 'VARIABLE') .
      SORT it_setb1 BY valfrom .
      SELECT valfrom FROM setleaf INTO CORRESPONDING FIELDS OF TABLE it_setb2
                         WHERE setclass = '0101' AND
                               setname = 'JL-VVGK'.
      SORT it_setb2 BY valfrom .
      SELECT valfrom FROM setleaf INTO CORRESPONDING FIELDS OF TABLE it_setd
                          WHERE setclass = '0102' AND
                                setname IN ('FBK', 'MAT').
      SORT it_setd BY valfrom .
      SELECT valfrom FROM setleaf INTO CORRESPONDING FIELDS OF TABLE it_sete
                          WHERE setclass = '0102' AND
                                setname = 'CO-RECON'.
      SORT it_sete BY valfrom .
      LOOP AT it_sete.
        CONCATENATE 'KSKBX' it_sete-valfrom INTO v_objnr SEPARATED BY space.
        it_sete-objnr = v_objnr.
        MODIFY it_sete.
      ENDLOOP.
      SORT it_sete BY valfrom .
      LOOP AT it_setb2.
        CONCATENATE 'KSKBX' it_setb2-valfrom INTO v_objnr SEPARATED BY space.
        it_setb2-objnr = v_objnr.
        MODIFY it_setb2.
      ENDLOOP.
      LOOP AT it_setd.
        CONCATENATE 'KSKBX' it_setd-valfrom INTO v_objnr SEPARATED BY space.
        it_setd-objnr = v_objnr.
        MODIFY it_setd.
      ENDLOOP.
    ENDFORM.                    " fill_SET
    *&      Form  fill_cospb_cossb
          text
    -->  p1        text
    <--  p2        text
    FORM fill_cospb_cossb .
      CASE p_period.
        WHEN '1' .
          SELECT kstar wkg001 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg001 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '2' .
          SELECT kstar wkg002 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg002 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '3' .
          SELECT kstar wkg003 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg003 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '4' .
          SELECT kstar wkg004 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg004 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '5' .
          SELECT kstar wkg005 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg005 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '6' .
          SELECT kstar wkg006 FROM cosp INTO TABLE it_cospb
            FOR ALL ENTRIES IN it_setb1
                         WHERE kstar = it_setb1-valfrom
                         AND   gjahr = p_year
                        AND     vrgng = 'COIN'
                        AND     beknz = 'S'.
          SELECT objnr kstar wkg006 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '7' .
          SELECT kstar wkg007 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg007 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '8' .
          SELECT kstar wkg008 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg008 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '9' .
          SELECT kstar wkg009 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg009 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '10' .
          SELECT kstar wkg010 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg010 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '11' .
          SELECT kstar wkg011 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg011 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '12' .
          SELECT kstar wkg012 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg012 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '13' .
          SELECT kstar wkg013 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg013 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '14' .
          SELECT kstar wkg014 FROM cosp INTO TABLE it_cospb
         FOR ALL ENTRIES IN it_setb1
                      WHERE kstar = it_setb1-valfrom
                      AND   gjahr = p_year
                     AND     vrgng = 'COIN'
                     AND     beknz = 'S'.
          SELECT objnr kstar wkg014 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '15' .
          SELECT kstar wkg015 FROM cosp INTO TABLE it_cospb
          FOR ALL ENTRIES IN it_setb1
                       WHERE kstar = it_setb1-valfrom
                       AND   gjahr = p_year
                      AND     vrgng = 'COIN'
                      AND     beknz = 'S'.
          SELECT objnr kstar wkg015 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
        WHEN '16' .
          SELECT kstar wkg016 FROM cosp INTO TABLE it_cospb
           FOR ALL ENTRIES IN it_setb1
                        WHERE kstar = it_setb1-valfrom
                        AND   gjahr = p_year
                       AND     vrgng = 'COIN'
                       AND     beknz = 'S'.
          SELECT objnr kstar wkg016 FROM cosp
                           INTO TABLE it_cossb
                           FOR ALL ENTRIES IN it_setb2
                            WHERE objnr = it_setb2-objnr
                             AND  vrgng  IN ('COIN','RKIV')
                            AND   gjahr = p_year.
      ENDCASE.
      SORT it_cospb BY kstar.
      SORT it_cossb BY kstar.
    ENDFORM.                    " fill_cospb_cossb
    *&      Form  SUM_COSPB_COSSB
          text
    -->  p1        text
    <--  p2        text
    FORM sum_cospb_cossb .
      LOOP AT it_cospb.
        it_cospb_sum-kstar = it_cospb-kstar.
        AT END OF kstar.
          SUM.
          it_cospb_sum-wkg001 = it_cospb-wkg001.
          APPEND it_cospb_sum.
          CLEAR it_cospb_sum.
        ENDAT.
      ENDLOOP.
      LOOP AT it_cossb.
        it_cossb_sum-kstar = it_cossb-kstar.
        AT END OF kstar.
          SUM.
          it_cossb_sum-wkg001 = it_cossb-wkg001.
          APPEND it_cossb_sum.
          CLEAR it_cossb_sum.
        ENDAT.
      ENDLOOP.
      SORT it_cospb_sum BY kstar.
      SORT it_cossb_sum BY kstar.
    ENDFORM.                    " SUM_COSPB_COSSB
    *&      Form  fill_it_unmatch
          text
    -->  p1        text
    <--  p2        text
    FORM fill_it_unmatch .
      LOOP AT it_glt0_sum.
        READ TABLE it_cospb_sum WITH KEY kstar = it_glt0_sum-racct.
        IF sy-subrc NE 0.
          it_unmatch-kstar = it_glt0_sum-racct.
          it_unmatch-wkg001 = it_glt0_sum-hsl01.
          APPEND it_unmatch.
          CLEAR it_unmatch.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " fill_it_unmatch
    *&      Form  fill_it_merge
          text
    -->  p1        text
    <--  p2        text
    ----

    We can't really tell without seeing the code. Would you post it please? (Just the portions that are overly slow.)
    Rob

  • V V URGENT Report  for Vendor Aging

    Hi ABAP Gurus,
    I have to develop a report for VENDOR AGING. My requirement is i have to post an invoice. From Payment terms i have to get Dependent on posting date. Let us assume if payment term is 100 by adding posting date + payment term (100) i have to get due date. I'am giving I/P terms as Company code & Period. If i enter company code i have to get O/P as vendor name(lfa1-name1),vendor no(bsik-lifnr),bill no(bsik-xblnr),bill date(bsik-bldat) i.e., baseline date,amount(bsik-dmbtr) and duedate (this i have to pick from payment terms). For period i have to get O/P as 1st week bucket,2nd week bucket,3rd week bucket,4th week bucket and beyond. For this you have to take the difference b/n due date and that buckets based on this result you have to put that amount of rupees whether it is going to pay in 1st week r 2nd r 3rd r 4th or beyond this. If that due date is less than or equal to 1st week it has to come and fall in 1st week. THIS IS MY REQUIREMENT.
    For this i'am using tables BSIK,LFA1.
    Can any body send me the code on this. For this my delivery date is on monday.
    Please help me on this it's very Urgent...
    I will REWARD you the points definitely for those who help me on this.
    my mail id : [email protected]
    waiting for your VALUABLE REPLIES. Please intimate me if you send it to my mail.
    Thanks and Regards,
    Sundeep.

    Hi
    See the report code and modify as per your requirements
    REPORT  zfi_vendor_ageing
            NO STANDARD PAGE HEADING
            LINE-COUNT 58
           line-size 168
            MESSAGE-ID zh_msg.
           D A T A B A S E  T A B L E S   D E C L A R A T I O N
    TABLES: lfa1,           " Vendor Master (General)
            t001,           " Company Codes
            rfpdo.
         I N T E R N A L  T A B L E S  D E C L A R A T I O N S           *
    Internal Table for Vendor Open Items Data
    DATA: BEGIN OF int_bsik OCCURS 0,
            lifnr   LIKE bsik-lifnr,         " Vendor Number
            name1   LIKE lfa1-name1,         " Vendor Name
            shkzg   LIKE bsik-shkzg,         " Dr/Cr Indicator
            belnr   LIKE bsik-belnr,         " Document Number
            xblnr   LIKE bsik-xblnr,         " Ref Doc No
            blart   LIKE bsik-blart,         " Document Type
            zfbdt   LIKE bsik-zfbdt,         " Base Line Date
            zbd1t   LIKE bsik-zbd1t,         " Due date1
            zbd2t   LIKE bsik-zbd2t,         " Due Date2
            zbd3t   LIKE bsik-zbd3t,         " Due Date3
            waers   LIKE bsik-waers,         " Currency
            dmbtr   LIKE bsik-dmbtr,         " Amount in Local Curr
          END OF int_bsik.
    Internal Table for Amounts Sum Up Data
    DATA: BEGIN OF int_final OCCURS 0,
            lifnr   LIKE bsik-lifnr,         " Vendor Number
            name1   LIKE lfa1-name1,         " Vendor Name
            total1  LIKE bsik-dmbtr,         " Amount in Local Curr
            total2  LIKE bsik-dmbtr,         " Amount in Local Curr
            total3  LIKE bsik-dmbtr,         " Amount in Local Curr
            total4  LIKE bsik-dmbtr,         " Amount in Local Curr
            total5  LIKE bsik-dmbtr,         " Amount in Local Curr
            total6  LIKE bsik-dmbtr,         " Amount in Local Curr
            total   LIKE bsik-dmbtr,         " Amount in Local Curr
          END OF int_final.
               D A T A  D E C L A R A T I O N S
    DATA : v_flag,                          " Flag
           v_gtotal1     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal2     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal3     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal4     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal5     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal6     LIKE bsik-dmbtr,   " Amount Totals
           v_gtotal      LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal1   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal2   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal3   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal4   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal5   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal6   LIKE bsik-dmbtr,   " Amount Totals
           v_subtotal    LIKE bsik-dmbtr,   " Amount Totals
           v_date        LIKE bsik-zfbdt,   " Due Date
           v_tage1(4),                      " Age 30 days
           v_tage2(4),                      " Age 60 days
           v_tage3(4),                      " Age 90 days
           v_fir(15),                       " Column Text1
           v_sec(15),                       " Column Text2
           v_thir(15),                      " Column Text3
           v_four(17),                      " Column Text4
           v_fidd(4),                       " Days field1
           v_sedd(4),                       " Days field2
           v_thdd(4),                       " Days field3
           v_fodd(4),                       " Days field4
           v_str  TYPE  SY-LISEL,           " String
           v_str1(11),                      " String
           v_tage(3),                       " String
           v_date1(10).                     " Date field
         R A N G E   D E C L A R A T I O N S
    RANGES: r_date1 FOR bsik-zfbdt,      " Date Range 1
            r_date2 FOR bsik-zfbdt,      " Date Range 2
            r_date3 FOR bsik-zfbdt,      " Date Range 3
            r_date4 FOR bsik-zfbdt.      " Date Range 4
             S E L E C T I O N  S C R E E N                      *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr. "Vendor account
    PARAMETERS:     p_bukrs LIKE t001-bukrs. "Co. Code
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:   p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.
    "Open items at key date
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',
                p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',
                p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',
                p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.
    SELECTION-SCREEN END OF BLOCK b3.
                  A T  S E L E C T I O N  S C R E E N                   *
    AT SELECTION-SCREEN.
    Validate the screen fields
      PERFORM validate_flds.
                   S T A R T  O F  S E L E C T I O N                    *
    START-OF-SELECTION.
    Fetch main data
      PERFORM fetch_data.
                           T O P  O F  P A G E
    Header
    TOP-OF-PAGE.
      PERFORM header.
                           E N D  O F  P A G E
    Footer
    END-OF-PAGE.
      ULINE.
       T O P  O F  P A G E  D U R I N G  L I N E  S E L E C T I O N     *
    Top of Page in Secondary List
    TOP-OF-PAGE DURING LINE-SELECTION.
      PERFORM header1.
                  A T  L I N E  S E L E C T I O N                    *
    AT LINE-SELECTION.
    Perform Line Selections
      PERFORM line_selection.
                     E N D  O F  S E L E C T I O N
    END-OF-SELECTION.
    List generation
      PERFORM basic_list.
    *&      Form  validate_flds
    Validation of Selection Screen fields
    FORM validate_flds .
    Validate Vendor Code
      CLEAR lfa1-lifnr.
      SELECT lifnr UP TO 1 ROWS
          INTO lfa1-lifnr
          FROM lfa1
          WHERE lifnr IN s_lifnr AND
                spras = sy-langu.
      ENDSELECT.
      IF sy-subrc <> 0.
        MESSAGE e000 WITH 'Invalid Vendor Code range'(023).
      ENDIF.
    Validate Company Code
      CLEAR t001-bukrs.
      SELECT bukrs  UP TO 1 ROWS
          INTO t001-bukrs
          FROM t001
          WHERE bukrs =  p_bukrs AND
                spras = sy-langu.
      ENDSELECT.
      IF sy-subrc <> 0.
        MESSAGE e021.      " Invalid Company Code range
      ENDIF.
      IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR
          ( p_tage1 > p_tage4 ).
        MESSAGE e999 WITH 'Column 1 greater'(004)
                    'than Column# 2 or 3 or 4'(005).
      ENDIF.
    *column 2
      IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).
        MESSAGE e999 WITH 'Column 2 greater'(006)
                    'than Column# 3 or 4'(007).
      ENDIF.
    *column3
      IF ( p_tage3 > p_tage4 ).
        MESSAGE e999 WITH 'Column 3 greater'(008)
                    'than Column#4'(009).
      ENDIF.
    ENDFORM.                    " validate_flds
    *&      Form  fetch_data
    Fetching Data from Database Tables
    FORM fetch_data .
    Date Range Population
      r_date1-sign   = 'I'.
      r_date1-option = 'BT'.
      r_date1-low    = p_allgst.
      r_date1-high    = r_date1-low + p_tage1.
      APPEND r_date1.
      r_date2-sign   = 'I'.
      r_date2-option = 'BT'.
      r_date2-low    =  r_date1-high + 1.
      r_date2-high    = r_date1-low + p_tage2.
      APPEND r_date2.
      r_date3-sign   = 'I'.
      r_date3-option = 'BT'.
      r_date3-low    = r_date2-high + 1.
      r_date3-high    = r_date1-low + p_tage3.
      APPEND r_date3.
      r_date4-sign   = 'I'.
      r_date4-option = 'BT'.
      r_date4-low    = r_date3-high + 1.
      r_date4-high    = r_date1-low + p_tage4.
      APPEND r_date4.
    Select the Vendor Open Items data from BSIK
      SELECT l~lifnr
             l1~name1
             b~waers
             b~dmbtr
             b~zfbdt
             b~zbd1t
             b~zbd2t
             b~zbd3t
             b~belnr
             b~xblnr
             b~shkzg
             b~blart
       INTO CORRESPONDING FIELDS OF TABLE int_bsik
       FROM lfb1 AS l INNER JOIN lfa1 AS l1
                    ON llifnr  = l1lifnr
           INNER JOIN   bsik AS b
             ON llifnr  = blifnr AND
                lbukrs  = bbukrs
             WHERE l~lifnr  IN s_lifnr AND
                   l~bukrs = p_bukrs and
                   b~zfbdt le p_allgst.
      IF SY-SUBRC <> 0.
        MESSAGE i000 WITH 'No Data found'(027).
      ENDIF.
    Removing the date limit to get the due items in the past
      DELETE int_bsik WHERE
                  ( blart  NE 'RE' AND blart  NE 'KR' ) OR
                    shkzg  NE 'H'.
      SORT int_bsik BY lifnr.
    ENDFORM.                    " fetch_data
    *&      Form  header
    Display the Report Columns
    FORM header .
      v_tage1 = p_tage1 + 1.
      v_tage2 = p_tage2 + 1.
      v_tage3 = p_tage3 + 1.
      v_fidd = p_tage1.
      v_sedd = p_tage2.
      v_thdd = p_tage3.
      v_fodd = p_tage4.
      MOVE v_fodd0(4) TO v_fodd1(3).
      v_fodd+0(1) = space.
      CONCATENATE '1 to'(010) v_fidd INTO v_fir.
      CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.
      CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.
      CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.
    Standard header
      clear: v_date1, v_str, v_str1, v_tage.
      write p_allgst to v_date1.
      Move  p_tage4 to v_tage.
      concatenate '>' v_tage text-025 into v_str1.
      concatenate
      'Summary of Ageing Analysis for Vendor Open Invoices as on'(013)
       v_date1 into v_str separated by space.
      CALL FUNCTION 'Z_STANDARD_HEADER'
        EXPORTING
         title1 = 'Saudi International Petrochemical Company'(012)
         title2 = v_str.
      FORMAT COLOR OFF.
      WRITE  : /1(168) sy-uline.
      FORMAT COLOR 1 INTENSIFIED.
      WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,
            50(101) 'Invoices Due For(In Days)'(014) CENTERED,
           151 sy-vline, 168 sy-vline .
      WRITE :/1 sy-vline,  2(11)  'Vendor#'(015) CENTERED,
             13 sy-vline ,14(35) 'Vendor Name'(016) CENTERED,
             49 sy-vline,
             50(101) sy-uline,151 sy-vline,
            152(16) 'Total'(017) CENTERED,
            168 sy-vline.
      WRITE : /1 sy-vline,13 sy-vline,      49 sy-vline,
              50(16) v_fir CENTERED,        66 sy-vline,
              67(16) v_sec CENTERED,        83 sy-vline,
              84(16) v_thir CENTERED,      100 sy-vline,
             101(16) v_four CENTERED,      117 sy-vline,
             118(16) v_str1 centered,      134 sy-vline,
             135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,
             168 sy-vline.
      FORMAT COLOR OFF.
      WRITE  : /1(168) sy-uline.
    ENDFORM.                    " header
    *&      Form  basic_list
    Display the Basic List
    FORM basic_list .
      NEW-PAGE LINE-SIZE 168.
      LOOP AT int_bsik.
        CLEAR v_date.
        IF int_bsik-zbd3t <> ' '.
          v_date = int_bsik-zfbdt + int_bsik-zbd3t.
        ELSE.
          IF int_bsik-zbd2t <> ' '.
            v_date = int_bsik-zfbdt + int_bsik-zbd2t.
          ELSE.
            v_date = int_bsik-zfbdt + int_bsik-zbd1t.
          ENDIF.
        ENDIF.
        IF int_bsik-zbd1t = ' '.
          v_date = int_bsik-zfbdt.
        ENDIF.
        IF v_date IN r_date1.
          int_final-total1 =   int_final-total1 +  int_bsik-dmbtr.
        ELSEIF v_date IN r_date2.
          int_final-total2 =   int_final-total2 +  int_bsik-dmbtr.
        ELSEIF v_date IN r_date3.
          int_final-total3 =   int_final-total3 +  int_bsik-dmbtr.
        ELSEIF v_date IN r_date4.
          int_final-total4 =   int_final-total4 +  int_bsik-dmbtr.
        ELSEif v_date > r_date4-high.
          int_final-total5 =   int_final-total5 +  int_bsik-dmbtr.
        ELSEif v_date < p_allgst.
          int_final-total6 =   int_final-total6 +  int_bsik-dmbtr.
        ENDIF.
        AT END OF lifnr.
          v_flag = 1.
        ENDAT.
        IF v_flag = 1.
          int_final-lifnr = int_bsik-lifnr.
          int_final-name1 = int_bsik-name1.
          int_final-total =   int_final-total1 + int_final-total2 +
           int_final-total3 + int_final-total4 + int_final-total5 +
           int_final-total6.
          APPEND int_final.
          v_gtotal1 = v_gtotal1 + int_final-total1.
          v_gtotal2 = v_gtotal2 + int_final-total2.
          v_gtotal3 = v_gtotal3 + int_final-total3.
          v_gtotal4 = v_gtotal4 + int_final-total4.
          v_gtotal5 = v_gtotal5 + int_final-total5.
          v_gtotal6 = v_gtotal6 + int_final-total6.
          v_gtotal = v_gtotal + int_final-total.
          WRITE: /1 sy-vline,
                  2 int_final-lifnr COLOR 4 INTENSIFIED ON,
                 13 sy-vline,
                 14 int_final-name1 COLOR 4 INTENSIFIED ON,
                 49 sy-vline.
          DATA : v_rem.
          v_rem = sy-tabix MOD 2.
          IF v_rem NE 0.
            FORMAT COLOR 2 INTENSIFIED.
            WRITE :    50 int_final-total1 CURRENCY int_bsik-waers,
                       66 sy-vline,
                       67 int_final-total2 CURRENCY int_bsik-waers,
                       83 sy-vline,
                       84 int_final-total3 CURRENCY int_bsik-waers,
                      100 sy-vline,
                      101 int_final-total4 CURRENCY int_bsik-waers,
                      117 sy-vline,
                      118 int_final-total5 CURRENCY int_bsik-waers,
                      134 sy-vline,
                      135 int_final-total6 CURRENCY int_bsik-waers,
                      151 sy-vline,
                      152 int_final-total CURRENCY int_bsik-waers,
                      168 sy-vline.
          ELSE.
            WRITE :    50 int_final-total1 CURRENCY int_bsik-waers,
                       66 sy-vline,
                       67 int_final-total2 CURRENCY int_bsik-waers,
                       83 sy-vline,
                       84 int_final-total3 CURRENCY int_bsik-waers,
                      100 sy-vline,
                      101 int_final-total4 CURRENCY int_bsik-waers,
                      117 sy-vline,
                      118 int_final-total5 CURRENCY int_bsik-waers,
                      134 sy-vline,
                      135 int_final-total6 CURRENCY int_bsik-waers,
                      151 sy-vline,
                      152 int_final-total CURRENCY int_bsik-waers,
                      168 sy-vline.
          ENDIF.
          FORMAT COLOR OFF.
          HIDE int_final.
          CLEAR int_final.
          v_flag = 0.
        ENDIF.
        AT LAST.
          WRITE  : /1(168) sy-uline.
          FORMAT COLOR 3 INTENSIFIED.
          WRITE : /1 sy-vline,  2(47) 'GRAND TOTAL'(022) CENTERED,
                  49 sy-vline, 50 v_gtotal1 CURRENCY int_bsik-waers,
                  66 sy-vline, 67 v_gtotal2 CURRENCY int_bsik-waers,
                  83 sy-vline, 84 v_gtotal3 CURRENCY int_bsik-waers,
                 100 sy-vline,101 v_gtotal4 CURRENCY int_bsik-waers,
                 117 sy-vline,118 v_gtotal5 CURRENCY int_bsik-waers,
                 134 sy-vline,135 v_gtotal6 CURRENCY int_bsik-waers,
                 151 sy-vline,152 v_gtotal CURRENCY int_bsik-waers,
                 168 sy-vline.
          HIDE :  v_gtotal1,
                  v_gtotal2,
                  v_gtotal3,
                  v_gtotal4,
                  v_gtotal5,
                  v_gtotal6,
                  v_gtotal.
        ENDAT.
        FORMAT COLOR OFF.
      ENDLOOP.
      WRITE  : /1(168) sy-uline.
    ENDFORM.                    " basic_list
    *&      Form  line_selection
    When double clicked on the line display the seconday list
    FORM line_selection .
      NEW-PAGE LINE-SIZE 206.
    Sy-lsind = 1.
      DATA : v_rem,v_cnt LIKE sy-tabix.
      v_cnt = 0.
      SORT int_bsik BY belnr zfbdt.
      LOOP AT int_bsik WHERE lifnr EQ int_final-lifnr.
        v_rem = v_cnt MOD 2.
        CLEAR v_date.
        IF int_bsik-zbd3t <> ' '.
          v_date = int_bsik-zfbdt + int_bsik-zbd3t.
        ELSE.
          IF int_bsik-zbd2t <> ' '.
            v_date = int_bsik-zfbdt + int_bsik-zbd2t.
          ELSE.
            v_date = int_bsik-zfbdt + int_bsik-zbd1t.
          ENDIF.
        ENDIF.
        IF int_bsik-zbd1t = ' '.
          v_date = int_bsik-zfbdt.
        ENDIF.
        IF v_rem NE 0.
          format color 2 intensified.
          WRITE :/1 sy-vline, 2 int_bsik-belnr,
                 12 sy-vline,13 int_bsik-lifnr,
                 23 sy-vline,24 int_bsik-name1,
                 59 sy-vline,60 int_bsik-xblnr,
                 76 sy-vline,77 int_bsik-zfbdt,
                 87 sy-vline.
          WRITE : 104 sy-vline,121 sy-vline,
                  138 sy-vline,155 sy-vline,
                  172 sy-vline, 189 sy-vline,
                  190 int_bsik-dmbtr CURRENCY int_bsik-waers,
                  206 sy-vline.
          IF v_date IN r_date1.
            v_subtotal1 =   v_subtotal1 +  int_bsik-dmbtr.
            WRITE : 88 int_bsik-dmbtr  CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date2.
            v_subtotal2 =   v_subtotal2 +  int_bsik-dmbtr.
            WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date3.
            v_subtotal3 =   v_subtotal3 +  int_bsik-dmbtr.
            WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date4.
            v_subtotal4 =   v_subtotal4 +  int_bsik-dmbtr.
            WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEif v_date > r_date4-high.
            v_subtotal5 =   v_subtotal5 +  int_bsik-dmbtr.
            WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEif v_date < p_allgst.
            v_subtotal6 =   v_subtotal6 +  int_bsik-dmbtr.
            WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ENDIF.
          format color off.
        ELSE.
          WRITE :/1 sy-vline, 2 int_bsik-belnr,
                 12 sy-vline,13 int_bsik-lifnr,
                 23 sy-vline,24 int_bsik-name1,
                 59 sy-vline,60 int_bsik-xblnr,
                 76 sy-vline,77 int_bsik-zfbdt,
                 87 sy-vline.
          WRITE : 104 sy-vline,121 sy-vline,
                  138 sy-vline,155 sy-vline,
                  172 sy-vline,189 sy-vline,
                  190 int_bsik-dmbtr CURRENCY int_bsik-waers,
                  206 sy-vline.
          IF v_date IN r_date1.
            v_subtotal1 =   v_subtotal1 +  int_bsik-dmbtr.
            WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date2.
            v_subtotal2 =   v_subtotal2 +  int_bsik-dmbtr.
            WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date3.
            v_subtotal3 =   v_subtotal3 +  int_bsik-dmbtr.
            WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEIF v_date IN r_date4.
            v_subtotal4 =   v_subtotal4 +  int_bsik-dmbtr.
            WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEif v_date > r_date4-high.
            v_subtotal5 =   v_subtotal5 +  int_bsik-dmbtr.
            WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ELSEif v_date < p_allgst.
            v_subtotal6 =   v_subtotal6 +  int_bsik-dmbtr.
            WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
          ENDIF.
        ENDIF.
        FORMAT COLOR OFF.
        v_cnt = v_cnt + 1.
      ENDLOOP.
      WRITE : /1(206) sy-uline.
      v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3
                  + v_subtotal4 + v_subtotal5 + v_subtotal6.
      FORMAT COLOR 3 INTENSIFIED.
      WRITE : /1 sy-vline,
                 2(85) 'Total'(017) CENTERED CURRENCY int_bsik-waers ,
                 87 sy-vline,
                 88 v_subtotal1 CURRENCY int_bsik-waers,
                104 sy-vline,
                105 v_subtotal2 CURRENCY int_bsik-waers,
                121 sy-vline,
                122 v_subtotal3 CURRENCY int_bsik-waers,
                138 sy-vline,
                139 v_subtotal4 CURRENCY int_bsik-waers,
                155 sy-vline,
                156 v_subtotal5 CURRENCY int_bsik-waers,
                172 sy-vline,
                173 v_subtotal6 CURRENCY int_bsik-waers,
                189 sy-vline,
                190 v_subtotal CURRENCY int_bsik-waers,
                206 sy-vline.
      FORMAT COLOR OFF.
      WRITE : /1(206) sy-uline.
      CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,
              v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,
              v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.
    ENDFORM.                    " line_selection
    *&      Form  header1
    Secondary List Header
    FORM header1 .
    Standard header
      clear: v_date1, v_str, v_str1, v_tage.
      write p_allgst to v_date1.
      Move  p_tage4 to v_tage.
      concatenate '>' v_tage text-025 into v_str1.
      concatenate
       'Details of Ageing Analysis for Vendor Open Invoices as on'(024)
        v_date1 into v_str separated by space.
      CALL FUNCTION 'Z_STANDARD_HEADER'
        EXPORTING
         title1 = 'Company'(012)
         title2 =  v_str.
      FORMAT COLOR 1 intensified.
      WRITE  :/1(206) sy-uline.
      WRITE  :/1 sy-vline,12 sy-vline ,
              23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,
              88(101) 'Invoices Due For(In Days)'(014) CENTERED,
             189 sy-vline,206 sy-vline.
      WRITE  : /1 sy-vline,  2(10) 'Doc Number'(021) CENTERED,
               12 sy-vline, 13(10) 'Vendor#'(015) CENTERED,
               23 sy-vline, 24(35) 'Vendor Name'(016) CENTERED,
               59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,
               76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,
               87 sy-vline, 88(101) sy-uline,
              189 sy-vline,190(16) 'Total'(017) CENTERED,
              206 sy-vline.
      WRITE : /1 sy-vline, 12 sy-vline,
               23 sy-vline,59 sy-vline,
               76 sy-vline,87 sy-vline,
               88(16) v_fir CENTERED, 104 sy-vline,
              105(16) v_sec CENTERED, 121 sy-vline,
              122(16) v_thir CENTERED, 138 sy-vline,
              139(16) v_four CENTERED, 155 sy-vline,
              156(16) v_str1 CENTERED,
              172    sy-vline,
              173(16) 'Already Overdue'(018) CENTERED,
              189 sy-vline,
              206 sy-vline.
              format color off.
      WRITE  : /1(206) sy-uline.
    ENDFORM.                                                    " header1
    Reward points if useful
    Regards
    Anji

  • Alv Report for invoice details

    Dear All,
                 I need to develop one alv report for following details. i developed coding for this requirment but i am getting some error.kindley help me to how to move data from different internal table to final internal table. I used LOOP AT and READ Statement even i didn't get any output.
    kindley help me out.
    TYPES: BEGIN OF XT_TAB,
             LIFNR  LIKE LFA1-LIFNR,
             NAME1  LIKE LFA1-NAME1,
             STCD1  LIKE LFA1-STCD1,
             STCD2  LIKE LFA1-STCD2,
             STCD3  LIKE LFA1-STCD3,
             STCD4  LIKE LFA1-STCD4,
           END OF XT_TAB.
    TYPES: BEGIN OF YT_TAB,
            BUKRS LIKE BSEG-BUKRS,
            BELNR LIKE BSEG-BELNR,
            BUZEI LIKE BSEG-BUZEI,
            LIFNR LIKE BSEG-LIFNR,
            GJAHR LIKE BSEG-GJAHR,
           END OF YT_TAB.
    TYPES: BEGIN OF ZT_TAB,
            LIFNR  LIKE LFA1-LIFNR,
            NAME1  LIKE LFA1-NAME1,
            STCD2  LIKE LFA1-STCD2,
            BELNR  LIKE BSEG-BELNR,
            BUZEI  LIKE BSEG-BUZEI,
            GJAHR  LIKE BSEG-GJAHR,
           END OF ZT_TAB.
           I N T E R N A L   T A B L E   D E C L A R A T I O N S         *
    *-----Internal table to store data
    DATA: ITAB1   TYPE STANDARD TABLE OF XT_TAB INITIAL SIZE 0,
          WA_TAB1 TYPE XT_TAB.
    DATA: ITAB2   TYPE STANDARD TABLE OF YT_TAB INITIAL SIZE 0,
          WA_TAB2 TYPE YT_TAB.
    DATA:   ITAB  TYPE STANDARD TABLE OF  ZT_TAB  WITH HEADER LINE,
            WA_ITAB TYPE ZT_TAB,
            ITAB_FINAL2 TYPE STANDARD TABLE OF ZT_TAB.
    DATA: ITAB_TEMP1 TYPE STANDARD TABLE OF ZT_TAB  WITH HEADER LINE.
                    Selection Screen Declarations                        *
    SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN begin OF LINE.
    SELECTION-SCREEN COMMENT (23) text-003 FOR FIELD P_LIFNR.
    PARAMETERS P_LIFNR LIKE LFA1-LIFNR OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK bk1.
    START-OF-SELECTION.
          PERFORM XTRACT_DATA.
    END-OF-SELECTION.
    *-----Filling the Output table
      PERFORM populate_main_table.
          PERFORM BUILD_FIELDCATALOG.
         PERFORM SORTING.
          PERFORM BUILD_LAYOUT.
          PERFORM BUILD_ALV_GRID_DISPLAY.
         Form  XTRACT_DATA
    FORM XTRACT_DATA .
    *SELECT
          a~LIFNR
          a~NAME1
          a~STCD2
          b~BELNR
          b~BUZEI
          b~GJAHR
    INTO TABLE ITAB
    FROM LFA1 as a INNER JOIN BSEG as b
      ON  aLIFNR = bLIFNR
    WHERE  a~LIFNR = P_LIFNR.
    SELECT LIFNR
           NAME1
           STCD1
           STCD2
           STCD3
           STCD4
      FROM LFA1
      INTO TABLE ITAB1
      WHERE LIFNR = P_LIFNR.
    IF NOT ITAB1[] IS INITIAL.
        SORT ITAB1 BY LIFNR.
        SELECT BELNR
               BUZEI
               LIFNR
               GJAHR
    INTO TABLE ITAB2
          FROM BSEG
    FOR ALL ENTRIES IN ITAB1
    WHERE LIFNR = ITAB1-LIFNR.
    ENDIF.
    ENDFORM.                    " XTRACT_DATA
    *&      Form  POPULATE_MAIN_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_MAIN_TABLE .
       LOOP AT ITAB1 INTO WA_TAB1.
               ITAB-LIFNR = ITAB1-LIFNR.
               ITAB-NAME1 = ITAB1-NAME1.
               ITAB-STCD2 = ITAB1-STCD2.
       READ TABLE ITAB2 INTO WA_TAB2 WITH KEY LIFNR = WA_TAB1-LIFNR.
               IF sy-subrc = 0.
               ITAB-BELNR = ITAB1-BELNR.
               ITAB-BUZEI = ITAB1-BUZEI.
               ITAB-GJAHR = ITAB1-GJAHR.
               ENDIF.
      ENDLOOP.
      ENDFORM.                    " POPULATE_MAIN_TABLE
         Form  BUILD_FIELDCATALOG
    FORM BUILD_FIELDCATALOG .
      REFRESH t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 1.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor Number'.
      wa_fcat-seltext_m = 'Vendor Number'.
      wa_fcat-seltext_l = 'Vendor Number'.
      wa_fcat-fieldname = 'LIFNR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 2.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor Name'.
      wa_fcat-seltext_m = 'Vendor Name'.
      wa_fcat-seltext_l = 'Vendor Name'.
      wa_fcat-fieldname = 'NAME1'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 3.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor TIN Number'.
      wa_fcat-seltext_m = 'Vendor TIN Number'.
      wa_fcat-seltext_l = 'Vendor TIN Number'.
      wa_fcat-fieldname = 'STCD2'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 4.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Document No'.
      wa_fcat-seltext_m = 'Document No'.
      wa_fcat-seltext_l = 'Document No'.
      wa_fcat-fieldname = 'BELNR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 5.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Item Number'.
      wa_fcat-seltext_m = 'Item Number'.
      wa_fcat-seltext_l = 'Item Number'.
      wa_fcat-fieldname = 'BUZEI'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 6.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Fiscal Year'.
      wa_fcat-seltext_m = 'Fiscal Year'.
      wa_fcat-seltext_l = 'Fiscal Year'.
      wa_fcat-fieldname = 'GJAHR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
    ENDFORM.                    " BUILD_FIELDCATALOG
         Form  BUILD_LAYOUT
    FORM BUILD_LAYOUT .
    GD_LAYOUT-NO_INPUT = 'X'.
    GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    GD_LAYOUT-TOTALS_TEXT = 'TOTALS'.
    ENDFORM.                    " BUILD_LAYOUT
         Form  BUILD_ALV_GRID_DISPLAY
    FORM BUILD_ALV_GRID_DISPLAY .
    gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = gd_repid
                i_callback_top_of_page  = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = gd_layout
                it_fieldcat             = t_fcat[]
                it_events               = gt_events
                is_print                = gd_prntparams
                it_sort                 = it_sortcat[]
                i_save                  = 'X'
           TABLES
                t_outtab                = ITAB
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
    thanks and regards
    Murugesh

    TYPES: BEGIN OF XT_TAB,
             LIFNR  LIKE LFA1-LIFNR,
             NAME1  LIKE LFA1-NAME1,
             STCD1  LIKE LFA1-STCD1,
             STCD2  LIKE LFA1-STCD2,
             STCD3  LIKE LFA1-STCD3,
             STCD4  LIKE LFA1-STCD4,
           END OF XT_TAB.
    TYPES: BEGIN OF YT_TAB,
            BUKRS LIKE BSEG-BUKRS,
            BELNR LIKE BSEG-BELNR,
            BUZEI LIKE BSEG-BUZEI,
            LIFNR LIKE BSEG-LIFNR,
            GJAHR LIKE BSEG-GJAHR,
           END OF YT_TAB.
    TYPES: BEGIN OF ZT_TAB,
            LIFNR  LIKE LFA1-LIFNR,
            NAME1  LIKE LFA1-NAME1,
            STCD2  LIKE LFA1-STCD2,
            BELNR  LIKE BSEG-BELNR,
            BUZEI  LIKE BSEG-BUZEI,
            GJAHR  LIKE BSEG-GJAHR,
           END OF ZT_TAB.
           I N T E R N A L   T A B L E   D E C L A R A T I O N S         *
    *-----Internal table to store data
    DATA: ITAB1   TYPE STANDARD TABLE OF XT_TAB INITIAL SIZE 0,
          WA_TAB1 TYPE XT_TAB.
    DATA: ITAB2   TYPE STANDARD TABLE OF YT_TAB INITIAL SIZE 0,
          WA_TAB2 TYPE YT_TAB.
    DATA:   ITAB  TYPE STANDARD TABLE OF  ZT_TAB  WITH HEADER LINE,
            WA_ITAB TYPE ZT_TAB,
            ITAB_FINAL2 TYPE STANDARD TABLE OF ZT_TAB.
    DATA: ITAB_TEMP1 TYPE STANDARD TABLE OF ZT_TAB  WITH HEADER LINE.
                    Selection Screen Declarations                        *
    SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN begin OF LINE.
    SELECTION-SCREEN COMMENT (23) text-003 FOR FIELD P_LIFNR.
    PARAMETERS P_LIFNR LIKE LFA1-LIFNR OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK bk1.
    START-OF-SELECTION.
          PERFORM XTRACT_DATA.
    END-OF-SELECTION.
    *-----Filling the Output table
      PERFORM populate_main_table.
          PERFORM BUILD_FIELDCATALOG.
         PERFORM SORTING.
          PERFORM BUILD_LAYOUT.
          PERFORM BUILD_ALV_GRID_DISPLAY.
         Form  XTRACT_DATA
    FORM XTRACT_DATA .
    *SELECT
          a~LIFNR
          a~NAME1
          a~STCD2
          b~BELNR
          b~BUZEI
          b~GJAHR
    INTO TABLE ITAB
    FROM LFA1 as a INNER JOIN BSEG as b
      ON  aLIFNR = bLIFNR
    WHERE  a~LIFNR = P_LIFNR.
    SELECT LIFNR
           NAME1
           STCD1
           STCD2
           STCD3
           STCD4
      FROM LFA1
      INTO TABLE ITAB1
      WHERE LIFNR = P_LIFNR.
    IF NOT ITAB1[] IS INITIAL.
        SORT ITAB1 BY LIFNR.
        SELECT BELNR
               BUZEI
               LIFNR
               GJAHR
    INTO TABLE ITAB2
          FROM BSEG
    FOR ALL ENTRIES IN ITAB1
    WHERE LIFNR = itab1-lifnr.
    ENDIF.
    ENDFORM.                    " XTRACT_DATA
    *&      Form  POPULATE_MAIN_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_MAIN_TABLE .
      LOOP AT ITAB1 INTO WA_TAB1.
              ITAB-LIFNR = ITAB1-LIFNR.
              ITAB-NAME1 = ITAB1-NAME1.
              ITAB-STCD2 = ITAB1-STCD2.
      READ TABLE ITAB2 INTO WA_TAB2 WITH KEY LIFNR = WA_TAB1-LIFNR.
              IF sy-subrc = 0.
              ITAB-BELNR = ITAB1-BELNR.
              ITAB-BUZEI = ITAB1-BUZEI.
              ITAB-GJAHR = ITAB1-GJAHR.
              ENDIF.
    ENDLOOP.
    LOOP AT itab1 INTO wa_tab1.
       MOVE:  wa_tab1-lifnr TO itab-lifnr,
              wa_tab1-name1 TO itab-name1,
              wa_tab1-stcd2 TO itab-stcd2.
          Append itab.
      READ TABLE itab2 TRANSPORTING NO FIELDS WITH KEY lifnr = wa_tab1-lifnr.
      IF sy-subrc eq 0.
        MOVE: wa_tab2-lifnr TO itab-lifnr,
              wa_tab2-belnr TO itab-belnr,
              wa_tab2-buzei TO itab-buzei,
              wa_tab2-gjahr TO itab-gjahr.
      Append itab.
    endif.
    endloop.
    *LOOP AT t_agr_tcodes INTO s_agr_tcodes.
    READ TABLE t_tstc
    TRANSPORTING NO FIELDS
    WITH KEY tcode = s_agr_tcodes-tcode.
    IF sy-subrc eq 0.
       MOVE: s_agr_tcodes-tcode TO it_agr_tcodes-tcode,
             s_agr_tcodes-agr_name to it_agr_tcodes-agr_name,
             t_tstc-pgmna to it_agr_pgmna.
    *Append it_agr_tcodes.
    *endif.
    *endloop.
      ENDFORM.                    " POPULATE_MAIN_TABLE
         Form  BUILD_FIELDCATALOG
    FORM BUILD_FIELDCATALOG .
      REFRESH t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 1.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor Number'.
      wa_fcat-seltext_m = 'Vendor Number'.
      wa_fcat-seltext_l = 'Vendor Number'.
      wa_fcat-fieldname = 'LIFNR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 2.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor Name'.
      wa_fcat-seltext_m = 'Vendor Name'.
      wa_fcat-seltext_l = 'Vendor Name'.
      wa_fcat-fieldname = 'NAME1'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 3.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Vendor TIN Number'.
      wa_fcat-seltext_m = 'Vendor TIN Number'.
      wa_fcat-seltext_l = 'Vendor TIN Number'.
      wa_fcat-fieldname = 'STCD2'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 4.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Document No'.
      wa_fcat-seltext_m = 'Document No'.
      wa_fcat-seltext_l = 'Document No'.
      wa_fcat-fieldname = 'BELNR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 5.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Item Number'.
      wa_fcat-seltext_m = 'Item Number'.
      wa_fcat-seltext_l = 'Item Number'.
      wa_fcat-fieldname = 'BUZEI'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
      wa_fcat-col_pos = 6.
      wa_fcat-row_pos = 1.
      wa_fcat-seltext_s = 'Fiscal Year'.
      wa_fcat-seltext_m = 'Fiscal Year'.
      wa_fcat-seltext_l = 'Fiscal Year'.
      wa_fcat-fieldname = 'GJAHR'.
      wa_fcat-tabname = 'ITAB'.
      APPEND wa_fcat TO t_fcat.
      CLEAR t_fcat.
    ENDFORM.                    " BUILD_FIELDCATALOG
         Form  BUILD_LAYOUT
    FORM BUILD_LAYOUT .
    GD_LAYOUT-NO_INPUT = 'X'.
    GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    GD_LAYOUT-TOTALS_TEXT = 'TOTALS'.
    ENDFORM.                    " BUILD_LAYOUT
         Form  BUILD_ALV_GRID_DISPLAY
    FORM BUILD_ALV_GRID_DISPLAY .
    gd_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = gd_repid
                i_callback_top_of_page  = 'TOP-OF-PAGE'  "see FORM
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = gd_layout
                it_fieldcat             = t_fcat[]
                it_events               = gt_events
                is_print                = gd_prntparams
                it_sort                 = it_sortcat[]
                i_save                  = 'X'
           TABLES
                t_outtab                = ITAB
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
    Edited by: Murugesh P on Apr 6, 2009 10:54 AM
    Edited by: Murugesh P on Apr 6, 2009 10:54 AM

  • Report for two sponsors on one project

    I would like to make report for two sponsors: Each of them want to see only a Cash flow (Budgeted Expense Cost and Actual Expense Cost) that is related to him/her.
    It is possible to do something similar in two ways:
    1. Activity Usage Spreadsheet - Spreadsheet Fields - Time interval - Cost - Budgeted Expense Cost and Actual Expense Cost
    2. Activity Usage Profile - Activity Usage Profile Options: Filter by bars/curver (Expenses); Show Bars/Curves (Budgeted and Actual)
    while Timescale: Show primary Dates (Type - Calendar; Date interval - Quarter/Months).
    But in both way Expenses are grouped together and it is not possible to differentiate who is financing what.
    Thanks!

    Yes, we are only replacing image files. So--since no one here
    is familiar with merge-- if we do as you suggest using Windows
    Explorer, the steps will be:
    1) One writer works on his/her computer's local drive and the
    other writer works on his/her computer 's local drive (no shared
    drive).
    2) Each writer creates an Image folder on his/her computer's
    local drive
    3) Each writer captures (Snag-it) images from the
    application, opens the captured image in Photoshop and sizes the
    new image file to match the size and width, border, etc parameters
    of the image in the current Help's HTML code. (writer will have to
    view HTML code to get image size)
    4) Each writer will copy the new image files into his/her
    local drive-based Image folder--giving the new image the same name
    as the image that is being replaced).
    5) The image files in the first writer's Image folder are
    then copied to the Image other writer's Image folder.
    6) The new Image folder containing all the new image files is
    copied into the RoboHelp source directory, overwriting the old
    Image folder.
    7) The writer with the new Image folder (containing all the
    new images) then generates and publishers the RoboHelp project.
    Is this correct?

  • REPORT FOR SUBCONTRACTING

    DEAR FRIENDS,
    I am making a program for tracking the materials given (mb1b 541 movt.) for subcontracting and taken by me (101 for actual good receipt, 543 for the given material- stock type inward, 545 for the scrap returns). but while i made the program i am unable to pick up the materials BOM from the PO which is essential to take the difference between these and the supplied quantities taken-in by GR.
    following is the program.
    Please suggest the changes.   Thanks,
    Deepak
    *& Report  ZMM_SUBCONTRACTING_PO_REPORT
    *& Author:
    *& Date  :
    *& Reason: Sub Contracting PO Report.
    *&         Find Discreprancy in PO and BOM. according to 543 and 545
    REPORT  ZMM_SUBCONTRACTING_PO_REPORT NO STANDARD PAGE HEADING
                                         LINE-SIZE 157.
    *& TABLES DECLARATION
    TABLES: EKKO,
            EKPO,
            EKBE,
            ENT5303.
    *& SELECTION-SCREEN.
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_MATNR FOR EKPO-MATNR,
                    S_WERKS FOR EKBE-WERKS OBLIGATORY.
    PARAMETERS:     P_BUKRS LIKE EKKO-BUKRS OBLIGATORY.
    SELECT-OPTIONS: S_BUDAT FOR EKBE-BUDAT OBLIGATORY,
                    S_EBELN FOR EKKO-EBELN,
                    S_BELNR FOR EKBE-BELNR,
                    S_GJAHR FOR EKBE-GJAHR.
    SELECTION-SCREEN: END OF BLOCK B1.
    *& INTERNAL TABLES DECLARATION.
    DATA: BEGIN OF IT_EKKO OCCURS 0,
          EBELN LIKE EKKO-EBELN,
          END OF IT_EKKO.
    DATA: BEGIN OF IT_EKBE OCCURS 0,
          EBELN LIKE EKBE-EBELN,
          EBELP LIKE EKBE-EBELP,
          GJAHR LIKE EKBE-GJAHR,
          BELNR LIKE EKBE-BELNR,
          BUZEI LIKE EKBE-BUZEI,
          BEWTP LIKE EKBE-BEWTP,
          BWART LIKE EKBE-BWART,
          BUDAT LIKE EKBE-BUDAT,
          MENGE LIKE EKBE-MENGE,
          DMBTR LIKE EKBE-DMBTR,
          LFBNR LIKE EKBE-LFBNR,
          MATNR LIKE EKBE-MATNR,
          WERKS LIKE EKBE-WERKS,
          BUKRS LIKE WB2_V_EKKO_EKPO2-BUKRS,
          MENGE_I LIKE WB2_V_EKKO_EKPO2-MENGE_I,
          LIFNR LIKE WB2_V_EKKO_EKPO2-LIFNR,
          COUNT TYPE P DECIMALS 4,
          BMENGE LIKE EKBE-MENGE,
          MENGE101 LIKE EKBE-MENGE,
          MENGE543 LIKE EKBE-MENGE,
          MENGE545 LIKE EKBE-MENGE,
          DIFFER   LIKE EKBE-MENGE,
          TMENGE   LIKE EKBE-MENGE,
          RATE     LIKE EKBE-DMBTR,
          NAME1 LIKE LFA1-NAME1,
          LINE_COLOR(4),
          END OF IT_EKBE.
    DATA: WA LIKE IT_EKBE.
    DATA: BEGIN OF IT_FINAL OCCURS 0.
          INCLUDE STRUCTURE IT_EKBE.
    DATA: END OF IT_FINAL.
    DATA: BEGIN OF IT_FINAL_TEMP OCCURS 0.
          INCLUDE STRUCTURE IT_EKBE.
    DATA: END OF IT_FINAL_TEMP.
    DATA: BEGIN OF IT_BOM OCCURS 0.
          INCLUDE STRUCTURE CAPP_ITM.
    DATA: END OF IT_BOM.
    DATA: BEGIN OF IT_BOM_HEAD OCCURS 0.
          INCLUDE STRUCTURE CAPP_BOM.
    DATA: END OF IT_BOM_HEAD.
    *& DATA DECLARATION.
    DATA: COUNT TYPE P DECIMALS 4,
          V_CNT TYPE P DECIMALS 4 VALUE '0.0001' ,
          V_MENGE LIKE EKBE-MENGE,
          V_DELETE.
    TYPE-POOLS: slis.
    DATA:  l_date(12) TYPE c,
           l_date1(12) TYPE c,
           l_time(10) TYPE c,
           l_list(60) TYPE c.
    DATA:  CATALOG TYPE SLIS_FIELDCAT_ALV, "FIELDCAT
           TCATALOG TYPE SLIS_T_FIELDCAT_ALV, "IT FIELDCAT
           EVENT TYPE SLIS_ALV_EVENT, "EVENT
           TEVENT TYPE SLIS_T_EVENT,  "IT EVENT
           LAYOUT TYPE SLIS_LAYOUT_ALV, "LAYOUT
           PG_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
           PG_HEAD TYPE SLIS_T_LISTHEADER,
           EXIT1  TYPE SLIS_EXIT_BY_USER,
           VAR1 LIKE DISVARIANT,
           VAR2 LIKE DISVARIANT.
    *& START-OF-SELECTION.
    START-OF-SELECTION.
    PERFORM PROCESS_SELECTION.
    PERFORM DELETE_CANCELLED_DOCUMENTS.
    PERFORM EXPLODE_BOM_FOR_101.
    SORT IT_FINAL BY COUNT.
    PERFORM DISPLAY_OUTPUT.
    FREE IT_FINAL_TEMP.
    *& ALV FORMATTING
    *&                  ALV DISPLAY
      PERFORM GENERATE_ALV_FIELDCAT.
    PERFORM EVENTS USING TEVENT.
    PERFORM TEXT USING PG_HEAD.
      PERFORM ALV_SHOW.
    *& FORM PROCESS_SELECTION.
    FORM PROCESS_SELECTION.
    SELECT
      A~EBELN
      A~EBELP
      A~GJAHR
      A~BELNR
      A~BUZEI
      A~BEWTP
      A~BWART
      A~BUDAT
      A~MENGE
      A~DMBTR
      A~LFBNR
      A~MATNR
      A~WERKS
      B~BUKRS
      B~MENGE_I
      B~LIFNR
    FROM
      EKBE AS A
    JOIN
      WB2_V_EKKO_EKPO2 AS B
    ON
      AEBELN = BEBELN AND
      AEBELP = BEBELP_I
    INTO
      CORRESPONDING FIELDS OF TABLE IT_EKBE
    WHERE
    A~MATNR IN S_MATNR AND
      A~WERKS IN S_WERKS AND
      A~BUDAT IN S_BUDAT AND
      A~EBELN IN S_EBELN AND
      A~BELNR IN S_BELNR AND
      A~GJAHR IN S_GJAHR AND
      A~VGABE IN ('1', '7') AND
      A~BEWTP IN ('E', 'O') AND
      ( A~BWART IN ('101', '545', '543') OR
      ( ABWART = '102' AND ABEWTP = 'E' ) ) AND
      B~BUKRS = P_BUKRS AND
      B~BSTYP = 'F' AND
      B~BSART = 'SUBC'."AND
    B~LOEKZ <> 'X'.
    SORT IT_EKBE BY EBELN EBELP GJAHR BELNR BUZEI.
    ENDFORM.
    *& FORM DELETE_CANCELLED_DOCUMENTS.
    FORM DELETE_CANCELLED_DOCUMENTS.
    DELETE IT_EKBE WHERE BWART = '102' AND BEWTP <> 'E'.
    LOOP AT IT_EKBE WHERE BWART = '102'.
      READ TABLE IT_EKBE INTO WA WITH KEY BELNR = IT_EKBE-LFBNR.
      IF SY-SUBRC = 0.
        DELETE IT_EKBE WHERE BELNR = WA-BELNR.
      ENDIF.
    ENDLOOP.
    CLEAR WA.
    DELETE IT_EKBE WHERE BWART = '102'.
    ENDFORM.
    *& FORM EXPLODE_BOM_FOR_101.
    FORM EXPLODE_BOM_FOR_101.
    CLEAR COUNT.
    LOOP AT IT_EKBE WHERE BWART = '101' OR
                          BWART = '543'.
    IF NOT IT_EKBE-MATNR IN S_MATNR.
      V_DELETE = 'X'.
    ELSE.
      CLEAR V_DELETE.
    ENDIF.
    IF V_DELETE <> 'X'.
    COUNT = COUNT + 1.
    IT_EKBE-COUNT = COUNT.
    V_MENGE = IT_EKBE-MENGE.
    MODIFY IT_EKBE.
    IT_FINAL = IT_EKBE.
    APPEND IT_FINAL.
    ENDIF.
      call function 'CABM_READ_BOM'
        exporting
          I_MATNR               = IT_EKBE-MATNR
          I_WERKS               = IT_EKBE-WERKS
          I_STLAL               = '01'
          I_STLAN               = '3'
          I_DATUV               = IT_EKBE-BUDAT
        TABLES
          EXP_BOM_DATA          = IT_BOM_HEAD
          EXP_ITM_DATA          = IT_BOM
       EXCEPTIONS
         NO_RECORD_FOUND       = 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.
      ELSE.
    *START RK 18.06.2007
      DELETE IT_BOM WHERE DATUV > IT_EKBE-BUDAT.
    END : 18.06.2007
        IF V_DELETE = 'X'.
          LOOP AT IT_BOM.
            DELETE IT_EKBE WHERE MATNR = IT_BOM-IDNRK.
          ENDLOOP.
          REFRESH IT_BOM.
        ELSE.
          PERFORM CHECK_BOM_GR.
        ENDIF.
      endif.
    ENDLOOP.
    FREE IT_EKBE.
    ENDFORM.
    *& FORM CHECK_BOM_GR.
    FORM CHECK_BOM_GR.
    DATA: WACNT TYPE P DECIMALS 4.
    WACNT = COUNT.
    LOOP AT IT_BOM.
      READ TABLE IT_EKBE INTO WA WITH KEY EBELN = IT_EKBE-EBELN
                                          MATNR = IT_BOM-IDNRK.
      IF SY-SUBRC = 0.
        WACNT = WACNT + V_CNT.
        WA-COUNT = WACNT.
        WA-BMENGE = IT_BOM-MENGE.
        WA-TMENGE = V_MENGE.
        APPEND WA TO IT_FINAL.
        DELETE IT_EKBE WHERE EBELN = WA-EBELN AND
                             EBELP = WA-EBELP AND
                             MATNR = WA-MATNR AND
                             BELNR = WA-BELNR AND
                             BUZEI = WA-BUZEI.
    **START : ADDED BY .... KUMAR ON 14.06.2007
      ELSE.
        WACNT = WACNT + V_CNT.
        WA-COUNT = WACNT.
        WA-BMENGE = IT_BOM-MENGE.
        WA-MATNR  = IT_BOM-IDNRK.
        WA-TMENGE = V_MENGE.
        APPEND WA TO IT_FINAL.
    **END ADDED BY .... KUMAR ON 14.06.2007
      ENDIF.
    CLEAR WA.
    ENDLOOP.
    REFRESH IT_BOM.
    ENDFORM.
    *& FORM DISPLAY_OUTPUT.
    FORM DISPLAY_OUTPUT.
    Populate color variable with colour properties
    Char 1 = C (This is a color property)
    Char 2 = 3 (Color codes: 1 - 7)
    Char 3 = Intensified on/off ( 1 or 0 )
    Char 4 = Inverse display on/off ( 1 or 0 )
              i.e. wa_ekko-line_color = 'C410'
    IT_FINAL_TEMP[] = IT_FINAL[].
    LOOP AT IT_FINAL.
    CLEAR IT_FINAL-DMBTR.
    ********added by .... .... on 17.02.2007
       if it_final-bmenge  < 0.
    IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE * -1.
       else.
    *********end by .... .... on 17.02.2007
    IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE.
    ********added by .... .... on 17.02.2007
    endif.
    *********end by .... .... on 17.02.2007
      IF IT_FINAL-BWART = '101'.
        IT_FINAL-LINE_COLOR = 'C210'.
        IT_FINAL-MENGE101 = IT_FINAL-MENGE.
        IT_FINAL-DIFFER = 0.
        LOOP AT IT_FINAL_TEMP WHERE BELNR = IT_FINAL-BELNR AND
                                    EBELN = IT_FINAL-EBELN AND
                                    EBELP = IT_FINAL-EBELP.
          IF IT_FINAL_TEMP-BWART <> '545'.
            IT_FINAL-DMBTR = IT_FINAL-DMBTR + IT_FINAL_TEMP-DMBTR.
          ELSE.
            IT_FINAL-DMBTR = IT_FINAL-DMBTR - IT_FINAL_TEMP-DMBTR.
          ENDIF.
        ENDLOOP.
        IT_FINAL-RATE = IT_FINAL-DMBTR / IT_FINAL-MENGE101.
        SELECT SINGLE
          NAME1
        INTO
          IT_FINAL-NAME1
        FROM
          LFA1
        WHERE
          LIFNR = IT_FINAL-LIFNR.
        IF SY-SUBRC <> 0.
          CLEAR IT_FINAL-NAME1.
        ENDIF.
      ELSEIF IT_FINAL-BWART = '543'.
        IT_FINAL-MENGE543 = IT_FINAL-MENGE.
        IT_FINAL-LINE_COLOR = 'C200'.
        IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE543.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ELSEIF IT_FINAL-BWART = '545'.
    ******added by .... on 17.02.2007
       IT_FINAL-MENGE = IT_FINAL-MENGE * -1.
        IT_FINAL-MENGE = IT_FINAL-MENGE.
    *******end by .... on 17.02.2007
        IT_FINAL-MENGE545 = IT_FINAL-MENGE.
        IT_FINAL-LINE_COLOR = 'C200'.
        IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE545.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ELSE.
        IT_FINAL-LINE_COLOR = 'C200'.
        CLEAR: IT_FINAL-LIFNR,
              IT_FINAL-EBELN,
              IT_FINAL-BELNR,
              IT_FINAL-MENGE_I,
              IT_FINAL-BUDAT.
      ENDIF.
    MODIFY IT_FINAL.
    ENDLOOP.
    ENDFORM.
    *&      Form  GENERATE_ALV_FIELDCAT
          text
    FORM GENERATE_ALV_FIELDCAT.
    DATA: POS TYPE I.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'COUNT'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'S. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MATNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Mat. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BMENGE'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'BOM Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'EBELN'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'PO No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE_I'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'PO Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BELNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Gr. No.'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      CATALOG-HOTSPOT = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'BUDAT'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'GR Date'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE101'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '101 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE543'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '543 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'MENGE545'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = '545 Gr Qty'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'DIFFER'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Difference'.
      CATALOG-NO_ZERO = ' '.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'LIFNR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Vendor'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'NAME1'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Vendor Name'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'RATE'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Rate'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
      POS = POS + 1.
      CLEAR: CATALOG.
      CATALOG-COL_POS = POS.
      CATALOG-FIELDNAME = 'DMBTR'.
      CATALOG-TABNAME = 'IT_FINAL'.
      CATALOG-SELTEXT_L = 'Value'.
      CATALOG-NO_ZERO = 'X'.
      CATALOG-FIX_COLUMN = 'X'.
      APPEND CATALOG TO TCATALOG.
    ENDFORM.
    *&      Form  ALV_SHOW
          text
    FORM ALV_SHOW.
      LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      LAYOUT-BOX_TABNAME = 'IT_FINAL'.
      LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
      LAYOUT-ZEBRA = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = SY-REPID
          I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
          IS_LAYOUT               = LAYOUT
          IT_FIELDCAT             = TCATALOG
          IS_VARIANT              = VAR1
          I_SAVE                  = 'A'
          IT_EVENTS               = TEVENT[]
        TABLES
          T_OUTTAB                = IT_FINAL.
    ENDFORM .                    "ALV_SHOW
    *& FORM USER_COMMAND.
    FORM USER_COMMAND USING
              R_UCOMM LIKE SY-UCOMM
              SELFIELD TYPE SLIS_SELFIELD.
    DATA: TABIX LIKE SY-TABIX,
          WA LIKE IT_FINAL.
    TABIX = SELFIELD-TABINDEX.
    READ TABLE IT_FINAL INTO WA INDEX TABIX.
    IF NOT WA-BELNR IS INITIAL.
    set parameter id : 'MBN' FIELD WA-BELNR.
    CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN .
    ENDIF.
    ENDFORM.

    Hi,
    U can try this standard report for subcontracting:
    J1IFR (Transaction name),
    Not sure how much this will be useful to u.
    regards,
    Viji

  • I Need Interactive Report for displaying vendor information. Based on the s

    Interactive Report for displaying vendor information. Based on the selection made by the corresponding Vendor Bank Details are listed such that the line selected in the basic list was visible along with the secondary list.

    hi
    Hi
    Use the Table LFA1 and LFB1 in the basic list
    and LFBK table details in the secondary list
    see the sample code related to customer Sales orders
    modify it with the Vendor tables
    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.
    <b>Vendor performance report</b>
    See this sample code
    *"Table declarations...................................................
    TABLES:
    EKKO, " Purchasing Document Header
    CDHDR, " Change document header
    SSCRFIELDS. " Fields on selection screens
    *"Selection screen elements............................................
    SELECT-OPTIONS:
    S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
    S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
    S_EKGRP FOR EKKO-EKGRP, " Purchasing group
    S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
    S_UDATE FOR CDHDR-UDATE. " Creation date of the change
    " document
    *" Data declarations...................................................
    Field String to hold Purchase Document Number *
    DATA:
    BEGIN OF FS_EBELN,
    EBELN(90) TYPE C, " Purchase Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
    " the Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    END OF FS_EBELN,
    Field String to hold Purchase Document Header *
    BEGIN OF FS_EKKO,
    EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
    " Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    END OF FS_EKKO,
    Field String to hold Account Number and name of the Vendor *
    BEGIN OF FS_LFA1,
    LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
    NAME1 TYPE LFA1-NAME1, " Name1
    END OF FS_LFA1,
    Field String to hold Change date and the name of the user *
    BEGIN OF FS_CDHDR,
    OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
    OBJECTID TYPE CDHDR-OBJECTID, " Object value
    CHANGENR TYPE CDHDR-CHANGENR, " Document change number
    USERNAME TYPE CDHDR-USERNAME, " User name
    UDATE TYPE CDHDR-UDATE, " Creation date of the change
    " document
    END OF FS_CDHDR,
    Field String to hold Change document items *
    BEGIN OF FS_CDPOS,
    OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
    OBJECTID(10) TYPE C, " Object Value
    CHANGENR TYPE CDPOS-CHANGENR, " Document change number
    TABNAME TYPE CDPOS-TABNAME, " Table Name
    FNAME TYPE CDPOS-FNAME, " Field Name
    VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
    VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
    END OF FS_CDPOS,
    Field String to hold Date Element Name *
    BEGIN OF FS_DATAELE,
    TABNAME TYPE DD03L-TABNAME, " Table Name
    FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
    ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)
    END OF FS_DATAELE,
    Field String to hold Short Text of the Date Element *
    BEGIN OF FS_TEXT,
    ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)
    DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
    " Repository Objects
    END OF FS_TEXT,
    Field String to hold data to be displayed on the ALV grid *
    BEGIN OF FS_OUTTAB,
    EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
    " Object
    LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    EKGRP TYPE EKKO-EKGRP, " Purchasing group
    BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
    WERKS TYPE LFA1-WERKS, " Plant
    NAME1 TYPE LFA1-NAME1, " Name1
    USERNAME TYPE CDHDR-USERNAME, " User name
    UDATE TYPE CDHDR-UDATE, " Creation date of the change
    " document
    DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
    " Repository Objects
    VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
    VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
    END OF FS_OUTTAB,
    Internal table to hold Purchase Document Number *
    T_EBELN LIKE STANDARD TABLE
    OF FS_EBELN,
    Internal table to hold Purchase Document Header *
    T_EKKO LIKE STANDARD TABLE
    OF FS_EKKO,
    Temp Internal table to hold Purchase Document Header *
    T_EKKO_TEMP LIKE STANDARD TABLE
    OF FS_EKKO,
    Internal table to hold Account number and Name of the Vendor *
    T_LFA1 LIKE STANDARD TABLE
    OF FS_LFA1,
    Internal Table to hold Change date and the name of the user *
    T_CDHDR LIKE STANDARD TABLE
    OF FS_CDHDR,
    Internal Table to hold Change document items *
    T_CDPOS LIKE STANDARD TABLE
    OF FS_CDPOS,
    Temp. Internal Table to hold Change document items *
    T_CDPOS_TEMP LIKE STANDARD TABLE
    OF FS_CDPOS,
    Internal Table to hold Data Element Name *
    T_DATAELE LIKE STANDARD TABLE
    OF FS_DATAELE,
    Temp. Internal Table to hold Data Element Name *
    T_DATAELE_TEMP LIKE STANDARD TABLE
    OF FS_DATAELE,
    Internal Table to hold Short Text of the Date Element *
    T_TEXT LIKE STANDARD TABLE
    OF FS_TEXT,
    Internal Table to hold data to be displayed on the ALV grid *
    T_OUTTAB LIKE STANDARD TABLE
    OF FS_OUTTAB.
    C L A S S D E F I N I T I O N *
    CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
    *" Data declarations...................................................
    Work variables *
    DATA:
    W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
    W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
    W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
    W_VALUE TYPE EKKO-EBELN, " Reflected Value
    W_SPACE VALUE ' ', " Space
    W_FLAG TYPE I, " Flag Variable
    W_VARIANT TYPE DISVARIANT, " Variant
    *--- ALV Grid
    W_GRID TYPE REF TO CL_GUI_ALV_GRID,
    *--- Event Handler
    W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
    *--- Field catalog table
    T_FIELDCAT TYPE LVC_T_FCAT.
    AT SELECTION-SCREEN EVENT *
    AT SELECTION-SCREEN ON S_EBELN.
    Subroutine to validate Purchase Document Number.
    PERFORM VALIDATE_PD_NUM.
    AT SELECTION-SCREEN ON S_LIFNR.
    Subroutine to validate Vendor Number.
    PERFORM VALIDATE_VEN_NUM.
    AT SELECTION-SCREEN ON S_EKGRP.
    Subroutine to validate Purchase Group.
    PERFORM VALIDATE_PUR_GRP.
    START-OF-SELECTION EVENT *
    START-OF-SELECTION.
    Subroutine to select all Purchase orders.
    PERFORM SELECT_PO.
    CHECK W_FLAG EQ 0.
    Subroutine to select Object values.
    PERFORM SELECT_OBJ_ID.
    CHECK W_FLAG EQ 0.
    Subroutine to select Changed values.
    PERFORM SELECT_CHANGED_VALUE.
    CHECK W_FLAG EQ 0.
    Subroutine to Select Purchase Orders.
    PERFORM SELECT_PUR_DOC.
    Subroutine to select Vendor Details.
    PERFORM SELECT_VENDOR.
    Subroutine to select Text for the Changed values.
    PERFORM DESCRIPTION.
    END-OF-SELECTION EVENT *
    END-OF-SELECTION.
    IF NOT T_EKKO IS INITIAL.
    Subroutine to populate the Output Table.
    PERFORM FILL_OUTTAB.
    Subroutine to build Field Catalog.
    PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
    CALL SCREEN 100.
    ENDIF. " IF NOT T_EKKO...
    CLASS LCL_EVENT_HANDLER DEFINITION
    Defining Class which handles events
    CLASS LCL_EVENT_HANDLER DEFINITION .
    PUBLIC SECTION .
    METHODS:
    HANDLE_HOTSPOT_CLICK
    FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
    IMPORTING E_ROW_ID E_COLUMN_ID.
    ENDCLASS. " LCL_EVENT_HANDLER DEFINITION
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION
    Implementing the Class which can handle events
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
    *---Handle Double Click
    METHOD HANDLE_HOTSPOT_CLICK .
    Subroutine to get the HotSpot Cell information.
    PERFORM GET_CELL_INFO.
    SET PARAMETER ID 'BES' FIELD W_VALUE.
    CALL TRANSACTION 'ME23N'.
    ENDMETHOD. " HANDLE_HOTSPOT_CLICK
    ENDCLASS. " LCL_EVENT_HANDLER
    *& Module STATUS_0100 OUTPUT
    PBO Event
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'OOPS'.
    SET TITLEBAR 'TIT'.
    Subroutine to fill the Variant Structure
    PERFORM FILL_VARIANT.
    IF W_GRID IS INITIAL.
    CREATE OBJECT W_GRID
    EXPORTING
    I_SHELLSTYLE = 0
    I_LIFETIME =
    I_PARENT = CL_GUI_CONTAINER=>SCREEN0
    I_APPL_EVENTS =
    I_PARENTDBG =
    I_APPLOGPARENT =
    I_GRAPHICSPARENT =
    I_NAME =
    I_FCAT_COMPLETE = SPACE
    EXCEPTIONS
    ERROR_CNTL_CREATE = 1
    ERROR_CNTL_INIT = 2
    ERROR_CNTL_LINK = 3
    ERROR_DP_CREATE = 4
    OTHERS = 5.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF. " IF SY-SUBRC <> 0
    CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    I_STRUCTURE_NAME =
    IS_VARIANT = W_VARIANT
    I_SAVE = 'A'
    I_DEFAULT = 'X'
    IS_LAYOUT =
    IS_PRINT =
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    CHANGING
    IT_OUTTAB = T_OUTTAB
    IT_FIELDCATALOG = T_FIELDCAT
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    OTHERS = 4
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF. " IF SY-SUBRC <> 0.
    ENDIF. " IF W_GRID IS INITIAL
    CREATE OBJECT W_EVENT_CLICK.
    SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    PAI Event
    MODULE USER_COMMAND_0100 INPUT.
    CASE SY-UCOMM.
    WHEN 'BACK'.
    LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
    LEAVE PROGRAM.
    WHEN 'CANCEL'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Form PREPARE_FIELD_CATALOG
    Subroutine to build the Field catalog
    <--P_T_FIELDCAT Field Catalog Table
    FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
    DATA LS_FCAT TYPE LVC_S_FCAT.
    Purchasing group...
    LS_FCAT-FIELDNAME = 'EKGRP'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Purchasing Document Number...
    LS_FCAT-FIELDNAME = 'EBELN'.
    LS_FCAT-REF_TABLE = 'EKKO' .
    LS_FCAT-EMPHASIZE = 'C411'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-HOTSPOT = 'X'.
    APPEND LS_FCAT TO PT_FIELDCAT .
    CLEAR LS_FCAT .
    Name of Person who Created the Object...
    LS_FCAT-FIELDNAME = 'ERNAM'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-OUTPUTLEN = '15' .
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Purchasing Document Date...
    LS_FCAT-FIELDNAME = 'BEDAT'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Vendor's account number...
    LS_FCAT-FIELDNAME = 'LIFNR'.
    LS_FCAT-REF_TABLE = 'EKKO'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Account Number of Vendor or Creditor...
    LS_FCAT-FIELDNAME = 'NAME1'.
    LS_FCAT-REF_TABLE = 'LFA1'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Vendor Name'(001).
    LS_FCAT-SELTEXT = 'Vendor Name'(001).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Creation date of the change document...
    LS_FCAT-FIELDNAME = 'UDATE'.
    LS_FCAT-REF_TABLE = 'CDHDR'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Change Date'(002).
    LS_FCAT-SELTEXT = 'Change Date'(002).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    User name of the person responsible in change document...
    LS_FCAT-FIELDNAME = 'USERNAME'.
    LS_FCAT-REF_TABLE = 'CDHDR'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '10'.
    LS_FCAT-COLTEXT = 'Modified by'(003).
    LS_FCAT-SELTEXT = 'Modified by'(003).
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Short Text Describing R/3 Repository Objects...
    LS_FCAT-FIELDNAME = 'DDTEXT'.
    LS_FCAT-REF_TABLE = 'DD04T'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '15'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    Old contents of changed field...
    LS_FCAT-FIELDNAME = 'VALUE_OLD'.
    LS_FCAT-REF_TABLE = 'CDPOS'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '12'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    New contents of changed field...
    LS_FCAT-FIELDNAME = 'VALUE_NEW'.
    LS_FCAT-REF_TABLE = 'CDPOS'.
    LS_FCAT-INTTYPE = 'C'.
    LS_FCAT-OUTPUTLEN = '12'.
    APPEND LS_FCAT TO PT_FIELDCAT.
    CLEAR LS_FCAT.
    ENDFORM. " PREPARE_FIELD_CATALOG
    *& Form SELECT_PO
    Subroutine to select all the Purchase Orders
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_PO .
    SELECT EBELN " Purchasing Document Number
    ERNAM " Name of Person who Created
    " the Object
    LIFNR " Vendor's account number
    EKGRP " Purchasing group
    BEDAT " Purchasing Document Date
    FROM EKKO
    PACKAGE SIZE 10000
    APPENDING TABLE T_EBELN
    WHERE EBELN IN S_EBELN
    AND BEDAT IN S_BEDAT.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S401(M8).
    ENDIF. " IF SY-SUBRC NE 0
    ENDFORM. " SELECT_PO
    *& Form SELECT_OBJ_ID
    Subroutine to select Object ID
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_OBJ_ID .
    IF NOT T_EBELN IS INITIAL.
    SELECT OBJECTCLAS " Object Class
    OBJECTID " Object value
    CHANGENR " Document change number
    USERNAME " User name
    UDATE " Creation date
    FROM CDHDR
    INTO TABLE T_CDHDR
    FOR ALL ENTRIES IN T_EBELN
    WHERE OBJECTID EQ T_EBELN-EBELN
    AND UDATE IN S_UDATE
    AND TCODE IN ('ME21N','ME22N','ME23N').
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S833(M8) WITH 'Header Not Found'(031).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_EBELN IS INITIAL
    ENDFORM. " SELECT_OBJ_ID
    *& Form SELECT_CHANGED_VALUE
    Subroutine to select Changed Values
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_CHANGED_VALUE .
    IF NOT T_CDHDR IS INITIAL.
    SELECT OBJECTCLAS " Object class
    OBJECTID " Object value
    CHANGENR " Document change number
    TABNAME " Table Name
    FNAME " Field Name
    VALUE_NEW " New contents of changed field
    VALUE_OLD " Old contents of changed field
    FROM CDPOS
    PACKAGE SIZE 10000
    APPENDING TABLE T_CDPOS
    FOR ALL ENTRIES IN T_CDHDR
    WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
    AND OBJECTID EQ T_CDHDR-OBJECTID
    AND CHANGENR EQ T_CDHDR-CHANGENR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    W_FLAG = 1.
    MESSAGE S833(M8) WITH 'Item Not Found'(032).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_CDHDR IS INITIAL
    T_CDPOS_TEMP[] = T_CDPOS[].
    ENDFORM. " SELECT_CHANGED_VALUE
    *& Form SELECT_PUR_DOC
    Subroutine to select Purchase Order Details
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_PUR_DOC .
    IF NOT T_CDPOS IS INITIAL.
    SORT T_EBELN BY EBELN.
    LOOP AT T_CDPOS INTO FS_CDPOS.
    READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
    FS_CDPOS-OBJECTID BINARY SEARCH.
    IF SY-SUBRC NE 0.
    DELETE TABLE T_EBELN FROM FS_EBELN.
    ENDIF. " IF SY-SUBRC NE 0.
    ENDLOOP. " LOOP AT T_CDPOS...
    LOOP AT T_EBELN INTO FS_EBELN.
    MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
    MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
    MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
    MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
    MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
    APPEND FS_EKKO TO T_EKKO.
    ENDLOOP. " LOOP AT T_EBELN...
    T_EKKO_TEMP[] = T_EKKO[].
    ENDIF. " IF NOT T_CDPOS IS INITIAL
    ENDFORM. " SELECT_PUR_DOC
    *& Form SELECT_VENDOR
    Subroutine to select Vendor details
    There are no interface parameters to be passed to this subroutine.
    FORM SELECT_VENDOR .
    IF NOT T_EKKO IS INITIAL.
    SORT T_EKKO_TEMP BY LIFNR.
    DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
    SELECT LIFNR " Account Number of Vendor or
    " Creditor
    NAME1 " Name 1
    FROM LFA1
    INTO TABLE T_LFA1
    FOR ALL ENTRIES IN T_EKKO_TEMP
    WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
    IF SY-SUBRC NE 0.
    MESSAGE S002(M8) WITH 'Master Details'(033).
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_EKKO IS INITIAL
    ENDFORM. " SELECT_VENDOR
    *& Form DESCRIPTION
    Subroutine to get the description
    There are no interface parameters to be passed to this subroutine.
    FORM DESCRIPTION .
    IF NOT T_CDPOS IS INITIAL.
    SORT T_CDPOS_TEMP BY TABNAME FNAME.
    DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
    SELECT TABNAME " Table Name
    FIELDNAME " Field Name
    ROLLNAME " Data element
    FROM DD03L
    INTO TABLE T_DATAELE
    FOR ALL ENTRIES IN T_CDPOS_TEMP
    WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
    AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
    IF NOT T_DATAELE IS INITIAL.
    T_DATAELE_TEMP[] = T_DATAELE[].
    SORT T_DATAELE_TEMP BY ROLLNAME.
    DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
    SELECT ROLLNAME " Data element
    DDTEXT " Short Text Describing R/3
    " Repository Objects
    FROM DD04T
    INTO TABLE T_TEXT
    FOR ALL ENTRIES IN T_DATAELE_TEMP
    WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
    AND DDLANGUAGE EQ SY-LANGU.
    IF SY-SUBRC NE 0.
    EXIT.
    ENDIF. " IF SY-SUBRC NE 0.
    ENDIF. " IF NOT T_DATAELE IS INITIAL.
    ENDIF. " IF NOT T_CDPOS IS INITIAL.
    ENDFORM. " DESCRIPTION
    *& Form FILL_OUTTAB
    Subroutine to populate the Outtab
    There are no interface parameters to be passed to this subroutine.
    FORM FILL_OUTTAB .
    SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.
    SORT T_EKKO BY EBELN.
    SORT T_LFA1 BY LIFNR.
    SORT T_DATAELE BY TABNAME FIELDNAME.
    SORT T_TEXT BY ROLLNAME.
    LOOP AT T_CDPOS INTO FS_CDPOS.
    READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
    OBJECTCLAS = FS_CDPOS-OBJECTCLAS
    OBJECTID = FS_CDPOS-OBJECTID
    CHANGENR = FS_CDPOS-CHANGENR
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
    MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
    READ TABLE T_EKKO INTO FS_EKKO WITH KEY
    EBELN = FS_CDHDR-OBJECTID
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
    MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
    MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
    MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
    MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
    READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
    LIFNR = FS_EKKO-LIFNR
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
    MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
    READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
    TABNAME = FS_CDPOS-TABNAME
    FIELDNAME = FS_CDPOS-FNAME
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    READ TABLE T_TEXT INTO FS_TEXT WITH KEY
    ROLLNAME = FS_DATAELE-ROLLNAME
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
    ENDIF. " IF SY-SUBRC EQ 0.
    ENDIF. " IF SY-SUBRC EQ 0.
    APPEND FS_OUTTAB TO T_OUTTAB.
    CLEAR FS_OUTTAB.
    ENDLOOP.
    ENDFORM. " FILL_OUTTAB
    *& Form GET_CELL_INFO
    Subroutine to get the Cell Information
    --> W_VALUE Holds the value of Hotspot clicked
    FORM GET_CELL_INFO .
    CALL METHOD W_GRID->GET_CURRENT_CELL
    IMPORTING
    E_ROW =
    E_VALUE = W_VALUE
    E_COL =
    ES_ROW_ID =
    ES_COL_ID =
    ES_ROW_NO =
    ENDFORM. " GET_CELL_INFO
    *& Form VALIDATE_PD_NUM
    Subroutine to validate Purchase Document Number
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_PD_NUM .
    IF NOT S_EBELN[] IS INITIAL.
    SELECT EBELN " Purchase Document Number
    FROM EKKO
    INTO W_EBELN
    UP TO 1 ROWS
    WHERE EBELN IN S_EBELN.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E717(M8).
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_EBELN[]...
    ENDFORM. " VALIDATE_PD_NUM
    *& Form VALIDATE_VEN_NUM
    Subroutine to validate Vendor Number
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_VEN_NUM .
    IF NOT S_LIFNR[] IS INITIAL.
    SELECT LIFNR " Vendor Number
    FROM LFA1
    INTO W_LIFNR
    UP TO 1 ROWS
    WHERE LIFNR IN S_LIFNR.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E002(M8) WITH W_SPACE.
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_LIFNR[]...
    ENDFORM. " VALIDATE_VEN_NUM
    *& Form VALIDATE_PUR_GRP
    Subroutine to validate the Purchase Group
    There are no interface parameters to be passed to this subroutine.
    FORM VALIDATE_PUR_GRP .
    IF NOT S_EKGRP[] IS INITIAL.
    SELECT EKGRP " Purchase Group
    FROM T024
    INTO W_EKGRP
    UP TO 1 ROWS
    WHERE EKGRP IN S_EKGRP.
    ENDSELECT.
    IF SY-SUBRC NE 0.
    CLEAR SSCRFIELDS-UCOMM.
    MESSAGE E622(M8) WITH W_SPACE.
    ENDIF. " IF SY-SUBRC NE 0
    ENDIF. " IF NOT S_EKFRP[]...
    ENDFORM. " VALIDATE_PUR_GRP
    *& Form FILL_VARIANT
    Subroutine to fill the Variant Structure
    There are no interface parameters to be passed to this subroutine
    FORM FILL_VARIANT .
    Filling the Variant structure
    W_VARIANT-REPORT = SY-REPID.
    W_VARIANT-USERNAME = SY-UNAME.
    ENDFORM. " FILL_VARIANT
    <b>Reward if usefull</b>

  • Std Report for headcount

    frnzz,
    Is there a standard report to find out the headcount in an organisation?
    Useful anwers will be rewarded.
    thanx in advance
    Viggy

    Hi,
    There are only following Std reports exist:
    S_AHR_61016497  Existing Jobs
    S_AHR_61016502  Existing Positions
    S_AHR_61016503  Staff assignments.
    See the Manning Level sample report:
    report zporgr0040
           line-size 108
           line-count 60(1)
           no standard page heading
           message-id zndc.
    Database Tables
    tables: hrp1001,     " HR Master Record (Orgn. Assignment)
            pa0002,      " Personal Data
            t528t,       " Position Texts
            t527x,       " Org Unit Text
            t528b,       " Positions
            csks,        " Cost Center
            cskt.        " Cost Center Texts
    Declaration of Internal Tables
    Internal Table for Orgn Object Data  HRP1000
    data: begin of obj_tab occurs 0,
            otype like hrp1000-otype,      " Object Type
            objid like hrp1000-objid,      " Object ID
            plvar like hrp1000-plvar,      " Plan Version
            istat like hrp1000-istat,      " Planning Status
            begda like hrp1000-begda,      " Begin date
            endda like hrp1000-endda,      " End date
          end of obj_tab.
    Internal Table for Active Employees data PA0000
    data: begin of stat_tab occurs 0,
            pernr like pa0000-pernr,       " Object Type
            begda like pa0000-begda,       " Begin date
            endda like pa0000-endda,       " End date
            stat2 like pa0000-stat2,       " Employment Status
          end of stat_tab.
    Internal Table for Actual Orgn Assignment Data PA0001
    data: begin of act_tab occurs 0,
            pernr like pa0001-pernr,       " Object Type
            begda like pa0001-begda,       " Begin date
            endda like pa0001-endda,       " End date
            kostl like pa0001-kostl,       " Cost Center
            orgeh like pa0001-orgeh,       " Org Unit
            plans like pa0001-plans,       " Position
            natio like pa0002-natio,       " Nationality
          end of act_tab.
    Internal Table for Orgn Data HRP1001
    data: begin of org_tab occurs 0,
            otype like hrp1001-otype,      " Object Type
            objid like hrp1001-objid,      " Object ID
            plvar like hrp1001-plvar,      " Plan Version
            istat like hrp1001-istat,      " Planning Status
            begda like hrp1001-begda,      " Begin date
            endda like hrp1001-endda,      " End date
            subty like hrp1001-subty,      " Sub Type
            sclas like hrp1001-sclas,      " Type of Related Object
            sobid like hrp1001-sobid,      " Id of Related Object
            kostl like pa0001-kostl,       " Cost Center
            plstx like t528t-plstx,        " Position Text
            orgtx like t527x-orgtx,        " Org Unit Text
          end of org_tab.
    Internal Table for Position Calculations
    data: begin of org1_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            objid like hrp1001-objid,      " Object ID
          end of org1_tab.
    Internal Table for Position Calculations
    data: begin of org2_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            count type i,                  " No of Positions
          end of org2_tab.
    Internal Table for Actual Manpower Calculations
    data: begin of act1_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            natio like pa0002-natio,       " Nationality
            plans like pa0001-plans,       " Position
          end of act1_tab.
    Internal Table for Actual Manpower Calculations(UAE)
    data: begin of act2_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            natio like pa0002-natio,       " Nationality
          end of act2_tab.
    Internal Table for Actual Manpower Calculations(Others)
    data: begin of act3_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            natio like pa0002-natio,       " Nationality
          end of act3_tab.
    Internal Table for Actual Manpower Calculations(UAE)
    data: begin of act4_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            count1 type i,                 " No of Positions(UAE)
          end of act4_tab.
    Internal Table for Actual Manpower Calculations(OTHERS)
    data: begin of act5_tab occurs 0,
            kostl like pa0001-kostl,       " Cost Center
            count2 type i,                 " No of Positions(Others)
          end of act5_tab.
    Internal Table for Vaccancies Data
    data: begin of vac_tab occurs 0,
            plvar like hrp1007-plvar,      " Plan Version
            otype like hrp1007-otype,      " Object Type
            objid like hrp1007-objid,      " Object ID
            istat like hrp1007-istat,      " Planning Status
            begda like hrp1007-begda,      " Begin date
            endda like hrp1007-endda,      " End date
            vacan like hrp1007-vacan,      " Vacancy Indicator
            status like hrp1007-status,    " Status of Vacancy
          end of vac_tab.
    Internal Table to store the Report Output data
    data : begin of rep_tab occurs 0 ,
             kostl(10) type n,                  " Cost Cente
             plans   like pa0001-plans,         " Position
             vacan   like hrp1007-vacan,        " Vacancy Indicator
             status  like hrp1007-status,       " Status of Vacancy
             plstx   like t528t-plstx,          " Position Text
             orgtx like t527x-orgtx,            " Org Unit Text
           end of rep_tab.
    Internal Table to store the Report Output data
    data : begin of rep1_tab occurs 0 ,
             kostl(10) type n,                  " Cost Cente
             cnt     type i,                    " No of Vacancies
           end of rep1_tab.
    Internal Table to store the Report Output data
    data : begin of rep2_tab occurs 0 ,
             kostl(10) type n,                  " Cost Cente
             app_no    type i,                  " Approved
             nat_no    type i,                  " National
             exp_no    type i,                  " Expatriate
             tot_no    type i,                  " Total
             vac_no    type i,                  " Vacancies
           end of rep2_tab.
    Declaration of Variables
    data: v_sobid  like hrp1001-sobid,   " Object Id
          v_sobid1 like hrp1001-sobid,   " Object Id
          v_sobid2 like hrp1001-sobid,   " Object Id
          v_sclas  like hrp1001-sclas,   " Related Obj Type
          v_subty  like hrp1001-subty,   " Related Object Id
          v_otype  like hrp1007-otype,   " Object Type
         v_str(9)    type c,            " Text
         v_str1(10)  type c,            " Text
          v_cnt    like sy-tabix.        " Table Index
    Declaration of Constants
    constants : c_x         type c value 'X',            " Flag
                c_stat1  like pa0000-stat2  value '3',   " Emp Status
                c_plan   like hrp1001-plvar value '01',  " Plan Version
                c_name   like hrp1000-uname value 'SAP', " Uname
                c_uae    like pa0002-natio  value 'AE',  " Country
                c_type   like hrp1007-otype  value 'O',  " Object Type
                c_otype  like hrp1007-otype  value 'S',  " Object Type
                c_stat   like hrp1007-status value '0',  " Status
                c_pstat  like hrp1007-istat  value '1',  " Plang Status
                c_sclas  like hrp1001-sclas value 'K',    " Rel. Obj Type
                c_subty  like hrp1001-subty value 'A002', " Related ObjId
                c_subty2 like hrp1001-subty value 'A003', " Related ObjId
                c_sclas1 like hrp1001-sclas value 'O',    " Rel.Obj Type
                c_subty1 like hrp1001-subty value 'A011', " Rel.Object Id
                c_kokrs  like coej-kokrs value '1000'. " Controlling Area
    Selection Screen
    selection-screen begin of block b1 with frame title text-001.
    parameters     :
      p_date  like pa0001-begda obligatory default sy-datum. " Date
    select-options :
      s_kostl for csks-kostl,                     " Cost Center
      s_plans for t528b-plans.                    " Position ID
    selection-screen end of block b1.
    At selection-screen
    at selection-screen.
    Validate the Selection Screen fields
      perform validate_screen.
    Start-of-Selection
    start-of-selection.
    Get the Orgn data from database Table HRP1001
      perform get_org_data.
    Get the Actual Manpower from PA0001
      perform get_act_data.
    Get the Vaccancies data from database Table HRP1007
      perform get_vac_data.
    Append the data into final Internal Table
      perform append_data.
    Top-of-page
    top-of-page.
    Write the Report and Column Headings
      perform top_of_page.
    End-of-Page
    end-of-page.
      write /1(108) sy-uline.
    End-of-Selection
    end-of-selection.
    Display the Output Report.
      perform display_report.
    Form-Routines
    *&      Form  validate_screen
    Validation of selection Screen fields
    form validate_screen.
    Validation of Position ID
      clear t528b.
      if not s_plans[] is initial.
        select single plans
          into t528b-plans
          from t528b
          where plans in s_plans.
        if sy-subrc <> 0.
          message e999 with 'Invalid Position ID'(009).
        endif.
      endif.
    Validation of Cost Center
      clear csks.
      if not s_kostl[] is initial.
        select single kostl
          into csks-kostl
          from csks
          where kostl in s_kostl.
        if sy-subrc <> 0.
          message e999 with 'Invalid Cost Center'(008).
        endif.
      endif.
    endform.                  "validate_screen
    *&      Form  get_org_data
    Get the Orgn Data from Database Table HRP1001
    form get_org_data.
    v_str  = 'Developee'(002).
    v_str1 = 'Deployment'(003).
    Select All the Positions from HRP1000
      select otype       " Object Type
             objid       " Object ID
             plvar       " Plan Version
             istat       " Planning Status
             begda       " Begin date
             endda       " End date
         into table obj_tab
         from hrp1000
         where otype = c_otype  and
               plvar = c_plan   and
               istat = c_pstat  and
               begda le p_date  and
               endda ge p_date  and
               objid in s_plans and
               uname ne c_name.
      sort obj_tab by otype objid.
    Get the Orgn and Cost Center for all the above Positions
      if not obj_tab[] is initial.
        select otype       " Object Type
               objid       " Object ID
               plvar       " Plan Version
               istat       " Planning Status
               begda       " Begin date
               endda       " End date
               subty       " Sub Type
               sclas       " Type of Related Object
               sobid       " Id of Related Object
           into table org_tab
           from hrp1001
           for all entries in obj_tab
           where otype = c_otype  and
                 plvar = c_plan   and
                 istat = c_pstat  and
                 begda le p_date  and
                 endda ge p_date  and
                 sclas eq c_sclas1 and
                 subty eq c_subty2 and
                 objid eq obj_tab-objid.
      endif.
      sort org_tab by otype objid.
    Get the Cost Center
      loop at org_tab.
        v_otype = c_otype.       " S
        v_sclas = c_sclas.       " K
        v_subty = c_subty1.                                     " A011
        v_sobid = org_tab-objid.
        perform get_org using v_otype v_sclas v_subty
                        v_sobid.
        if sy-subrc = 0.
          org_tab-kostl = hrp1001-sobid+0(10).
        else.
          v_otype = c_otype.    " S
          v_sclas = c_sclas1.   " O
          v_subty = c_subty2.                                   " A003
          v_sobid = org_tab-objid.
          perform get_org using v_otype v_sclas v_subty
                         v_sobid.
          if sy-subrc = 0.
            v_otype = c_type.     " O
            v_sclas = c_sclas.    " K
            v_subty = c_subty1.                                 " A011
            v_sobid1 = v_sobid.
            perform get_org using v_otype v_sclas v_subty
                                 v_sobid.
            if sy-subrc <> 0.
              v_otype = c_type.    " O
              v_sclas = c_sclas1.  " O
              v_subty = c_subty.                                " A002
              v_sobid = v_sobid1.
              perform get_org using v_otype v_sclas v_subty
                        v_sobid.
              if sy-subrc = 0.
                v_otype = c_type.   " O
                v_sclas = c_sclas.  " K
                v_subty = c_subty1.                             " A011
                v_sobid2 = v_sobid.
                perform get_org using v_otype v_sclas v_subty
                                 v_sobid.
                if sy-subrc <> 0.
                  v_otype = c_type.   " O
                  v_sclas = c_sclas1. " O
                  v_subty = c_subty.                            " A002
                  v_sobid = v_sobid2.
                  perform get_org using v_otype v_sclas v_subty
                          v_sobid.
                else.
                  org_tab-kostl = hrp1001-sobid+0(10).
                endif.
              endif.
            else.
              org_tab-kostl = hrp1001-sobid+0(10).
            endif.
          else.
            v_otype = c_otype.   " S
            v_sclas = c_otype.   " S
            v_subty = c_subty.                                  " A002
            v_sobid = org_tab-objid.
            perform get_org using v_otype v_sclas v_subty
                           v_sobid.
            if sy-subrc = 0.
              v_otype = c_otype.  " S
              v_sclas = c_sclas.  " K
              v_subty = c_subty1.                               " A011
              v_sobid1 = v_sobid.
              perform get_org using v_otype v_sclas v_subty
                                   v_sobid.
              if sy-subrc <> 0.
                v_otype = c_otype.  " S
                v_sclas = c_sclas1. " O
                v_subty = c_subty2.                             " A003
                v_sobid = v_sobid1.
                perform get_org using v_otype v_sclas v_subty
                          v_sobid.
                if sy-subrc = 0.
                  v_otype = c_type.   " O
                  v_sclas = c_sclas.  " K
                  v_subty = c_subty1.                           " A011
                  v_sobid2 = v_sobid.
                  perform get_org using v_otype v_sclas v_subty
                                   v_sobid.
                  if sy-subrc <> 0.
                    v_otype = c_type.    " O
                    v_sclas = c_sclas1.  " O
                    v_subty = c_subty.                          " A002
                    v_sobid = v_sobid2.
                    perform get_org using v_otype v_sclas v_subty
                            v_sobid.
                  else.
                    org_tab-kostl = hrp1001-sobid+0(10).
                  endif.
                endif.
              else.
                org_tab-kostl = hrp1001-sobid+0(10).
              endif.
            endif.
          endif.
        endif.
    Get the Position Text
        clear t528t.
        select single plstx from t528t into t528t-plstx
          where sprsl = sy-langu and
                otype = c_otype  and
                plans = org_tab-objid.
        org_tab-plstx = t528t-plstx.
    Get the Org Unit Text
        clear t527x.
        select single orgtx from t527x into t527x-orgtx
          where sprsl = sy-langu and
                orgeh = org_tab-sobid+0(8).
        org_tab-orgtx = t527x-orgtx.
        modify org_tab index sy-tabix.
        clear v_sobid.
      endloop.
      sort org_tab by otype objid.
    Calculate the Approved No of Positions
      loop at org_tab.
        if org_tab-kostl in s_kostl.
          move-corresponding org_tab to org1_tab.
          append org1_tab.
          clear org1_tab.
        endif.
      endloop.
      sort org1_tab by kostl objid.
      clear v_cnt.
      loop at org1_tab.
        at end of kostl.
          sy-tabix = sy-tabix - v_cnt.
          org2_tab-kostl = org1_tab-kostl.
          org2_tab-count   = sy-tabix.
          v_cnt = v_cnt + sy-tabix.
          append org2_tab.
          clear:org2_tab.
        endat.
      endloop.
      sort org2_tab by kostl.
    endform.              "get_org_data
    *&      Form  get_act_data
    Get the Actual Manpower Data from Database Table PA0001
    form get_act_data.
      clear  : stat_tab, act_tab.
      refresh: stat_tab, act_tab.
    Get all the Active Employees
      select pernr       " Object Type
             begda       " Begin date
             endda       " End date
             stat2       " Emp Status
           into table stat_tab
           from pa0000
           where stat2 eq c_stat1 and
                 begda le p_date  and
                 endda ge p_date.
      sort act_tab by pernr.
      if not stat_tab[] is initial.
        select pernr       " Object Type
               begda       " Begin date
               endda       " End date
               kostl       " Cost Center
               orgeh       " Org Unit
               plans       " Position
           into table act_tab
           from pa0001
           for all entries in stat_tab
           where pernr eq stat_tab-pernr and
                 kostl in s_kostl and
                 plans in s_plans and
                 persg eq '1'     and
                 begda le p_date  and
                 endda ge p_date.
      endif.
      sort act_tab by pernr.
      loop at act_tab.
        move-corresponding act_tab to act1_tab.
        clear pa0002-natio.
        select single natio into pa0002-natio from pa0002
          where pernr = act_tab-pernr.
        if sy-subrc = 0.
          act1_tab-natio = pa0002-natio.
        endif.
        append act1_tab.
        clear act1_tab.
      endloop.
      sort act1_tab by kostl natio.
    Calculate the Local and Expatriate Manpower
      loop at act1_tab.
        if act1_tab-natio = c_uae.
          act2_tab-kostl = act1_tab-kostl.
          act2_tab-natio = act1_tab-natio.
        else.
          act3_tab-kostl = act1_tab-kostl.
          act3_tab-natio = act1_tab-natio.
        endif.
        append: act2_tab, act3_tab.
        clear : act2_tab,act3_tab.
      endloop.
      sort act2_tab by kostl.
      sort act3_tab by kostl.
    Actual UAE Manpower
      clear v_cnt.
      loop at act2_tab.
        at end of kostl.
          sy-tabix = sy-tabix - v_cnt.
          act4_tab-kostl   = act2_tab-kostl.
          act4_tab-count1  = sy-tabix.
          v_cnt = v_cnt + sy-tabix.
          append act4_tab.
          clear:act4_tab.
        endat.
      endloop.
      sort act4_tab by kostl.
    Other Countries
      clear v_cnt.
      loop at act3_tab.
        at end of kostl.
          sy-tabix = sy-tabix - v_cnt.
          act5_tab-kostl   = act3_tab-kostl.
          act5_tab-count2  = sy-tabix.
          v_cnt = v_cnt + sy-tabix.
          append act5_tab.
          clear:act5_tab.
        endat.
      endloop.
      sort act5_tab by kostl.
    endform.              "get_act_data
    *&      Form  get_org
    Get the Cost Center from Parent Org Id
    form get_org using p_v_otype p_v_sclas p_v_subty p_v_sobid.
      clear hrp1001.
      select single * from hrp1001
            where otype = p_v_otype  and
                  plvar = c_plan   and
                  istat = c_pstat  and
                  begda le p_date  and
                  endda ge p_date  and
                  sclas eq p_v_sclas   and
                  subty eq p_v_subty  and
                  objid eq p_v_sobid.
      v_sobid = hrp1001-sobid+0(8).
    endform.                    " get_org
    *&      Form  get_vac_data
    Get the Vaccancies Data from Database Table HRP1007
    form get_vac_data.
      if not org_tab[] is initial.
        select plvar       " Plan Version
               otype       " Object Type
               objid       " Object ID
               istat       " Planning Status
               begda       " Begin date
               endda       " End date
               vacan       " Vacancy Indicator
               status      " Status of Vacancy
           into table vac_tab
           from hrp1007
           for all entries in org_tab
           where plvar = c_plan   and
                 otype = c_otype  and
                 istat eq c_pstat and
                 objid = org_tab-objid and
                 begda le p_date and
                 endda ge p_date and
                 vacan eq c_x  and
                 status eq c_stat.
      endif.
      sort vac_tab by plvar otype objid.
    Get the HR data into the rep_tab Internal Table
      loop at vac_tab.
        rep_tab-plans  = vac_tab-objid.
        rep_tab-vacan  = vac_tab-vacan.
        rep_tab-status = vac_tab-status.
        read table org_tab with key objid = vac_tab-objid.
        if sy-subrc = 0.
          rep_tab-kostl = org_tab-kostl.
          rep_tab-plstx = org_tab-plstx.
          rep_tab-orgtx = org_tab-orgtx.
        endif.
        append rep_tab.
        clear  rep_tab.
      endloop.
      loop at rep_tab.
        if not rep_tab-kostl in s_kostl.
          delete rep_tab index sy-tabix.
        endif.
      endloop.
      sort rep_tab by kostl plans.
    delete rep_tab where plstx cs v_str.
    delete rep_tab where orgtx cs v_str1.
    Calculate the Count of Vacancies in each Division
      clear v_cnt.
      loop at rep_tab.
        at end of kostl.
          sy-tabix = sy-tabix - v_cnt.
          rep1_tab-kostl = rep_tab-kostl.
          rep1_tab-cnt   = sy-tabix.
          v_cnt = v_cnt + sy-tabix.
          append rep1_tab.
          clear:rep1_tab.
        endat.
      endloop.
      sort rep1_tab by kostl.
    endform.                  "get_vac_data
    *&      Form append_data
    Append the data into final Internal Table
    form append_data.
      loop at org2_tab.
        rep2_tab-kostl = org2_tab-kostl.
        rep2_tab-app_no = org2_tab-count.
        read table act4_tab with key kostl = org2_tab-kostl
                                     binary search.
        if sy-subrc = 0.
          rep2_tab-nat_no = act4_tab-count1.
        endif.
        read table act5_tab with key kostl = org2_tab-kostl
                                     binary search.
        if sy-subrc = 0.
          rep2_tab-exp_no = act5_tab-count2.
        endif.
        read table rep1_tab with key kostl = org2_tab-kostl
                                     binary search.
        if sy-subrc = 0.
          rep2_tab-vac_no = rep1_tab-cnt.
        endif.
        rep2_tab-tot_no = rep2_tab-nat_no + rep2_tab-exp_no.
        append rep2_tab.
        clear rep2_tab.
      endloop.
      sort rep2_tab by kostl.
    endform.             "append_data
    *&      Form  top_of_page
    Write the Report and Column Headings
    form top_of_page.
      skip.
      format color col_heading on.
      write: /1(108) 'NATIONAL DRILLING COMPANY'(010) centered,
             /1(108) 'Summary of Manning Level Report'(011) centered.
      format color off.
      skip.
      write: /2 'Key Date        :'(013), p_date,
             75 'Report Run Date:'(041), sy-datum.
      if not s_kostl[] is initial.
        if s_kostl-high is initial.
          write: /2 'Cost Center     :'(023), s_kostl-low,
                 75 'Time           :'(042), sy-uzeit.
        else.
          write: /2 'Cost Center From:'(024), s_kostl-low+7(3),
                                    'To'(022), s_kostl-high,
                 75 'Time           :'(042), sy-uzeit.
        endif.
      else.
        write: /75  'Time           :'(042), sy-uzeit.
      endif.
      if not s_plans[] is initial.
        if s_plans-high is initial.
          write: /2 'Position Id     :'(019), s_plans-low,
                 75 'User           :'(043), sy-uname.
        else.
          write: /2 'Position Id From:'(021), s_plans-low,
                              'To'(022), s_plans-high,
                 75 'User           :'(043), sy-uname.
        endif.
      else.
        write: /75 'User           :'(043), sy-uname.
      endif.
      write: /75 'Page No        :'(044), sy-pagno.
      skip.
      write /1(108) sy-uline.
      format color col_heading.
      write:/1 sy-vline,
            12 sy-vline, 53 sy-vline,
            64 sy-vline, 65(32)  'Actual'(018) centered,
            97 sy-vline,108 sy-vline.
      write:/1 sy-vline,  2(10) 'CostCenter'(014),
            12 sy-vline, 13(40) 'Description'(026) centered,
            53 sy-vline, 54(10) 'Approved'(025) centered,
            64 sy-vline, 65(32)  sy-uline,
            97 sy-vline, 98(10) 'Vacancies'(017),
           108 sy-vline.
      write:/1 sy-vline,
            12 sy-vline, 53 sy-vline,
            64 sy-vline, 65(10) 'National'(015) centered,
            75 sy-vline, 76(10) 'Expatriate'(020) centered,
            86 sy-vline, 87(10) 'Total'(016) centered,
            97 sy-vline,108 sy-vline.
      format color off.
      write /1(108) sy-uline.
    endform.               "top_of_page
    *&      Form  Display_report
    Write the Report Output
    form display_report.
      if rep2_tab[] is initial.
        message i999 with
        'No Data found for the entered Selection'(035).
      else.
        loop at rep2_tab.
    Authorization Check for the Orgn and Cost Centers
          perform auth_check_org.
          if sy-subrc = 0.
            clear cskt.
            select single ltext into cskt-ltext from cskt
                where spras = sy-langu and
                      kokrs = c_kokrs and
                      kostl = rep2_tab-kostl.
            format color col_normal.
            write: /1 sy-vline, 2(10) rep2_tab-kostl+7(3),
                   12 sy-vline, 13(40) cskt-ltext,
                   53 sy-vline, 54(10) rep2_tab-app_no,
                   64 sy-vline, 65(10) rep2_tab-nat_no,
                   75 sy-vline, 76(10) rep2_tab-exp_no,
                   86 sy-vline, 87(10) rep2_tab-tot_no,
                   97 sy-vline, 98(10) rep2_tab-vac_no,
                  108 sy-vline.
            format color off.
            at last.
              sum.
              format color 3.
              write /1(108) sy-uline.
              write: /1 sy-vline, 2(10) 'Total'(027),
                     12 sy-vline,
                     53 sy-vline, 54(10) rep2_tab-app_no,
                     64 sy-vline, 65(10) rep2_tab-nat_no,
                     75 sy-vline, 76(10) rep2_tab-exp_no,
                     86 sy-vline, 87(10) rep2_tab-tot_no,
                     97 sy-vline, 98(10) rep2_tab-vac_no,
                    108 sy-vline.
              format color off.
            endat.
          endif.
        endloop.
      endif.
      write /1(108) sy-uline.
    endform.                    " Display_report
    *&      Form  auth_check_org
    Authorization Check for the Orgn and Cost Center
    form auth_check_org.
      authority-check object 'ZNDCHROM'
            id 'PLVAR' dummy
            id 'OTYPE' dummy
            id 'KOSTL' field rep2_tab-kostl.
    endform.                  "auth_check_org
    reward if useful
    regards,
    ANJI

Maybe you are looking for

  • Presentation variable is not supported in "SQL Issued"

    hi, there is a presentation variable called @{ps_var} from a prompt and I have written a custom sql and typed in "SQL Issued" !http://img31.imageshack.us/img31/8673/customsql.jpg! I found that the presentation variable is not supported in "SQL Issued

  • Error in Scenario File to RFC

    Hi Experts, I´m with a problem in a interface FILE->XI-RFC (assynchronous). I created a file in FTP directory and configured adapter file with pool 60 sec. I´m testing in MM is OK. I´m testing in IM is OK. In SXI_MONITOR is OK. When I go to Runtime -

  • Too many payments taken for my Skype Credit

    Hi I would like to know where I can report about 4 payments taken in one day eg May 23rd, 2013 for my Skype Credit account. Instead of only one payment of $40AUD being taken, there were four payments credited to my Credit Card. This should not have h

  • CD stuck in slot & computer won't start

    I placed a cd in my front slotted graphite (special edition) iMac and the icon didn't appear. I attempted to manually eject with a paper clip and I heard all the whirring sounds but it would't eject. I hit restart and held the mouse key down, nothing

  • Error 6 occurred at RcvRespMsg - NI-488: I/O operation aborted.

    Hi, I am getting an error while trying to Read data bytes from a previously addressed device (RcvRespMsg) with Labview 7.1. In MAX I can write data to control my Test Receiver by GPIB USB-B. I tried to run the same software I usually work with and it