Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

PRINT PRIVIEW IN ALV GRID LAYOUT

Former Member
0 Kudos

Hi All,

I am presently working in ALV grid report.

Output is fine.i am dispalying 15 fields in output.

But if i select print priview button ,it is going to DUMP.

DUMP Analsys:

Short text

The current statement requires a character-type data object.

What happened?

Error in the ABAP Application Program

The current ABAP program "SAPLKKBL" had to be terminated because it has

come across a statement that unfortunately cannot be executed.

Error analysis

At the statment

"STRLEN( obj )..."

, only character-type data objects are supported at the argument

position "obj".

In this particular case, the operand "obj" has the non-charcter-type type

"P".

Can any one help ,how to solve this problem.

Thanks

Sridhar

3 REPLIES 3

Former Member
0 Kudos

HI,

Please check your code for the layout.

This dump is deals with the ALV layout.

Please paste your layout code.

Thanks,

Sri.

Edited by: Sriram Ponna on Jan 23, 2008 8:56 PM

0 Kudos

Hi Sriram,

my code part:


REPORT  ZFTRSERV NO STANDARD PAGE HEADING
                 MESSAGE-ID YV
                 LINE-SIZE 255.
* TABLES                                                               *
************************************************************************
*{

TABLES: BSIS,           "Accounting: Secondary Index for G/L Accounts
        BSAS,           "Accounting: Secondary Index for G/L Accounts (Cleared Items)
        BSID,           "Accounting: Secondary Index for Customers
        BKPF,           "Accounting Document Header
        ITCPP.          "SAPscript output parameters

TYPE-POOLS: SLIS.       "ALV Declarations


*}
*$*$********************************************************************
*$*$    GLOBAL TYPES
*$*$    NAMING CONVENTION: "Y_NAME"
*$*$********************************************************************
*{

TYPES : BEGIN OF Y_BSID,
        BUKRS LIKE BSID-BUKRS,    "Company Code
        KUNNR LIKE BSID-KUNNR,    "Customer Number 1
        UMSKS LIKE BSID-UMSKS,    "Special G/L Transaction Type
        UMSKZ LIKE BSID-UMSKZ,    "Special G/L Indicator
        AUGDT LIKE BSID-AUGDT,    "Clearing Date
        AUGBL LIKE BSID-AUGBL,    "Document Number of the Clearing Document
        ZUONR LIKE BSID-ZUONR,    "Assignment Number
        GJAHR LIKE BSID-GJAHR,    "Fiscal Year
        BELNR LIKE BSID-BELNR,    "Accounting Document Number
        BUZEI LIKE BSID-BUZEI,    "Number of Line Item Within Accounting Document
        BUDAT LIKE BSID-BUDAT,	"Posting Date in the Document
        BLDAT LIKE BSID-BLDAT,	"Document Date in Document
        BLART LIKE BSID-BLART,	"Document Type
        BSCHL LIKE BSID-BSCHL,	"Posting Key
        MWSKZ LIKE BSID-MWSKZ,	"Sales Tax Code
        DMBTR LIKE BSIS-DMBTR,    "Amount in Local Currency
        SGTXT LIKE BSID-SGTXT,    "Item Text
        HKONT LIKE BSID-HKONT,	"General Ledger Account
        XREF2 LIKE BSID-XREF2,	"Business partner reference key
        END OF Y_BSID,

       BEGIN OF Y_BSIS,
        BUKRS LIKE BSIS-BUKRS,    "Company Code
        HKONT LIKE BSIS-HKONT,	"General Ledger Account
        AUGDT LIKE BSIS-AUGDT,    "Clearing Date
        AUGBL LIKE BSIS-AUGBL,    "Document Number of the Clearing Document
        ZUONR LIKE BSIS-ZUONR,	"Assignment Number
        GJAHR LIKE BSIS-GJAHR,    "Fiscal Year
        BELNR LIKE BSIS-BELNR,    "Accounting Document Number
        BUZEI LIKE BSIS-BUZEI,    "Number of Line Item Within Accounting Document
        BUDAT LIKE BSIS-BUDAT,	"Posting Date in the Document
        BLDAT LIKE BSIS-BLDAT,	"Document Date in Document
        BLART LIKE BSIS-BLART,	"Document Type
        BSCHL LIKE BSIS-BSCHL,	"Posting Key
        MWSKZ LIKE BSIS-MWSKZ,	"Sales Tax Code
        DMBTR LIKE BSIS-DMBTR,    "Amount in Local Currency
        SGTXT LIKE BSIS-SGTXT,    "Item Text
        CPUDT LIKE BKPF-CPUDT,    "Day On Which Accounting Document Was Entered
        XREF2 LIKE BSID-XREF2,	"Business partner reference key
        IEDAT LIKE SY-DATUM,      "Invoice Entry Performance Date
        PTIME TYPE I,             "Pracessed Time
        IDATE LIKE SY-DATUM,      "Issuing Date
       END OF Y_BSIS,

       BEGIN OF Y_BSAS,
        BUKRS LIKE BSAS-BUKRS,    "Company Code
        HKONT LIKE BSAS-HKONT,	"General Ledger Account
        AUGDT LIKE BSAS-AUGDT,    "Clearing Date
        AUGBL LIKE BSAS-AUGBL,    "Document Number of the Clearing Document
        ZUONR LIKE BSAS-ZUONR,	"Assignment Number
        GJAHR LIKE BSAS-GJAHR,    "Fiscal Year
        BELNR LIKE BSAS-BELNR,    "Accounting Document Number
        BUZEI LIKE BSAS-BUZEI,    "Number of Line Item Within Accounting Document
        BUDAT LIKE BSAS-BUDAT,	"Posting Date in the Document
        BLDAT LIKE BSAS-BLDAT,	"Document Date in Document
        BLART LIKE BSAS-BLART,	"Document Type
        BSCHL LIKE BSAS-BSCHL,	"Posting Key
        MWSKZ LIKE BSAS-MWSKZ,	"Sales Tax Code
        DMBTR LIKE BSAS-DMBTR,    "Amount in Local Currency
        SGTXT LIKE BSAS-SGTXT,    "Item Text
        CPUDT LIKE BKPF-CPUDT,    "Day On Which Accounting Document Was Entered
        XREF2 LIKE BSID-XREF2,	"Business partner reference key
        IEDAT LIKE SY-DATUM,      "Invoice Entry Performance Date
        PTIME TYPE I,             "Pracessed Time
        IDATE LIKE SY-DATUM,      "Issuing Date
       END OF Y_BSAS,


       BEGIN OF Y_BKPF,
        CPUDT  LIKE BKPF-CPUDT,	"Day On Which Accounting Document Was Entered
        BUKRS  LIKE BKPF-BUKRS,   "Company Code
        BELNR  LIKE BKPF-BELNR,   "Accounting Document Number
        BLART  LIKE BKPF-BLART,   "Document Type
        GJAHR  LIKE BKPF-GJAHR,   "Fiscal Year
        BUDAT  LIKE BKPF-BUDAT,   "Posting Date in the Document
       END OF Y_BKPF,

       BEGIN OF Y_TOTAL,
        ZUONR  LIKE BSIS-ZUONR,	"Assignment Number
        BELNR  LIKE BSIS-BELNR,   "Accounting Document Number
        BUDAT  LIKE BSIS-BUDAT,	"Posting Date in the Document
        BLDAT  LIKE BSIS-BLDAT,	"Document Date in Document
        BLART  LIKE BSIS-BLART,	"Document Type
        BSCHL  LIKE BSIS-BSCHL,	"Posting Key
        MWSKZ  LIKE BSIS-MWSKZ,	"Sales Tax Code
        DMBTR  LIKE BSIS-DMBTR,   "Amount in Local Currency
        SGTXT  LIKE BSIS-SGTXT,   "Item Text
        HKONT  LIKE BSIS-HKONT,	"General Ledger Account
        CPUDT  LIKE BKPF-CPUDT,   "Day On Which Accounting Document Was Entered
        XREF2  LIKE BSID-XREF2,	"Business partner reference key
        IEDAT  LIKE SY-DATUM,     "Invoice Entry Performance Date
        PTIME  TYPE I,            "Pracessed Time
        IDATE  LIKE SY-DATUM,     "Issuing Date
       END OF Y_TOTAL,

       BEGIN OF Y_SUMSHET_OPEN,
        SGTXT LIKE BSID-SGTXT,    "Budget owner
        DMBTR LIKE BSID-DMBTR,    "Amount in Local Currency
        COUNT TYPE I,
        ATIME TYPE I,
        IEDAT TYPE I,
       END OF Y_SUMSHET_OPEN,

       BEGIN OF Y_SUMSHET_CLEAR,
        SGTXT LIKE BSID-SGTXT,
        DMBTR LIKE BSID-DMBTR,
        ATIME TYPE I,
        COUNT TYPE I,
        IEDAT TYPE I,
       END OF Y_SUMSHET_CLEAR,

       BEGIN OF Y_SUMSHET_TOTAL,
        SGTXT LIKE BSID-SGTXT,
        DMBTR LIKE BSID-DMBTR,
        ATIME TYPE P DECIMALS 2,
        COUNT TYPE I,
        IEDAT TYPE I,
       END OF Y_SUMSHET_TOTAL.

*}

