01-23-2008 3:15 PM
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
01-23-2008 3:26 PM
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
01-23-2008 6:54 PM
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
01-23-2008 7:08 PM
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