Doubt in report of FI

Hi every one i have a small doubt in FI report that is i have to give the following output as per the user requirement i had added all the everything in this program i had given u the entire code the only problem is if make comment for the code of city and postal code the remaining everything is working properly and if i remove comment at CITY and POSTAL CODE there is some error can u find out that and help me please
* Ist-Einzelpostenanzeige EC-PCA                                      *
* - direkte Aufruf                                                    *
* - Report Writer                                                     *
* - Recherche                                                         *
* 45b MIC: default values for poper and ryear depfr. fiscyear variant *
* 46a MIC Warning if too few selection parameters                     *
* 46a MIC: use up to 'whr_size' single values in select statement     *
* 46a MIC: move'Initialization of Rep-Rep-Interface' to Initialization*
* 46a MIC: check only new auth-object                                 *
* 46c MIC: add RMVCT and get more fields from RRI                     *
REPORT z_rcopca02_1 NO STANDARD PAGE HEADING MESSAGE-ID km
                LINE-COUNT (2) LINE-SIZE 81.
* Typen ***************************************************************
*type-pools: kkblo.
TYPE-POOLS: slis, ecarc.
* DDIC-Tabellen *******************************************************
TABLES: glpca,                         "Einzelposten / Ist
        glu1,                          "Übergabestruktur FI-SL-Anzeige
        t000,
        tka01,
        sscrfields,
        lfa1,
        kna1,
        bseg,
        with_item.
* Variablen und int. Tabellen *****************************************
DATA: afield        TYPE slis_fieldcat_alv,
      sp_group      TYPE slis_sp_group_alv,
      t_listheader  TYPE slis_t_listheader WITH HEADER LINE,
      t_layout      TYPE slis_layout_alv,
      t_fieldcat    TYPE slis_t_fieldcat_alv,
      t_spec_groups TYPE slis_t_sp_group_alv,
      event         TYPE slis_alv_event,
      t_events      TYPE slis_t_event,
      g_variant     LIKE disvariant,
      gx_variant    LIKE disvariant,
      g_exit(1)     TYPE c,
      g_save(1)     TYPE c,
      g_repid       LIKE sy-repid,
      msgtyp        LIKE sy-msgty,
      lt_dynpread   LIKE dynpread OCCURS 1 WITH HEADER LINE,
      ls_rpcak      LIKE rpcak,              "note 0310592
      packsize      TYPE i VALUE 1000,
      text1(60)     TYPE c,
      text2(60)     TYPE c,
      oldkokrs      LIKE glpca-kokrs,
      oldracct      LIKE glpca-racct.
DATA: whr_size    TYPE i VALUE 50,"Maximum of single values per  MIC 46a
                   "charact. in the where-clause of the select-statement
      lines         TYPE i, "number of lines of range table      MIC 46a
      cnt_rldnr     TYPE i, "Zähler Anzahl selektierter Ledger
      cnt_kokrs     TYPE i, "Zähler Anzahl selektierter KoReKreise
      cnt_poper     TYPE i, "Zähler Anzahl selektierter Perioden
      cnt_ryear     TYPE i, "Zähler Anzahl selektierter GeschJahre
      cnt_rvers     TYPE i, "Zähler Anzahl selektierter Versionen
      cnt_bukrs     TYPE i, "Zähler Anzahl selektierter BuKreise
      empge         LIKE dkobr-empge,
      ksl_curr      LIKE tka01-pcacur,
      hsl_curr      LIKE t001-waers,
      a_rec         LIKE rstirec.
DATA: BEGIN OF dim_data.
        INCLUDE STRUCTURE rgcdi.       "data for dimensions
DATA: END OF dim_data.
DATA: BEGIN OF tab_fields OCCURS 80,
        name LIKE dntab-fieldname,     "fields in table i_glpca
      END OF tab_fields.
DATA: BEGIN OF i_glpca OCCURS 0.
        INCLUDE STRUCTURE rpca2.
DATA:   racct_ktext LIKE rpcak-ktext,
        psppp LIKE prps-posid,
        name1 LIKE lfa1-name1,
        adrnr like lfa1-adrnr,
        stras like lfa1-stras,
        c_name1 like kna1-name1,
        v_rate like with_item-qsatz,
        qsshb like bseg-qsshb,
        qbshb like bseg-qbshb,
      END OF i_glpca.
DATA: rw_subrc   LIKE sy-subrc,      "Flag: Report-Writer-Schnittstelle
      re_subrc   LIKE sy-subrc,        "Flag: Recherche-Schnittstelle
      subrc      LIKE sy-subrc.
DATA: set_id    LIKE sethier-setid,    "Set-ID        "RDI_SETS_4.0
      set_class LIKE sethier-setclass, "Setklasse     "RDI_SETS_4.0
      set_sname LIKE sethier-shortname."Setname (24)  "RDI_SETS_4.0
DATA: authorised(1),
      s_message(1),
      auth_dbcount LIKE sy-tabix,
*     Hex-Konstanten für Minimum/Maximum-Werte
      BEGIN OF hex00,
        x1(12) TYPE c,
        x2(12) TYPE c,
      END OF hex00,
      BEGIN OF hexff,
        x1(12) TYPE c,
        x2(12) TYPE c,
      END OF hexff.
RANGES rclnt FOR glpca-rclnt.
FIELD-SYMBOLS: <glpca> LIKE LINE OF i_glpca,
               <glpca_arc> TYPE ecarc_glpca_curr.
* Selektionsoptionen *************************************************
SELECT-OPTIONS:
  rldnr    FOR glpca-rldnr   DEFAULT '8A' NO-DISPLAY,
  rassc    FOR glpca-rassc                NO-DISPLAY,
* rrcty    for glpca-rrcty   default 0,
  rrcty    FOR glpca-rrcty,
  rvers    FOR glpca-rvers   DEFAULT '000',
  kokrs    FOR glpca-kokrs   MEMORY ID cac,
  bukrs    FOR glpca-rbukrs  MEMORY ID buk,
* poper    for glpca-poper   default sy-datlo+4(2),
* ryear    for glpca-ryear   default sy-datlo,
  poper    FOR glpca-poper,
  ryear    FOR glpca-ryear,
  prctr    FOR glpca-rprctr  MATCHCODE OBJECT prct,
  pprctr   FOR glpca-sprctr  MATCHCODE OBJECT prct,
* RACCT    FOR GLPCA-RACCT   MATCHCODE OBJECT KART,      "RD_P30K128304
  racct    FOR glpca-racct,            "RD_P30K128304
  drcrk    FOR glpca-drcrk,
  activ    FOR glpca-activ,
  rhoart   FOR glpca-rhoart,
  rfarea   FOR glpca-rfarea,
  stagr    FOR glpca-stagr,
  rtcur    FOR glpca-rtcur,
  runit    FOR glpca-runit,
  versa    FOR glpca-versa  NO-DISPLAY,
  eprctr   FOR glpca-eprctr NO-DISPLAY,
  afabe    FOR glpca-afabe  NO-DISPLAY,
  rmvct    FOR glpca-rmvct  NO-DISPLAY,
  hrkft    FOR glpca-hrkft  NO-DISPLAY,  "note 550972
  sbukrs   FOR glpca-sbukrs NO-DISPLAY,  "note 550972
  shoart   FOR glpca-shoart NO-DISPLAY,  "note 550972
  sfarea   FOR glpca-sfarea NO-DISPLAY,  "note 550972
  docct    FOR glpca-docct,
  docnr    FOR glpca-docnr,
  refdocct FOR glpca-refdocct,
  refdocnr FOR glpca-refdocnr,
  werks    FOR glpca-werks,
  repmatnr FOR glpca-rep_matnr MATCHCODE OBJECT pca_shlp_rep_matnr,
  rscope   FOR glpca-rscope.
PARAMETERS: no_rrint NO-DISPLAY DEFAULT ' '." skip       "MICP40K066037
" report-report-interface
* display variant                                       ">>MICP40K039857
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-e01.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD p_vari.
SELECTION-SCREEN END OF BLOCK 0.
PARAMETERS log_grp(4) TYPE c NO-DISPLAY DEFAULT 'zKE5Z'.
"<<MICP40K039857
RANGES: v_racct  FOR glpca-racct,
        v_prctr  FOR glpca-rprctr,
        v_pprctr FOR glpca-sprctr.
* Tabelle mit Werten aus den Berichts-Set vom Report-Writer           *
DATA  BEGIN OF val_tab OCCURS 50.
        INCLUDE STRUCTURE rgciv.
DATA  END OF val_tab.
***************************************************        MICP30K166368
* feldkatalog und interface für bb-schnittstelle rw        MICP30K166368
***************************************************        MICP30K166368
"MICP30K166368
DATA  BEGIN OF bbs_fieldtab OCCURS 20. "MICP30K166368
        INCLUDE STRUCTURE rstifields.  "MICP30K166368
DATA  END OF bbs_fieldtab.             "MICP30K166368
* archiv
TYPE-POOLS: rsds.
TYPES:      BEGIN OF ty_archive_objects,
               object       LIKE arch_obj-object,
            END   OF ty_archive_objects,
            ty_t_archive_objects TYPE ty_archive_objects OCCURS 2.
CONSTANTS:  lc_set          TYPE  c           VALUE 'X',
            lc_report       TYPE  progname    VALUE 'ZKE5Z',
            lc_reporttype   TYPE  reporttype  VALUE 'TR'.
TABLES:     admi_files.
SELECT-OPTIONS lr_files FOR admi_files-archiv_key NO-DISPLAY.
PARAMETER:  read_db       TYPE c            DEFAULT 'X' NO-DISPLAY,
            read_ar       TYPE c                        NO-DISPLAY,
            arc_obj       LIKE arch_obj-object          NO-DISPLAY,
            read_as       TYPE c            DEFAULT 'X' NO-DISPLAY.
DATA  :     lt_arch_obj     TYPE ty_t_archive_objects WITH HEADER LINE,
            ls_selections   TYPE rsds_frange,
            lt_selections   TYPE rsds_frange_t,
            ls_selopt TYPE rsdsselopt,
            lt_glpca_archiv TYPE ecarc_t_glpca_curr.
*********************************************************>>MICP40K039857
* INITIALIZATION
INITIALIZATION.
* Diverse Initialisierungen
  PERFORM init_vars.
  g_repid = sy-repid.
* Set default values for record type
  rrcty-sign = 'I'.
  rrcty-option = 'EQ'.
  rrcty-low    = '0'.
  APPEND rrcty.
  rrcty-low = '2'.
  APPEND rrcty.