*$*$********************************************************************
*$*$    GLOBAL CONSTANTS
*$*$    NAMING CONVENTION: "C_NAME"
*$*$********************************************************************
*{
CONSTANTS:
            C_X(1)      TYPE C  VALUE 'X',             "Selection
            C_0(1)      TYPE C VALUE  '0',             "Sy-subrc
            C_1(1)      TYPE c VALUE '1',              "Counter'    "SRIALV
            C_ID(2)     TYPE c VALUE 'ID',             "ID "SRIALV
             C_A(1)      TYPE C VALUE 'A',             "Catalog Field
            C_ZUONR(5)  TYPE C VALUE 'ZUONR',          "Assignment Number
            C_BELNR(5)  TYPE C VALUE 'BELNR',          "Accounting Document Number
            C_BUDAT(5)  TYPE C  VALUE 'BUDAT',	       "Posting Date in the Document
            C_BLDAT(5)  TYPE C VALUE 'BLDAT',	       "Document Date in Document
            C_BLART(5)  TYPE C VALUE 'BLART',	       "Document Type
            C_BSCHL(5)  TYPE C VALUE 'BSCHL',	       "Posting Key
            C_MWSKZ(5)  TYPE C VALUE 'MWSKZ',	       "Sales Tax Code
            C_DMBTR(5)  TYPE C VALUE 'DMBTR',          "Amount in Local Currency
            C_SGTXT(5)  TYPE C VALUE 'SGTXT',          "Item Text
            C_HKONT(5)  TYPE C VALUE 'HKONT',	       "General Ledger Account
            C_CPUDT(5)  TYPE C VALUE 'CPUDT',          "Day On Which Accounting Document Was Entered
            C_XREF2(5)  TYPE C VALUE 'XREF2',	       "Business partner reference key
            C_IEDAT(5)  TYPE C VALUE 'IEDAT',          "Invoice Entry Performance Date
            C_PTIME(5)  TYPE C VALUE 'PTIME',          "Pracessed Time
            C_IDATE(5)  TYPE C VALUE 'IDATE',          "Issuing Date
            C_BSIS(6)   TYPE C VALUE 'T_BSIS',         "Open Items
            C_BSAS(6)   TYPE C VALUE 'T_BSAS',         "Cleare Items
            C_TOTAL(7)  TYPE C VALUE 'T_TOTAL',        "Total Items
            C_COUNT(5)         TYPE C VALUE 'COUNT',   "Indicates how many items listed
            C_ATIME(5)         TYPE C VALUE 'ATIME',    "Average Approval Time
            C_SUMHSET_OPEN(14) TYPE C VALUE 'T_SUMHSET_OPEN'. "Average of Invoice Entry




*}

*$*$********************************************************************
*$*$    GLOBAL ELEMENTARY VARIABLES
*$*$    NAMING CONVENTION: "W_NAME"
*$*$********************************************************************
*{
DATA:  W_BUKRS       TYPE BUKRS,
       W_HKONT       TYPE HKONT,
       W_BELNR       TYPE BELNR_D,
       W_BLART       TYPE BLART,
       W_AUGDT       TYPE AUGDT,
       W_BUDAT       TYPE BUDAT,
       W_DMBTR_OPEN  TYPE DMBTR VALUE '0',
       W_DMBTR_CLEAR TYPE DMBTR VALUE '0',
       W_DMBTR_TOTAL TYPE DMBTR VALUE '0',
       W_TABIX       TYPE SY-TABIX,
       w_col_pos     TYPE i ,
       w_repname     LIKE sy-repid.


*}
*eject
*$*$********************************************************************
*$*$    GLOBAL STRUCTURES
*$*$    NAMING CONVENTION: "E_NAME"
*$*$********************************************************************
*{
DATA: E_BSID  TYPE Y_BSID,
      E_BSIS  TYPE Y_BSIS,
      E_BSAS  TYPE Y_BSAS,
      E_BKPF  TYPE Y_BKPF,
      E_TOTAL TYPE Y_TOTAL,
      E_SUMSHET_OPEN TYPE  Y_SUMSHET_OPEN,
      E_SUMSHET_CLEAR TYPE Y_SUMSHET_CLEAR,
      E_SUMSHET_TOTAL TYPE Y_SUMSHET_TOTAL,

*ALV data declarations
      E_CATLOG        TYPE SLIS_FIELDCAT_ALV,
      E_ALV_EVENTS    TYPE SLIS_ALV_EVENT,
      E_ALV_LAYOUT1   TYPE SLIS_LAYOUT_ALV,
      E_ALV_LAYOUT2   TYPE SLIS_LAYOUT_ALV.

*}
*eject
*$*$********************************************************************
*$*$    GLOBAL INTERNAL TABLES (WITH INCLUDE STRUCTURE)
*$*$    NAMING CONVENTION: "I_NAME"
*$*$********************************************************************
*{

DATA: I_CATLOG1      TYPE SLIS_T_FIELDCAT_ALV,
      I_ALV_EVENTS   TYPE SLIS_T_EVENT.
*}
*$*$********************************************************************
*$*$    GLOBAL INTERNAL TABLES (CUSTOM STRUCTURE)
*$*$    NAMING CONVENTION: "T_NAME"
*$*$********************************************************************
*{
DATA :
       T_BSID  TYPE STANDARD TABLE OF Y_BSID,
       T_BSIS  TYPE STANDARD TABLE OF Y_BSIS,
       T_BSAS  TYPE STANDARD TABLE OF Y_BSAS,
       T_BKPF  TYPE STANDARD TABLE OF Y_BKPF,
       T_TOTAL TYPE STANDARD TABLE OF Y_TOTAL,
       T_SUMSHET_OPEN    TYPE STANDARD TABLE OF Y_SUMSHET_OPEN,
       T_SUMSHET_CLEAR   TYPE STANDARD TABLE OF Y_SUMSHET_CLEAR,
       T_SUMSHET_TOTAL   TYPE STANDARD TABLE OF Y_SUMSHET_TOTAL.

*}