* Set default values for period and year (if kokrs or bukrs is known)
  GET PARAMETER ID 'BUK' FIELD bukrs-low.
  GET PARAMETER ID 'CAC' FIELD kokrs-low.
  IF     kokrs-low IS INITIAL       "get contr. area from company code
     AND NOT bukrs-low IS INITIAL.
    CALL FUNCTION 'KOKRS_GET_FROM_BUKRS'
      EXPORTING
        i_bukrs        = bukrs-low
      IMPORTING
        e_kokrs        = kokrs-low
      EXCEPTIONS
        no_kokrs_found = 1
        OTHERS         = 2.
    IF sy-subrc <> 0.
      CLEAR kokrs-low.
    ENDIF.
  ENDIF.
  IF NOT kokrs-low IS INITIAL.
    CALL FUNCTION 'K_KOKRS_READ'       "get fiscal year variant
         EXPORTING
              kokrs           = kokrs-low
          IMPORTING
              e_tka01         = tka01
        EXCEPTIONS
              not_found       = 1
              not_found_gjahr = 2
              OTHERS          = 3.
    IF sy-subrc = 0.
      CALL FUNCTION 'G_PERIOD_GET'
        EXPORTING
          date                           = sy-datlo
          variant                        = tka01-lmona
        IMPORTING
          period                         = poper-low
          year                           = ryear-low
        EXCEPTIONS
          ledger_not_assigned_to_company = 1
          period_not_defined             = 2
          variant_not_defined            = 3
          OTHERS                         = 4.
      IF sy-subrc = 0.
        poper-sign = 'I'.
        poper-option = 'EQ'.
        APPEND poper.
        ryear-sign = 'I'.
        ryear-option = 'EQ'.
        APPEND ryear.
      ENDIF.
    ENDIF.
  ENDIF.
* Settings for display variants
  g_save = 'A'.  "Schalter Varianten benutz./allg. speichern
  CLEAR g_variant.
  g_variant-report = g_repid.
  g_variant-log_group = log_grp.
  g_variant-username = sy-uname.
* Get default variant
  gx_variant = g_variant.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = g_save
    CHANGING
      cs_variant = gx_variant
    EXCEPTIONS
      not_found  = 2.
  IF sy-subrc = 0.
    p_vari = gx_variant-variant.
  ENDIF.
* Set variant
  IF p_vari IS INITIAL.
    p_vari = '1SAP'.
    MOVE p_vari TO gx_variant-variant.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
      EXPORTING
        i_save     = g_save
      CHANGING
        cs_variant = gx_variant
      EXCEPTIONS
        not_found  = 1.
    IF sy-subrc NE 0.
      CLEAR p_vari.
      CLEAR gx_variant-variant.
    ENDIF.
  ENDIF.
  varname = gx_variant-text.
  "<<MICP40K039857
* archiv
  CALL FUNCTION 'KARL_DATA_INPUT_INIT'
    EXPORTING
      i_report     = lc_report
      i_reporttype = lc_reporttype
    IMPORTING
      e_xusedb     = read_db
      e_xusear     = read_ar
      e_archobj    = arc_obj
      e_infosys    = read_as
    TABLES
      t_arch_sel   = lr_files.
  DATA: lt_excluding LIKE sy-ucomm OCCURS 0 WITH HEADER LINE.
  CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
    EXPORTING
      p_status  = 'SELSCREEN'
      p_program = 'RCOPCA02'
    TABLES
      p_exclude = lt_excluding.
* Initialisieren der Bericht/Bericht-Schnittstellen                   *
  DATA: ld_no_rrint TYPE boole_d.      "note 490484 begin
  IMPORT rri = ld_no_rrint FROM MEMORY ID 'RCOPCA02_NO_RRI'.
  IF ld_no_rrint = 'X'.
    FREE MEMORY ID 'RCOPCA02_NO_RRI'.
  ELSE.                                "note 490484 end
    CALL FUNCTION 'G_REPORT_INTERFACE_INIT'   "Report-Writer?
        EXPORTING                      "MICP30K166368
             table = 'GLPCT'           "MICP30K166368
         IMPORTING
             subrc = rw_subrc          "MICP30K166368
        TABLES                         "MICP30K166368
             it_fieldr = bbs_fieldtab. "MICP30K166368
    CALL FUNCTION 'RSTI_APPL_STACK_POP'"oder Recherche?
         IMPORTING
              i_rec                      = a_rec
         EXCEPTIONS
              appl_stack_not_initialized = 1.
    re_subrc = sy-subrc.
    IF re_subrc = 0.
*    check Receiver is this report
      IF NOT ( ( a_rec-rtool = 'RT' AND a_rec-ronam = 'Z_RCOPCA02_1' )
               OR ( a_rec-rtool = 'TR' AND a_rec-ronam = 'ZKE5Z' ) ) .
        re_subrc = 2.
      ENDIF.
    ENDIF.
  ENDIF.
* AT SELCTION-SCREEN on value request**********************************
*at selection-screen on value-request for racct-low.          "RD "4.6a
*                                                             "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
*      importing                                              "RD "4.6a
*           e_racct      = racct-low.                         "RD "4.6a
*                                                             "RD "4.6a
*                                                             "RD "4.6a
*at selection-screen on value-request for racct-high.         "RD "4.6a
*                                                             "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
*      importing                                              "RD "4.6a
*           e_racct      = racct-high.                        "RD "4.6a
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.         "MICP40K039857
  PERFORM f4_for_variant.              "MICP40K039857
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-low.         "RD "4.6a
* begin of insertion note 522715
  CALL FUNCTION 'K_KOKRS_READ'
    EXPORTING
      kokrs           = kokrs-low
    EXCEPTIONS
      not_found       = 1
      not_found_gjahr = 2
      OTHERS          = 3.
  IF sy-subrc = 0.
* end of insertion note 522715
    CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
         EXPORTING                                          "RD "4.6a
              i_kokrs     = kokrs-low                       "RD "4.6a
              i_ryear     = ryear-low                       "RD "4.6a
         IMPORTING                                          "RD "4.6a
              e_rpmax     = poper-low                       "RD "4.6a
* begin of insertion note 522715
         EXCEPTIONS
              table_empty = 1.
  ENDIF.
* end of insertion note 522715
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-high.        "RD "4.6a
* begin of insertion note 522715
  CALL FUNCTION 'K_KOKRS_READ'
    EXPORTING
      kokrs           = kokrs-low
    EXCEPTIONS
      not_found       = 1
      not_found_gjahr = 2
      OTHERS          = 3.
  IF sy-subrc = 0.
* end of insertion note 522715
    CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
         EXPORTING                                          "RD "4.6a
              i_kokrs     = kokrs-low                       "RD "4.6a
              i_ryear     = ryear-low                       "RD "4.6a
         IMPORTING                                          "RD "4.6a
              e_rpmax     = poper-high                      "RD "4.6a
* begin of insertion note 522715
         EXCEPTIONS
              table_empty = 1.
  ENDIF.
* end of insertion note 522715
* AT SELCTION-SCREEN ***************************************************
AT SELECTION-SCREEN.
  PERFORM pai_of_selection_screen.
* begin of insertion note 522715
  IF NOT kokrs-low IS INITIAL.
    CALL FUNCTION 'K_KOKRS_READ'
      EXPORTING
        kokrs           = kokrs-low
      EXCEPTIONS
        not_found       = 1
        not_found_gjahr = 2
        OTHERS          = 3.
    IF sy-subrc <> 0.
      MESSAGE e101(ki) WITH kokrs-low.
    ENDIF.
  ENDIF.
* end of insertion note 522715
* archiv
  IF sy-ucomm = 'FC01' OR sy-ucomm = 'UCDS'
    OR sy-ucomm = 'ONLI' AND read_ar = 'X'
    AND read_as IS INITIAL AND lr_files[] IS INITIAL.
    IF lt_arch_obj[] IS INITIAL.
      lt_arch_obj-object = 'PCA_OBJECT'. APPEND lt_arch_obj.
      lt_arch_obj-object = 'EC_PCA_ITM'. APPEND lt_arch_obj.
    ENDIF.
    CALL FUNCTION 'KARL_DATA_INPUT_SELECT'
      EXPORTING
        i_db_and_arc       = lc_set
        i_infosys_possible = lc_set
        i_object_fixed     = 'V'
        i_documentation    = 'KARL_DATA_INPUT_SEL_KE5YZ'
        i_report           = lc_report
        i_reporttype       = lc_reporttype
      TABLES
        t_objects          = lt_arch_obj
        t_arch_sel         = lr_files
      CHANGING
        c_xusedb           = read_db
        c_xusear           = read_ar
        c_archobj          = arc_obj
        c_infosys          = read_as.
  ENDIF.
* START-OF-SELECTION **************************************************
START-OF-SELECTION.
*   Default-Werte löschen, falls Aufruf über Recherche
*   oder Report-Writer erfolgt ist
  IF no_rrint IS INITIAL AND ld_no_rrint IS INITIAL.        "note 490484
    IF rw_subrc EQ 0 OR re_subrc EQ 0.
      REFRESH: rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
               racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
               versa, afabe, eprctr,
               v_racct, v_prctr, v_pprctr.
      CLEAR:   rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
               racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
               versa, afabe, eprctr,
               v_racct, v_prctr, v_pprctr.
      IF NOT read_as IS INITIAL.                           "note 625581
        CLEAR: lr_files, lr_files[].                       "note 625581
      ENDIF.                                               "note 625581
    ENDIF.
* Parameter einlesen über Report-Writer-Schnittstelle                 *
    IF rw_subrc EQ 0.
      PERFORM rw_get_parameters.
* oder Parameter einlesen über Recherche-Schnittstelle                *
    ELSEIF re_subrc EQ 0.
      PERFORM re_get_parameters.
    ENDIF.
  ENDIF.
  IF read_db = 'X'.                     " read from DB (archiv)
* Bewegungsdaten einlesen und puffern...................................
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        text = 'Einzelposten selektieren'(p10).
* Use dirty trick to mislead DB-optimizer
    CALL FUNCTION 'DB_DO_NOT_USE_CLIENT_INDEX'
      EXPORTING
        value    = sy-mandt
      TABLES
        mandttab = rclnt.
    SELECT (tab_fields) FROM glpca
       CLIENT SPECIFIED
       PACKAGE SIZE packsize
       APPENDING CORRESPONDING FIELDS OF TABLE i_glpca
       WHERE rldnr     IN rldnr
         AND rrcty     IN rrcty
         AND rvers     IN rvers
         AND kokrs     IN kokrs
         AND rbukrs    IN bukrs
         AND ryear     IN ryear
         AND rassc     IN rassc
         AND hrkft     IN hrkft   "note 550972
         AND sbukrs    IN sbukrs  "note 550972
         AND shoart    IN shoart  "note 550972
         AND sfarea    IN sfarea  "note 550972
         AND racct     IN racct
         AND rprctr    IN prctr
         AND sprctr    IN pprctr
         AND poper     IN poper
         AND drcrk     IN drcrk
         AND activ     IN activ
         AND rhoart    IN rhoart
         AND rfarea    IN rfarea
         AND versa     IN versa
         AND eprctr    IN eprctr
         AND afabe     IN afabe
         AND rmvct     IN rmvct
         AND docct     IN docct
         AND docnr     IN docnr
         AND stagr     IN stagr
         AND rtcur     IN rtcur
         AND runit     IN runit
         AND refdocct  IN refdocct
         AND refdocnr  IN refdocnr
         AND werks     IN werks
         AND rep_matnr IN repmatnr       "RDIP40K020663
         AND rscope    IN rscope         "RDIP40K020663
      AND rclnt     IN rclnt.       "dirty trick to mislead DB-optimizer
      IF sy-dbcnt > 1.
        text1 = sy-dbcnt.
        CONDENSE text1.
        CONCATENATE text1 text-m01 INTO text2 SEPARATED BY space.
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
            text = text2.          " ... Datensätze gelesen
      ENDIF.
    ENDSELECT.