*eject
*$*$********************************************************************
*$*$    GLOBAL FIELD-SYMBOLS
*$*$    NAMING CONVENTION: "<FS_NAME>"
*$*$********************************************************************
*{
*FIELD-SYMBOLS: <FS_BSIS>  TYPE Y_BSIS.


*}

*$*$********************************************************************
*$*$    PARAMETERS & SELECT-OPTIONS
*$*$    NAMING CONVENTION: "P_NAME" & "S_NAME"
*$*$********************************************************************
*{
SELECTION-SCREEN BEGIN OF BLOCK SS01 WITH FRAME TITLE TEXT-B01.

* GENERAL SELECTIONS

SELECT-OPTIONS:   S_BUKRS FOR BSIS-BUKRS OBLIGATORY,
                  S_HKONT FOR BSIS-HKONT OBLIGATORY,
                  S_BLART FOR BSIS-BLART,
                  S_BELNR FOR BSIS-BELNR.

SELECTION-SCREEN END OF BLOCK SS01.

SELECTION-SCREEN BEGIN OF BLOCK SS02 WITH FRAME TITLE TEXT-B02.

*   OPEN ITEMS:

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS P_OPIT LIKE ITEMSET-XOPSEL RADIOBUTTON GROUP RAD1
                                                   DEFAULT 'X'.
SELECTION-SCREEN COMMENT 3(20) TEXT-003 FOR FIELD P_OPIT.

SELECTION-SCREEN END OF LINE.

PARAMETERS PA_STIDA LIKE RFPDO-ALLGSTID DEFAULT SY-DATLO.
SELECTION-SCREEN SKIP.

*   CLEARED ITEMS:

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS P_CLIT LIKE ITEMSET-XCLSEL RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 3(25) TEXT-004 FOR FIELD P_CLIT.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS S_AUGDT FOR BSAS-AUGDT .
PARAMETERS PA_STID2 LIKE RFPDO-ALLGSTID.
SELECTION-SCREEN SKIP.

*   ALL ITEMS:

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS P_ALIT LIKE ITEMSET-XAISEL RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 3(20) TEXT-005 FOR FIELD P_ALIT.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS S_BUDAT FOR BSIS-BUDAT.
SELECTION-SCREEN END OF BLOCK SS02.

SELECTION-SCREEN BEGIN OF BLOCK SS03 WITH FRAME TITLE TEXT-B03.

*OUTPUT CONTROL:

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN: COMMENT (12) BLANK1,
                  COMMENT (20) TEXT-006 FOR FIELD P_OSST.
PARAMETERS:  P_OSST  AS CHECKBOX DEFAULT SPACE.

SELECTION-SCREEN: COMMENT (12) BLANK2,
                  COMMENT (20) TEXT-007 FOR FIELD P_OUTD.
PARAMETERS:P_OUTD LIKE ITCPP-TDDEST.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK SS03.
*}
*eject
*$*$********************************************************************
*$*$    INITIALIZATION
*$*$********************************************************************
*{
INITIALIZATION.

*}
*eject
*$*$********************************************************************
*$*$    AT SELECTION-SCREEN
*$*$********************************************************************
*{
AT SELECTION-SCREEN .

* To Validate the selection screen fields
  PERFORM f_data_input_validation.

*}
*eject
*$*$********************************************************************
*$*$    START-OF-SELECTION
*$*$********************************************************************
*{
START-OF-SELECTION.

*To get header details
  PERFORM F_TOP_OF_PAGE.
*To get sumshet header details
  PERFORM F_TOP_OF_PAGE_SUMSHET.
* To Get data from tables
  PERFORM f_out_data_retrievel.


*}
*eject
*$*$********************************************************************
*$*$    END-OF-SELECTION
*$*$********************************************************************
*{
END-OF-SELECTION.

* To Display ALV Grid Layout
  PERFORM F_ALV_DATA_RETRIVAL.


*}
*eject
*$*$********************************************************************
*$*$    TOP-OF-PAGE
*$*$********************************************************************
*{
TOP-OF-PAGE.

*}
*eject
*$*$********************************************************************
*$*$    TOP-OF-PAGE DURING LINE-SELECTION
*$*$********************************************************************
*{
TOP-OF-PAGE DURING LINE-SELECTION.

*}
*eject
*$*$********************************************************************
*$*$    END-OF-PAGE
*$*$********************************************************************
*{
END-OF-PAGE.

*}
*eject
*$*$********************************************************************
*$*$    AT LINE-SELECTION
*$*$********************************************************************
*{
AT LINE-SELECTION.

*}
*eject
*$*$********************************************************************
*$*$    AT USER-COMMAND
*$*$********************************************************************
*{
AT USER-COMMAND.

*}
*eject
*$*$********************************************************************
*$*$    FORMS
*$*$    NAMING CONVENTION: "F_NAME"
*$*$********************************************************************
*&---------------------------------------------------------------------*
*&      Form  f_data_input_validation
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_data_input_validation .

*  check for Company code
  IF S_BUKRS[] IS INITIAL.

    CLEAR W_BUKRS.

    SELECT BUKRS
      FROM BSIS
      INTO W_BUKRS
     UP TO 1 ROWS
     WHERE BUKRS IN S_BUKRS.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH text-e01.

    ENDIF.

  ENDIF.

*  check for GL Account

  IF S_HKONT[] IS INITIAL .

    CLEAR W_HKONT.

    SELECT HKONT
      FROM BSIS
      INTO W_HKONT
     UP TO 1 ROWS
     WHERE HKONT IN S_HKONT.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH TEXT-e02.

    ENDIF.
  ENDIF.