* Entfernt nicht zugehörige Einträge....................................
    LOOP AT i_glpca WHERE ( NOT rprctr IN v_prctr  )
                       or ( not SPRCTR in v_pprctr )
                       OR ( NOT racct  IN v_racct  ).
      DELETE i_glpca.
    ENDLOOP.
  ENDIF.
*archiv
  IF read_ar = 'X' AND NOT
    ( read_as IS INITIAL AND lr_files[] IS INITIAL ).
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
      EXPORTING
        text = 'Lesen im Archiv'(p12).
    DEFINE fill_lt_selections.
      if not &2[] is initial.
        clear ls_selections.
        move &1 to ls_selections-fieldname.
        loop at &2.
          clear ls_selopt.
          move-corresponding &2 to ls_selopt.
          append ls_selopt to ls_selections-selopt_t.
        endloop.
        append ls_selections to lt_selections.
      endif.
    END-OF-DEFINITION.
    fill_lt_selections 'RLDNR'  rldnr.
    fill_lt_selections 'RRCTY'  rrcty.
    fill_lt_selections 'RVERS'  rvers.
    fill_lt_selections 'KOKRS'  kokrs.
    fill_lt_selections 'RBUKRS' bukrs.
    fill_lt_selections 'POPER'  poper.
    fill_lt_selections 'RYEAR'  ryear.
    fill_lt_selections 'RPRCTR' prctr.
    fill_lt_selections 'SPRCTR' pprctr.
    fill_lt_selections 'RACCT'  racct.
    fill_lt_selections 'DRCRK'  drcrk.
    fill_lt_selections 'ACTIV'  activ.
    fill_lt_selections 'RHOART' rhoart.
    fill_lt_selections 'RFAREA' rfarea.    "note 401961
    fill_lt_selections 'STAGR'  stagr.
    fill_lt_selections 'RTCUR'  rtcur.
    fill_lt_selections 'RUNIT'  runit.
    fill_lt_selections 'VERSA'  versa.
    fill_lt_selections 'EPRCTR' eprctr.
    fill_lt_selections 'AFABE'  afabe.
    fill_lt_selections 'RMVCT'  rmvct.
    fill_lt_selections 'DOCCT'  docct.
    fill_lt_selections 'DOCNR'  docnr.
    fill_lt_selections 'REFDOCCT' refdocct.
    fill_lt_selections 'REFDOCNR' refdocnr.
    fill_lt_selections 'WERKS'  werks.
    fill_lt_selections 'REP_MATNR' repmatnr.
    fill_lt_selections 'RSCOPE' rscope.
    fill_lt_selections 'HRKFT'  hrkft.   "note 550972
    fill_lt_selections 'SBUKRS' sbukrs.  "note 550972
    fill_lt_selections 'SHOART' shoart.  "note 550972
    fill_lt_selections 'SFAREA' sfarea.  "note 550972
    CALL FUNCTION 'EC_PCA_SELECT_FROM_ARCHIVE'
      EXPORTING
        i_selections            = lt_selections[]
        i_files_sequential_read = lr_files[]
      IMPORTING
        e_glpca                 = lt_glpca_archiv[]
      EXCEPTIONS
        no_infostruc_found      = 1.
    IF sy-subrc = 1.
      MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    CLEAR i_glpca.
    LOOP AT lt_glpca_archiv ASSIGNING <glpca_arc>
                    WHERE ( rprctr IN v_prctr  )
                      and ( sprctr IN v_pprctr )
                      AND ( racct  IN v_racct  ).
      MOVE-CORRESPONDING <glpca_arc> TO i_glpca.
      APPEND i_glpca.
    ENDLOOP.
* delete duplicate records                                   note 639647
    IF NOT read_db IS INITIAL AND NOT lt_glpca_archiv[] IS INITIAL.
      SORT i_glpca.
      DELETE ADJACENT DUPLICATES FROM i_glpca.
    ENDIF.
  ENDIF.
  IF i_glpca[] IS INITIAL.         "Info,nichts gefunden
    MESSAGE s000.
    EXIT.
  ENDIF.
* get texts for accounts ...............................................
  SORT i_glpca BY kokrs racct.
  LOOP AT i_glpca ASSIGNING <glpca>.
    IF <glpca>-kokrs <> oldkokrs OR <glpca>-racct <> oldracct. "AT NEW
      CLEAR ls_rpcak.
      oldkokrs = <glpca>-kokrs.
      oldracct = <glpca>-racct.
      CALL FUNCTION 'K_RACCT_SINGLE_CHECK'         "note 0310592
           EXPORTING
                i_kokrs    = <glpca>-kokrs
                i_racct    = <glpca>-racct
                i_spras    = sy-langu
                i_textflag = 'X'
           IMPORTING
                e_rpcak    = ls_rpcak
           EXCEPTIONS
                not_valid  = 1
                OTHERS     = 2.
      IF sy-subrc NE 0.
        CLEAR ls_rpcak.
      ENDIF.
    ENDIF.                             "ENDAT
    <glpca>-racct_ktext = ls_rpcak-ktext.
* Fetching vendor name from vendor number
*break-point.
     SELECT SINGLE * FROM LFA1
         WHERE LIFNR = <glpca>-LIFNR AND
         SPRAS = SY-LANGU.
     IF SY-SUBRC eq 0.
        <glpca>-name1 = lfa1-name1.
        <glpca>-adrnr = lfa1-adrnr.
        <glpca>-stras = lfa1-stras.
     ENDIF.
* Fetching customer name from customer number
     SELECT SINGLE * FROM kna1
         WHERE KUNNR = <glpca>-KUNNR.
     IF SY-SUBRC eq 0.
        <glpca>-c_name1 = kna1-name1.
     ENDIF.
     SELECT SINGLE * FROM bseg
            WHERE BUKRS EQ <glpca>-rbukrs AND
                  BELNR EQ <glpca>-refdocnr AND
                  GJAHR EQ <glpca>-ryear AND
                  KTOSL EQ 'WIT' AND
                  BUZEI EQ <glpca>-refdocln.
     IF SY-SUBRC eq 0.
       SELECT SINGLE * FROM WITH_ITEM
              WHERE BUKRS EQ <glpca>-rbukrs AND
                    BELNR EQ <glpca>-refdocnr AND
                    GJAHR EQ <glpca>-ryear." AND
*                    BUZEI EQ <glpca>-refdocln AND
*                    WITHT EQ BSEG-QSSKZ.
       IF SY-SUBRC eq 0.
          <glpca>-v_rate = with_item-qsatz.
          <glpca>-qsshb = with_item-WT_QSSHB.
          <glpca>-qbshb = with_item-WT_QBSHB.
       ENDIF.
     ENDIF
  ENDLOOP.
* Liste mit Einzelposten geeignet sortieren.............................
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text = 'Einzelposten sortieren'(p30).
*  if show_ref is initial.
*    sort i_glpca by rldnr ryear rbukrs rrcty rvers
*                    docct docnr docln.
*  else.
  SORT i_glpca BY rldnr kokrs ryear rbukrs rrcty rvers poper
                  refdocct refdocnr refdocln.
*  endif.
* Berechtigungsprüfung und gemerkte Belege aufbereiten .................
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text = 'Berechtigungsprüfungen'(p40).
  CLEAR: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
  LOOP AT i_glpca ASSIGNING <glpca>.
*   Berechtigungscheck
    PERFORM check_repo_authority CHANGING authorised.
    IF authorised IS INITIAL.
      DELETE i_glpca.
      s_message = 'X'.
*     zählen der Sätze ohne Berechtigung
      auth_dbcount = auth_dbcount + 1.
    ELSE. "Weitere Bearbeitung nur für berechtigte Belege...
*     Zusätzlich merken der Anzahl der Ausprägungen
*     bestimmter Dimensionen
      ON CHANGE OF <glpca>-rldnr.
        ADD 1 TO cnt_rldnr.
      ENDON.
      ON CHANGE OF <glpca>-kokrs.
        ADD 1 TO cnt_kokrs.
        CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
          EXPORTING
            ct       = '90'
            kokrs    = <glpca>-kokrs
            rldnr    = <glpca>-rldnr
          IMPORTING
            currency = ksl_curr.
      ENDON.
      ON CHANGE OF <glpca>-poper.
        ADD 1 TO cnt_poper.
      ENDON.
      ON CHANGE OF <glpca>-ryear.
        ADD 1 TO cnt_ryear.
      ENDON.
      ON CHANGE OF <glpca>-rvers.
        ADD 1 TO cnt_rvers.
      ENDON.
      ON CHANGE OF <glpca>-rbukrs.
        ADD 1 TO cnt_bukrs.
        CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
          EXPORTING
            bukrs    = <glpca>-rbukrs
            ct       = '10'
          IMPORTING
            currency = hsl_curr.
      ENDON.
*     externe Immobilienbezeichnung                     "ww/kb
*     on change of i_glpca-imkey.
      IF ( NOT <glpca>-imkey IS INITIAL ).
        CALL FUNCTION 'REMD_IMKEY_TO_EMPGE'
             EXPORTING
                  i_imkey    = <glpca>-imkey
                  i_dabrz    = <glpca>-dabrz
*                 I_length   = 20
             IMPORTING
                  e_empge    = <glpca>-empge
                  e_konty    = <glpca>-konty
             EXCEPTIONS
                  not_found  = 1.
        IF sy-subrc NE 0.
          CLEAR <glpca>-empge.
          CLEAR <glpca>-konty.
        ENDIF.
*       CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
      ENDIF.
*     endon.
*     on change of i_glpca-dabrz.
*        call function 'REMD_IMKEY_TO_EMPGE'
*             exporting
*                  i_imkey    = i_glpca-imkey
*                  i_dabrz    = i_glpca-dabrz
**                 i_length   = 20
*             importing
*                  e_empge    = i_glpca-empge
*                  e_konty    = i_glpca-konty.
**       CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
*      endon.
*     Konvertierungsproblem mit PSP-Nummer bereinigen
      IF NOT <glpca>-ps_psp_pnr IS INITIAL.
        IF <glpca>-ps_psp_pnr EQ space.
          CLEAR <glpca>-ps_psp_pnr.
        ELSE.
          WRITE <glpca>-ps_psp_pnr TO <glpca>-psppp.
          CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
            EXPORTING
              input  = <glpca>-psppp
            IMPORTING
              output = <glpca>-psppp.
        ENDIF.
      ENDIF.
*     Währungen in Hilfsfeldern speichern
      IF <glpca>-hsl_curr IS INITIAL.
        <glpca>-hsl_curr = hsl_curr.
      ENDIF.
      IF <glpca>-ksl_curr IS INITIAL.
        <glpca>-ksl_curr = ksl_curr.
      ENDIF.
*     modify i_glpca.
    ENDIF.
  ENDLOOP.
* Nachricht, wenn nicht alle Einzelposten angezeigt werden.
  IF NOT s_message IS INITIAL.
    MESSAGE s407(km) WITH auth_dbcount.
  ENDIF.
* EP ausgeben...........................................................
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      text = 'Einzelposten ausgeben'(p50).
  t_layout-detail_initial_lines = 'X'.
  t_layout-detail_popup         = 'X'.
  t_layout-f2code               = 'PIC1'.                "MICP40K039857
  t_layout-get_selinfos         = 'X'.
  t_layout-group_change_edit    = 'X'.                   "note 576149
  PERFORM fill_listheader.
  PERFORM fieldcat_fill.
  PERFORM spec_groups_fill.
  PERFORM events_fill.                 "MICP40K039857
  ">>MICP40K039857
*  call function 'K_KKB_LIST_DISPLAY'
*       exporting
*            i_callback_program       = 'Z_RCOPCA02_1
*            i_callback_user_command  = 'USR_CMD'
*            i_callback_top_of_page   = 'TOP_OF_PAGE'
**           I_CALLBACK_END_OF_PAGE   =
**           I_CALLBACK_END_OF_LIST   =
*            i_callback_pf_status_set = 'SET_PF_STATUS'
**           I_CALLBACK_LAYOUT_SAVE   =
**           I_CALLBACK_FIELDCAT_SAVE =
*            i_tabname                = 'I_GLPCA'
*            is_layout                = t_layout
*            it_fieldcat              = t_fieldcat
**           I_FCTYPE                 = 'R'
**           IT_EXCLUDING             =
*            it_special_groups        = t_spec_groups
**           IT_SORT                  =
**           IS_SEL_HIDE              =
**           I_SCREEN_START_COLUMN    = 0
**           I_SCREEN_START_LINE      = 0
**           I_SCREEN_END_COLUMN      = 0
**           I_SCREEN_END_LINE        = 0
*       tables
*            t_outtab                 = i_glpca
*       exceptions
*            others                   = 1.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
     EXPORTING
*         I_INTERFACE_CHECK        = ' '
           i_callback_program       = 'Z_RCOPCA02_1'
           i_callback_pf_status_set = 'SET_PF_STATUS'
           i_callback_user_command  = 'USR_CMD'
           i_structure_name         = 'I_GLPCA'
           is_layout                = t_layout
           it_fieldcat              = t_fieldcat
*         IT_EXCLUDING             =
           it_special_groups        = t_spec_groups
*         IT_SORT                  =
*         IT_FILTER                =
*         IS_SEL_HIDE              =
           i_default                = 'X'
           i_save                   = g_save
           is_variant               = g_variant
           it_events                = t_events
*         IT_EVENT_EXIT            =
*         IS_PRINT                 =
*         I_SCREEN_START_COLUMN    = 0
*         I_SCREEN_START_LINE      = 0
*         I_SCREEN_END_COLUMN      = 0
*         I_SCREEN_END_LINE        = 0
*    IMPORTING
*         E_EXIT_CAUSED_BY_CALLER  =
*         ES_EXIT_CAUSED_BY_USER   =
      TABLES
           t_outtab                 = i_glpca
    EXCEPTIONS
         program_error            = 1
         OTHERS                   = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  "<<MICP40K039857
  CLEAR i_glpca.
*&      Form  CHECK_REPO_AUTHORITY
*  Check only new auth-object K_PCA                                    *
*  -->  p1        text
*  <--  p2        text
FORM check_repo_authority CHANGING authorized LIKE authorised.
* fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
  DATA: auth LIKE pca_i_auth.          "46a MIC check K_PCA and G_GLTP
  auth-bukrs = <glpca>-rbukrs.
  auth-rldnr = <glpca>-rldnr.
  auth-rvers = <glpca>-rvers.
  auth-rrcty = <glpca>-rrcty.
  CLEAR authorized.
* check PrCtr/account/activity
  CALL FUNCTION 'K_PCA_RESP_AUTHORITY_CHECK'
    EXPORTING
      i_kokrs             = <glpca>-kokrs
      i_prctr             = <glpca>-rprctr
      i_kstar             = <glpca>-racct
      i_vorgn             = 'REPP'
      i_actvt             = '28'
      i_auth              = auth
      i_no_dialog_message = 'X'
    EXCEPTIONS
      no_authority        = 1
      data_missing        = 2
      OTHERS              = 3.
  IF sy-subrc = 0.                                          "ok
* check ledger/version/record type
    CALL FUNCTION 'PCA_G_GLTP_AUTH_CHECK'
      EXPORTING
        rldnr            = <glpca>-rldnr
        rvers            = <glpca>-rvers
        rrcty            = <glpca>-rrcty
      EXCEPTIONS
        no_authorisation = 1
        OTHERS           = 2.
    IF sy-subrc = 0.                   "ok, User is authorized
      authorized = 'X'.
    ENDIF.
  ENDIF.
ENDFORM.                               " CHECK_REPO_AUTHORITY
*&      Form  INIT_VARS
*       Initialisieren diverser Hilfsvariablen und -tabellen           *
FORM init_vars.
  DATA BEGIN OF nametab OCCURS 80. "Tabelle mit Feldern aus der RPCA2
          INCLUDE STRUCTURE dntab.
  DATA END OF nametab.
  SELECT SINGLE * FROM t000
                  CLIENT SPECIFIED
                  WHERE mandt = sy-mandt.
  REFRESH nametab.
  CALL FUNCTION 'NAMETAB_GET'
    EXPORTING
      only    = 'T'
      tabname = 'RPCA2'
    TABLES
      nametab = nametab.
* Übernehmen der Feldnamen, die auch in der GLPCA
* vorkommen.
  LOOP AT nametab WHERE fieldname NE 'KSL_CURR'
                    AND fieldname NE 'HSL_CURR'
                    AND fieldname NE 'EMPGE'               "ww/kb
                    AND fieldname NE 'KONTY'.              "ww/kb
    MOVE nametab-fieldname TO tab_fields-name.
    APPEND tab_fields.
  ENDLOOP.
* fill Fields of receiver for BBS                          "MIC46C
  CALL FUNCTION 'RSTI_REPORT_FIELDS_FIND'
    EXPORTING
      e_repid   = 'Z_RCOPCA02_1'
      e_type    = 'R'
    TABLES
      it_fields = bbs_fieldtab.
* correct fieldnames
  READ TABLE bbs_fieldtab WITH KEY rfield = 'PRCTR'.
  IF sy-subrc = 0.
    bbs_fieldtab-rfield = 'RPRCTR'.
    MODIFY bbs_fieldtab INDEX sy-tabix.
  ENDIF.
  READ TABLE bbs_fieldtab WITH KEY rfield = 'PPRCTR'.
  IF sy-subrc = 0.
    bbs_fieldtab-rfield = 'SPRCTR'.
    MODIFY bbs_fieldtab INDEX sy-tabix.
  ENDIF.
  READ TABLE bbs_fieldtab WITH KEY rfield = 'BUKRS'.
  IF sy-subrc = 0.
    bbs_fieldtab-rfield = 'RBUKRS'.
    MODIFY bbs_fieldtab INDEX sy-tabix.
  ENDIF.
* Unicode
  CLASS cl_abap_char_utilities DEFINITION LOAD.
  CLEAR hex00 WITH cl_abap_char_utilities=>minchar.
  CLEAR hexff WITH cl_abap_char_utilities=>maxchar.
ENDFORM.                               " INIT_VARS
*       FORM FILL_LISTHEADER                                          *
*       List-Header in Abhängigkeit der selektierten Daten            *
FORM fill_listheader.
  READ TABLE i_glpca INDEX 1.
  IF sy-subrc NE 0.
    EXIT.
  ENDIF.
  t_listheader-typ  = 'S'.
  t_listheader-key  = 'Ledger              '(h01).
  IF cnt_rldnr <= 1.
    t_listheader-info = i_glpca-rldnr.
  ELSE.
    t_listheader-info = '*'.
  ENDIF.
  APPEND t_listheader.
  t_listheader-typ  = 'S'.
  t_listheader-key  = 'Kostenrechnungskreis'(h02).
  IF  cnt_kokrs <= 1.
    t_listheader-info = i_glpca-kokrs.
  ELSE.
    t_listheader-info = '*'.
  ENDIF.
  APPEND t_listheader.
  t_listheader-typ  = 'S'.
  t_listheader-key  = 'Buchungskreis       '(h03).
  IF cnt_bukrs <= 1.
    t_listheader-info = i_glpca-rbukrs.
  ELSE.
    t_listheader-info = '*'.
  ENDIF.
  APPEND t_listheader.
  t_listheader-typ  = 'S'.
  t_listheader-key  = 'Buchungsperiode     '(h04).
  IF cnt_poper <= 1.
    t_listheader-info = i_glpca-poper.
  ELSE.
    t_listheader-info = '*'.
  ENDIF.
  APPEND t_listheader.
  IF cnt_ryear <= 1.
    t_listheader-typ  = 'S'.
    t_listheader-key  = 'Geschäftsjahr       '(h05).
    t_listheader-info = i_glpca-ryear.
    APPEND t_listheader.
  ENDIF.
  t_listheader-typ  = 'S'.
  t_listheader-key  = 'Version             '(h06).
  IF cnt_rvers <= 1.
    t_listheader-info = i_glpca-rvers.
  ELSE.
    t_listheader-info = '*'.
  ENDIF.
  APPEND t_listheader.
ENDFORM.                    "fill_listheader
*&      Form  FIELDCAT_FILL
*&      Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY,           *
*&      bzw REUSE_ALV_LIST_DISPLAY,                                    *
*&      weitere Infos enthält die FktBaustein-Doku                     *
FORM fieldcat_fill.
  DATA: i TYPE i VALUE 0.
  REFRESH t_fieldcat.
* Ledger
*  if cnt_rldnr > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RLDNR'.
  afield-no_sum      = 'X'.
  afield-no_out      = 'X'.
*   afield-key         = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
*  endif.
* Satzart
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RRCTY'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
* Version
*  if cnt_rvers > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RVERS'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
*  endif.
* Periode
*  if cnt_poper > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'POPER'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
*  endif.
* Geschäftsjahr
*  if cnt_ryear > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RYEAR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
*  endif.
* Referenzbelegtyp
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'REFDOCCT'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '2'.
  afield-seltext_s   = 'Typ'(t01).
  afield-seltext_m   = 'Belegtyp'(t02).
  afield-seltext_l   = 'Ref.Belegtyp'(t03).
  afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
*  if not show_ref is initial.
  afield-key = 'X'.
*  else.
*    afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Referenzbelegnummer
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'REFDOCNR'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '2'.
  afield-seltext_s  = 'Refbeleg'(t04).
  afield-seltext_m  = 'Refbelegnr'(t05).
  afield-seltext_l  = 'Ref.Belegnummer'(t06).
*  if not show_ref is initial.
  afield-key = 'X'.
*  else.
*    afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Referenzbelegzeile
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'REFDOCLN'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '2'.
  afield-seltext_s   = 'Zeile'(t07).
  afield-seltext_m   = 'Belegzeile'(t08).
  afield-seltext_l   = 'Ref.Belegzeile'(t09).
*  if not show_ref is initial.
  afield-key = 'X'.
*  else.
*    afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Belegtyp PCA
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'DOCCT'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '1'.
  afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
*  if show_ref is initial.
  afield-key = 'X'.
*  else.
  afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Belegnummer PCA
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'DOCNR'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '1'.
*  if show_ref is initial.
  afield-key = 'X'.