* Check for Document Type

  IF S_BLART[] IS INITIAL.

    CLEAR W_BLART.

    SELECT BLART
      FROM BSIS
      INTO W_BLART
     UP TO 1 ROWS
     WHERE BLART IN S_BLART.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH TEXT-e03.

    ENDIF.

  ENDIF.

* Cheak for Document No

  IF S_BELNR[] IS INITIAL.

    CLEAR W_BELNR.

    SELECT BELNR
      FROM BSIS
      INTO W_BELNR
     UP TO 1 ROWS
     WHERE BELNR IN S_BELNR.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH TEXT-e04.

    ENDIF.

  ENDIF.

*Cheak for Clearing Date.


  IF S_AUGDT[] IS INITIAL.

    CLEAR W_AUGDT.

    SELECT AUGDT
      FROM BSIS
      INTO W_AUGDT
     UP TO 1 ROWS
     WHERE AUGDT IN S_AUGDT.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH TEXT-e05.

    ENDIF.

  ENDIF.

*Cheking for Posting Date

  IF S_BUDAT[] IS INITIAL.

    CLEAR W_BUDAT.

    SELECT BUDAT
      FROM BSIS
      INTO W_BUDAT
     UP TO 1 ROWS
     WHERE BUDAT IN S_BUDAT.

    ENDSELECT.

    IF SY-SUBRC NE C_0.

      MESSAGE e999 WITH TEXT-e06.

    ENDIF.

  ENDIF.

ENDFORM.                    " f_data_input_validation
*&---------------------------------------------------------------------*
*&      Form  f_out_data_retrievel
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_out_data_retrievel .


  PERFORM F_get_table_Data.


ENDFORM.                    " f_out_data_retrievel
*&---------------------------------------------------------------------*
*&      Form  F_OPEN_ITEMS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_OPEN_ITEMS .

  REFRESH T_BSIS.

  SELECT ZUONR
         BELNR
         BUDAT
         BLDAT
         BLART
         BSCHL
         MWSKZ
         DMBTR
         SGTXT
         HKONT
    FROM BSIS
    INTO  CORRESPONDING FIELDS OF TABLE T_BSIS
   WHERE BUKRS IN S_BUKRS
     AND HKONT IN S_HKONT
     AND BLART IN S_BLART
     AND BELNR IN S_BELNR.
*     AND AUGDT EQ PA_STIDA .  "amrsri

  IF T_BSIS[] IS INITIAL.
    MESSAGE S999 WITH 'No data Found for selection Criteria'(030).
  ENDIF.

* To get the Entry date and Reference Key2
  PERFORM F_GET_DATA_BSIS.

ENDFORM.                    " F_OPEN_ITEMS
***&---------------------------------------------------------------------*
***&      Form  F_CLEARED_ITEMS
***&---------------------------------------------------------------------*
***       text
***----------------------------------------------------------------------*
***  -->  p1        text
***  <--  p2        text
***----------------------------------------------------------------------*
FORM F_CLEARED_ITEMS .

  REFRESH T_BSAS.

  SELECT ZUONR
         BELNR
         BUDAT
         BLDAT
         BLART
         BSCHL
         MWSKZ
         DMBTR
         SGTXT
         HKONT
    FROM BSAS
    INTO  CORRESPONDING FIELDS OF TABLE T_BSAS
   WHERE BUKRS IN S_BUKRS
     AND HKONT IN S_HKONT
     AND BLART IN S_BLART
     AND BELNR IN S_BELNR
     AND AUGDT IN S_AUGDT
     AND AUGDT EQ PA_STID2.

  IF T_BSAS[] IS INITIAL.
    MESSAGE S999 WITH 'No data Found for selection Criteria'(030).
  ENDIF.

* To get the Entry date and Reference Key2
  PERFORM F_GET_DATA_BSAS.

ENDFORM.                    " F_CLEARED_ITEMS
***&---------------------------------------------------------------------*
***&      Form  F_ALL_ITEMS
***&---------------------------------------------------------------------*
***       text
***----------------------------------------------------------------------*
***  -->  p1        text
***  <--  p2        text
***----------------------------------------------------------------------*
FORM F_ALL_ITEMS .

  REFRESH: T_BSIS,
           T_BSAS.

* To get the OPEN items
  SELECT ZUONR
         BELNR
         BUDAT
         BLDAT
         BLART
         BSCHL
         MWSKZ
         DMBTR
         SGTXT
         HKONT
    FROM BSIS
    INTO  CORRESPONDING FIELDS OF TABLE T_BSIS
   WHERE BUKRS IN S_BUKRS
     AND HKONT IN S_HKONT
     AND BLART IN S_BLART
     AND BELNR IN S_BELNR
     AND BUDAT IN S_BUDAT .

  IF T_BSIS[] IS INITIAL.
    MESSAGE S999 WITH 'No data Found for selection Criteria'(030).
  ENDIF.

* To get the Entry date and Reference Key2
  PERFORM F_GET_DATA_BSIS.

* To get the CLEARED items
  SELECT ZUONR
         BELNR
         BUDAT
         BLDAT
         BLART
         BSCHL
         MWSKZ
         DMBTR
         SGTXT
         HKONT
    FROM BSAS
    INTO  CORRESPONDING FIELDS OF TABLE T_BSAS
   WHERE BUKRS IN S_BUKRS
     AND HKONT IN S_HKONT
     AND BLART IN S_BLART
     AND BELNR IN S_BELNR
     AND AUGDT IN S_AUGDT
     AND BUDAT IN S_BUDAT .

  IF T_BSAS[] IS INITIAL.
    MESSAGE S999 WITH 'No data Found for selection Criteria'(030).
  ENDIF.

* To get the Entry date and Reference Key2
  PERFORM F_GET_DATA_BSAS.

* Move both the OPEN & CLEARED items data to T_TOTAL
  CLEAR: E_BSIS,
         E_BSAS,
         E_TOTAL.

  LOOP AT T_BSIS INTO E_BSIS.

    MOVE-CORRESPONDING E_BSIS TO E_TOTAL.
    APPEND E_TOTAL TO T_TOTAL.

  ENDLOOP.

  LOOP AT T_BSAS INTO E_BSAS.

    MOVE-CORRESPONDING E_BSAS TO E_TOTAL.
    APPEND E_TOTAL TO T_TOTAL.

  ENDLOOP.

  SORT T_TOTAL BY  HKONT XREF2 CPUDT.
*  DELETE ADJACENT DUPLICATES FROM T_TOTAL. "amrsri

  CLEAR E_TOTAL.
*  LOOP AT T_TOTAL INTO E_TOTAL.       "AMRSRI
*
*    W_DMBTR_TOTAL = W_DMBTR_TOTAL + E_TOTAL-DMBTR. "AMRSRI
*
*  ENDLOOP.     "AMRSRI
*
ENDFORM.                    " F_ALL_ITEMS