*  else.
  afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Belegzeile PCA
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'DOCLN'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-sp_group    = '1'.
*  if show_ref is initial.
  afield-key = 'X'.
*  else.
  afield-no_out = 'X'.
*  endif.
  APPEND afield TO t_fieldcat.
* Kostenrechnungskreis
*  if cnt_kokrs > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'KOKRS'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-no_out      = 'X'.
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
*  endif.
* Buchungskreis
*  if cnt_bukrs > 1.
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RBUKRS'.
  afield-ref_tabname = 'GLPCA'.
  afield-key_sel     = 'X'.
  afield-no_sum      = 'X'.
  afield-no_out      = 'X'.
  afield-seltext_s  = 'BuKrs'(b01).
  afield-seltext_m  = 'BuKrs'(b02).
  afield-seltext_l  = 'Empfänger-BuKrs'(b03).
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
*  endif.
* Profit Center
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RPRCTR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
* Eliminierungs-Profit-Center
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'EPRCTR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
* Sender-Profit-Center
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'SPRCTR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
* Konto
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RACCT'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
  ADD 1 TO i.
* Kontentext
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RACCT_KTEXT'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'RPCAK'.
  afield-ref_fieldname = 'KTEXT'.
  afield-seltext_s   = 'Kont-txt.'(m11).
  afield-seltext_m   = 'Kontentext'(m12).
  afield-seltext_l   = 'Kontentext'(m13).
  afield-sp_group    = '7'.
  APPEND afield TO t_fieldcat.
  ADD 1 TO i.
* Statistische Kennzahl
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'STAGR'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '12'.
  APPEND afield TO t_fieldcat.
* Soll/Haben-Kennzeichen
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'DRCRK'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '1'.
  APPEND afield TO t_fieldcat.
* Wert in Profit-Center-Währung
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'KSL'.
  afield-do_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
*  AFIELD-SELTEXT_S   = 'PrCtr-Hauswhr.'(P01).
*  AFIELD-SELTEXT_M   = 'PrCtr-Hauswährung'(P02).
*  AFIELD-SELTEXT_L   = 'Profit-Center-Hauswährung'(P03).
  afield-cfieldname  = 'KSL_CURR'.
  afield-sp_group    = '3'.
  APPEND afield TO t_fieldcat.
* Währungsschlüssel KSL
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos       = i.
  afield-fieldname     = 'KSL_CURR'.
  afield-ref_tabname   = 'TKA01'.
  afield-ref_fieldname = 'PCACUR'.
  afield-no_sum        = 'X'.
  afield-no_out        = 'X'.
  afield-seltext_s     = 'PrCtrHW'(t10).
  afield-seltext_m     = 'Währungsschl. PrCtrHW'(t11).
  afield-seltext_l     = 'Währungsschl. PrCtrHW'(t12).
  afield-sp_group      = '3'.
  APPEND afield TO t_fieldcat.
* Betrag in Hauswährung
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'HSL'.
  afield-do_sum      = 'X'.
  afield-no_out      = 'X '.
  afield-ref_tabname = 'GLPCA'.
  afield-cfieldname  = 'HSL_CURR'.
  afield-sp_group    = '4'.
  APPEND afield TO t_fieldcat.
* Währungsschlüssel Hauswährung
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos       = i.
  afield-fieldname     = 'HSL_CURR'.
  afield-ref_tabname   = 'T001'.
  afield-ref_fieldname = 'WAERS'.
  afield-no_sum        = 'X'.
  afield-no_out        = 'X '.
  afield-seltext_s     = 'BukrW.'(t13).
  afield-seltext_m     = 'Währungsschl. BukrW'(t14).
  afield-seltext_l     = 'Währungsschl. BukrW'(t15).
  afield-sp_group      = '4'.
  APPEND afield TO t_fieldcat.
* Betrag in Transaktionswährung
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'TSL'.
  afield-no_out      = 'X '.
  afield-ref_tabname = 'GLPCA'.
  afield-cfieldname  = 'RTCUR'.
  afield-sp_group    = '5'.
  APPEND afield TO t_fieldcat.
* Währungsschlüssel Transaktionswährung
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos       = i.
  afield-fieldname     = 'RTCUR'.
  afield-ref_tabname   = 'GLPCA'.
  afield-ref_fieldname = 'RTCUR'.
  afield-no_sum        = 'X'.
  afield-no_out        = 'X '.
  afield-seltext_s     = 'TW  '(t16).
  afield-seltext_m     = 'Währungsschl. TW'(t17).
  afield-seltext_l     = 'Währungsschl. TW'(t18).
  afield-sp_group      = '5'.
  APPEND afield TO t_fieldcat.
* Menge
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'MSL'.
  afield-qfieldname  = 'RUNIT'.
  afield-no_out      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group      = '6'.
  APPEND afield TO t_fieldcat.
* Mengeneinheit
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RUNIT'.
  afield-no_sum      = 'X'.
  afield-no_out      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-sp_group      = '6'.
  APPEND afield TO t_fieldcat.
* Herkunftsobjektart
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RHOART'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group      = '7'.
  APPEND afield TO t_fieldcat.
* Funktionsbereich
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RFAREA'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group      = '7'.
  APPEND afield TO t_fieldcat.
* Objektklasse
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'RSCOPE'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group      = '1'.
  APPEND afield TO t_fieldcat.
* G/L-Vorgang
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'ACTIV'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-seltext_s     = 'Vorg.'(t31).
  afield-seltext_m     = 'Vorgang'(t32).
  afield-seltext_l     = 'Betriebswirt. Vorgang'(t33).
  afield-sp_group      = '1'.
  APPEND afield TO t_fieldcat.
* Geschäftsbereich
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'GSBER'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group      = '8'.
  APPEND afield TO t_fieldcat.
* Kostenstelle
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'KOSTL'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '9'.
  APPEND afield TO t_fieldcat.
* CO-Auftrag
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'AUFNR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-sp_group    = '9'.
  APPEND afield TO t_fieldcat.
* Projekt
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'PSPPP'.
  afield-no_sum      = 'X'.
  afield-no_out      = 'X'.
  afield-sp_group    = '9'.
  afield-ref_tabname   = 'PRPS'.
  afield-ref_fieldname = 'POSID'.
  APPEND afield TO t_fieldcat.
* Debitor
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'KUNNR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-seltext_s   = 'Debitor'(d01).
  afield-seltext_m   = text-d01.
  afield-seltext_l   = text-d01.
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
* Customer Name
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'C_NAME1'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'KNA1'.
  afield-no_out      = 'X'.
  afield-seltext_s   = 'Customer Name'.
  afield-seltext_m   = 'Cust Name'.
  afield-seltext_l   = 'C Name'.
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
* Kreditor
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'LIFNR'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'GLPCA'.
  afield-no_out      = 'X'.
  afield-seltext_s   = 'Kreditor'(k01).
  afield-seltext_m   = text-k01.
  afield-seltext_l   = text-k01.
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
* Vendor name
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'NAME1'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'LFA1'.
  afield-no_out      = 'X'.
  afield-seltext_s   = 'Vendor Name'(v01).
  afield-seltext_m   = text-v01.
  afield-seltext_l   = text-v01.
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
* Withholding tax rate
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'V_RATE'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = 'WITH_ITEM'.
  afield-no_out      = 'X'.
  afield-seltext_s   = 'Withholding tax rate'.
  afield-seltext_m   = 'With. tax rate'.
  afield-seltext_l   = 'W. Tax rate'.
  afield-sp_group    = '8'.
  APPEND afield TO t_fieldcat.
* Withholding Tax Base Amount
  ADD 1 TO i.
  CLEAR afield.
  afield-col_pos     = i.
  afield-fieldname   = 'QSSHB'.
  afield-no_sum      = 'X'.
  afield-ref_tabname = '

Hi pavan.
something is definitely wrong with your code: You have an internal table for display with fields from rpca 2 and additional some more fields. I do not see a field ORT01 for CITY or PSTLZ for POSTAL CODE, at least to in table GLPCA from where the data are extracted.
You must fill PSTLZ and ORT01 (if it is for the supplier):
     SELECT SINGLE * FROM LFA1
         WHERE LIFNR = <glpca>-LIFNR AND
         SPRAS = SY-LANGU.
     IF SY-SUBRC eq 0.
        <glpca>-name1 = lfa1-name1.
        <glpca>-adrnr = lfa1-adrnr.
        <glpca>-stras = lfa1-stras.
**** add here: ***
  select single ort01 pstlz
    into corresponding fields of <glpca>
    from adrc
    where adrnr = <glpca>-adrnr.
     ENDIF.
Make sure that fields ORT01 and PSTLZ are defined for internal table i_glpca.
Regards,
Clemens