*&---------------------------------------------------------------------*
*&      Form  F_GET_DATA_BSAS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_GET_DATA_BSAS .

  DATA: W_TABIX TYPE SY-TABIX.
*UNASSIGN <FS_BSIS>.

* DATA FROM BKPF AND BSID TABLES
* LOOP AT T_BSIS ASSIGNING <FS_BSIS>.
  LOOP AT T_BSAS INTO E_BSAS.

    CLEAR: E_BKPF,
           E_BSID.

    MOVE SY-TABIX TO W_TABIX.

    SELECT SINGLE CPUDT
                  BLART
                  BELNR
                  BUDAT
           FROM BKPF
           INTO CORRESPONDING FIELDS OF E_BKPF
           WHERE "BUKRS EQ E_BSAS-BUKRS
             BLART EQ E_BSAS-BLART
             AND BELNR EQ E_BSAS-BELNR
             AND BUDAT EQ E_BSAS-BUDAT.

    IF SY-SUBRC EQ C_0.
      MOVE E_BKPF-CPUDT TO E_BSAS-CPUDT.
      MODIFY T_BSAS INDEX W_TABIX FROM E_BSAS
             TRANSPORTING CPUDT.
    ENDIF.

    SELECT SINGLE XREF2
      FROM BSID
      INTO CORRESPONDING FIELDS OF E_BSID
     WHERE "BUKRS EQ E_BSAS-BUKRS AND
           BLART EQ E_BSAS-BLART AND
           BELNR EQ E_BSAS-BELNR AND
           BUDAT EQ E_BSAS-BUDAT.

    IF SY-SUBRC EQ C_0.
      MOVE E_BSID-XREF2 TO E_BSAS-XREF2.
      MODIFY T_BSAS INDEX W_TABIX FROM E_BSAS
             TRANSPORTING XREF2.
    ENDIF.

*      W_DMBTR_CLEAR = W_DMBTR_CLEAR + E_BSAS-DMBTR. AMRSRI
    E_BSAS-IDATE = SY-DATUM.
    E_BSAS-IEDAT = E_BSAS-CPUDT - E_BSAS-ZUONR.
    E_BSAS-PTIME = SY-DATUM - E_BSAS-CPUDT.
    MODIFY T_BSAS INDEX W_TABIX FROM E_BSAS
           TRANSPORTING IEDAT
                        PTIME
                        IDATE.

  ENDLOOP.

  SORT T_BSAS BY HKONT XREF2 CPUDT.

ENDFORM.                    " F_GET_DATA_BSAS
*&---------------------------------------------------------------------*
*&      Form  F_GET_DATA_BSIS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_GET_DATA_BSIS .

  DATA: W_TABIX  TYPE SY-TABIX,
        W_SGTXT  LIKE BSIS-SGTXT,
        W_SGTXT1 LIKE BSIS-SGTXT.
*UNASSIGN <FS_BSIS>.

* DATA FROM BKPF AND BSID TABLES
* LOOP AT T_BSIS ASSIGNING <FS_BSIS>.
  LOOP AT T_BSIS INTO E_BSIS.

    CLEAR: E_BKPF,
           E_BSID.

    MOVE SY-TABIX TO W_TABIX.

    SELECT SINGLE CPUDT
                  BLART
                  BELNR
                  BUDAT
           FROM BKPF
           INTO CORRESPONDING FIELDS OF E_BKPF
           WHERE "BUKRS EQ E_BSIS-BUKRS
             BLART EQ E_BSIS-BLART
             AND BELNR EQ E_BSIS-BELNR
             AND BUDAT EQ E_BSIS-BUDAT.

    IF SY-SUBRC EQ C_0.
      MOVE E_BKPF-CPUDT TO E_BSIS-CPUDT.
      MODIFY T_BSIS INDEX W_TABIX FROM E_BSIS
             TRANSPORTING CPUDT.
    ENDIF.

    SELECT SINGLE XREF2
      FROM BSID
      INTO CORRESPONDING FIELDS OF E_BSID
     WHERE "BUKRS EQ E_BSIS-BUKRS AND
           BLART EQ E_BSIS-BLART AND
           BELNR EQ E_BSIS-BELNR AND
           BUDAT EQ E_BSIS-BUDAT.

    IF SY-SUBRC EQ C_0.
      MOVE E_BSID-XREF2 TO E_BSIS-XREF2.
      MODIFY T_BSIS INDEX W_TABIX FROM E_BSIS
             TRANSPORTING XREF2.
    ENDIF.

*      W_DMBTR_OPEN = W_DMBTR_OPEN + E_BSIS-DMBTR. "AMRSRI
    W_SGTXT = E_BSIS-SGTXT.
    SPLIT W_SGTXT AT '/' INTO W_SGTXT W_SGTXT1.
    E_BSIS-SGTXT = W_SGTXT.
    E_BSIS-IDATE = SY-DATUM.
    E_BSIS-IEDAT = E_BSIS-CPUDT - E_BSIS-ZUONR.
    E_BSIS-PTIME = SY-DATUM - E_BSIS-CPUDT.
    MODIFY T_BSIS INDEX W_TABIX FROM E_BSIS
           TRANSPORTING IEDAT
                        PTIME
                        IDATE
                        SGTXT.

  ENDLOOP.

  SORT T_BSIS BY HKONT XREF2 CPUDT.

ENDFORM.                    " F_GET_DATA_BSIS
*&---------------------------------------------------------------------*
*&      Form  f_build_fld_catlog1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_fld_catlog_open_items.

  REFRESH i_catlog1.

  CLEAR w_col_pos.

  w_col_pos = w_col_pos + c_1.


  PERFORM f_first_field_catalog USING C_HKONT
                                      C_BSIS
                                      w_col_pos
                                      text-010
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_XREF2
                                      C_BSIS
                                      w_col_pos
                                      text-011
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BELNR
                                      C_BSIS
                                      w_col_pos
                                      text-012
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BLART
                                      C_BSIS
                                      w_col_pos
                                      text-013
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BLDAT
                                      C_BSIS
                                      W_col_pos
                                      text-014
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BUDAT
                                      C_BSIS
                                      w_col_pos
                                      text-015
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_CPUDT
                                      C_BSIS
                                      w_col_pos
                                      text-016
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_ZUONR
                                      C_BSIS
                                      w_col_pos
                                      text-017
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BSCHL
                                      C_BSIS
                                      w_col_pos
                                      text-018
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_DMBTR
                                      C_BSIS
                                      w_col_pos
                                      text-019
                                      C_X .          "dispaly Sum Total
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_MWSKZ
                                      C_BSIS
                                      w_col_pos
                                      text-020
                                      SPACE.
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_SGTXT
                                      C_BSIS
                                      w_col_pos
                                      text-021
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_IEDAT
                                      C_BSIS
                                      w_col_pos
                                      text-022
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_PTIME
                                      C_BSIS
                                      w_col_pos
                                      text-023
                                      SPACE.

* w_col_pos = w_col_pos + c_1.