Similar Messages

  • Doubt in report painter (how to add new columns?)

    Hi all,
    I have a  doubt in report painter, i have copied the report 12kst1c to a zreport and also the form to a zform.
    I want to add the PO relese indicator desc as a column in report output.
    Is the above possible in report paintaer.
    also please tell me the transaction codes i tried with cje2 and cje3.
    Thanks in advance,
    Sathanbabu Mathan Kumar.

    Hello Santhan,
    Where you able to find a solution to this.If so please help me I have similar requirement.
    Thanks Arjun

  • Doubt on report

    hello friends iam working as an abap consultant as a fresher, so iam having doubts on reports basing on for all entries. material, sales, purchase tables are there for all these i have created internal tables for each and finally i have created one final internal table. for all these i want the exact coding without using subroutines there is a problem in the loop condition for me.
    thank you guys
    iam expecting answer.
    girish saripalli.

    Hi Girish,
    Imagine I wrote this description for you and asked you for help. Will it be possible to answer without any specifics? What report are you writing? What are you showing in the output? What is your input? How did you define your internal tables? What problem are you facing?
    Without any of those details, it will be very difficult to give any intelligent response. Please provide the details so that the forum can help.
    Regards,
    Srinivas
    Welcome to SDN!!!

  • Doubt in Reports

    Hi guys,
      Im new to this as well to ABAP.i got a doubt in reports...generally every standard report has a transaction code, if i need to know from which script this report has been linked..how can i find it out?? if u dont mind could u pls post me fastly...n i thank all the members to be helpful...
    regards
    kalpana

    Hi.  First, all ABAP related questions  should be asked in the ABAP forum.
    To answer the question, you can use SE93 to check this, also you can find out by using table TSTC in SE16. 
    Welcome to SDN!
    Regards,
    Rich Heilman

  • Doubt about Report Suite Office in SCCM 2012

    Hi all,
    I have a question about Suite Office in SCCM 2012.
    Why in my report 07B - Computers that recently used a specified executable program
    when I specific Office 2010 don't display nothing about Outlook?
    Just display follows softwares: Word,Excel,PowerPoint,Visio and Project. Someone have idea?
    Thanks.

    Do you have Software Metering enabled for that executable?
    Mike Leach | http://blogs.catapultsystems.com/mleach/default.aspx
    Mike Thank's your opinion...my answer....Yes, I do.My software metering is OK.
    My doubt is why Microsoft Outlook don't display as being part suite Office?
    Is necessary I select Microsoft Outlook (separately) for do my software metering but I think this is not correct, because the correct is suite Office contains: Word,Excel,Visio,Project,Powerpoint
    and Outlook...
    So when I selected Microsoft Office 2010 display all softwares as I saw in my first post and any about Outlook.
    Thanks any suggestions.

  • Doubt With Report in the portal

    Good Night.
    I have the following doubt:
    There are is a variable in the system in where I can know if a report  abap  is executed in the portal and the backend?
    I has created a report ABAP and I published this report report in the portal. I need do a validation in this report, but i want know if There are is a variable in the system in where I Can know if the report is executed in the backend or if is executed in the portal.
    Regards

    I don't found form of know if a report ABAP is executed in the portal or r/3

  • Doubt on Reports

    Hi gurus,
    I have one query with me,Please help me out this.
    I developed a report, In that I wrote so many select queries all are working fine.And also I wrote some error messages if the data is not selected.
    Here my doubt is if the data is not selected, The message what I was wrote,that is displayed,But that is diplayed in next scree.I want that message in the selection screen it self.
         Means ,If I am in selection-screen , If the data is not selected for my inputs, The error message will be displayed in the same selection screen it self.
          Please can any one suggest me regarding this.
      Thanks in Advance
    Thanks and Regards
    Siri....

    Hi Siri,
    try like this...
    DATA: t_sflight TYPE TABLE OF sflight.
    PARAMETERS: p_carr TYPE sflight-carrid.
    AT SELECTION-SCREEN.
      IF p_carr IS INITIAL.
        MESSAGE e050(zmsg).
      ENDIF.
    START-OF-SELECTION.
      SELECT * FROM sflight INTO TABLE t_sflight
      WHERE carrid = p_carr.
      IF sy-subrc EQ 0.
        MESSAGE i060(zmsg).
      ENDIF.
    Regards
    Adil

  • Doubt About Report Software Metering

    Hello Guys,
    I create my rule about metering for SoftwareX and is OK, run with success.
    I have 2 computers(PC01,PC02) where I uninstall SoftwareX but when I run after 72hours Report: Computers that have run a specific metered software program ....still display PC01 and PC02 has SoftwareX metered.
    My doubt is I set Software Metering Properties for 45 days, follow:
    Will it take 45 days for PC1 and PC2 doesn't display more in my Report? Is this right?
    If isn't right, how I can fix this for doesn't display SoftwareX if was uninstall in PC1 and PC2? My hardware inventory run ever 24hs and 24hs.
    Thanks a lot.

    Correct it will take ~45 days for the data to be removed from CM12.
    Garth Jones | My blogs: Enhansoft and
    Old Blog site | Twitter:
    @GarthMJ

  • Doubt about Report - Task Sequence - Deployments

    Hello,
    I have a doubt about this report Summary report for a task sequence deployment in Task Sequence - Deployments.
    Last Friday I did deployed in 6 desktop ran this report and display my 6 desktop's all right.
    Today a run this report and display no data.
    Why occurred this? Anyone have idea?
    I think this report have display me all data about my task sequence specific.
    Thanks.

    Are you sure the deployment wasn't deleted or recreated? 
    Query your DB and see what the NumberInstalled says.  That should show you 6 were installed.  You just need the Deployment ID added to this query below.
    select *
    from dbo.DeploymentSummary
    where
    OfferID = 'YOUR DEPLOYMENT ID HERE'
    Best, Jacob I'm a PC.
    My TS wasn't modified or recreated, but in DB display NumberInstalled = 0.
    Anyone have modify this TS since last friday, I don't know the reason this happened.
    I will do news deploys and see this report after if still have same issue.
    Thanks your opinion.

  • Doubt about report FBL5N of screen field:Open items and Cleared items

    hi
    i know the report FBL5N is use DDF LDB and the report work flow is BSID->BKFP->BSEG
    but i don't know to differentiate Open Items and Cleared items in this report.
    Open items and Cleared items stand for a field flag in these table (BSID,BKFP,BSEG )? if true the field is?
    or they must be calc in program ? if true what about calc rules?
    waiting for help! thank you!

    Hi,
    Here is the difference in Open Items and Cleared Items.
    In FI first the document is Open (when it is posted) so the entry is made in table BSID. Once the document is cleared, it will move from BSID to BSAD. And for Cleared item you will see Clearing Document no and Clearing date values updated (these are blank when the item is open).
    The only difference in Open and Cleared is via Clearing Document and Clearing Date. If the values are present, it means document is cleared.
    Hope this helps.
    ashish
    Message was edited by:
            Ashish Gundawar

  • Doubts in reports

    HI All,
         This is Pavani...Iam goin to attend interview this week...I hav no R/3 system
    installed in my PC...This is my first interview....Iam very nervy.
    I need ur help regarding tables n fields involved in the following reports.
    1.     Report to list by customer, the out standing payment amount due, the invoice date will be used to Determine for the invoice open date, the program will give company sales group and report totals.
    2.      Report in Material Master that outputs Material Valuated Stock, grouped by Material type and Plant. The output shows Material No., Storage Location, Unit of Measure and description in addition to group totals.
    3.     Vendor Performance Report that lists Vendor Name, Materials Supplied, Planned & Actual Delivery Times, Payments Terms and Prices.
    4.     reports in SD module such as sales order report, which covers all organization levels, delivery status, invoice status, shipping details and partner function details.
    5.     report on late shipment for the past four quarters, for the selected customers for specific sales organizations.
    6.     Interactive report for sales order’s their statuses along with their availability date and available quantity for the past quarters
    I really need ur help....ponts will be rewarded....
    Thanks in advance,
    Pavani.

    Hi Pavani,
    You situation is understandable.  But this is a Mini Project altogether
    1.  Accounts Receivables - BSID (FI Line Items), BSAD (FI Line Items), KNA1 (Customer Master), VBRK (Billing Header), Billing Doc No is the link between VBRK and BSID.
    2.  Stock Report - MARD (Plant, Storage Locationwise Current Stock), MARA (Material Master For Material Type), MAKT (Material Description)
    3.  Vendor Performance - EKKO (PO Header), EKPO (PO Item), EKET (Schedule Lines), MKPF (Material Document Header to Read GRNs), MSEG (Material Document Item), LFA1 (Vendor Master), T052* Tables (Payment Terms).
    4.  SD Reports - VBAK (Sale Document Header), VBAP (Sale Document Item), VBEP (Sale Document Schedule Lines), VBUK (Sale Order Status), VBUP (Sale Order Item Status), VBFA (Sales Document Flow), VBPA (Sales Partners), LIKP (Delivery Header), LIPS (Delivery Items), VTTK (Shipment Header), VTTP (Shipment Item), VBRK (Billing Header), VBRP (Billing Item), KONV (Condition Structure), J_1IEXCHDR (Excise Invoice Header), J_1IEXCDTL (Excise Invoice Item).
    5.  Late shipment details can be obtained with the help of above tables.
    6.  Availability Check is always futuristic.  Getting details for past period, as per my knowledge is impossible.
    I could give only table names.  For your requirement, the field list from each table will be pretty big.  Other friends of this forums might help you.
    Also from these tables you cannot generate report with simple queries.  You have to do lot of calculations and comparisons to generate reports.  You have to consider reversals, cancellations, exceptional situations in order to generate correct reports.
    Hope information is useful to you.
    Regards,
    Hema
    Message was edited by:
            Hema Nagarajan
    As Mr.Vijay said it is better not to put fake experience.  I have interviewed many candidates for a positions in our company.  I was able to identify very easily that the person has put fake experience.  Moreover when you project yourself as experienced candidate no one will ask you about reports.  You'll be asked questions on Performance Tuning, Enhancements, Interfacing kind of stuff.  You have to prepare well and be bit careful.  Theoretical knowledge will not work.
    Sorry I've dampened your spirit.
    Good Luck,
    Hema

  • SOME DOUBTS IN REPORTING

    HI ALL,
    IN RRI, WHAT IS THE MAXIMUM NO. OF QURIES WE CAN DRILL THROUGH FROM ONE QUERY?
    WILL IT BE POSSIBLE TO DISPLAY MORE THAN ONE QUERY IN ONE EXCEL SHEET?
    HOW TO FIND WHETHER THE TRANSACTION DATA HAS MASTER DATA?
    WHAT ARE TEXT VARIABLES, WHEN R THEY USED?
    REGARDS...

    Ganesh,
          There is no max no of RRI specified but you can have many as per the requirement.
    Yes it is possible to show more that one query result in a single sheet but it can be done only in a workbook. You can save as workbook and insert queries one below the other by taking care that the query result do not overlap.
    To find out whether the transaction data has master data or not....you can check in the Io definition if the with master data option is checked or not also if the master data object has any infosource.
    text variables are used in reporting. When the user enters the text it can be displayed as column heading for example...
    Hope this helps you......

  • Doubt in Report painter

    Hi ABAP Gurus,
    Still now I worked on ABAP Reports, Today I got new requirement on Report painter. Actually in 4.7 this Report Painter is Developed with one report group under this two reports.
    Now my reqiremnet is I need to copy these reports from 4.7 to Ecc 6.0 and consolidated to one report and also need to do some changes on caliculation.
    This report is for caliculating Accurals
    Please can any one guide me on this thing.
    Thanks in Advance...
    Thanks and Regards
    Abinava Siri

    Hi ,
    check this info on RP.
    https://forums.sdn.sap.com/click.jspa?searchID=221874&messageID=1818114
    regards
    P.

  • Doubt on Report Painter.

    Hi ABAP Gurus,
    Still now I worked on ABAP Reports, Today I got new requirement on Report painter. Actually in 4.7 this Report Painter is Developed with one report group under this two reports.
    Now my reqiremnet is I need to copy these reports from 4.7 to Ecc 6.0 and consolidated to one report and also need to do some changes on caliculation.
    This report is for caliculating Accurals
    Please can any one guide me on this thing.
    Thanks in Advance...
    Thanks and Regards
    Abinava Siri

    Hi ,
    check this info on RP.
    https://forums.sdn.sap.com/click.jspa?searchID=221874&messageID=1818114
    regards
    P.

  • Doubts alv reports

    hi abapers please guide me.
    1. diffrence between list display and grid display?
    2. where we can call top-of-page event?
    3. where we can do sub total and grandtotal in alvs?
    4. how we can call logo in alvs?
    5. how to crete check boxes in alv's?
    thanks in addvance

    1 diffrence between list display and grid display
    Grid contains tabular column and list does not contain Tabular column
    By using grid and you can write Object oriented code .
    if you want to show logo ,then you need to use Grid and list will not support
    how we can call logo in alvs?
    use FM : reuse_alv_commentary_write Function module ,use OAER Transaction to upload logo
    where we can call top-of-page event?
    this one dynamically we call subroutine and pass the routine to FM - Reuse_alv_grid_display.
    Totals - by using field catlog
    Sub totals - In sorting
    how to crete check boxes in alv's
    Use Field catlog.
    See the example program :
    BCALV* or Se38 ->f4 and enter Development class/Package - SLIS
    Simple example -
    REPORT ZFD_TRUCK_EDIT no standard page heading
                              message-id zwave.
    ======================================================================
    Program Name : ZWM_TRUCK_EDIT                                        *
    Description  : This program displays data from ZTRUCK Table and also *
                    displays Location details.                           *
    Author       : Seshu                                                 *
    Date         : 05/22/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    05/22/07| Seshu    | DEVK922184 | Initial                            *
    type-pools : slis.
    tables : zsdcarton,
             ztruck,
             zwm_trk_loc,
             zwm_trk_text.
    Internal table for ZTRUCK and ZSDCARTON
    data : begin of int_ztruck occurs 0 ,
           vdatu like ztruck-vdatu,
           ZZTRKNO like ztruck-ZZTRKNO,
          zzrun like   ztruck-zzrun,
           ZZPHYTRK like ztruck-ZZPHYTRK,
           zzdestime like ztruck-zzdestime,
           zzrun like ztruck-zzrun,
           ZZSWAVENO like zsdcarton-ZZSWAVENO,
           end of int_ztruck.
    Internal table for ZSDCARTON
    data : begin of i_zsdcarton occurs 0,
           werks like zsdcarton-werks,
           VDATU like zsdcarton-vdatu,
           ZZRUN like zsdcarton-zzrun,
           ZZSWAVENO like zsdcarton-ZZSWAVENO,
           ZZTRKNO like zsdcarton-ZZTRKNO,
           VBELN like zsdcarton-vbeln,
           ZZCARTON like zsdcarton-zzcarton,
           end of i_zsdcarton.
      Final Internal Table
    data : begin of i_final occurs 0,
           sel_recs(1) type c,
           ZZTRKNO like ZWMTRK_ALV-ZZTRKNO,
           ZZPHYTRK like ztruck-ZZPHYTRK,
           ZZSWAVENO like zsdcarton-ZZSWAVENO,
           tord(5) type c,
           tcart(5) type c,
           zzdestime like ztruck-zzdestime,
           ZZPLOC like zwm_trk_text-zztext,
           ZZRLOC like zwm_trk_text-ZZtext,
           zzrun like ztruck-zzrun,
           name like zwm_trk_loc-name,
           end of i_final.
    Work Area for Truck Location table
    data: w_trk_loc like zwm_trk_loc,
          wm_text like zwm_trk_text.
    Variables
    data : v_lines type i,
           v_lines1 type i,
           v_repid like sy-repid.
      ALV Function Module Variables
    DATA: g_repid like sy-repid,
          gs_layout type slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user type slis_exit_by_user.
    DATA: gt_fieldcat    type slis_t_fieldcat_alv,
          gs_print       type slis_print_alv,
          gt_events      type slis_t_event,
          gt_list_top_of_page type slis_t_listheader,
          g_status_set   type slis_formname value 'STANDARD_02',
          g_user_command type slis_formname value 'USER_COMMAND',
          g_top_of_page  type slis_formname value 'TOP_OF_PAGE',
          g_top_of_list  type slis_formname value 'TOP_OF_LIST',
          g_end_of_list  type slis_formname value 'END_OF_LIST',
          g_variant LIKE disvariant,
          g_save(1) TYPE c,
          g_tabname_header TYPE slis_tabname,
          g_tabname_item   TYPE slis_tabname,
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant.
    S E L E C T I O N - S C R E E N  *********************
    selection-screen : begin of block blk with frame title text-001.
    parameters : p_werks like ztruck-werks obligatory default '1000'.
    parameters : p_vdatu like zsdcarton-vdatu obligatory ."default sy-datum.
    select-options : s_run for ztruck-ZZRUN,
                     s_wave for ZSDCARTON-ZZSWAVENO ,
                     s_trkno for ZSDCARTON-ZZTRKNO.
    selection-screen : end of block blk.
    Fill the default values
    initialization.
      v_repid = sy-repid.
      PERFORM LAYOUT_INIT USING GS_LAYOUT.
      PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
    S T A R T  -  O F  -  S E L E C T I O N ***************
    start-of-selection.
    Refresh and Clear all Variables and Internal Tables
      perform clear_initial_values.
    Get the data from ZTRUCK,ZSDCARTON,ZWVBAK and ZWVBAP
      perform get_data_tables.
    E N D  -  O F  -  S E L E C T I O N *****************
    end-of-selection.
      if not i_final[] is initial.
    ALV Function Module
        perform print_alv.
      endif.
    *&      Form  clear_initial_values
    FORM clear_initial_values.
      clear : i_zsdcarton,
              int_ztruck,
              v_lines,
              v_lines1.
      refresh : i_zsdcarton,
                int_ztruck.
    ENDFORM.                    " clear_initial_values
    *&      Form  get_data_tables
          Get the data from tables
    FORM get_data_tables.
      select a~vdatu a~ZZTRKNO a~ZZPHYTRK a~zzdestime
             a~zzrun b~ZZSWAVENO
             into table int_ztruck
             from ztruck as a inner join zsdcarton as b
             on a~zztrkno = b~zztrkno
             where a~vdatu = p_vdatu
             and   a~zztrkno in s_trkno
             and   b~ZZSWAVENO in s_wave
             and   b~zzrun in s_run
             and   a~werks = p_werks
             and   b~werks = p_werks
             and   b~vdatu = p_vdatu.
      if sy-subrc ne 0.
        message e004.
      endif.
      break sreddy.
      sort int_ztruck by vdatu zztrkno zzrun   zzswaveno ZZPHYTRK .
      DELETE ADJACENT DUPLICATES FROM int_ztruck
          comparing vdatu zzrun zztrkno zzswaveno ZZPHYTRK.
      loop at int_ztruck.
      Get the data from ZSDCARTON
        clear : i_zsdcarton,
                v_lines,
                v_lines1,
                w_trk_loc,
                wm_text.
        refresh : i_zsdcarton.
        select werks
               vdatu
               zzrun
               ZZSWAVENO
               ZZTRKNO
               vbeln
               ZZCARTON from zsdcarton into table i_zsdcarton
               where werks = p_werks
                 and vdatu = int_ztruck-vdatu
                 and  zzrun = int_ztruck-zzrun
                 and  zztrkno = int_ztruck-zztrkno
                 and  ZZSWAVENO = int_ztruck-ZZSWAVENO.
        if sy-subrc eq 0.
    Total Cartons
          describe table i_zsdcarton lines v_lines.
          i_final-tcart = v_lines.
          DELETE ADJACENT DUPLICATES FROM i_zsdcarton
          comparing werks vdatu zzrun zzswaveno vbeln.
       Total Orders
          describe table i_zsdcarton lines v_lines1.
          i_final-tord = v_lines1.
        endif.
    Get the Parked Location and Returned Location.
        select single * from zwm_trk_loc into w_trk_loc
                        where  ZZPHYTRK = int_ztruck-ZZPHYTRK.
    Get the Location Text from ZWM_TRK_TEXT Table
        if sy-subrc eq 0.
          select single * from zwm_trk_text into wm_text
                          where zzploc = w_trk_loc-zzploc.
          if sy-subrc eq 0.
            i_final-ZZPLOC = wm_text-zztext.
          endif.
          clear wm_text.
          select single * from zwm_trk_text into wm_text
                          where zzploc = w_trk_loc-zzrloc.
          if sy-subrc eq 0.
            i_final-ZZrLOC = wm_text-zztext..
          endif.
          i_final-name   = w_trk_loc-name.
        endif.
        i_final-zztrkno = int_ztruck-zztrkno.
        i_final-ZZPHYTRK = int_ztruck-ZZPHYTRK.
        i_final-ZZSWAVENO = int_ztruck-ZZSWAVENO.
        i_final-zzdestime = int_ztruck-zzdestime.
        i_final-zzrun = int_ztruck-zzrun.
        append i_final.
        clear : i_final,
                int_ztruck.
      endloop.
    ENDFORM.                    " get_data_tables
          FORM LAYOUT_INIT                                              *
    -->  RS_LAYOUT                                                     *
    FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    **"Build layout for list display
      RS_LAYOUT-DETAIL_POPUP      = 'X'.
    lslayout-f2code            = p_f2code.
    rs_layout-zebra             = 'X'.
    rs_layout-colwidth_optimize = 'X'.
    ENDFORM.
          FORM EVENTTAB_BUILD                                           *
    -->  RT_EVENTS                                                     *
    FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
    *"Registration of events to happen during list display
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = RT_EVENTS.
      READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO RT_EVENTS.
      ENDIF.
    ENDFORM.
    *&      Form  print_alv
          text
    FORM print_alv.
      PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
      break sreddy.
    Populate field catalog
      PERFORM fieldcat_init  using gt_fieldcat[].
    sort i_final
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                =
       I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = v_repid
        I_CALLBACK_PF_STATUS_SET          = 'STANDARD_02'
         I_CALLBACK_USER_COMMAND           = g_user_command
       I_CALLBACK_TOP_OF_PAGE            =  g_top_of_page
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   =
        IS_LAYOUT                         = gs_layout
         IT_FIELDCAT                       = gt_fieldcat[]
       IT_EXCLUDING                      =
       IT_SPECIAL_GROUPS                 =
       IT_SORT                           =
       IT_FILTER                         =
       IS_SEL_HIDE                       =
       I_DEFAULT                         = 'X'
        I_SAVE                            = 'A'
        IS_VARIANT                        =
        IT_EVENTS                         = GT_EVENTS[]
       IT_EVENT_EXIT                     =
       IS_PRINT                          =
       IS_REPREP_ID                      =
       I_SCREEN_START_COLUMN             = 0
       I_SCREEN_START_LINE               = 0
       I_SCREEN_END_COLUMN               = 0
       I_SCREEN_END_LINE                 = 0
       IT_ALV_GRAPHICS                   =
       IT_ADD_FIELDCAT                   =
       IT_HYPERLINK                      =
       I_HTML_HEIGHT_TOP                 =
       I_HTML_HEIGHT_END                 =
       IT_EXCEPT_QINFO                   =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER           =
       ES_EXIT_CAUSED_BY_USER            =
       TABLES
         T_OUTTAB                          = i_final
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_alv
          FORM COMMENT_BUILD                                            *
    -->  LT_TOP_OF_PAGE                                                *
    FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
                                            SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
    Variables for Date
      data : lv_year(4) type c,
             lv_mon(2) type c,
             lv_day(2) type c,
             lv_date1(10) type c,
             lv_date2(10) type c,
             lv_time(8) type c,
             lv_hour(2) type c,
             lv_min(2) type c,
             lv_sec(2) type c.
    LIST HEADING LINE: TYPE H
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = sy-title.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    Plant
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-c02.
      LS_LINE-INFO = P_WERKS.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_time,
             lv_hour,
             lv_min,
             lv_sec.
      lv_hour = sy-uzeit+0(2).
      lv_min = sy-uzeit+2(2).
      lv_sec = sy-uzeit+4(2).
      concatenate lv_hour ':' lv_min ':' lv_sec into lv_time.
    Current time
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-c03.
      LS_LINE-INFO = lv_time.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_year,
              lv_day,
              lv_mon,
              lv_date1.
      lv_year = p_vdatu+0(4).
      lv_mon = p_vdatu+4(2).
      lv_day = p_vdatu+6(2).
      concatenate lv_mon '/' lv_day '/' lv_year into lv_date1.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-c01.
      LS_LINE-INFO = lv_date1.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = ''.
      LS_LINE-INFO = ''.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = ''.
      LS_LINE-INFO = ''.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = ''.
      LS_LINE-INFO = ''.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = ''.
      LS_LINE-INFO = ''.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = ''.
      LS_LINE-INFO = ''.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
    ENDFORM.
    Fieldcatlog
    FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
      CLEAR gs_layout.
      gs_layout-f2code = ' '.
    g_layout-flexible_key = 'X'.
    g_layout-colwidth_optimize = 'X'.
      gs_layout-detail_initial_lines = 'X'.
      gs_layout-box_fieldname = 'SEL_RECS'.
      gs_layout-box_tabname = 'ITAB_REPORT'.
    Route Number
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZTRKNO'.
      LS_FIELDCAT-ref_fieldname = 'ZZTRKNO'.
      LS_FIELDCAT-ref_tabname = 'ZTRUCK'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
    ls_fieldcat-edit = 'X'.
    LS_FIELDCAT-OUTPUTLEN = 25.
      ls_fieldcat-seltext_L = 'Route Number'.
    ls_fieldcat-seltext_M = 'Route Number'.
    ls_fieldcat-seltext_S = 'Route Number'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Physical Truck
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZPHYTRK'.
    LS_FIELDCAT-ref_fieldname = 'ZZPHYTRK'.
    LS_FIELDCAT-ref_tabname = 'ZTRUCK'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-edit = 'X'.
      LS_FIELDCAT-OUTPUTLEN = 35.
      ls_fieldcat-seltext_L = 'Physical Truck'.
    ls_fieldcat-seltext_M = 'Physical Truck'.
    ls_fieldcat-seltext_S = 'Physical Truck'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Wave
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZSWAVENO'.
    LS_FIELDCAT-ref_fieldname = 'ZZSWAVENO'.
    LS_FIELDCAT-ref_tabname = 'ZSDCARTON'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 10.
      ls_fieldcat-seltext_L = 'Wave'.
    ls_fieldcat-seltext_M = 'Wave'.
    ls_fieldcat-seltext_S = 'Wave'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Total Orders
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'TORD'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 15.
      ls_fieldcat-seltext_L = 'Total Orders'.
    ls_fieldcat-seltext_M = 'Total Orders'.
    ls_fieldcat-seltext_S = 'Total Orders'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Cartons Packed
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'TCART'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 15.
      ls_fieldcat-seltext_L = 'Cartons Packed'.
    ls_fieldcat-seltext_M = 'Cartons Packed'.
    ls_fieldcat-seltext_S = 'Cartons Packed'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    First DI Time
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZDESTIME'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 15.
      ls_fieldcat-seltext_L = 'First DI Time'.
    ls_fieldcat-seltext_M = 'First DI Time'.
    ls_fieldcat-seltext_S = 'First DI Time'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Parked Location
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZPLOC'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 25.
      ls_fieldcat-seltext_L = 'Parked Location'.
      ls_fieldcat-edit = 'X'.
    ls_fieldcat-seltext_M = 'Parked Location'.
    ls_fieldcat-seltext_S = 'Parked Location'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Returned Location
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZRLOC'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 25.
      ls_fieldcat-seltext_L = 'Returned Location'.
      ls_fieldcat-edit = 'X'.
    ls_fieldcat-seltext_M = 'Returned Location'.
    ls_fieldcat-seltext_S = 'Returned Location'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Wave Run
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'ZZRUN'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 25.
      LS_FIELDCAT-NO_OUT = 'X'.
      ls_fieldcat-seltext_L = 'Wave Run'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Wave Run
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'NAME'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      LS_FIELDCAT-OUTPUTLEN = 25.
      ls_fieldcat-seltext_L = 'Name'.
      ls_fieldcat-edit = 'X'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    ENDFORM.                    " get_fieldcatlog
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                I_LOGO             = 'FDTRAN1'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.
          FORM standard_02                                              *
    -->  EXTAB                                                         *
    FORM standard_02 USING extab TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD1'." EXCLUDING extab.
    ENDFORM. "STANDARD_02
          FORM USER_COMMAND                                             *
    FORM user_command USING r_ucomm LIKE sy-ucomm
                rs_selfield TYPE slis_selfield.                 "#EC CALLED
    Local Variables
      data : li_ztruck like ztruck occurs 0 with header line,
             lv_zzphytrk like ZPHYSICAL_TRUCK-zzphytrk,
             li_ZWM_TRK_LOC like ZWM_TRK_LOC occurs 0 with header line.
      data : wa_loc like zwm_trk_loc,
             wa_text like zwm_trk_text.
      clear : li_ztruck,
              lv_zzphytrk,
              li_ZWM_TRK_LOC.
      refresh :  li_ztruck,
                 li_ZWM_TRK_LOC.
      CASE R_UCOMM.
        WHEN 'DISP'.
          call transaction 'ZWM_TRK_LOC'.
        when '&DATA_SAVE'.
          loop at i_final.
         Validate the Physical Truck #
            select single zzphytrk from ZPHYSICAL_TRUCK into lv_zzphytrk
                                   where zzphytrk = i_final-zzphytrk
                                   and   werks = p_werks
                                   and   lgnum = '100'.
            if sy-subrc ne 0.
              MESSAGE E090 WITH i_final-zzphytrk.
            else.
              li_ztruck-werks = p_werks.
              li_ztruck-vdatu = p_vdatu.
              li_ztruck-zztrkno = i_final-zztrkno.
              li_ztruck-ZZPHYTRK = i_final-ZZPHYTRK.
              LI_ZTRUCK-ZZRUN = I_FINAL-ZZRUN.
              append li_ztruck.
              CLEAR LI_ZTRUCK.
            endif.
        TRUCK LOCATION DETAILS
            li_ZWM_TRK_LOC-zzphytrk = i_final-zzphytrk.
          Location Validation
          Parking Location Validation
            clear: wa_loc,
                   wa_text.
    Validation on Parked location
            clear: wa_loc,
                   wa_text.
            break sreddy.
            select single * from zwm_trk_text into wa_text
                                 where  zzploc = i_final-zzploc.
            if sy-subrc ne 0.
              select single * from zwm_trk_text into wa_text
                                   where zztext = i_final-zzploc.
            else.
              move wa_text-zztext to i_final-zzploc.
            endif.
            modify i_final.
    Validation on Returned Location
           select single * from zwm_trk_text into wa_text
                                where  zzploc = i_final-zzploc.
           if sy-subrc ne 0.
             select single * from zwm_trk_text into wa_text
                                  where  zztext = i_final-zzploc.
             if sy-subrc ne 0.
               message e091 with i_final-zzphytrk.
             endif.
           else.
             if i_final-zzploc = 'RR' or i_final-zzploc = 'rr'.
               i_final-zzploc = 'Rail Road Parking'.
             elseif i_final-zzploc = 'UTB' or i_final-zzploc = 'utb'.
               i_final-zzploc = 'Up The Block'.
             elseif i_final-zzploc = 'PL' or i_final-zzploc = 'pl'.
               i_final-zzploc = 'Apple Building'.
             elseif i_final-zzploc = 'SH' or i_final-zzploc = 'sh'.
               i_final-zzploc = 'Shipping Yard'.
             elseif i_final-zzploc = 'BO' or i_final-zzploc = 'bo'.
               i_final-zzploc = 'Borden Ave'.
             elseif i_final-zzploc = '23' .
               i_final-zzploc = '23rd Street'.
             elseif i_final-zzploc = 'SW' or i_final-zzploc = 'sw'.
               i_final-zzploc = 'Side Walk'.
             else.
               message e091 with i_final-zzphytrk.
             endif.
             li_ZWM_TRK_LOC-zzploc =  i_final-zzploc.
             li_ZWM_TRK_LOC-zzrloc =  i_final-zzrloc.
             append li_ZWM_TRK_LOC.
             clear li_ZWM_TRK_LOC.
           endif.
          endloop.
          modify ztruck from table li_ztruck.
          modify ZWM_TRK_LOC from table li_ZWM_TRK_LOC.
        when 'ENT1'.
          loop at i_final.
         Validate the Physical Truck #
            select single zzphytrk from ZPHYSICAL_TRUCK into lv_zzphytrk
                                   where zzphytrk = i_final-zzphytrk
                                   and   werks = p_werks
                                   and   lgnum = '100'.
            if sy-subrc ne 0.
              MESSAGE E090 WITH i_final-zzphytrk.
            else.
              li_ztruck-werks = p_werks.
              li_ztruck-vdatu = p_vdatu.
              li_ztruck-zztrkno = i_final-zztrkno.
              li_ztruck-ZZPHYTRK = i_final-ZZPHYTRK.
              LI_ZTRUCK-ZZRUN = I_FINAL-ZZRUN.
              append li_ztruck.
              CLEAR LI_ZTRUCK.
            endif.
        TRUCK LOCATION DETAILS
            li_ZWM_TRK_LOC-zzphytrk = i_final-zzphytrk.
            if i_final-zzploc = 'RR' or i_final-zzploc = 'rr'.
              i_final-zzploc = 'Rail Road Parking'.
            elseif i_final-zzploc = 'UTB' or i_final-zzploc = 'utb'.
              i_final-zzploc = 'Up The Block'.
            elseif i_final-zzploc = 'PL' or i_final-zzploc = 'pl'.
              i_final-zzploc = 'Apple Building'.
            elseif i_final-zzploc = 'SH' or i_final-zzploc = 'sh'.
              i_final-zzploc = 'Shipping Yard'.
            elseif i_final-zzploc = 'BO' or i_final-zzploc = 'bo'.
              i_final-zzploc = 'Borden Ave'.
            elseif i_final-zzploc = '23' .
              i_final-zzploc = '23rd Street'.
            elseif i_final-zzploc = 'SW' or i_final-zzploc = 'sw'.
              i_final-zzploc = 'Side Walk'.
            else.
              message e091 with i_final-zzphytrk.
            endif.
            li_ZWM_TRK_LOC-zzploc =  i_final-zzploc.
            li_ZWM_TRK_LOC-zzrloc =  i_final-zzrloc.
            append li_ZWM_TRK_LOC.
            clear li_ZWM_TRK_LOC.
          endloop.
      ENDCASE.
    ENDFORM.
    Reward Points if it is helpful
    Thanks
    Seshu

Maybe you are looking for

  • Variant of ALV-Grid

    Hi folks, I’m using the variant function of the ALV Grid. The screen you get by creating or saving a variant contains the following tabstrips: Sort Order, Filter, View and Display.  My aim is to hide all tabstrips except the ‘Sort Order’ one. Is ther

  • You speak spanish ?? i need help with my accourt

    you speak spanish ?? i need help with my accourt

  • Generic Connectivity

    I want to attach tables from a Mimer database to an Oracle database so that they can be queried from within Oracle. Generic Connectivity looks like the solution I need but my Oracle Databases are in 7.3.4 and 8.1.5 and the on-line documentation seem

  • Moving Reports to Report Manager 2012

    Hi , I am migrating and deploying all reports from RM 2005 to RM 2012 Reports still will be using Sql Server 2005, So should I create subscriptions on RM 2012 or Sql Server 2005 reportserver database  can handle the subsriptions? thanks, Gok

  • ERROR IN WHT POSTING

    dear WHT experts, I got the error when I post the Invoice with WHT that The WHT amount exceeds the Vendor/Customer line items amount 0001 Pl can any body give me the solution for above issue Rgds, VR