*  PERFORM f_first_field_catalog USING C_IDATE
*                                      C_BSIS
*                                      w_col_pos
*                                      text-025
*                                      SPACE.
*

  CLEAR: w_col_pos,
         i_alv_events.

ENDFORM.                    " f_fld_catlog_open_items
*&---------------------------------------------------------------------*
*&      Form  f_first_report_dispaly
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_dispaly_open_items .

  CLEAR w_repname.

  w_repname = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = w_repname
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
     I_CALLBACK_TOP_OF_PAGE            = 'F_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                         = e_alv_layout1
     IT_FIELDCAT                       = i_catlog1[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
     I_DEFAULT                         = C_A
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
     IT_EVENTS                         = i_alv_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = T_BSIS

   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.                    " f_dispaly_open_items
*&---------------------------------------------------------------------*
*&      Form  f_first_field_catalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_C_HKONT  text
*      -->P_C_BSIS  text
*      -->P_W_COL_POS  text
*      -->P_TEXT_010  text
*----------------------------------------------------------------------*
FORM F_FIRST_FIELD_CATALOG  USING    US_FIELDNAME TYPE ANY
                                     US_REF_TAB   TYPE ANY
                                     US_COL_POS   TYPE ANY
                                     US_COLTEXT   TYPE ANY
                                     US_DO_SUM    TYPE ANY.
  CLEAR E_CATLOG.

  MOVE : US_FIELDNAME TO E_CATLOG-FIELDNAME,
         US_REF_TAB   TO E_CATLOG-REF_TABNAME,
         US_COL_POS   TO E_CATLOG-COL_POS,
         US_COLTEXT   TO E_CATLOG-SELTEXT_L,
         US_DO_SUM    TO E_CATLOG-DO_SUM.

  APPEND E_CATLOG TO I_CATLOG1.

  CLEAR E_CATLOG.




ENDFORM.                    " f_first_field_catalog
*&---------------------------------------------------------------------*
*&      Form  f_fld_catlog_clear_items
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_fld_catlog_clear_items .

  REFRESH i_catlog1.

  CLEAR w_col_pos.

  w_col_pos = w_col_pos + c_1.


  PERFORM f_first_field_catalog USING C_HKONT
                                      C_BSAS
                                      w_col_pos
                                      text-010
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_XREF2
                                      C_BSAS
                                      w_col_pos
                                      text-011
                                      SPACE.



  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BELNR
                                      C_BSAS
                                      w_col_pos
                                      text-012
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BLART
                                      C_BSAS
                                      w_col_pos
                                      text-013
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BLDAT
                                      C_BSAS
                                      W_col_pos
                                      text-014
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BUDAT
                                      C_BSAS
                                      w_col_pos
                                      text-015
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_CPUDT
                                      C_BSAS
                                      w_col_pos
                                      text-016
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_ZUONR
                                      C_BSAS
                                      w_col_pos
                                      text-017
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BSCHL
                                      C_BSAS
                                      w_col_pos
                                      text-018
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_DMBTR
                                      C_BSAS
                                      w_col_pos
                                      text-019
                                      C_X.       "dispaly Sum Totals
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_MWSKZ
                                      C_BSAS
                                      w_col_pos
                                      text-020
                                      SPACE.
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_SGTXT
                                      C_BSAS
                                      w_col_pos
                                      text-021
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_IEDAT
                                      C_BSAS
                                      w_col_pos
                                      text-022
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_PTIME
                                      C_BSAS
                                      w_col_pos
                                      text-023
                                      SPACE.

* w_col_pos = w_col_pos + c_1.
*
*  PERFORM f_first_field_catalog USING C_IDATE
*                                      C_BSAS
*                                      w_col_pos
*                                      text-025.
*

  CLEAR: w_col_pos,
         i_alv_events.



ENDFORM.                    " f_fld_catlog_clear_items
*&---------------------------------------------------------------------*
*&      Form  f_dispaly_clear_items
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_dispaly_clear_items .

  CLEAR w_repname.

  w_repname = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = w_repname
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_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                         = e_alv_layout1
     IT_FIELDCAT                       = i_catlog1[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
     I_DEFAULT                         = C_A
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
     IT_EVENTS                         = i_alv_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = T_BSAS

   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.                    " f_dispaly_clear_items
*&---------------------------------------------------------------------*
*&      Form  f_fld_catlog_all_items
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_fld_catlog_all_items .

  REFRESH i_catlog1.

  CLEAR w_col_pos.

  w_col_pos = w_col_pos + c_1.


  PERFORM f_first_field_catalog USING C_HKONT
                                      C_TOTAL
                                      w_col_pos
                                      text-010
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_XREF2
                                      C_TOTAL
                                      w_col_pos
                                      text-011
                                      SPACE.



  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BELNR
                                      C_TOTAL
                                      w_col_pos
                                      text-012
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_BLART
                                      C_TOTAL
                                      w_col_pos
                                      text-013
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BLDAT
                                      C_TOTAL
                                      W_col_pos
                                      text-014
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BUDAT
                                      C_TOTAL
                                      w_col_pos
                                      text-015
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_CPUDT
                                      C_TOTAL
                                      w_col_pos
                                      text-016
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_ZUONR
                                      C_TOTAL
                                      w_col_pos
                                      text-017
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_BSCHL
                                      C_TOTAL
                                      w_col_pos
                                      text-018
                                      SPACE.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_DMBTR
                                      C_TOTAL
                                      w_col_pos
                                      text-019
                                      C_X.          "Dispaly Sum Totals
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_MWSKZ
                                      C_TOTAL
                                      w_col_pos
                                      text-020
                                      SPACE.
  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_SGTXT
                                      C_TOTAL
                                      w_col_pos
                                      text-021
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING c_IEDAT
                                      C_TOTAL
                                      w_col_pos
                                      text-022
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_PTIME
                                      C_TOTAL
                                      w_col_pos
                                      text-023
                                      SPACE.


  CLEAR: w_col_pos,
         i_alv_events.


ENDFORM.                    " f_fld_catlog_all_items
*&---------------------------------------------------------------------*
*&      Form  f_dispaly_all_items
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_dispaly_all_items .

  CLEAR w_repname.

  w_repname = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = w_repname
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_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                         = e_alv_layout1
     IT_FIELDCAT                       = i_catlog1[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
     I_DEFAULT                         = C_A
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
     IT_EVENTS                         = i_alv_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = T_TOTAL

   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.                    " f_dispaly_all_items
*&---------------------------------------------------------------------*
*&      Form  F_Alv_Display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_get_table_Data .

  IF P_OPIT EQ C_X.

*‘open items’ is selected data will be retrieved from BSIS table.
    PERFORM F_OPEN_ITEMS.

* TO GET DATA FOR SUMMARY SHEET OPEN ITEMS.
    PERFORM F_GET_OPEN_SUMSHET.


  ELSEIF P_CLIT EQ C_X.
*‘cleared items’ is selected data will be retrieved from BSAS table.
    PERFORM F_CLEARED_ITEMS.

* TO GET DATA FOR SUMMARY SHEET CLEAR ITEMS.
    PERFORM F_GET_CLEAR_SUMSHET.

  ELSEIF P_ALIT EQ C_X.

* ‘all items’ is selected data will be retrieved from BSIS and BSAS tables.
    PERFORM F_ALL_ITEMS.

* TO GET DATA FOR SUMMARY TOTAL SHEET.
    PERFORM F_GET_TOTAL_SUMSHET.

  ENDIF.

ENDFORM.                    " F_Alv_Display
*&---------------------------------------------------------------------*
*&      Form  F_ALV_DATA_RETRIVAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_ALV_DATA_RETRIVAL .

  IF P_OPIT EQ C_X.
*  building field catlog for ‘open items’  list
    PERFORM f_fld_catlog_open_items.

*  first list display ‘open items’ list
    PERFORM f_dispaly_open_items.
* building field catlog for SUMSHEET OPEN DATA
*   IF SY-CPAGE GT 1.
    PERFORM f_fld_catlog_sumshet_open.

*  first list display SUMSHEET ‘open items’ DATA
    PERFORM F_DISPALY_SUMSHEET_OPEN.
*  ENDIF.


  ELSEIF P_CLIT EQ C_X.

*  building field catlog for ‘cleared items’ list
    PERFORM f_fld_catlog_clear_items.

*  first list display ‘cleared items’ list
    PERFORM f_dispaly_clear_items..

  ELSEIF P_ALIT EQ C_X.

*  building field catlog for ‘all items’ list
    PERFORM f_fld_catlog_all_items.

*  first list display ‘all items’ list
    PERFORM f_dispaly_all_items.

  ENDIF.


ENDFORM.                    " F_ALV_DATA_RETRIVAL
*&---------------------------------------------------------------------*
*&      Form  F_GET_OPEN_SUMSHET
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_GET_OPEN_SUMSHET .

  DATA: W_PTIME TYPE I,
          W_ATIME TYPE I,
          W_SGTXT LIKE BSIS-SGTXT,
          W_DMBTR LIKE BSIS-DMBTR,
          W_IEDAT TYPE I,
          W_COUNT TYPE I.


  SORT T_BSIS BY SGTXT.

  LOOP AT T_BSIS INTO E_BSIS.

    MOVE SY-TABIX TO W_TABIX.

    IF W_TABIX EQ C_1.

      MOVE : E_BSIS-SGTXT TO W_SGTXT,

             E_BSIS-PTIME TO W_PTIME,

             E_BSIS-DMBTR TO W_DMBTR,

             E_BSIS-IEDAT TO W_IEDAT.

      W_COUNT = W_COUNT + C_1.

      CONTINUE.

    ELSE.


      IF E_BSIS-SGTXT = W_SGTXT.

        W_PTIME = W_PTIME + E_BSIS-PTIME.

        W_DMBTR = W_DMBTR + E_BSIS-DMBTR.

        W_COUNT = W_COUNT + C_1.

        W_IEDAT = W_IEDAT + E_BSIS-IEDAT.

        CONTINUE .

      ELSE.

        W_ATIME = W_PTIME / W_COUNT.

        MOVE : W_SGTXT TO E_SUMSHET_OPEN-SGTXT,
               W_COUNT TO E_SUMSHET_OPEN-COUNT,
               W_ATIME TO E_SUMSHET_OPEN-ATIME,
               W_DMBTR TO E_SUMSHET_OPEN-DMBTR,
               W_IEDAT TO E_SUMSHET_OPEN-IEDAT.

        APPEND E_SUMSHET_OPEN TO T_SUMSHET_OPEN.

        CLEAR: W_SGTXT,
               W_PTIME,
               W_DMBTR,
               W_COUNT,
               W_IEDAT.

        MOVE : E_BSIS-SGTXT TO W_SGTXT,

               E_BSIS-PTIME TO W_PTIME,

               E_BSIS-DMBTR TO W_DMBTR,

               E_BSIS-IEDAT TO W_IEDAT.

        W_COUNT = W_COUNT + C_1.


        CONTINUE.

      ENDIF.

    ENDIF.

  ENDLOOP.

  W_ATIME = W_PTIME / W_COUNT.

  MOVE : W_SGTXT TO E_SUMSHET_OPEN-SGTXT,
         W_COUNT TO E_SUMSHET_OPEN-COUNT,
         W_ATIME TO E_SUMSHET_OPEN-ATIME,
         W_DMBTR TO E_SUMSHET_OPEN-DMBTR,
         W_IEDAT TO E_SUMSHET_OPEN-IEDAT.

  APPEND E_SUMSHET_OPEN TO T_SUMSHET_OPEN.

ENDFORM.                    " F_GET_OPEN_SUMSHET
*&---------------------------------------------------------------------*
*&      Form  F_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_TOP_OF_PAGE .

  DATA:   T_HEADER  TYPE SLIS_T_LISTHEADER,
          WA_HEADER TYPE SLIS_LISTHEADER,
          T_LINE    LIKE WA_HEADER-INFO,
          LD_LINES  TYPE I.
*TITLE
  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = 'Service Invoice Tracking Report'(031).
  APPEND WA_HEADER TO T_HEADER.
  CLEAR WA_HEADER.
* ISSUE DATE
  WA_HEADER-TYP  = 'S'.
  WA_HEADER-KEY = 'ISSUE DATE'.
  CONCATENATE  SY-DATUM+6(2) '/'
               SY-DATUM+4(2) '/'
               SY-DATUM(4) INTO WA_HEADER-INFO.   "TODAYS DATE
  APPEND WA_HEADER TO T_HEADER.
  CLEAR: WA_HEADER.


  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = T_HEADER.

ENDFORM.                    " F_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&      Form  F_GET_CLEAR_SUMSHET
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_GET_CLEAR_SUMSHET .

DATA:   W_PTIME TYPE I,
          W_ATIME TYPE P DECIMALS 2,
          W_SGTXT LIKE BSIS-SGTXT,
          W_DMBTR LIKE BSIS-DMBTR,
          W_COUNT TYPE I.


  SORT T_BSAS BY SGTXT.

  LOOP AT T_BSAS INTO E_BSIS.

    MOVE SY-TABIX TO W_TABIX.

    IF W_TABIX EQ C_1.

      MOVE : E_BSAS-SGTXT TO W_SGTXT,

             E_BSAS-PTIME TO W_PTIME,

             E_BSAS-DMBTR TO W_DMBTR.

      W_COUNT = W_COUNT + C_1.

      CONTINUE.

    ELSE.


      IF E_BSAS-SGTXT = W_SGTXT.

        W_PTIME = W_PTIME + E_BSAS-PTIME.

        W_DMBTR = W_DMBTR + E_BSAS-DMBTR.

        W_COUNT = W_COUNT + C_1.

        CONTINUE .

      ELSE.

        W_ATIME = W_PTIME / W_COUNT.

        MOVE : W_SGTXT TO E_SUMSHET_CLEAR-SGTXT,
               W_COUNT TO E_SUMSHET_CLEAR-COUNT,
               W_ATIME TO E_SUMSHET_CLEAR-ATIME,
               W_DMBTR TO E_SUMSHET_CLEAR-DMBTR.

        APPEND E_SUMSHET_CLEAR TO T_SUMSHET_CLEAR.

        CLEAR: W_SGTXT,
               W_PTIME,
               W_DMBTR,
               W_COUNT.

        MOVE : E_BSAS-SGTXT TO W_SGTXT,

               E_BSAS-PTIME TO W_PTIME,

               E_BSAS-DMBTR TO W_DMBTR.

        W_COUNT = W_COUNT + C_1.


        CONTINUE.

      ENDIF.

    ENDIF.

  ENDLOOP.

  W_ATIME = W_PTIME / W_COUNT.

  MOVE : W_SGTXT TO E_SUMSHET_CLEAR-SGTXT,
         W_COUNT TO E_SUMSHET_CLEAR-COUNT,
         W_ATIME TO E_SUMSHET_CLEAR-ATIME,
         W_DMBTR TO E_SUMSHET_CLEAR-DMBTR.

  APPEND E_SUMSHET_CLEAR TO T_SUMSHET_CLEAR.


ENDFORM.                    " F_GET_CLEAR_SUMSHET
*&---------------------------------------------------------------------*
*&      Form  F_GET_TOTAL_SUMSHET
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_GET_TOTAL_SUMSHET .

DATA:   W_PTIME TYPE I,
          W_ATIME TYPE P DECIMALS 2,
          W_SGTXT LIKE BSIS-SGTXT,
          W_DMBTR LIKE BSIS-DMBTR,
          W_COUNT TYPE I.


  SORT T_TOTAL BY SGTXT.

  LOOP AT T_TOTAL INTO E_TOTAL.

    MOVE SY-TABIX TO W_TABIX.

    IF W_TABIX EQ C_1.

      MOVE : E_TOTAL-SGTXT TO W_SGTXT,

             E_TOTAL-PTIME TO W_PTIME,

             E_TOTAL-DMBTR TO W_DMBTR.

      W_COUNT = W_COUNT + C_1.

      CONTINUE.

    ELSE.


      IF E_BSAS-SGTXT = W_SGTXT.

        W_PTIME = W_PTIME + E_TOTAL-PTIME.

        W_DMBTR = W_DMBTR + E_TOTAL-DMBTR.

        W_COUNT = W_COUNT + C_1.

        CONTINUE .

      ELSE.

        W_ATIME = W_PTIME / W_COUNT.

        MOVE : W_SGTXT TO E_SUMSHET_TOTAL-SGTXT,
               W_COUNT TO E_SUMSHET_TOTAL-COUNT,
               W_ATIME TO E_SUMSHET_TOTAL-ATIME,
               W_DMBTR TO E_SUMSHET_TOTAL-DMBTR.

        APPEND E_SUMSHET_CLEAR TO T_SUMSHET_CLEAR.

        CLEAR: W_SGTXT,
               W_PTIME,
               W_DMBTR,
               W_COUNT.

        MOVE : E_TOTAL-SGTXT TO W_SGTXT,

               E_TOTAL-PTIME TO W_PTIME,

               E_TOTAL-DMBTR TO W_DMBTR.

        W_COUNT = W_COUNT + C_1.


        CONTINUE.

      ENDIF.

    ENDIF.

  ENDLOOP.

  W_ATIME = W_PTIME / W_COUNT.

  MOVE : W_SGTXT TO E_SUMSHET_CLEAR-SGTXT,
         W_COUNT TO E_SUMSHET_CLEAR-COUNT,
         W_ATIME TO E_SUMSHET_CLEAR-ATIME,
         W_DMBTR TO E_SUMSHET_CLEAR-DMBTR.

  APPEND E_SUMSHET_TOTAL TO T_SUMSHET_TOTAL.

ENDFORM.                    " F_GET_TOTAL_SUMSHET
*&---------------------------------------------------------------------*
*&      Form  f_fld_catlog_sumshet_open
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM f_fld_catlog_sumshet_open .

REFRESH i_catlog1.

  CLEAR w_col_pos.

  w_col_pos = w_col_pos + c_1.


  PERFORM f_first_field_catalog USING C_SGTXT
                                      C_SUMHSET_OPEN
                                      w_col_pos
                                      text-040
                                      SPACE.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_COUNT
                                      C_SUMHSET_OPEN
                                      w_col_pos
                                      text-041
                                      C_X.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_ATIME
                                      C_SUMHSET_OPEN
                                      w_col_pos
                                      text-042
                                      C_X.

  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_DMBTR
                                      C_SUMHSET_OPEN
                                      w_col_pos
                                      text-043
                                      C_X.


  w_col_pos = w_col_pos + c_1.

  PERFORM f_first_field_catalog USING C_IEDAT
                                      C_SUMHSET_OPEN
                                      W_col_pos
                                      text-044
                                      C_X.


  CLEAR: w_col_pos,
         i_alv_events.


ENDFORM.                    " f_fld_catlog_sumshet_open
*&---------------------------------------------------------------------*
*&      Form  F_DISPALY_SUMSHEET_OPEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_DISPALY_SUMSHEET_OPEN .

 CLEAR w_repname.

  w_repname = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = w_repname
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
   I_CALLBACK_TOP_OF_PAGE            =  'F_TOP_OF_PAGE_SUMSHET'
*   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                         = e_alv_layout1
     IT_FIELDCAT                       = i_catlog1[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
     I_DEFAULT                         = C_A
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
     IT_EVENTS                         = i_alv_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = T_SUMSHET_OPEN
   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.                    " F_DISPALY_SUMSHEET_OPEN
*&---------------------------------------------------------------------*
*&      Form  F_TOP_OF_PAGE_SUMSHET
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_TOP_OF_PAGE_SUMSHET .

DATA:   T_HEADER  TYPE SLIS_T_LISTHEADER,
          WA_HEADER TYPE SLIS_LISTHEADER,
          T_LINE    LIKE WA_HEADER-INFO,
          LD_LINES  TYPE I.
*TITLE
  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = 'Service Invoice Tracking List-Summary Sheet'(032).
  APPEND WA_HEADER TO T_HEADER.
  CLEAR WA_HEADER.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = T_HEADER.

ENDFORM.                    " F_TOP_OF_PAGE_SUMSHET

Please let me know any comments.

Thanks

Sridhar

Code Formatted by: Alvaro Tejada Galindo on Jan 23, 2008 5:58 PM

Former Member
0 Kudos

Hi Sridhar,

Check your fieldcatalog internal table.

use FM REUSE_ALV_FIELDCATALOG_MERGE,it will help you with print priview and also check prerequisite for the above FM.

Regards,

Ali