Application Development and Automation 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: 
Read only

ALV

Former Member
0 Likes
750

Hi...

Can any one provide me a sample ALV list program with all the data declarations....

Thanks,

Sandy

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
690

HI,

check this code for multiple alv list displays

***&----


*& Report ZFII_RFITEMAPLIST

*&

&----


*&

*&

&----


----


  • Data Extract from Tables LFA1, T001, BSIK.

----


  • Program Name :ZFII_RFITEMAPLIST

  • Object ID :EDD031

  • Functional Analyst :KRISHNA

  • Programmer :venkatesh

  • Start date :19/03/2007

  • Initial CTS :HFDK900660

  • Description :Prepayment Discount ( discount taken

  • while payment before runing APP )

*

----


  • Includes :

*

  • Function Modules : *

*

  • Logical database :

  • Transaction Code : N/A

  • External references :

----


  • Modification Log

----


  • Date | Modified by | CTS number | Comments

----


*19/03/2007 | venkatesh |HFDK900660 | Initial version

----


REPORT ZFII_RFITEMAPLIST NO STANDARD PAGE HEADING.

*Declaration of the tables and type pools which

*are required in the programme.

TYPE-POOLS: SLIS.

TABLES: LFA1,

T001,

BSIK.

*Design of the selection screen starts.

SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.

*SELECTION-SCREEN BEGIN OF LINE.

**Asset wise.

*SELECTION-SCREEN COMMENT 1(20) TEXT-T01 FOR FIELD R_POST.

*PARAMETERS: R_POST RADIOBUTTON GROUP G1.

*

*SELECTION-SCREEN END OF LINE.

PARAMETERS:

P_BUKRS LIKE T001-BUKRS

OBLIGATORY DEFAULT 'H901'. "*COMPANY CODE.

SELECT-OPTIONS:

S_LIFNR FOR LFA1-LIFNR

OBLIGATORY NO INTERVALS NO-EXTENSION, "*VENDOR

S_BLART FOR BSIK-BLART. " *DOCUMENT TYPE

PARAMETERS:

P_DRATE(2) TYPE N OBLIGATORY DEFAULT '11', " DISCOUNT PERCENTAGE

P_DDATE LIKE SY-DATUM DEFAULT SY-DATUM , " DISCOUNT DATE

P_DUEDT LIKE SY-DATUM. " consider discount date upto

SELECTION-SCREEN END OF BLOCK B01.

*Design of the selection screen ends.

*declaring the internal table which are necessary

*through out the report.

*table for final internal table

*TYPES:BEGIN OF T_CHECK.

  • INCLUDE STRUCTURE BSIK.

*TYPES: END OF T_CHECK.

*TYPES: T_IT_CHECK TYPE STANDARD TABLE OF T_CHECK.

*DATA: GWA_CHECK TYPE T_CHECK.

*DATA: GIT_CHECK TYPE T_IT_CHECK.

*TABLE FOR INITIAL COLLECTION OF DATA FROM BSIK TABLE

TYPES:BEGIN OF T_BSIK,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

ZBD1T TYPE BSIK-ZBD1T,

ZBD2T TYPE BSIK-ZBD2T,

ZBD3T TYPE BSIK-ZBD3T,

SHKZG TYPE BSIK-SHKZG,

REBZG TYPE BSIK-REBZG,

WRBTR TYPE BSIK-WRBTR,

DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-DMBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIK.

TYPES: T_IT_BSIK TYPE STANDARD TABLE OF T_BSIK.

DATA: GWA_BSIK TYPE T_BSIK.

DATA: GIT_BSIK TYPE T_IT_BSIK.

*TABLE FOR COLLECTING THE TOTAL AMOUNT.

TYPES:BEGIN OF T_BSIKF,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

WRBTR TYPE BSIK-WRBTR,

  • DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-DMBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIKF.

TYPES: T_IT_BSIKF TYPE STANDARD TABLE OF T_BSIKF.

DATA: GWA_BSIKF TYPE T_BSIKF.

DATA: GIT_BSIKF TYPE T_IT_BSIKF.

*TABLE FOR COLLECTING THE DISCOUNT AMOUNT AND DATE

TYPES:BEGIN OF T_BSIKM,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

WRBTR TYPE BSIK-WRBTR,

DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-WRBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIKM.

TYPES: T_IT_BSIKM TYPE STANDARD TABLE OF T_BSIKM.

DATA: GWA_BSIKM TYPE T_BSIKM.

DATA: GIT_BSIKM TYPE T_IT_BSIKM.

*TABLE FOR POSTED DOCUMENTS

DATA: GWA_POST TYPE T_BSIKM.

DATA: GIT_POST TYPE T_IT_BSIKM.

*TABLE FOR NOT POSTED DOCUMENTS

DATA: GWA_NOTPOST TYPE T_BSIKM.

DATA: GIT_NOTPOST TYPE T_IT_BSIKM.

*table for check whethere the entered documents

  • for which discount has calculated are already

*posted or not.

TYPES: BEGIN OF T_CHECK1,

LIFNR TYPE ZFII_PDITEM-LIFNR,

BELNR TYPE ZFII_PDITEM-BELNR,

BELNRSUB TYPE ZFII_PDITEM-BELNRSUB,

GJAHR TYPE ZFII_PDITEM-GJAHR,

BUKRS TYPE ZFII_PDITEM-BUKRS,

BLART TYPE ZFII_PDITEM-BLART,

END OF T_CHECK1.

TYPES: T_IT_CHECK1 TYPE STANDARD TABLE OF T_CHECK1.

DATA: GWA_CHECK1 TYPE T_CHECK1.

DATA: GIT_CHECK1 TYPE T_IT_CHECK1.

*TYPES:BEGIN OF T_ZFII_PDITEM.

  • INCLUDE STRUCTURE ZFII_PDITEM.

*TYPES: END OF T_ZFII_PDITEM.

*

*types: t_it_ZFII_PDITEM type standard table of T_ZFII_PDITEM.

*DATA: GWA_ZFII_PDITEM TYPE T_ZFII_PDITEM.

*DATA: GIT_ZFII_PDITEM TYPE t_iT_ZFII_PDITEM.

*TABLE FOR COLLECTING THE ENTERED DATE

*AND WE WILL PASS IT TO ANOTHER TABLE

TYPES:BEGIN OF T_DATE,

DATE TYPE BSIK-ZFBDT,

END OF T_DATE.

TYPES: T_IT_DATE TYPE STANDARD TABLE OF T_DATE.

DATA: GWA_DATE TYPE T_DATE.

DATA: GIT_DATE TYPE T_IT_DATE.

*VARIABLE TO CAPTURE THE DISCOUNT AMOUNT.

*DATA: DISCOUNT LIKE BSIK-DMBTR.

*declaring the variable which will be necessary

  • through out the report.

DATA : G_BUKRS LIKE T001-BUKRS.

DATA: G_REPID LIKE SY-REPID,

Gwa_SORT TYPE SLIS_SORTINFO_ALV,

git_sort TYPE SLIS_T_SORTINFO_ALV,

gwa_sortPOST TYPE SLIS_SORTINFO_ALV, " POSTED

GiT_SORTPOST TYPE SLIS_T_SORTINFO_ALV,

GiT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, " NOT POSTED

GiT_LIST_TOP_OF_PAGE_POST TYPE SLIS_T_LISTHEADER, " POSTED

GiT_EVENTS TYPE SLIS_T_EVENT, " NOT POSTED

GiT_EVENTS1 TYPE SLIS_T_EVENT, " POSTED

GIT_LAYOUT TYPE SLIS_LAYOUT_ALV,

GiT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV , " NOT POSTED

GiT_FIELDCATPOST TYPE SLIS_T_FIELDCAT_ALV , " POSTED

GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

GiT_XS_EVENT TYPE SLIS_ALV_EVENT.

  • FIELDCAT_LN LIKE LINE OF GiT_FIELDCAT

.

  • g_linno TYPE c.

*DATA : G_VARIANT LIKE DISVARIANT.

DATA : G_VAR LIKE DISVARIANT.

DATA : G_ALV_VAR LIKE DISVARIANT.

*DATA : G_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA : G_POS TYPE I VALUE 1.

GIT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*Initialization event starts.

INITIALIZATION.

*CLEARING AND REFRESHING THE TABLES.

PERFORM INITIALIZATION.

*COLLECTING THE VARIANTS

PERFORM VARIANTS.

*Initialization event ends.

  • At selection screen event starts.

AT SELECTION-SCREEN.

*CHECK WHETHER DATE IS ENTERED OR NOT.

PERFORM VALIDATE_DATE.

*VALIDATING THE COMPANY CODE.

PERFORM COMPANY_CODE.

*VALIDATING THE VENDOR CODE

PERFORM VENDOR_VALIDATE.

*SELECTING THE DATA.

PERFORM GET_DATA.

*CALCULATING THE DISCOUNT AMOUNT.

PERFORM CALCULATION.

*CALCULATING THE TOTAL AMOUNT WITH RESPECT TO DATE

PERFORM SUB_TOTAL_DATE.

*APPENDING THE DATE ENTERED INTO AN INTERNAL TABLE

*AND THIS INTERNAL TABLE WILL BE SEND TO ANOTHER PROGRAME

GWA_DATE-DATE = P_DDATE.

APPEND GWA_DATE TO GIT_DATE.

CLEAR GWA_DATE.

*CHECKING WHETHER THE INTERNAL TABLE IS BLANK OR NOT

CHECK GIT_BSIKM IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-004.

  • At selection screen event ends.

*start-of-selection event starts.

START-OF-SELECTION.

CLEAR : P_DUEDT.

*DIVIDES THE FINAL INTERNAL TABLE INTO

*POSTED AND NOT POSTED DOCUMENTS.

CLEAR: GWA_POST, GWA_NOTPOST.

REFRESH: GIT_POST, GIT_NOTPOST.

PERFORM POSTED_NOTPOSTED.

*FILLING THE FIELD CATALOG

PERFORM FIELD_CATALOG.

PERFORM FIELD_CATALOG_POST.

*SORTING THE FIELDS.

PERFORM SORT_FIELDS.

PERFORM SORT_FIELDS_POST.

*GETTING THE EVENTS OF ALV

PERFORM EVENTTAB_BUILD1 CHANGING GiT_EVENTS.

PERFORM EVENTTAB_BUILDPOST.

*FILLING OF THE HEADER PART.

PERFORM LIST_HEADER.

PERFORM LIST_HEADER1.

SORT GIT_POST ASCENDING BY NETDUEDT.

SORT GIT_NOTPOST ASCENDING BY NETDUEDT.

PERFORM DISPLAY_LIST.

*start-of-selection event ends.

&----


*& Form company_code

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM COMPANY_CODE .

SELECT SINGLE BUKRS

FROM T001

INTO (G_BUKRS)

WHERE BUKRS EQ P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-002.

ENDIF.

CLEAR G_BUKRS.

ENDFORM. " company_code

&----


*& Form initialization

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM INITIALIZATION .

CLEAR: GIT_BSIK, G_BUKRS.

REFRESH: GIT_BSIK, GIT_BSIKF, GIT_BSIKM.

CLEAR:

G_BUKRS,

G_REPID,

gwa_sort,

git_sort,

GiT_LIST_TOP_OF_PAGE ,

GiT_EVENTS ,

GIT_LAYOUT,

GiT_FIELDCAT ,

GWA_FIELDCAT,

  • FIELDCAT_LN ,

  • G_LIST_TOP_OF_PAGE ,

G_POS,

G_ALV_VAR, G_BUKRS.

REFRESH:

git_sort,

GiT_LIST_TOP_OF_PAGE ,

GiT_EVENTS ,

GiT_FIELDCAT .

  • G_LIST_TOP_OF_PAGE .

ENDFORM. " initialization

&----


*& Form vendor_validate

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VENDOR_VALIDATE .

SELECT LIFNR

FROM LFA1

INTO CORRESPONDING FIELDS OF TABLE GIT_BSIK

WHERE LIFNR IN S_LIFNR.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-003.

ENDIF.

CLEAR GWA_BSIK.

REFRESH: GIT_BSIK.

ENDFORM. " vendor_validate

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

CLEAR: GIT_BSIK, GWA_BSIK.

REFRESH GIT_BSIK.

SELECT

MANDT

BUKRS

LIFNR

BELNR

BLART

GJAHR

ZFBDT

ZBD1T

ZBD2T

ZBD3T

SHKZG

REBZG

DMBTR

FROM BSIK

INTO TABLE GIT_BSIK

WHERE BUKRS EQ P_BUKRS

AND LIFNR IN S_LIFNR

AND BLART IN S_BLART

AND BLART NE 'GC'

  • AND ZFBDT GT P_DDATE

AND SHKZG = 'H'

AND ZLSPR = ' '.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-004.

ENDIF.

SORT GIT_BSIK ASCENDING BY LIFNR ZFBDT BLART.

  • loop at git_bsik into GWA_BSIK.

  • if gwa_bsik-blart = 'GC'.

  • DELETE GIT_BSIK INDEX SY-TABIX.

  • endif.

  • endloop.

ENDFORM. " get_data

&----


*& Form field_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG .

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

  • G_POS " Column Position

  • 'CHCK' " InTab Field Name

  • 'GIT_BSIKM' " InTab Name

  • '2' " Output Length

  • 'CHECK' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • 'X' " checkbox

  • 'X' " EDIT

  • 'X'. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BUKRS' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'4' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'LIFNR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Vendor code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BELNR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Document Number' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BLART' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Document Type'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'NETDUEDT' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Net Due Date'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'WRBTR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'20' " Output Length

'Amount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DAYS' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'6' " Output Length

'Days'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DISCOUNT' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'20' " Output Length

'Discount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " field_catalog

&----


*& Form field_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG_POST .

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

  • G_POS " Column Position

  • 'CHCK' " InTab Field Name

  • 'GIT_POST' " InTab Name

  • '2' " Output Length

  • 'CHECK' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • 'X' " checkbox

  • 'X' " EDIT

  • 'X'. " input

CLEAR G_POS.

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BUKRS' " InTab Field Name

'GIT_POST' " InTab Name

'4' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'LIFNR' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Vendor code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BELNR' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Document Number' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BLART' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Document Type'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'NETDUEDT' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Net Due Date'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'WRBTR' " InTab Field Name

'GIT_POST' " InTab Name

'20' " Output Length

'Amount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'DAYS' " InTab Field Name

'GIT_POST' " InTab Name

'6' " Output Length

'Days'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'DISCOUNT' " InTab Field Name

'GIT_POST' " InTab Name

'20' " Output Length

'Discount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " field_catalog

&----


*& Form init_field_catalog

&----


  • text

----


  • -->P_GIT_FIELDCAT text

  • -->PV_POS text

  • -->PV_FIELDNAME text

  • -->PV_TABNAME text

  • -->PV_OUTPUT text

  • -->PV_SELTEXT text

  • -->PV_DATATYPE text

  • -->PV_KEY text

  • -->PV_ROW text

  • -->PV_HOTSPOT text

  • -->PV_EMPHASIZE text

  • -->PV_SUM text

  • -->PV_CHECKBOX text

  • -->PV_INPUT text

----


FORM INIT_FIELD_CATALOG USING P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV

PV_POS LIKE GWA_FIELDCAT-COL_POS

PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME

PV_TABNAME LIKE GWA_FIELDCAT-TABNAME

PV_OUTPUT LIKE GWA_FIELDCAT-OUTPUTLEN

PV_SELTEXT LIKE GWA_FIELDCAT-SELTEXT_M

PV_DATATYPE LIKE GWA_FIELDCAT-DATATYPE

PV_KEY LIKE GWA_FIELDCAT-KEY

PV_ROW LIKE GWA_FIELDCAT-ROW_POS

PV_HOTSPOT LIKE GWA_FIELDCAT-HOTSPOT

PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE

PV_SUM LIKE GWA_FIELDCAT-DO_SUM

PV_CHECKBOX LIKE GWA_FIELDCAT-CHECKBOX

PV_EDIT LIKE GWA_FIELDCAT-EDIT

PV_INPUT LIKE GWA_FIELDCAT-INPUT.

DATA: LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

LT_FIELDCAT-OUTPUTLEN = PV_OUTPUT.

LT_FIELDCAT-COL_POS = PV_POS.

LT_FIELDCAT-FIELDNAME = PV_FIELDNAME.

LT_FIELDCAT-TABNAME = PV_TABNAME.

LT_FIELDCAT-SELTEXT_L = PV_SELTEXT.

LT_FIELDCAT-KEY = PV_KEY.

LT_FIELDCAT-ROW_POS = PV_ROW.

LT_FIELDCAT-HOTSPOT = PV_HOTSPOT.

LT_FIELDCAT-EMPHASIZE = PV_EMPHASIZE.

LT_FIELDCAT-DO_SUM = PV_SUM.

LT_FIELDCAT-CHECKBOX = PV_CHECKBOX.

LT_FIELDCAT-INPUT = PV_INPUT.

LT_FIELDCAT-EDIT = PV_EDIT.

LT_FIELDCAT-DATATYPE = PV_DATATYPE.

APPEND LT_FIELDCAT TO P_GIT_FIELDCAT.

CLEAR LT_FIELDCAT.

ENDFORM. " init_field_catalog

&----


*& Form sort_fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS .

gwa_sort-SPOS = 1. " Sort order

gwa_sort-FIELDNAME = 'LIFNR'.

gwa_sort-TABNAME = 'GIT_NOTPOST'.

gwa_sort-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND gwa_sort TO git_sort.

CLEAR gwa_sort.

  • gwa_sort-spos = 2. " Sort order

  • gwa_sort-fieldname = 'ZBELNR'.

  • gwa_sort-tabname = 'GIT_FINAL'.

  • gwa_sort-up = 'X'.

    • x_sort-subtot = 'X'. " Sub total allowed

*

  • APPEND gwa_sort TO git_sort.

  • CLEAR gwa_sort.

ENDFORM. " sort_fields

&----


*& Form sort_fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS_POST .

gwa_sortPOST-SPOS = 1. " Sort order

gwa_sortPOST-FIELDNAME = 'LIFNR'.

gwa_sortPOST-TABNAME = 'GIT_POST'.

gwa_sortPOST-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND gwa_sortPOST TO GiT_SORTPOST.

CLEAR gwa_sortPOST.

  • gwa_sort-spos = 2. " Sort order

  • gwa_sort-fieldname = 'ZBELNR'.

  • gwa_sort-tabname = 'GIT_FINAL'.

  • gwa_sort-up = 'X'.

    • x_sort-subtot = 'X'. " Sub total allowed

*

  • APPEND gwa_sort TO git_sort.

  • CLEAR gwa_sort.

ENDFORM. " sort_fields

&----


*& Form EVENTTAB_BUILD1

&----


  • text

----


  • <--P_GiT_EVENTS text

----


FORM EVENTTAB_BUILD1 CHANGING P_GiT_EVENTS.

CLEAR GiT_XS_EVENT.

GiT_XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

GiT_XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND GiT_XS_EVENT TO GiT_EVENTS.

  • CONSTANTS:

*GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

*GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

  • DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

*

  • CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = GiT_EVENTS.

*

  • READ TABLE GiT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO GiT_EVENTS.

  • ENDIF.

*

  • READ TABLE GiT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_USER_COMMAND TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO GiT_EVENTS.

  • ENDIF.

ENDFORM. " EVENTTAB_BUILD1

&----


*& Form EVENTTAB_BUILD1

&----


  • text

----


  • <--P_GiT_EVENTS text

----


FORM EVENTTAB_BUILDPOST.

*not posted DOCUMENTS

CLEAR GiT_XS_EVENT.

GiT_XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

GiT_XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND GiT_XS_EVENT TO GiT_EVENTS1.

ENDFORM. " EVENTTAB_BUILD1

************************************************

*& TOP-OF-PAGE

************************************************

*----


    • FORM TOP_OF_PAGE *

*----


    • When TOP-OF-PAGE will be fired , this event will be called and it

    • will use the contents of i_list_top_of_page for output in the header

*----


*FORM TOP_OF_PAGE.

*

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • I_LOGO = 'ENJOYSAP_LOGO'

  • IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE.

*

*ENDFORM. "top_of_page

&----


*& Form LIST_HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_HEADER .

CLEAR : GiT_LIST_TOP_OF_PAGE.

DATA: L_LINE TYPE SLIS_LISTHEADER.

DATA: L_DATE(10).

CLEAR L_DATE.

***Header

CLEAR L_LINE.

L_LINE-TYP = 'H'.

  • L_LINE-KEY: not used for this type

L_LINE-INFO = 'Vendor Line Item Display'.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

***Selection

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Documents'.

L_LINE-INFO = 'Not Posted'. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Company Code'.

L_LINE-INFO = P_BUKRS. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

CONCATENATE P_DDATE+6(2)

P_DDATE+4(2)

P_DDATE+0(4)

INTO L_DATE SEPARATED BY '.'.

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-LOW.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

*

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-high.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

L_LINE-KEY = 'Discount date'.

L_LINE-INFO = L_DATE.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

ENDFORM. " LIST_HEADER

&----


*& Form LIST_HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_HEADER1 .

CLEAR : GiT_LIST_TOP_OF_PAGE_POST.

DATA: L_LINE TYPE SLIS_LISTHEADER.

DATA: L_DATE(10).

CLEAR L_DATE.

***Header

CLEAR L_LINE.

L_LINE-TYP = 'H'.

  • L_LINE-KEY: not used for this type

L_LINE-INFO = 'Vendor Line Item Display'.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

***Selection

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Documents'.

L_LINE-INFO = 'Posted'. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Company Code'.

L_LINE-INFO = P_BUKRS. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

CONCATENATE P_DDATE+6(2)

P_DDATE+4(2)

P_DDATE+0(4)

INTO L_DATE SEPARATED BY '.'.

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-LOW.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

*

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-high.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

L_LINE-KEY = 'Discount date'.

L_LINE-INFO = L_DATE.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

ENDFORM. " LIST_HEADER

----


*& Form SET_PF_STATUS

&----


  • text

----


  • -->EXTAB text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'ZSTANDARD1'. " OF PROGRAM 'SAPLKKBL'.

ENDFORM. "set_pf_status

&----


*& Form Display_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_LIST .

G_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' "'SET_PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • IT_EXCLUDING =

.

*DOCUMENTS WHICH ARE POSTED ALREADY.

IF GIT_POST IS NOT INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = GIT_LAYOUT

IT_FIELDCAT = GiT_FIELDCATPOST " POST

I_TABNAME = 'GIT_POST'

IT_EVENTS = GiT_EVENTS[]

IT_SORT = git_sort[]

  • I_TEXT = ' '

  • IS_VARIANT = G_VAR

TABLES

T_OUTTAB = GIT_POST

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

*DOCUMENTS WHICH ARE NOT YET POSTED

IF GIT_NOTPOST IS NOT INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = GIT_LAYOUT

IT_FIELDCAT = GiT_FIELDCAT

I_TABNAME = 'GIT_NOTPOST' " NOT POSTED

IT_EVENTS = GiT_EVENTS1[]

IT_SORT = git_sort[]

  • I_TEXT = ' '

  • IS_VARIANT = G_VAR

TABLES

T_OUTTAB = GIT_NOTPOST

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.

  • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

  • IS_LAYOUT = GS_LAYOUT

  • IT_FIELDCAT = GiT_FIELDCAT

  • IT_SORT = git_sort[]

  • IS_VARIANT = G_VAR

  • IT_EVENTS = GiT_EVENTS[]

  • TABLES

  • T_OUTTAB = GIT_BSIKM

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

  • .

  • IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

ENDFORM. " Display_grid

&----


*& Form USER_COMMAND

&----


  • Called from within the ALV processes. Currently, 'F-02' is used

  • to process the hotspot and display the document 'picked' by the

  • user.

&----


  • PV_UCOMM contains the sy-ucomm from ALV

  • SELFIELD is a structure that contains all the data required to

  • process a user selection. The following is an example

  • of the SELFIELD structure and sample values:

*

*

&----


  • when the user click on Asset Class this will trigger

FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

CASE PV_UCOMM.

WHEN 'F-02'.

  • BREAK WAB03.

*VALIDATE THE DOCUMENTS THAT WHETHER THEY ARE POSTED OR NOT.

PERFORM VALIDATE_DOCUMENT.

  • LOOP AT GIT_BSIKM INTO GWA_BSIKM.

READ TABLE GIT_NOTPOST INTO GWA_NOTPOST

WITH KEY BUKRS = P_BUKRS. " INDEX SELFIELD-TABINDEX.

IF SY-SUBRC EQ 0.

  • CASE SELFIELD-SEL_TAB_FIELD.

  • WHEN 'GIT_BSIKM-BUKRS'.

  • LOOP AT GIT_BSIKM INTO GWA_BSIKM.

  • MOVE-CORRESPONDING GWA_BSIKM TO GWA_BSIKT.

  • COLLECT GWA_BSIKT INTO GIT_BSIKT.

  • CLEAR: GWA_BSIKT, GWA_BSIKM.

  • ENDLOOP.

*SENDING THE DOCUMENTS WHICH ARE NOT YET POSTED TO THE

*PROGRAMM ZFII_UPLOADF_02 FOR FURTHER UPLOAD.

EXPORT GIT_NOTPOST[] TO MEMORY ID 'CP_TABLE'.

*SENDING THE DATE TO THE PROGRAMM ZFII_UPLOADF_02

*FOR FURTHER UPLOAD.

EXPORT GIT_DATE[] TO MEMORY ID 'CP_DATE'.

*CALL THE PROGRAME ZFII_UPLOADF_02 FOR FURTHER UPLOAD.

SUBMIT ZFII_UPLOADF_02 VIA SELECTION-SCREEN AND RETURN.

*& we have to filter the vendor list

*& here we can run F-02 for only one vendor

  • PERFORM F-02.

ENDIF.

WHEN 'PRIN'.

  • ENDLOOP.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form CALCULATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALCULATION .

DATA: L_DAYS LIKE T009B-BUTAG.

DATA: L_DMBTR(15) TYPE C.

DATA: L_CHECK TYPE C.

CLEAR: L_DAYS, L_CHECK, L_DMBTR.

*FINDING OUT THE NET DUE DATE.

LOOP AT GIT_BSIK INTO GWA_BSIK.

CALL FUNCTION 'NET_DUE_DATE_GET'

EXPORTING

I_ZFBDT = GWA_BSIK-ZFBDT

I_ZBD1T = GWA_BSIK-ZBD1T

I_ZBD2T = GWA_BSIK-ZBD2T

I_ZBD3T = GWA_BSIK-ZBD2T

I_SHKZG = GWA_BSIK-SHKZG

I_REBZG = GWA_BSIK-REBZG

I_KOART = 'K'

IMPORTING

E_FAEDT = GWA_BSIK-NETDUEDT.

MODIFY GIT_BSIK FROM GWA_BSIK.

CLEAR : GWA_BSIK.

ENDLOOP.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT LE P_DDATE.

DELETE GIT_BSIK INDEX SY-TABIX.

ENDIF.

CLEAR GWA_BSIK.

ENDLOOP.

*delete the records where the net due date

  • is greater than the discount date which is considered

IF P_DUEDT IS NOT INITIAL.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT > P_DUEDT.

DELETE GIT_BSIK INDEX SY-TABIX.

ENDIF.

CLEAR GWA_BSIK.

ENDLOOP.

ENDIF.

IF GIT_BSIK IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-004.

ENDIF.

*to calculate the discount amount.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT > P_DDATE.

  • IF P_DUEDT IS INITIAL.

  • P_DUEDT = GWA_BSIK-NETDUEDT.

  • ENDIF.

  • IF GWA_BSIK-NETDUEDT GE P_DUEDT.

WRITE GWA_BSIK-WRBTR TO L_DMBTR.

*calculating the difference between the dates

CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'

EXPORTING

DATE1 = GWA_BSIK-NETDUEDT

DATE2 = P_DDATE

OUTPUT_FORMAT = '02'

IMPORTING

  • YEARS =

  • MONTHS =

DAYS = GWA_BSIK-DAYS

EXCEPTIONS

INVALID_DATES_SPECIFIED = 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.

GWA_BSIK-DAYS = GWA_BSIK-DAYS - 1.

*checking for leap year or not

CALL FUNCTION 'NUMBER_OF_DAYS_PER_MONTH_GET'

EXPORTING

PAR_MONTH = '02'

PAR_YEAR = P_DDATE+0(4)

IMPORTING

PAR_DAYS = L_DAYS.

IF L_DAYS = '29'.

L_CHECK = 'X'.

ELSE.

L_CHECK = ' '.

ENDIF.

IF L_DMBTR CA '-'.

ELSE.

IF L_CHECK = 'X'.

GWA_BSIK-DISCOUNT = ( GWA_BSIK-WRBTR *

GWA_BSIK-DAYS * P_DRATE )

/ 36600.

ELSE.

GWA_BSIK-DISCOUNT = ( GWA_BSIK-WRBTR *

GWA_BSIK-DAYS * P_DRATE )

/ 36500.

ENDIF.

ENDIF.

  • ENDIF.

ENDIF.

MODIFY GIT_BSIK FROM GWA_BSIK.

CLEAR: GWA_BSIK.

ENDLOOP.

ENDFORM. " CALCULATION

&----


*& Form VARIANTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VARIANTS .

PERFORM F_LAYOUT_INIT USING GIT_LAYOUT.

  • DATA : G_VARIANT LIKE DISVARIANT.

  • DATA : G_VAR LIKE DISVARIANT.

  • DATA : G_ALV_VAR LIKE DISVARIANT.

G_VAR-REPORT = 'ZFII_RFITEMAPLIST'.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = G_VAR

EXCEPTIONS

WRONG_INPUT = 1

NOT_FOUND = 2

PROGRAM_ERROR = 3

OTHERS = 4.

IF SY-SUBRC EQ 0.

G_VAR-VARIANT = '/SAPSUBTOT'.

G_ALV_VAR-REPORT = SY-REPID.

ELSE.

G_VAR-VARIANT = '' ."'/ZNETDUEDATE'.

ENDIF.

ENDFORM. " VARIANTS

&----


*& Form F_LAYOUT_INIT

&----


  • text

----


  • -->P_GS_LAYOUT text

----


FORM F_LAYOUT_INIT USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

P_GS_LAYOUT-DETAIL_INITIAL_LINES = 'X'.

  • P_GS_LAYOUT-no_sumchoice = ' '.

P_GS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.

ENDFORM. " F_LAYOUT_INIT

&----


*& Form SUB_TOTAL_DATE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SUB_TOTAL_DATE .

*CLEARING AND REFRESHING THE INTERNAL TABLES USED

REFRESH: GIT_BSIKF, GIT_BSIKM.

CLEAR: GWA_BSIKF, GWA_BSIKM.

*SUMMING OF THE AMOUNT FIELD

LOOP AT GIT_BSIK INTO GWA_BSIK.

MOVE-CORRESPONDING GWA_BSIK TO GWA_BSIKF.

COLLECT GWA_BSIKF INTO GIT_BSIKF.

CLEAR: GWA_BSIK, GWA_BSIKF.

ENDLOOP.

*FETCHING THE NUMBER OF DAYS

LOOP AT GIT_BSIKF INTO GWA_BSIKF.

READ TABLE GIT_BSIK INTO GWA_BSIK

WITH KEY BUKRS = GWA_BSIKF-BUKRS

LIFNR = GWA_BSIKF-LIFNR

ZFBDT = GWA_BSIKF-ZFBDT

BLART = GWA_BSIKF-BLART

NETDUEDT = GWA_BSIKF-NETDUEDT.

IF SY-SUBRC EQ 0.

GWA_BSIKM-DAYS = GWA_BSIK-DAYS.

  • GWA_BSIKM-BLART = GWA_BSIK-BLART.

MOVE-CORRESPONDING GWA_BSIKF TO GWA_BSIKM.

APPEND GWA_BSIKM TO GIT_BSIKM.

CLEAR: GWA_BSIK, GWA_BSIKF, GWA_BSIKM.

ENDIF.

ENDLOOP.

SORT GIT_BSIKM ASCENDING BY NETDUEDT.

ENDFORM. " SUB_TOTAL_DATE

&----


*& Form validate_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_DATE .

IF P_DDATE IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-006.

ENDIF.

ENDFORM. " validate_date

&----


*& Form VALIDATE_DOCUMENT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_DOCUMENT .

*VALIDATING WHETHER RECORD IS THERE OR NOT

IF GIT_NOTPOST IS NOT INITIAL.

  • IF THE DOCUMENT NUMBERS WHICH ARE THERE IN

*GIT_BSIK IS ALSO PRESENT IN ZFII_PDITEM

*THEN IT MEAN POSTING IS ALREADY DONE.

SELECT

LIFNR

BELNR

BELNRSUB

GJAHR

BUKRS

BLART

FROM ZFII_PDITEM

INTO TABLE GIT_CHECK1

FOR ALL ENTRIES IN GIT_NOTPOST

WHERE BUKRS = GIT_NOTPOST-BUKRS

AND BELNRSUB = GIT_NOTPOST-BELNR

AND LIFNR IN S_LIFNR

AND BLART = GIT_NOTPOST-BLART

AND GJAHR = GIT_NOTPOST-GJAHR.

IF SY-SUBRC EQ 0.

*IF WE FIND THE DOCUMENTS IT MEAN THEY ARE ALREADY POSTED.

MESSAGE E000(ZFI) WITH TEXT-000.

EXIT.

ENDIF.

ELSE.

MESSAGE E000(ZFI) WITH TEXT-000.

ENDIF.

ENDFORM. " VALIDATE_DOCUMENT

&----


*& Form POSTED_NOTPOSTED

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POSTED_NOTPOSTED .

*CLEARING AND REFRESHING OF THE INTERNAL TABLES.

CLEAR: GWA_POST, GWA_NOTPOST.

REFRESH: GIT_POST, GIT_NOTPOST.

IF GIT_BSIKM IS NOT INITIAL.

*COLLECTING THE RECORDS WHICH RECORDS ARE

*POSTED AND WHICH ARE NOT POSTED.

SELECT

LIFNR

BELNR

BELNRSUB

GJAHR

BUKRS

BLART

FROM ZFII_PDITEM

INTO TABLE GIT_CHECK1

FOR ALL ENTRIES IN GIT_BSIKM

WHERE BUKRS = GIT_BSIKM-BUKRS

AND BELNRSUB = GIT_BSIKM-BELNR

AND LIFNR IN S_LIFNR

AND BLART = GIT_BSIKM-BLART

AND GJAHR = GIT_BSIKM-GJAHR.

IF SY-SUBRC EQ 0.

LOOP AT GIT_BSIKM INTO GWA_BSIKM.

READ TABLE GIT_CHECK1 INTO GWA_CHECK1

WITH KEY BELNRSUB = GWA_BSIKM-BELNR.

IF SY-SUBRC EQ 0.

"RECORD FOUND MEANS IT IS POSTED ALREADY

APPEND GWA_BSIKM TO GIT_POST.

ELSE.

"RECORD NOT FOUND MEANS IT IS NOT POSTED

APPEND GWA_BSIKM TO GIT_NOTPOST.

ENDIF.

CLEAR: GWA_BSIKM, GWA_CHECK1.

ENDLOOP.

ELSE.

*IF WE FIND NO DOCUMENTS THEN THESE DOCUMENTS ARE NOT POSTED.

GIT_NOTPOST[] = GIT_BSIKM[].

ENDIF.

ENDIF.

ENDFORM. " POSTED_NOTPOSTED

----


  • FORM TOP_OF_PAGE *

----


  • When TOP-OF-PAGE will be fired , this event will be called and it

  • will use the contents of i_list_top_of_page for output in the header

----


FORM XTOP_OF_PAGE.

  • WRITE: / 'Posted Documents'.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE_POST .

ENDFORM. "top_of_page

----


  • FORM TOP_OF_PAGE *

----


  • When TOP-OF-PAGE will be fired , this event will be called and it

  • will use the contents of i_list_top_of_page for output in the header

----


FORM YTOP_OF_PAGE.

  • WRITE: / 'NOT Posted Documents'.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE.

ENDFORM. "top_of_page

reward points if helpful

regards,

venkatesh

Hi...

Can any one provide me a sample ALV list program with all the data declarations....

Thanks,

Sandy

4 REPLIES 4
Read only

Former Member
0 Likes
690

HI,

check out this code

**----


  • Data Extract from Tables ZFII_COST, BSIS.

----


  • Program Name :ZFII_COSTING_REPORT_DISPLAY

  • Object ID :E7

  • Functional Analyst :VENKAT

  • Programmer :venkatesh

  • Start date :07/05/2007

  • Initial CTS :HFDK901345

  • Description :

----


  • Includes :n/a

*

  • Function Modules :REUSE_ALV_GRID_DISPLAY , *

  • CONVERSION_EXIT_ALPHA_INPUT

  • FTI_FISCAL_YEAR_MONTH_GET

*

*

  • Logical database :n/a

  • Transaction Code :n/a

  • External references :n/a

----


  • Modification Log

----


  • Date | Modified by | CTS number | Comments

----


  • 07/05/2007 | venkaetsh | HFDK901345 | Initial version

----


REPORT ZFII_COSTING_REPORT_DISPLAY NO STANDARD PAGE HEADING

MESSAGE-ID ZFI.

TYPE-POOLS: FTIS.

  • FOR THE ALV DISPLAY.

TYPE-POOLS: SLIS.

DATA:

G_REPID LIKE SY-REPID,

GWA_SORT TYPE SLIS_SORTINFO_ALV,

GIT_SORT TYPE SLIS_T_SORTINFO_ALV,

  • GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

  • GIT_EVENTS TYPE SLIS_T_EVENT,

GFL_LAYOUT TYPE SLIS_LAYOUT_ALV,

GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

  • GIT_XS_EVENT TYPE SLIS_ALV_EVENT,

G_POS TYPE I VALUE 1.

DATA:

  • G_REPID LIKE SY-REPID,

  • GWA_SORT TYPE SLIS_SORTINFO_ALV,

  • GIT_SORT TYPE SLIS_T_SORTINFO_ALV,

  • GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

  • GIT_EVENTS TYPE SLIS_T_EVENT,

GFL_ITEMSLAYOUT TYPE SLIS_LAYOUT_ALV,

GIT_ITEMSFIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,

  • GWA_ITEMSFIELDCAT TYPE SLIS_FIELDCAT_ALV,

  • GIT_XS_EVENT TYPE SLIS_ALV_EVENT,

G_ITEMSPOS TYPE I VALUE 1.

  • DECLARING THE VARIABLES.

DATA:

G_BUKRS TYPE T001-BUKRS.

  • TABLE FOR THE INITIAL FETCHING

TYPES: BEGIN OF T_COST.

INCLUDE STRUCTURE ZFII_COST.

TYPES: CNSTDGLACC TYPE ZFII_COSTING-CNSTDGLACC.

TYPES: END OF T_COST.

TYPES: T_IT_COST TYPE STANDARD TABLE OF T_COST.

DATA: GIT_COST TYPE T_IT_COST.

DATA: GWA_COST TYPE T_COST.

TYPES: BEGIN OF T_CONSOL.

INCLUDE STRUCTURE ZFII_COSTING.

TYPES: END OF T_CONSOL.

TYPES: T_IT_CONSOL TYPE STANDARD TABLE OF T_CONSOL.

DATA: GWA_CONSOL TYPE T_CONSOL.

DATA: GIT_CONSOL TYPE T_IT_CONSOL.

*TYPES: BEGIN OF T_SENDDATA.

  • INCLUDE STRUCTURE ZFII_COSTINGDETAILS.

*TYPES: END OF T_SENDDATA.

*TYPES: T_IT_SENDDATA TYPE STANDARD TABLE OF T_SENDDATA.

*DATA: GIT_SENDDATA TYPE T_IT_SENDDATA.

*DATA: GWA_SENDDATA TYPE T_SENDDATA.

TYPES: BEGIN OF T_BSIS,

HKONT TYPE BSIS-HKONT,

SHKZG TYPE BSIS-SHKZG,

DMBTR TYPE BSIS-DMBTR,

KOSTL TYPE BSIS-KOSTL,

END OF T_BSIS.

TYPES: T_IT_BSIS TYPE STANDARD TABLE OF T_BSIS.

DATA: GIT_BSIS TYPE T_IT_BSIS.

DATA: GWA_BSIS TYPE T_BSIS.

DATA: GIT_TOTALBSIS TYPE T_IT_BSIS.

DATA: GWA_TOTALBSIS TYPE T_BSIS.

DATA: G_FTIS_DATUM TYPE FTIS_DATUM.

DATA: G_FTIS_GJAHR TYPE FTIS_GJAHR.

DATA: G_FTIS_MONAT TYPE FTIS_MONAT.

  • ranges

RANGES: R_HKONT FOR BSIS-HKONT.

data: g_KOSTL type BSIS-KOSTL.

  • DESIGNING OF THE SELECTION SCREEN STARTS.

DATA: G_YEARMONTH TYPE ZFII_COST-YEARMONTH.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME. " TITLE TEXT-001.

PARAMETERS: P_COCODE TYPE T001-BUKRS DEFAULT 'H901'.

SELECT-OPTIONS: S_MONYR FOR G_YEARMONTH OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

  • DESIGN OF THE SELECTION SCREEN ENDS.

  • INITIALIZATION.

  • clearing and refreshing all the variables

  • and the tables used in the programme.

INITIALIZATION.

PERFORM CLEAR_REFRESH.

  • AT SELECTION-SCREEN.

  • event to validate the values entered

  • and fetching the data

  • if no data found error message will be shown

AT SELECTION-SCREEN.

PERFORM VALIDATE_VALUES.

*start of selection.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM CHANGE_DATA.

PERFORM DISPLAY_ALV.

&----


*& Form CLEAR_REFRESH

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CLEAR_REFRESH .

CLEAR: G_REPID.

G_REPID = SY-REPID.

CLEAR:

GWA_COST, G_POS,

G_BUKRS, GWA_TOTALBSIS,

R_HKONT, G_FTIS_DATUM.

REFRESH:

GIT_BSIS, GIT_COST.

ENDFORM. " CLEAR_REFRESH

&----


*& Form VALIDATE_VALUES

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_VALUES .

SELECT SINGLE

BUKRS FROM

T001 INTO G_BUKRS

WHERE BUKRS = P_COCODE.

IF SY-SUBRC NE 0.

MESSAGE E000 WITH TEXT-000.

ENDIF.

ENDFORM. " VALIDATE_VALUES

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

SELECT

MANDT

COMPCODE

YEARMONTH

DEPARTMENT

  • CNSTDGLACC

GLCODEFROM

GLCODETO

AMOUNT

FLAG

TYPE

FROM ZFII_COST

INTO TABLE GIT_COST

WHERE COMPCODE = P_COCODE

and YEARMONTH in S_MONYR.

IF SY-SUBRC NE 0.

MESSAGE I000 WITH TEXT-001.

STOP.

ELSE.

SELECT

MANDT

CNSTDGLACC

GLCODEFROM

GLCODETO

FLAG

FROM ZFII_COSTING

INTO TABLE GIT_CONSOL.

IF SY-SUBRC NE 0.

MESSAGE I000 WITH TEXT-003.

STOP.

ENDIF.

ENDIF.

ENDFORM. " GET_DATA

&----


*& Form Change_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CHANGE_DATA .

IF GIT_CONSOL IS NOT INITIAL.

IF GIT_COST IS NOT INITIAL.

sort GIT_CONSOL.

LOOP AT GIT_COST INTO GWA_COST.

READ TABLE GIT_CONSOL INTO GWA_CONSOL

WITH KEY GLCODEFROM = GWA_COST-GLCODEFROM

GLCODETO = GWA_COST-GLCODETO

BINARY SEARCH.

IF SY-SUBRC EQ 0.

GWA_COST-CNSTDGLACC = GWA_CONSOL-CNSTDGLACC.

MODIFY GIT_COST FROM GWA_COST.

ENDIF.

CLEAR: GWA_CONSOL, GWA_COST.

ENDLOOP.

ENDIF.

ENDIF.

ENDFORM. " Change_data

&----


*& Form DISPLAY_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_ALV .

GFL_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GFL_LAYOUT-ZEBRA = 'X'.

PERFORM FILL_FIELDCAT.

PERFORM SORT_FIELDS.

PERFORM CALL_GRID.

ENDFORM. " DISPLAY_ALV

&----


*& Form FILL_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT .

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'COMPCODE' " InTab Field Name

'GIT_COST' " InTab Name

'5' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'YEARMONTH' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'Year & Month' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

  • G_POS " Column Position

  • 'CNSTDGLACC' " InTab Field Name

  • 'GIT_COST' " InTab Name

  • '8' " Output Length

  • 'G/L Account code' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • ' ' " checkbox

  • ' ' " EDIT

  • ' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'CNSTDGLACC' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'Cnsl GL' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DEPARTMENT' " InTab Field Name

'GIT_COST' " InTab Name

'4' " Output Length

'Department' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'GLCODEFROM' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'From GL' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'GLCODETO' " InTab Field Name

'GIT_COST' " InTab Name

'8' " Output Length

'To GL' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'FLAG' " InTab Field Name

'GIT_COST' " InTab Name

'2' " Output Length

'Flag' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'TYPE' " InTab Field Name

'GIT_COST' " InTab Name

'2' " Output Length

'Type' " Column Name Text

'' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'AMOUNT' " InTab Field Name

'GIT_COST' " InTab Name

'18' " Output Length

'Amount' " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " FILL_FIELDCAT

&----


*& Form init_field_catalog

&----


  • text

----


  • -->P_GIT_FIELDCAT text

  • -->PV_POS text

  • -->PV_FIELDNAME text

  • -->PV_TABNAME text

  • -->PV_OUTPUT text

  • -->PV_SELTEXT text

  • -->PV_DATATYPE text

  • -->PV_KEY text

  • -->PV_ROW text

  • -->PV_HOTSPOT text

  • -->PV_EMPHASIZE text

  • -->PV_SUM text

  • -->PV_CHECKBOX text

  • -->PV_INPUT text

----


FORM INIT_FIELD_CATALOG USING P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV

PV_POS LIKE GWA_FIELDCAT-COL_POS

PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME

PV_TABNAME LIKE GWA_FIELDCAT-TABNAME

PV_OUTPUT LIKE GWA_FIELDCAT-OUTPUTLEN

PV_SELTEXT LIKE GWA_FIELDCAT-SELTEXT_M

PV_DATATYPE LIKE GWA_FIELDCAT-DATATYPE

PV_KEY LIKE GWA_FIELDCAT-KEY

PV_ROW LIKE GWA_FIELDCAT-ROW_POS

PV_HOTSPOT LIKE GWA_FIELDCAT-HOTSPOT

PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE

PV_SUM LIKE GWA_FIELDCAT-DO_SUM

PV_CHECKBOX LIKE GWA_FIELDCAT-CHECKBOX

PV_EDIT LIKE GWA_FIELDCAT-EDIT

PV_INPUT LIKE GWA_FIELDCAT-INPUT.

DATA: LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

LT_FIELDCAT-OUTPUTLEN = PV_OUTPUT.

LT_FIELDCAT-COL_POS = PV_POS.

LT_FIELDCAT-FIELDNAME = PV_FIELDNAME.

LT_FIELDCAT-TABNAME = PV_TABNAME.

LT_FIELDCAT-SELTEXT_L = PV_SELTEXT.

LT_FIELDCAT-KEY = PV_KEY.

LT_FIELDCAT-ROW_POS = PV_ROW.

LT_FIELDCAT-HOTSPOT = PV_HOTSPOT.

LT_FIELDCAT-EMPHASIZE = PV_EMPHASIZE.

LT_FIELDCAT-DO_SUM = PV_SUM.

LT_FIELDCAT-CHECKBOX = PV_CHECKBOX.

LT_FIELDCAT-INPUT = PV_INPUT.

LT_FIELDCAT-EDIT = PV_EDIT.

LT_FIELDCAT-DATATYPE = PV_DATATYPE.

APPEND LT_FIELDCAT TO P_GIT_FIELDCAT.

CLEAR LT_FIELDCAT.

ENDFORM. " init_field_catalog

&----


*& Form SORT_FIELDS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS .

GWA_SORT-SPOS = 1. " Sort order

GWA_SORT-FIELDNAME = 'COMPCODE'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 2. " Sort order

GWA_SORT-FIELDNAME = 'YEARMONTH'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 3. " Sort order

GWA_SORT-FIELDNAME = 'CNSTDGLACC'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

GWA_SORT-SPOS = 4. " Sort order

GWA_SORT-FIELDNAME = 'DEPARTMENT'.

GWA_SORT-TABNAME = 'GIT_COST'.

GWA_SORT-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND GWA_SORT TO GIT_SORT.

CLEAR GWA_SORT.

ENDFORM. " SORT_FIELDS

&----


*& Form CALL_GRID

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_GRID .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

I_CALLBACK_USER_COMMAND = '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 = GFL_LAYOUT

IT_FIELDCAT = GIT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = GIT_SORT

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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 = GIT_COST

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. " CALL_GRID

----


*& Form SET_PF_STATUS

&----


  • text

----


  • -->EXTAB text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB. "#EC CALLED

SET PF-STATUS 'ZFII_PF_STATUS'. " OF PROGRAM 'SAPLKKBL'.

ENDFORM. "set_pf_status

&----


*& Form USER_COMMAND

&----


  • Called from within the ALV processes.

&----


  • PV_UCOMM contains the sy-ucomm from ALV

  • SELFIELD is a structure that contains all the data required to

  • process a user selection. The following is an example

  • of the SELFIELD structure and sample values:

*

*

&----


  • TRIGGERS WHEN THE USER CLICK THE

FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM "#EC NEEDED

SELFIELD TYPE SLIS_SELFIELD. "#EC NEEDED

CASE PV_UCOMM.

WHEN '&IC1'.

  • when the user double clicks on any record this will show the

READ TABLE GIT_COST INTO GWA_COST INDEX SELFIELD-TABINDEX.

  • entire list of g/l accounts for which we calculated the sum.

IF SY-SUBRC EQ 0.

CLEAR: g_KOSTL.

  • g_KOSTL = GWA_COST-DEPARTMENT.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = GWA_COST-DEPARTMENT

IMPORTING

OUTPUT = g_KOSTL.

CLEAR: R_HKONT.

REFRESH: R_HKONT.

R_HKONT-SIGN = 'I'.

R_HKONT-OPTION = 'BT'.

R_HKONT-LOW = GWA_COST-GLCODEFROM.

R_HKONT-HIGH = GWA_COST-GLCODETO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = R_HKONT-LOW

IMPORTING

OUTPUT = R_HKONT-LOW.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = R_HKONT-HIGH

IMPORTING

OUTPUT = R_HKONT-HIGH.

append r_hkont.

PERFORM DISPLAY_DETAILS.

ENDIF.

when OTHERS.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form display_details

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DETAILS .

PERFORM GET_VALUES_BSIS.

PERFORM FILL_FIELDCAT_ITEMS.

PERFORM DISPALY_ITEMS.

ENDFORM. " display_details

&----


*& Form FILL_FIELDCAT_items

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_FIELDCAT_ITEMS .

CLEAR: GIT_ITEMSFIELDCAT. ", GWA_ITEMSFIELDCAT.

REFRESH: GIT_ITEMSFIELDCAT.

GFL_ITEMSLAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GFL_ITEMSLAYOUT-ZEBRA = 'X'.

CLEAR: G_ITEMSPOS.

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'HKONT' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'10' " Output Length

'G/L Account' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'KOSTL' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'10' " Output Length

'Cost Center' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_ITEMSPOS = G_ITEMSPOS + 1.

PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog

G_ITEMSPOS " Column Position

'DMBTR' " InTab Field Name

'GIT_TOTALBSIS' " InTab Name

'18' " Output Length

'Amount' " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " FILL_FIELDCAT_items

&----


*& Form get_values_bsis

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_VALUES_BSIS .

clear: " G_FTIS_DATUM,

G_FTIS_GJAHR, G_FTIS_MONAT.

G_FTIS_DATUM+0(6) = gwa_cost-YEARMONTH.

G_FTIS_DATUM+6(2) = '01'.

CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'

EXPORTING

I_BUKRS = 'H901'

I_BUDAT = G_FTIS_DATUM

I_DZTERM = FTIS_DATUM-INITIAL

I_GJAHR = FTIS_GJAHR-INITIAL

IMPORTING

E_GJAHR = G_FTIS_GJAHR

E_MONAT = G_FTIS_MONAT.

IF NOT GIT_COST IS INITIAL.

CLEAR: GWA_BSIS, GWA_TOTALBSIS.

REFRESH: GIT_BSIS, GIT_TOTALBSIS.

SELECT

HKONT

SHKZG

DMBTR

KOSTL

FROM BSIS

INTO TABLE GIT_BSIS

WHERE BUKRS = P_COCODE

AND HKONT in R_HKONT

AND GJAHR = G_FTIS_GJAHR

AND MONAT = G_FTIS_MONAT

AND KOSTL eq g_KOSTL.

IF SY-SUBRC EQ 0.

LOOP AT GIT_BSIS INTO GWA_BSIS.

SHIFT GWA_BSIS-HKONT LEFT DELETING LEADING '0'.

GWA_TOTALBSIS-HKONT = GWA_BSIS-HKONT.

GWA_TOTALBSIS-KOSTL = GWA_BSIS-KOSTL.

IF GWA_BSIS-SHKZG = 'H'.

GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR * -1.

ELSE.

GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR.

ENDIF.

APPEND GWA_TOTALBSIS TO GIT_TOTALBSIS.

CLEAR: GWA_TOTALBSIS, GWA_BSIS.

ENDLOOP.

SORT GIT_TOTALBSIS ASCENDING BY HKONT KOSTL.

ENDIF.

ENDIF.

ENDFORM. " get_values_bsis

&----


*& Form dispaly_items

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPALY_ITEMS .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

  • 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 = GFL_ITEMSLAYOUT

IT_FIELDCAT = GIT_ITEMSFIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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 = GIT_TOTALBSIS

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. " dispaly_items

reward points if helpful

regards,

venkatesh

Read only

Former Member
0 Likes
690

Hi

report yh645_secndry_alv.

type-pools: slis.

data: fieldcat type slis_t_fieldcat_alv,

fieldcat_ln like line of fieldcat,

fs_layout type slis_layout_alv,

t_layoout like standard table

of fs_layout.

data: begin of fs_spfli,

carrid type spfli-carrid,

connid type spfli-connid,

countryfr type spfli-countryfr,

cityfrom type spfli-cityfrom,

airpfrom type spfli-airpfrom,

countryto type spfli-countryto,

cityto type spfli-cityto,

airpto type spfli-airpto,

fltime type spfli-fltime,

deptime type spfli-deptime,

arrtime type spfli-arrtime,

distance type spfli-distance,

distid type spfli-distid,

fltype type spfli-fltype,

period type spfli-period,

checkbox,

color(3),

end of fs_spfli.

data:

begin of fs_table,

carrid type spfli-carrid,

connid type spfli-connid,

end of fs_table.

data: begin of fs_sflight,

check,

color(3).

include type sflight.

data:end of fs_sflight.

data:

begin of fs_table1,

carrid type sflight-carrid,

connid type sflight-connid,

fldate type sflight-fldate,

end of fs_table1.

data:

t_spfli like standard table

of fs_spfli.

data:

t_table like standard table

of fs_table.

data:

t_table1 like standard table

of fs_table1.

data:

t_sflight like standard table

of fs_sflight.

data:

t_sbook like standard table

of sbook.

data t_layout type slis_layout_alv.

select *

into corresponding fields of table t_spfli

from spfli.

perform start_list_viewer.

perform get_spfli_details.

&----


*& Form SUB1

&----


  • text

----


  • -->RT_EXTAB text

----


form sub1 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SFLIGHT'.

append flight to rt_extab.

set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.

endform. "SUB1

&----


*& Form START_LIST_VIEWER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form start_list_viewer .

data: pgm like sy-repid.

pgm = sy-repid.

fs_layout-box_fieldname = 'CHECKBOX'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB1'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SPFLI'

is_layout = fs_layout

tables

t_outtab = t_spfli

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. " START_LIST_VIEWER

*******Process Call Back Events (Begin)**************************

form user_command using ucomm like sy-ucomm

selfield type slis_selfield.

case ucomm.

when 'SFLIGHT'.

selfield-refresh = 'X'.

perform get_spfli_details.

select *

from sflight

into corresponding fields of table t_sflight

for all entries in t_table

where carrid eq t_table-carrid

and connid eq t_table-connid.

perform display_sflight.

when 'SBOOK'.

selfield-refresh = 'X'.

perform get_sflight_details.

select *

from sbook

into corresponding fields of table t_sbook

for all entries in t_table1

where carrid eq t_table1-carrid

and connid eq t_table1-connid

and fldate eq t_table1-fldate.

perform display_sbook.

endcase.

endform. "USER_COMMAND

&----


*& Form SUB2

&----


  • text

----


  • -->RT_EXTAB text

----


form sub2 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SBOOK'.

append flight to rt_extab.

set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.

endform. "SUB2

&----


*& Form DISPLAY_SFLIGHT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display_sflight .

data: pgm like sy-repid.

pgm = sy-repid.

clear t_layout.

fs_layout-box_fieldname = 'CHECK'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB2'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SFLIGHT'

is_layout = fs_layout

tables

t_outtab = t_sflight

exceptions

program_error = 1

others = 2.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. " DISPLAY_SFLIGHT

&----


*& Form GET_SPFLI_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_spfli_details .

loop at t_spfli into fs_spfli.

if fs_spfli-checkbox = 'X'.

fs_spfli-color = 'C51'.

fs_spfli-checkbox = '1'.

fs_table-carrid = fs_spfli-carrid.

fs_table-connid = fs_spfli-connid.

append fs_table to t_table.

modify t_spfli from fs_spfli.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form GET_SFLIGHT_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_sflight_details .

loop at t_sflight into fs_sflight.

if fs_sflight-check = 'X'.

fs_sflight-color = 'C71'.

fs_sflight-check = '1'.

fs_table1-carrid = fs_sflight-carrid.

fs_table1-connid = fs_sflight-connid.

fs_table1-fldate = fs_sflight-fldate.

append fs_table1 to t_table1.

modify t_sflight from fs_sflight.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form DISPLAY_SBOOK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display_sbook .

data: pgm like sy-repid.

pgm = sy-repid.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_structure_name = 'SBOOK'

tables

t_outtab = t_sbook

exceptions

program_error = 1

others = 2.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. " DISPLAY_SBOOK

Simple ALV report

http://www.sapgenie.com/abap/controls/alvgrid.htm

http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

13. Top-of-page in ALV

14. ALV Group Heading

http://www.sap-img.com/fu037.htm

How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

Go thru these programs they may help u to try on some hands on

ALV Demo program

BCALV_DEMO_HTML

BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode

BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode

BCALV_GRID_DEMO Simple ALV Control Call Demo Program

BCALV_TREE_DEMO Demo for ALV tree control

BCALV_TREE_SIMPLE_DEMO

BC_ALV_DEMO_HTML_D0100

<b>Reward points for useful Answers</b>

Regards

Anji

Read only

Former Member
0 Likes
690

REPORT YZMMR_002A_GRN_REPORT_BUYER .

  • Global Types

----


INCLUDE <ICON>.

TYPE-POOLS: SLIS.

----


  • Declaration of constants *

----


CONSTANTS:FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'F_TOP_OF_PAGE'.

----


  • Declaration for Internal Tables used in ALV

----


  • Internal tables used by ALV

DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

AFIELD LIKE LINE OF FIELDCAT,

IT_STATUS TYPE SLIS_FORMNAME VALUE 'F_MAIN',

IT_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',

IT_EVENTS TYPE SLIS_T_EVENT,

IT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT,

IT_LIST_COMMENTS TYPE SLIS_T_LISTHEADER,

IT_EXCLUDING TYPE SLIS_T_EXTAB,

IT_SORT TYPE SLIS_T_SORTINFO_ALV.

  • Variables used by ALV

DATA: WK_VARIANT LIKE DISVARIANT,

WX_VARIANT LIKE DISVARIANT,

WK_VARIANT_SAVE(1) TYPE C,

WK_EXIT(1) TYPE C,

WK_REPID LIKE SY-REPID,

WK_USER_SPECIFIC(1) TYPE C,

WK_CALLBACK_UCOMM TYPE SLIS_FORMNAME,

WK_PRINT TYPE SLIS_PRINT_ALV,

WK_LAYOUT TYPE SLIS_LAYOUT_ALV,

WK_HTML_TOP_OF_PAGE TYPE SLIS_FORMNAME,

  • WK_FIELDCAT_ALV LIKE LINE OF IT_FIELDCAT_ALV,

WK_EXCLUDING LIKE LINE OF IT_EXCLUDING,

WK_EVENTS LIKE LINE OF IT_EVENTS,

WK_EVENT_EXIT LIKE LINE OF IT_EVENT_EXIT,

WK_LIST_COMMENTS LIKE LINE OF IT_LIST_COMMENTS,

WK_SORT LIKE LINE OF IT_SORT.

TABLES : MSEG,

MKPF,

LFA1,

MARC,

MARD,

T001W,

MARA,

T024.

DATA : BEGIN OF IT_GRN OCCURS 0, "*** TEMP TABLE DECLARATION

EKGRP LIKE MARC-EKGRP, "BUYER CODE

MBLNR LIKE MSEG-MBLNR, "GRN NUMBER

MATNR LIKE MSEG-MATNR, "PART NUMBER

ERFMG LIKE MSEG-ERFMG, "REC QTY

DMBTR LIKE MSEG-DMBTR, "GRN VALUE

LIFNR LIKE MSEG-LIFNR, "VENDOR CODE

NAME1 LIKE LFA1-NAME1,

  • KTOKK LIKE LFA1-KTOKK,

  • MTART LIKE MARA-MTART,

BUDAT LIKE MKPF-BUDAT, "GRN DATE

XBLNR LIKE MKPF-XBLNR, "DC NO

BLDAT LIKE MKPF-BLDAT, "DC DATE

MAKTX LIKE MAKT-MAKTX, "PART DESC

LABST LIKE MARD-LABST, "STOCK

INSME LIKE MARD-INSME, "STOCK IN QUALITY INSPECTION

EKNAM LIKE T024-EKNAM, "BUYER NAME

END OF IT_GRN.

DATA : BEGIN OF IT_MSEG OCCURS 0, "*** TEMP TABLE DECLARATION

MBLNR LIKE MSEG-MBLNR, "GRN NUMBER

MATNR LIKE MSEG-MATNR, "PART NUMBER

ERFMG LIKE MSEG-ERFMG, "REC QTY

DMBTR LIKE MSEG-DMBTR, "GRN VALUE

LIFNR LIKE MSEG-LIFNR, "VENDOR CODE

BUDAT LIKE MKPF-BUDAT, "GRN DATE

XBLNR LIKE MKPF-XBLNR, "DC NO

BLDAT LIKE MKPF-BLDAT, "DC DATE

END OF IT_MSEG.

DATA : BEGIN OF IT_MSEG1 OCCURS 0,

MBLNR LIKE MSEG-MBLNR, "GRN NUMBER

MATNR LIKE MSEG-MATNR, "PART NUMBER

ERFMG LIKE MSEG-ERFMG, "REC QTY

DMBTR LIKE MSEG-DMBTR, "GRN VALUE

LIFNR LIKE MSEG-LIFNR, "VENDOR CODE

END OF IT_MSEG1.

DATA : BEGIN OF IT_MKPF1 OCCURS 0,

MBLNR LIKE MKPF-MBLNR,

BUDAT LIKE MKPF-BUDAT,

XBLNR LIKE MKPF-XBLNR,

BLDAT LIKE MKPF-BLDAT,

END OF IT_MKPF1.

DATA : BEGIN OF IT_LFA1 OCCURS 0, "*** TEMP TABLE DECLARATION

LIFNR LIKE LFA1-LIFNR, "VENDOR NUMBER

NAME1 LIKE LFA1-NAME1, "VENDOR NAME

KTOKK LIKE LFA1-KTOKK,

END OF IT_LFA1.

DATA : BEGIN OF IT_WERKS OCCURS 0, "*** TEMP TABLE DECLARATION

WERKS LIKE T001W-WERKS, "PLANT

NAME1 LIKE T001W-NAME1, "PLANT NAME

END OF IT_WERKS.

DATA : BEGIN OF IT_MAKT OCCURS 0, "*** TEMP TABLE DECLARATION

MAKTX LIKE MAKT-MAKTX, "PART DESC

MATNR LIKE MAKT-MATNR, "PART NO

END OF IT_MAKT.

DATA : BEGIN OF IT_BYR OCCURS 0, "*** TEMP TABLE DECLARATION

MATNR LIKE MARC-MATNR, "PART NO

EKGRP LIKE MARC-EKGRP, "BUYER CODE

EKNAM LIKE T024-EKNAM, "BUYER NAME

END OF IT_BYR.

DATA : BEGIN OF IT_MARC1 OCCURS 0,

MATNR LIKE MARC-MATNR,

EKGRP LIKE MARC-EKGRP,

END OF IT_MARC1.

DATA : BEGIN OF IT_MARD OCCURS 0, "*** TEMP TABLE DECLARATION

MATNR LIKE MARD-MATNR, "PART NO

LABST LIKE MARD-LABST, "UNRES STOK

INSME LIKE MARD-INSME, "STOK IN QUALITY

END OF IT_MARD.

DATA : BEGIN OF IT_BYR1 OCCURS 0, "*** TEMP TABLE DECLARATION

EKGRP LIKE T024-EKGRP, "BUYER CODE

EKNAM LIKE T024-EKNAM, "BUYER NAME

END OF IT_BYR1.

DATA : BEGIN OF IT_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART, "MATERIAL TYPE

END OF IT_MARA.

DATA : BEGIN OF IT_FINAL_ALV OCCURS 0,

EKGRP LIKE MARC-EKGRP, "BUYER CODE

MBLNR LIKE MSEG-MBLNR, "GRN NUMBER

MATNR LIKE MSEG-MATNR, "PART NUMBER

ERFMG LIKE MSEG-ERFMG, "REC QTY

DMBTR LIKE MSEG-DMBTR, "GRN VALUE

LIFNR LIKE MSEG-LIFNR, "VENDOR CODE

NAME1 LIKE LFA1-NAME1,

  • KTOKK LIKE LFA1-KTOKK,

  • MTART LIKE MARA-MTART,

BUDAT LIKE MKPF-BUDAT, "GRN DATE

XBLNR LIKE MKPF-XBLNR, "DC NO

BLDAT LIKE MKPF-BLDAT, "DC DATE

MAKTX LIKE MAKT-MAKTX, "PART DESC

LABST LIKE MARD-LABST, "STOCK

INSME LIKE MARD-INSME, "STOCK IN QUALITY INSPECTION

EKNAM LIKE T024-EKNAM, "BUYER NAME

END OF IT_FINAL_ALV.

DATA : WK_ICON(50) TYPE C,

WK_FIELD(100) TYPE C,

WK_TITLE1(70) TYPE C.

WK_ICON = ICON_LIST.

SELECTION-SCREEN BEGIN OF BLOCK GRNBLK WITH FRAME TITLE TEXT-001.

PARAMETERS P_WERKS LIKE MSEG-WERKS OBLIGATORY. " FOR PLANT SELECTION

SELECT-OPTIONS : S_DATE FOR MKPF-BUDAT OBLIGATORY. "DEFAULT SY-DATUM.

SELECT-OPTIONS : S_EKGRP FOR MARC-EKGRP.

SELECT-OPTIONS : S_LGORT FOR MARD-LGORT ,

S_KTOKK FOR LFA1-KTOKK OBLIGATORY,

S_MTART FOR MARA-MTART OBLIGATORY.

SELECTION-SCREEN END OF BLOCK GRNBLK.

IF S_DATE-HIGH EQ '00000000' OR S_DATE-HIGH EQ ''.

MOVE S_DATE-LOW TO S_DATE-HIGH.

ENDIF.

AT SELECTION-SCREEN.

START-OF-SELECTION.

  • SELECT DISTINCT

  • A~MBLNR

  • A~MATNR

  • A~ERFMG

  • A~DMBTR

  • A~LIFNR

  • B~BUDAT

  • B~XBLNR

  • B~BLDAT

  • INTO CORRESPONDING FIELDS OF TABLE IT_MSEG

  • FROM ( MSEG AS A INNER JOIN MKPF AS B

  • ON AMBLNR = BMBLNR ) WHERE WERKS = P_WERKS

  • AND XBLNR NE ''

  • AND ( ABWART = '101' OR ABWART = '102'

  • OR ABWART = '103' OR ABWART = '105' )

  • AND B~BUDAT IN S_DATE

    • " AND B~VGART = 'WE'

  • AND A~MATNR IN ( SELECT MATNR FROM MARC

  • WHERE EKGRP IN S_EKGRP AND BESKZ = 'F' AND

  • SOBSL = '' ) AND A~MATNR IN ( SELECT

  • MATNR FROM MARD WHERE LGORT IN S_LGORT )

  • AND A~MATNR IN ( SELECT MATNR FROM MARA WHERE MTART IN S_MTART ).

*

SELECT MBLNR BUDAT XBLNR BLDAT FROM MKPF INTO TABLE IT_MKPF1

WHERE BUDAT IN S_DATE.

IF SY-SUBRC EQ 0.

SELECT MBLNR MATNR ERFMG DMBTR LIFNR

FROM MSEG INTO TABLE IT_MSEG1

FOR ALL ENTRIES IN IT_MKPF1

WHERE MBLNR = IT_MKPF1-MBLNR.

ENDIF.

LOOP AT IT_MSEG.

READ TABLE IT_MKPF1 WITH KEY MBLNR = IT_MSEG-MBLNR.

IF SY-SUBRC EQ 0.

MOVE: IT_MKPF1-XBLNR TO IT_MSEG-XBLNR,

IT_MKPF1-BUDAT TO IT_MSEG-BUDAT,

IT_MKPF1-BLDAT TO IT_MSEG-BLDAT.

MODIFY IT_MSEG1.

CLEAR IT_MSEG1.

ENDIF.

ENDLOOP.

SELECT DISTINCT A~EKGRP

A~MATNR

B~EKNAM

INTO CORRESPONDING FIELDS OF TABLE IT_BYR

FROM ( MARC AS A INNER JOIN T024 AS B

ON A~EKGRP = B~EKGRP )

FOR ALL ENTRIES IN IT_MSEG

WHERE A~MATNR = IT_MSEG-MATNR AND A~EKGRP

IN S_EKGRP.

SELECT LIFNR

NAME1

KTOKK

INTO CORRESPONDING FIELDS OF TABLE IT_LFA1

FROM LFA1 FOR ALL ENTRIES IN IT_MSEG

WHERE LIFNR = IT_MSEG-LIFNR

AND KTOKK IN S_KTOKK.

SELECT MATNR

MAKTX

INTO CORRESPONDING FIELDS OF TABLE IT_MAKT

FROM MAKT FOR ALL ENTRIES IN IT_MSEG

WHERE MATNR = IT_MSEG-MATNR.

SELECT MATNR

LABST

INSME

INTO CORRESPONDING FIELDS OF TABLE IT_MARD

FROM MARD FOR ALL ENTRIES IN IT_MSEG

WHERE MATNR = IT_MSEG-MATNR AND LGORT IN S_LGORT.

SELECT WERKS

NAME1

INTO CORRESPONDING FIELDS OF TABLE IT_WERKS

FROM T001W WHERE

WERKS = P_WERKS.

END-OF-SELECTION.

LOOP AT IT_MSEG.

IT_GRN-MBLNR = IT_MSEG-MBLNR.

IT_GRN-MATNR = IT_MSEG-MATNR.

IT_GRN-ERFMG = IT_MSEG-ERFMG.

IT_GRN-DMBTR = IT_MSEG-DMBTR.

IT_GRN-LIFNR = IT_MSEG-LIFNR.

IT_GRN-BUDAT = IT_MSEG-BUDAT.

IT_GRN-XBLNR = IT_MSEG-XBLNR.

IT_GRN-BLDAT = IT_MSEG-BLDAT.

READ TABLE IT_BYR WITH KEY MATNR = IT_MSEG-MATNR.

IF SY-SUBRC = 0.

MOVE IT_BYR-EKGRP TO IT_GRN-EKGRP.

MOVE IT_BYR-EKNAM TO IT_GRN-EKNAM.

ENDIF.

READ TABLE IT_LFA1 WITH KEY LIFNR = IT_MSEG-LIFNR.

  • KTOKK = S_KTOKK.

IF SY-SUBRC = 0.

MOVE IT_LFA1-NAME1 TO IT_GRN-NAME1.

  • move it_lfa1-ktokk to it_grn-ktokk.

  • ENDIF.

READ TABLE IT_MAKT WITH KEY MATNR = IT_MSEG-MATNR.

IF SY-SUBRC = 0.

MOVE IT_MAKT-MAKTX TO IT_GRN-MAKTX.

ENDIF.

READ TABLE IT_MARD WITH KEY MATNR = IT_MSEG-MATNR.

IF SY-SUBRC = 0.

MOVE IT_MARD-LABST TO IT_GRN-LABST.

MOVE IT_MARD-INSME TO IT_GRN-INSME.

ENDIF.

APPEND IT_GRN.

CLEAR IT_GRN .

ENDIF.

ENDLOOP.

SORT IT_GRN.

DATA : X TYPE I ,

STK TYPE I,

VAL(15) TYPE C .

X = 0.

VAL = 0.

LOOP AT IT_GRN.

STK = 0 .

STK = IT_GRN-LABST + IT_GRN-INSME .

WRITE : /1 IT_GRN-MBLNR,

13 IT_GRN-NAME1,

52 IT_GRN-XBLNR,

63 IT_GRN-BLDAT,

74 IT_GRN-MATNR,

87 IT_GRN-MAKTX,

128 IT_GRN-EKGRP,

133 IT_GRN-ERFMG ,

150 IT_GRN-DMBTR,

168 STK.

  • 180 IT_GRN-KTOKK.

  • 186 IT_GRN-MTART.

AT END OF EKGRP.

SUM.

    • VAL = VAL + IT_GRN-DMBTR.

  • WRITE : 150 IT_GRN-DMBTR .

SKIP.

WRITE : 150 IT_GRN-DMBTR .

SKIP.

ENDAT.

X = X + 1.

VAL = VAL + IT_GRN-DMBTR.

ENDLOOP.

WRITE : 'Total Number of GRNs : ',

25 X .

WRITE : 128 'Total Value :',150 VAL.

  • write : 150 val.

SELECT DISTINCT EKGRP

EKNAM

INTO CORRESPONDING FIELDS OF TABLE IT_BYR1

FROM T024 WHERE EKGRP IN ( SELECT EKGRP FROM MARC

WHERE WERKS = P_WERKS ) AND EKGRP IN S_EKGRP.

*

SORT IT_BYR1.

SKIP.

SKIP.

WRITE / ' BUYER DETAILS '.

WRITE / SY-ULINE(178).

WRITE / SY-ULINE(190).

LOOP AT IT_BYR1.

WRITE: /2 IT_BYR1-EKGRP,

8 IT_BYR1-EKNAM.

ENDLOOP.

AT LINE-SELECTION.

GET CURSOR FIELD WK_FIELD.

IF WK_FIELD EQ 'ICON_LIST'.

PERFORM CREATE_ALV_LIST.

ENDIF.

TOP-OF-PAGE.

FORMAT HOTSPOT ON.

WRITE :4 ICON_LIST AS ICON,

8 'Alv Grid Option'.

FORMAT HOTSPOT OFF.

READ TABLE IT_WERKS.

WRITE : / 'PLANT : ' ,

10 IT_WERKS-WERKS,

18 IT_WERKS-NAME1,

142 'RUN DATE : ',

154 SY-DATUM,

/ 'GRN REPORT FOR THE PERIOD FROM ',

S_DATE-LOW , 'TO' , S_DATE-HIGH,

156 'Page No. : ' ,

168 SY-PAGNO,

/ SY-ULINE(178),

/1 'GRN NUM',

13 'VENDOR DESCRIPTION',

52 'DC NUM',

63 'DC DATE',

74 'PART NUM',

97 'PART DESCRIPTION',

128 'BYR',

142 'REC QTY',

156 'GRN VALUE',

168 'CLOSING BAL',

  • 180 'GROUP',

  • 186 'MTYPE',

/ SY-ULINE(178).

  • / SY-ULINE(190).

END-OF-PAGE.

WRITE / SY-ULINE(178).

  • WRITE / SY-ULINE(190).

&----


*& Form CREATE_ALV_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CREATE_ALV_LIST .

LOOP AT IT_GRN.

MOVE-CORRESPONDING IT_GRN TO IT_FINAL_ALV.

APPEND IT_FINAL_ALV.

CLEAR IT_FINAL_ALV.

ENDLOOP.

PERFORM F_FIELDCAT_BUILD.

PERFORM F_EVENT_BUILD.

PERFORM F_EXCLUDE_BUILD.

PERFORM F_PRINT_BUILD.

PERFORM F_LAYOUT_BUILD.

  • WK_CALLBACK_UCOMM = 'CALLBACK_UCOMM'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_BACKGROUND_ID = 'SIWB_WALLPAPER'

I_CALLBACK_PROGRAM = WK_REPID

I_CALLBACK_HTML_TOP_OF_PAGE = WK_HTML_TOP_OF_PAGE

I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT = WK_VARIANT

  • IS_LAYOUT = WK_LAYOUT

  • I_CALLBACK_USER_COMMAND = WK_CALLBACK_UCOMM

IT_FIELDCAT = FIELDCAT

IT_EVENTS = IT_EVENTS

IT_EVENT_EXIT = IT_EVENT_EXIT

IT_EXCLUDING = IT_EXCLUDING

IS_PRINT = WK_PRINT

TABLES

T_OUTTAB = IT_GRN.

ENDFORM. " CREATE_ALV_LIST

&----


*& Form F_FIELDCAT_BUILD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_FIELDCAT_BUILD .

WK_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WK_REPID

I_INTERNAL_TABNAME = 'IT_GRN'

I_INCLNAME = WK_REPID

CHANGING

CT_FIELDCAT = FIELDCAT.

LOOP AT FIELDCAT INTO AFIELD.

CASE AFIELD-FIELDNAME.

WHEN 'VERPR '.

AFIELD-SELTEXT_M = 'Rate'.

WHEN 'LGORT_I'.

AFIELD-SELTEXT_M = 'Location'.

WHEN 'KONTS'.

AFIELD-SELTEXT_M = 'Stock Code'.

WHEN OTHERS.

ENDCASE.

MODIFY FIELDCAT FROM AFIELD.

ENDLOOP.

ENDFORM. " F_FIELDCAT_BUILD

&----


*& Form F_EVENT_BUILD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_EVENT_BUILD .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS.

READ TABLE IT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO WK_EVENTS.

IF SY-SUBRC = 0.

MOVE FORMNAME_TOP_OF_PAGE TO WK_EVENTS-FORM.

MODIFY IT_EVENTS FROM WK_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM. " F_EVENT_BUILD

&----


*& Form F_EXCLUDE_BUILD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_EXCLUDE_BUILD .

WK_EXCLUDING = '&GRAPH'. "Graphic

APPEND WK_EXCLUDING TO IT_EXCLUDING.

ENDFORM. " F_EXCLUDE_BUILD

&----


*& Form F_PRINT_BUILD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_PRINT_BUILD .

WK_PRINT-NO_PRINT_LISTINFOS = 'X'.

ENDFORM. " F_PRINT_BUILD

&----


*& Form F_LAYOUT_BUILD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_LAYOUT_BUILD .

WK_LAYOUT-ZEBRA = 'X'.

  • wk_layout-no_vline = 'X'.

WK_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

WK_LAYOUT-DETAIL_POPUP = 'X'.

WK_LAYOUT-TOTALS_TEXT = 'X'.

ENDFORM. " F_LAYOUT_BUILD

----


  • FORM F_TOP_OF_PAGE *

----


FORM F_TOP_OF_PAGE.

  • DATA: WK_FMDATE(10),

  • WK_TODATE(10).

*

CLEAR: IT_LIST_COMMENTS[].

  • CONCATENATE WK_TITLE WK_SPACE P_LFGJA INTO WK_TITLE1.

WK_LIST_COMMENTS-TYP = 'H'. "H=Header, S=Selection, A=Action

WK_LIST_COMMENTS-KEY = ''.

WK_LIST_COMMENTS-INFO = 'GRN Listing Buyerwise' .

APPEND WK_LIST_COMMENTS TO IT_LIST_COMMENTS.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

I_LOGO = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = IT_LIST_COMMENTS.

ENDFORM. "F_TOP_OF_PAGE

Read only

Former Member
0 Likes
691

HI,

check this code for multiple alv list displays

***&----


*& Report ZFII_RFITEMAPLIST

*&

&----


*&

*&

&----


----


  • Data Extract from Tables LFA1, T001, BSIK.

----


  • Program Name :ZFII_RFITEMAPLIST

  • Object ID :EDD031

  • Functional Analyst :KRISHNA

  • Programmer :venkatesh

  • Start date :19/03/2007

  • Initial CTS :HFDK900660

  • Description :Prepayment Discount ( discount taken

  • while payment before runing APP )

*

----


  • Includes :

*

  • Function Modules : *

*

  • Logical database :

  • Transaction Code : N/A

  • External references :

----


  • Modification Log

----


  • Date | Modified by | CTS number | Comments

----


*19/03/2007 | venkatesh |HFDK900660 | Initial version

----


REPORT ZFII_RFITEMAPLIST NO STANDARD PAGE HEADING.

*Declaration of the tables and type pools which

*are required in the programme.

TYPE-POOLS: SLIS.

TABLES: LFA1,

T001,

BSIK.

*Design of the selection screen starts.

SELECTION-SCREEN BEGIN OF BLOCK B01 WITH FRAME TITLE TEXT-001.

*SELECTION-SCREEN BEGIN OF LINE.

**Asset wise.

*SELECTION-SCREEN COMMENT 1(20) TEXT-T01 FOR FIELD R_POST.

*PARAMETERS: R_POST RADIOBUTTON GROUP G1.

*

*SELECTION-SCREEN END OF LINE.

PARAMETERS:

P_BUKRS LIKE T001-BUKRS

OBLIGATORY DEFAULT 'H901'. "*COMPANY CODE.

SELECT-OPTIONS:

S_LIFNR FOR LFA1-LIFNR

OBLIGATORY NO INTERVALS NO-EXTENSION, "*VENDOR

S_BLART FOR BSIK-BLART. " *DOCUMENT TYPE

PARAMETERS:

P_DRATE(2) TYPE N OBLIGATORY DEFAULT '11', " DISCOUNT PERCENTAGE

P_DDATE LIKE SY-DATUM DEFAULT SY-DATUM , " DISCOUNT DATE

P_DUEDT LIKE SY-DATUM. " consider discount date upto

SELECTION-SCREEN END OF BLOCK B01.

*Design of the selection screen ends.

*declaring the internal table which are necessary

*through out the report.

*table for final internal table

*TYPES:BEGIN OF T_CHECK.

  • INCLUDE STRUCTURE BSIK.

*TYPES: END OF T_CHECK.

*TYPES: T_IT_CHECK TYPE STANDARD TABLE OF T_CHECK.

*DATA: GWA_CHECK TYPE T_CHECK.

*DATA: GIT_CHECK TYPE T_IT_CHECK.

*TABLE FOR INITIAL COLLECTION OF DATA FROM BSIK TABLE

TYPES:BEGIN OF T_BSIK,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

ZBD1T TYPE BSIK-ZBD1T,

ZBD2T TYPE BSIK-ZBD2T,

ZBD3T TYPE BSIK-ZBD3T,

SHKZG TYPE BSIK-SHKZG,

REBZG TYPE BSIK-REBZG,

WRBTR TYPE BSIK-WRBTR,

DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-DMBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIK.

TYPES: T_IT_BSIK TYPE STANDARD TABLE OF T_BSIK.

DATA: GWA_BSIK TYPE T_BSIK.

DATA: GIT_BSIK TYPE T_IT_BSIK.

*TABLE FOR COLLECTING THE TOTAL AMOUNT.

TYPES:BEGIN OF T_BSIKF,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

WRBTR TYPE BSIK-WRBTR,

  • DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-DMBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIKF.

TYPES: T_IT_BSIKF TYPE STANDARD TABLE OF T_BSIKF.

DATA: GWA_BSIKF TYPE T_BSIKF.

DATA: GIT_BSIKF TYPE T_IT_BSIKF.

*TABLE FOR COLLECTING THE DISCOUNT AMOUNT AND DATE

TYPES:BEGIN OF T_BSIKM,

MANDT TYPE BSIK-MANDT,

BUKRS TYPE BSIK-BUKRS,

LIFNR TYPE BSIK-LIFNR,

BELNR TYPE BSIK-BELNR,

BLART TYPE BSIK-BLART,

GJAHR TYPE BSIK-GJAHR,

ZFBDT TYPE BSIK-ZFBDT,

WRBTR TYPE BSIK-WRBTR,

DAYS TYPE P0347-SCRDD,

DISCOUNT TYPE BSIK-WRBTR,

NETDUEDT TYPE BSIK-ZFBDT,

  • CHCK(1) TYPE C,

END OF T_BSIKM.

TYPES: T_IT_BSIKM TYPE STANDARD TABLE OF T_BSIKM.

DATA: GWA_BSIKM TYPE T_BSIKM.

DATA: GIT_BSIKM TYPE T_IT_BSIKM.

*TABLE FOR POSTED DOCUMENTS

DATA: GWA_POST TYPE T_BSIKM.

DATA: GIT_POST TYPE T_IT_BSIKM.

*TABLE FOR NOT POSTED DOCUMENTS

DATA: GWA_NOTPOST TYPE T_BSIKM.

DATA: GIT_NOTPOST TYPE T_IT_BSIKM.

*table for check whethere the entered documents

  • for which discount has calculated are already

*posted or not.

TYPES: BEGIN OF T_CHECK1,

LIFNR TYPE ZFII_PDITEM-LIFNR,

BELNR TYPE ZFII_PDITEM-BELNR,

BELNRSUB TYPE ZFII_PDITEM-BELNRSUB,

GJAHR TYPE ZFII_PDITEM-GJAHR,

BUKRS TYPE ZFII_PDITEM-BUKRS,

BLART TYPE ZFII_PDITEM-BLART,

END OF T_CHECK1.

TYPES: T_IT_CHECK1 TYPE STANDARD TABLE OF T_CHECK1.

DATA: GWA_CHECK1 TYPE T_CHECK1.

DATA: GIT_CHECK1 TYPE T_IT_CHECK1.

*TYPES:BEGIN OF T_ZFII_PDITEM.

  • INCLUDE STRUCTURE ZFII_PDITEM.

*TYPES: END OF T_ZFII_PDITEM.

*

*types: t_it_ZFII_PDITEM type standard table of T_ZFII_PDITEM.

*DATA: GWA_ZFII_PDITEM TYPE T_ZFII_PDITEM.

*DATA: GIT_ZFII_PDITEM TYPE t_iT_ZFII_PDITEM.

*TABLE FOR COLLECTING THE ENTERED DATE

*AND WE WILL PASS IT TO ANOTHER TABLE

TYPES:BEGIN OF T_DATE,

DATE TYPE BSIK-ZFBDT,

END OF T_DATE.

TYPES: T_IT_DATE TYPE STANDARD TABLE OF T_DATE.

DATA: GWA_DATE TYPE T_DATE.

DATA: GIT_DATE TYPE T_IT_DATE.

*VARIABLE TO CAPTURE THE DISCOUNT AMOUNT.

*DATA: DISCOUNT LIKE BSIK-DMBTR.

*declaring the variable which will be necessary

  • through out the report.

DATA : G_BUKRS LIKE T001-BUKRS.

DATA: G_REPID LIKE SY-REPID,

Gwa_SORT TYPE SLIS_SORTINFO_ALV,

git_sort TYPE SLIS_T_SORTINFO_ALV,

gwa_sortPOST TYPE SLIS_SORTINFO_ALV, " POSTED

GiT_SORTPOST TYPE SLIS_T_SORTINFO_ALV,

GiT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, " NOT POSTED

GiT_LIST_TOP_OF_PAGE_POST TYPE SLIS_T_LISTHEADER, " POSTED

GiT_EVENTS TYPE SLIS_T_EVENT, " NOT POSTED

GiT_EVENTS1 TYPE SLIS_T_EVENT, " POSTED

GIT_LAYOUT TYPE SLIS_LAYOUT_ALV,

GiT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV , " NOT POSTED

GiT_FIELDCATPOST TYPE SLIS_T_FIELDCAT_ALV , " POSTED

GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

GiT_XS_EVENT TYPE SLIS_ALV_EVENT.

  • FIELDCAT_LN LIKE LINE OF GiT_FIELDCAT

.

  • g_linno TYPE c.

*DATA : G_VARIANT LIKE DISVARIANT.

DATA : G_VAR LIKE DISVARIANT.

DATA : G_ALV_VAR LIKE DISVARIANT.

*DATA : G_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA : G_POS TYPE I VALUE 1.

GIT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*Initialization event starts.

INITIALIZATION.

*CLEARING AND REFRESHING THE TABLES.

PERFORM INITIALIZATION.

*COLLECTING THE VARIANTS

PERFORM VARIANTS.

*Initialization event ends.

  • At selection screen event starts.

AT SELECTION-SCREEN.

*CHECK WHETHER DATE IS ENTERED OR NOT.

PERFORM VALIDATE_DATE.

*VALIDATING THE COMPANY CODE.

PERFORM COMPANY_CODE.

*VALIDATING THE VENDOR CODE

PERFORM VENDOR_VALIDATE.

*SELECTING THE DATA.

PERFORM GET_DATA.

*CALCULATING THE DISCOUNT AMOUNT.

PERFORM CALCULATION.

*CALCULATING THE TOTAL AMOUNT WITH RESPECT TO DATE

PERFORM SUB_TOTAL_DATE.

*APPENDING THE DATE ENTERED INTO AN INTERNAL TABLE

*AND THIS INTERNAL TABLE WILL BE SEND TO ANOTHER PROGRAME

GWA_DATE-DATE = P_DDATE.

APPEND GWA_DATE TO GIT_DATE.

CLEAR GWA_DATE.

*CHECKING WHETHER THE INTERNAL TABLE IS BLANK OR NOT

CHECK GIT_BSIKM IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-004.

  • At selection screen event ends.

*start-of-selection event starts.

START-OF-SELECTION.

CLEAR : P_DUEDT.

*DIVIDES THE FINAL INTERNAL TABLE INTO

*POSTED AND NOT POSTED DOCUMENTS.

CLEAR: GWA_POST, GWA_NOTPOST.

REFRESH: GIT_POST, GIT_NOTPOST.

PERFORM POSTED_NOTPOSTED.

*FILLING THE FIELD CATALOG

PERFORM FIELD_CATALOG.

PERFORM FIELD_CATALOG_POST.

*SORTING THE FIELDS.

PERFORM SORT_FIELDS.

PERFORM SORT_FIELDS_POST.

*GETTING THE EVENTS OF ALV

PERFORM EVENTTAB_BUILD1 CHANGING GiT_EVENTS.

PERFORM EVENTTAB_BUILDPOST.

*FILLING OF THE HEADER PART.

PERFORM LIST_HEADER.

PERFORM LIST_HEADER1.

SORT GIT_POST ASCENDING BY NETDUEDT.

SORT GIT_NOTPOST ASCENDING BY NETDUEDT.

PERFORM DISPLAY_LIST.

*start-of-selection event ends.

&----


*& Form company_code

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM COMPANY_CODE .

SELECT SINGLE BUKRS

FROM T001

INTO (G_BUKRS)

WHERE BUKRS EQ P_BUKRS.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-002.

ENDIF.

CLEAR G_BUKRS.

ENDFORM. " company_code

&----


*& Form initialization

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM INITIALIZATION .

CLEAR: GIT_BSIK, G_BUKRS.

REFRESH: GIT_BSIK, GIT_BSIKF, GIT_BSIKM.

CLEAR:

G_BUKRS,

G_REPID,

gwa_sort,

git_sort,

GiT_LIST_TOP_OF_PAGE ,

GiT_EVENTS ,

GIT_LAYOUT,

GiT_FIELDCAT ,

GWA_FIELDCAT,

  • FIELDCAT_LN ,

  • G_LIST_TOP_OF_PAGE ,

G_POS,

G_ALV_VAR, G_BUKRS.

REFRESH:

git_sort,

GiT_LIST_TOP_OF_PAGE ,

GiT_EVENTS ,

GiT_FIELDCAT .

  • G_LIST_TOP_OF_PAGE .

ENDFORM. " initialization

&----


*& Form vendor_validate

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VENDOR_VALIDATE .

SELECT LIFNR

FROM LFA1

INTO CORRESPONDING FIELDS OF TABLE GIT_BSIK

WHERE LIFNR IN S_LIFNR.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-003.

ENDIF.

CLEAR GWA_BSIK.

REFRESH: GIT_BSIK.

ENDFORM. " vendor_validate

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA .

CLEAR: GIT_BSIK, GWA_BSIK.

REFRESH GIT_BSIK.

SELECT

MANDT

BUKRS

LIFNR

BELNR

BLART

GJAHR

ZFBDT

ZBD1T

ZBD2T

ZBD3T

SHKZG

REBZG

DMBTR

FROM BSIK

INTO TABLE GIT_BSIK

WHERE BUKRS EQ P_BUKRS

AND LIFNR IN S_LIFNR

AND BLART IN S_BLART

AND BLART NE 'GC'

  • AND ZFBDT GT P_DDATE

AND SHKZG = 'H'

AND ZLSPR = ' '.

IF SY-SUBRC NE 0.

MESSAGE E000(ZFI) WITH TEXT-004.

ENDIF.

SORT GIT_BSIK ASCENDING BY LIFNR ZFBDT BLART.

  • loop at git_bsik into GWA_BSIK.

  • if gwa_bsik-blart = 'GC'.

  • DELETE GIT_BSIK INDEX SY-TABIX.

  • endif.

  • endloop.

ENDFORM. " get_data

&----


*& Form field_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG .

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

  • G_POS " Column Position

  • 'CHCK' " InTab Field Name

  • 'GIT_BSIKM' " InTab Name

  • '2' " Output Length

  • 'CHECK' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • 'X' " checkbox

  • 'X' " EDIT

  • 'X'. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BUKRS' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'4' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'LIFNR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Vendor code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BELNR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Document Number' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'BLART' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Document Type'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'NETDUEDT' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'10' " Output Length

'Net Due Date'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'WRBTR' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'20' " Output Length

'Amount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DAYS' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'6' " Output Length

'Days'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCAT[] " Field Catalog

G_POS " Column Position

'DISCOUNT' " InTab Field Name

'GIT_NOTPOST' " InTab Name

'20' " Output Length

'Discount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " field_catalog

&----


*& Form field_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG_POST .

  • G_POS = G_POS + 1.

  • PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

  • G_POS " Column Position

  • 'CHCK' " InTab Field Name

  • 'GIT_POST' " InTab Name

  • '2' " Output Length

  • 'CHECK' " Column Name Text

  • ' ' " Datatype

  • ' ' " Key?

  • ' ' " Row Position

  • ' ' " Hotspot

  • ' ' " Emphasize

  • ' ' " Do_sum field?

  • 'X' " checkbox

  • 'X' " EDIT

  • 'X'. " input

CLEAR G_POS.

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BUKRS' " InTab Field Name

'GIT_POST' " InTab Name

'4' " Output Length

'Company code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'LIFNR' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Vendor code' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BELNR' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Document Number' " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'BLART' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Document Type'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'NETDUEDT' " InTab Field Name

'GIT_POST' " InTab Name

'10' " Output Length

'Net Due Date'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'WRBTR' " InTab Field Name

'GIT_POST' " InTab Name

'20' " Output Length

'Amount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'DAYS' " InTab Field Name

'GIT_POST' " InTab Name

'6' " Output Length

'Days'

  • " Column Name Text

' ' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

' ' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

G_POS = G_POS + 1.

PERFORM INIT_FIELD_CATALOG USING GiT_FIELDCATPOST[] " Field Catalog

G_POS " Column Position

'DISCOUNT' " InTab Field Name

'GIT_POST' " InTab Name

'20' " Output Length

'Discount'

  • " Column Name Text

'CURR' " Datatype

' ' " Key?

' ' " Row Position

' ' " Hotspot

' ' " Emphasize

'X' " Do_sum field?

' ' " checkbox

' ' " EDIT

' '. " input

ENDFORM. " field_catalog

&----


*& Form init_field_catalog

&----


  • text

----


  • -->P_GIT_FIELDCAT text

  • -->PV_POS text

  • -->PV_FIELDNAME text

  • -->PV_TABNAME text

  • -->PV_OUTPUT text

  • -->PV_SELTEXT text

  • -->PV_DATATYPE text

  • -->PV_KEY text

  • -->PV_ROW text

  • -->PV_HOTSPOT text

  • -->PV_EMPHASIZE text

  • -->PV_SUM text

  • -->PV_CHECKBOX text

  • -->PV_INPUT text

----


FORM INIT_FIELD_CATALOG USING P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV

PV_POS LIKE GWA_FIELDCAT-COL_POS

PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME

PV_TABNAME LIKE GWA_FIELDCAT-TABNAME

PV_OUTPUT LIKE GWA_FIELDCAT-OUTPUTLEN

PV_SELTEXT LIKE GWA_FIELDCAT-SELTEXT_M

PV_DATATYPE LIKE GWA_FIELDCAT-DATATYPE

PV_KEY LIKE GWA_FIELDCAT-KEY

PV_ROW LIKE GWA_FIELDCAT-ROW_POS

PV_HOTSPOT LIKE GWA_FIELDCAT-HOTSPOT

PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE

PV_SUM LIKE GWA_FIELDCAT-DO_SUM

PV_CHECKBOX LIKE GWA_FIELDCAT-CHECKBOX

PV_EDIT LIKE GWA_FIELDCAT-EDIT

PV_INPUT LIKE GWA_FIELDCAT-INPUT.

DATA: LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

LT_FIELDCAT-OUTPUTLEN = PV_OUTPUT.

LT_FIELDCAT-COL_POS = PV_POS.

LT_FIELDCAT-FIELDNAME = PV_FIELDNAME.

LT_FIELDCAT-TABNAME = PV_TABNAME.

LT_FIELDCAT-SELTEXT_L = PV_SELTEXT.

LT_FIELDCAT-KEY = PV_KEY.

LT_FIELDCAT-ROW_POS = PV_ROW.

LT_FIELDCAT-HOTSPOT = PV_HOTSPOT.

LT_FIELDCAT-EMPHASIZE = PV_EMPHASIZE.

LT_FIELDCAT-DO_SUM = PV_SUM.

LT_FIELDCAT-CHECKBOX = PV_CHECKBOX.

LT_FIELDCAT-INPUT = PV_INPUT.

LT_FIELDCAT-EDIT = PV_EDIT.

LT_FIELDCAT-DATATYPE = PV_DATATYPE.

APPEND LT_FIELDCAT TO P_GIT_FIELDCAT.

CLEAR LT_FIELDCAT.

ENDFORM. " init_field_catalog

&----


*& Form sort_fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS .

gwa_sort-SPOS = 1. " Sort order

gwa_sort-FIELDNAME = 'LIFNR'.

gwa_sort-TABNAME = 'GIT_NOTPOST'.

gwa_sort-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND gwa_sort TO git_sort.

CLEAR gwa_sort.

  • gwa_sort-spos = 2. " Sort order

  • gwa_sort-fieldname = 'ZBELNR'.

  • gwa_sort-tabname = 'GIT_FINAL'.

  • gwa_sort-up = 'X'.

    • x_sort-subtot = 'X'. " Sub total allowed

*

  • APPEND gwa_sort TO git_sort.

  • CLEAR gwa_sort.

ENDFORM. " sort_fields

&----


*& Form sort_fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SORT_FIELDS_POST .

gwa_sortPOST-SPOS = 1. " Sort order

gwa_sortPOST-FIELDNAME = 'LIFNR'.

gwa_sortPOST-TABNAME = 'GIT_POST'.

gwa_sortPOST-UP = 'X'.

  • x_sort-subtot = 'X'. " Sub total allowed

APPEND gwa_sortPOST TO GiT_SORTPOST.

CLEAR gwa_sortPOST.

  • gwa_sort-spos = 2. " Sort order

  • gwa_sort-fieldname = 'ZBELNR'.

  • gwa_sort-tabname = 'GIT_FINAL'.

  • gwa_sort-up = 'X'.

    • x_sort-subtot = 'X'. " Sub total allowed

*

  • APPEND gwa_sort TO git_sort.

  • CLEAR gwa_sort.

ENDFORM. " sort_fields

&----


*& Form EVENTTAB_BUILD1

&----


  • text

----


  • <--P_GiT_EVENTS text

----


FORM EVENTTAB_BUILD1 CHANGING P_GiT_EVENTS.

CLEAR GiT_XS_EVENT.

GiT_XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

GiT_XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND GiT_XS_EVENT TO GiT_EVENTS.

  • CONSTANTS:

*GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

*GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

  • DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

*

  • CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = GiT_EVENTS.

*

  • READ TABLE GiT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO GiT_EVENTS.

  • ENDIF.

*

  • READ TABLE GiT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_USER_COMMAND TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO GiT_EVENTS.

  • ENDIF.

ENDFORM. " EVENTTAB_BUILD1

&----


*& Form EVENTTAB_BUILD1

&----


  • text

----


  • <--P_GiT_EVENTS text

----


FORM EVENTTAB_BUILDPOST.

*not posted DOCUMENTS

CLEAR GiT_XS_EVENT.

GiT_XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

GiT_XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND GiT_XS_EVENT TO GiT_EVENTS1.

ENDFORM. " EVENTTAB_BUILD1

************************************************

*& TOP-OF-PAGE

************************************************

*----


    • FORM TOP_OF_PAGE *

*----


    • When TOP-OF-PAGE will be fired , this event will be called and it

    • will use the contents of i_list_top_of_page for output in the header

*----


*FORM TOP_OF_PAGE.

*

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • I_LOGO = 'ENJOYSAP_LOGO'

  • IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE.

*

*ENDFORM. "top_of_page

&----


*& Form LIST_HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_HEADER .

CLEAR : GiT_LIST_TOP_OF_PAGE.

DATA: L_LINE TYPE SLIS_LISTHEADER.

DATA: L_DATE(10).

CLEAR L_DATE.

***Header

CLEAR L_LINE.

L_LINE-TYP = 'H'.

  • L_LINE-KEY: not used for this type

L_LINE-INFO = 'Vendor Line Item Display'.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

***Selection

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Documents'.

L_LINE-INFO = 'Not Posted'. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Company Code'.

L_LINE-INFO = P_BUKRS. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

CONCATENATE P_DDATE+6(2)

P_DDATE+4(2)

P_DDATE+0(4)

INTO L_DATE SEPARATED BY '.'.

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-LOW.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

*

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-high.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

L_LINE-KEY = 'Discount date'.

L_LINE-INFO = L_DATE.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

ENDFORM. " LIST_HEADER

&----


*& Form LIST_HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM LIST_HEADER1 .

CLEAR : GiT_LIST_TOP_OF_PAGE_POST.

DATA: L_LINE TYPE SLIS_LISTHEADER.

DATA: L_DATE(10).

CLEAR L_DATE.

***Header

CLEAR L_LINE.

L_LINE-TYP = 'H'.

  • L_LINE-KEY: not used for this type

L_LINE-INFO = 'Vendor Line Item Display'.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

***Selection

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Documents'.

L_LINE-INFO = 'Posted'. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

CLEAR L_LINE.

L_LINE-TYP = 'S'.

L_LINE-KEY = 'Company Code'.

L_LINE-INFO = P_BUKRS. "'H901/Hyuandai Motor India. '.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

CONCATENATE P_DDATE+6(2)

P_DDATE+4(2)

P_DDATE+0(4)

INTO L_DATE SEPARATED BY '.'.

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-LOW.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

*

  • L_LINE-KEY = 'Vendor code'.

  • L_LINE-INFO = S_LIFNR-high.

  • APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE.

L_LINE-KEY = 'Discount date'.

L_LINE-INFO = L_DATE.

APPEND L_LINE TO GiT_LIST_TOP_OF_PAGE_POST.

ENDFORM. " LIST_HEADER

----


*& Form SET_PF_STATUS

&----


  • text

----


  • -->EXTAB text

----


FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'ZSTANDARD1'. " OF PROGRAM 'SAPLKKBL'.

ENDFORM. "set_pf_status

&----


*& Form Display_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_LIST .

G_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS' "'SET_PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • IT_EXCLUDING =

.

*DOCUMENTS WHICH ARE POSTED ALREADY.

IF GIT_POST IS NOT INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = GIT_LAYOUT

IT_FIELDCAT = GiT_FIELDCATPOST " POST

I_TABNAME = 'GIT_POST'

IT_EVENTS = GiT_EVENTS[]

IT_SORT = git_sort[]

  • I_TEXT = ' '

  • IS_VARIANT = G_VAR

TABLES

T_OUTTAB = GIT_POST

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

*DOCUMENTS WHICH ARE NOT YET POSTED

IF GIT_NOTPOST IS NOT INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = GIT_LAYOUT

IT_FIELDCAT = GiT_FIELDCAT

I_TABNAME = 'GIT_NOTPOST' " NOT POSTED

IT_EVENTS = GiT_EVENTS1[]

IT_SORT = git_sort[]

  • I_TEXT = ' '

  • IS_VARIANT = G_VAR

TABLES

T_OUTTAB = GIT_NOTPOST

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 2

OTHERS = 3

.

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.

  • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

  • IS_LAYOUT = GS_LAYOUT

  • IT_FIELDCAT = GiT_FIELDCAT

  • IT_SORT = git_sort[]

  • IS_VARIANT = G_VAR

  • IT_EVENTS = GiT_EVENTS[]

  • TABLES

  • T_OUTTAB = GIT_BSIKM

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

  • .

  • IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

ENDFORM. " Display_grid

&----


*& Form USER_COMMAND

&----


  • Called from within the ALV processes. Currently, 'F-02' is used

  • to process the hotspot and display the document 'picked' by the

  • user.

&----


  • PV_UCOMM contains the sy-ucomm from ALV

  • SELFIELD is a structure that contains all the data required to

  • process a user selection. The following is an example

  • of the SELFIELD structure and sample values:

*

*

&----


  • when the user click on Asset Class this will trigger

FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

CASE PV_UCOMM.

WHEN 'F-02'.

  • BREAK WAB03.

*VALIDATE THE DOCUMENTS THAT WHETHER THEY ARE POSTED OR NOT.

PERFORM VALIDATE_DOCUMENT.

  • LOOP AT GIT_BSIKM INTO GWA_BSIKM.

READ TABLE GIT_NOTPOST INTO GWA_NOTPOST

WITH KEY BUKRS = P_BUKRS. " INDEX SELFIELD-TABINDEX.

IF SY-SUBRC EQ 0.

  • CASE SELFIELD-SEL_TAB_FIELD.

  • WHEN 'GIT_BSIKM-BUKRS'.

  • LOOP AT GIT_BSIKM INTO GWA_BSIKM.

  • MOVE-CORRESPONDING GWA_BSIKM TO GWA_BSIKT.

  • COLLECT GWA_BSIKT INTO GIT_BSIKT.

  • CLEAR: GWA_BSIKT, GWA_BSIKM.

  • ENDLOOP.

*SENDING THE DOCUMENTS WHICH ARE NOT YET POSTED TO THE

*PROGRAMM ZFII_UPLOADF_02 FOR FURTHER UPLOAD.

EXPORT GIT_NOTPOST[] TO MEMORY ID 'CP_TABLE'.

*SENDING THE DATE TO THE PROGRAMM ZFII_UPLOADF_02

*FOR FURTHER UPLOAD.

EXPORT GIT_DATE[] TO MEMORY ID 'CP_DATE'.

*CALL THE PROGRAME ZFII_UPLOADF_02 FOR FURTHER UPLOAD.

SUBMIT ZFII_UPLOADF_02 VIA SELECTION-SCREEN AND RETURN.

*& we have to filter the vendor list

*& here we can run F-02 for only one vendor

  • PERFORM F-02.

ENDIF.

WHEN 'PRIN'.

  • ENDLOOP.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form CALCULATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALCULATION .

DATA: L_DAYS LIKE T009B-BUTAG.

DATA: L_DMBTR(15) TYPE C.

DATA: L_CHECK TYPE C.

CLEAR: L_DAYS, L_CHECK, L_DMBTR.

*FINDING OUT THE NET DUE DATE.

LOOP AT GIT_BSIK INTO GWA_BSIK.

CALL FUNCTION 'NET_DUE_DATE_GET'

EXPORTING

I_ZFBDT = GWA_BSIK-ZFBDT

I_ZBD1T = GWA_BSIK-ZBD1T

I_ZBD2T = GWA_BSIK-ZBD2T

I_ZBD3T = GWA_BSIK-ZBD2T

I_SHKZG = GWA_BSIK-SHKZG

I_REBZG = GWA_BSIK-REBZG

I_KOART = 'K'

IMPORTING

E_FAEDT = GWA_BSIK-NETDUEDT.

MODIFY GIT_BSIK FROM GWA_BSIK.

CLEAR : GWA_BSIK.

ENDLOOP.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT LE P_DDATE.

DELETE GIT_BSIK INDEX SY-TABIX.

ENDIF.

CLEAR GWA_BSIK.

ENDLOOP.

*delete the records where the net due date

  • is greater than the discount date which is considered

IF P_DUEDT IS NOT INITIAL.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT > P_DUEDT.

DELETE GIT_BSIK INDEX SY-TABIX.

ENDIF.

CLEAR GWA_BSIK.

ENDLOOP.

ENDIF.

IF GIT_BSIK IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-004.

ENDIF.

*to calculate the discount amount.

LOOP AT GIT_BSIK INTO GWA_BSIK.

IF GWA_BSIK-NETDUEDT > P_DDATE.

  • IF P_DUEDT IS INITIAL.

  • P_DUEDT = GWA_BSIK-NETDUEDT.

  • ENDIF.

  • IF GWA_BSIK-NETDUEDT GE P_DUEDT.

WRITE GWA_BSIK-WRBTR TO L_DMBTR.

*calculating the difference between the dates

CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'

EXPORTING

DATE1 = GWA_BSIK-NETDUEDT

DATE2 = P_DDATE

OUTPUT_FORMAT = '02'

IMPORTING

  • YEARS =

  • MONTHS =

DAYS = GWA_BSIK-DAYS

EXCEPTIONS

INVALID_DATES_SPECIFIED = 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.

GWA_BSIK-DAYS = GWA_BSIK-DAYS - 1.

*checking for leap year or not

CALL FUNCTION 'NUMBER_OF_DAYS_PER_MONTH_GET'

EXPORTING

PAR_MONTH = '02'

PAR_YEAR = P_DDATE+0(4)

IMPORTING

PAR_DAYS = L_DAYS.

IF L_DAYS = '29'.

L_CHECK = 'X'.

ELSE.

L_CHECK = ' '.

ENDIF.

IF L_DMBTR CA '-'.

ELSE.

IF L_CHECK = 'X'.

GWA_BSIK-DISCOUNT = ( GWA_BSIK-WRBTR *

GWA_BSIK-DAYS * P_DRATE )

/ 36600.

ELSE.

GWA_BSIK-DISCOUNT = ( GWA_BSIK-WRBTR *

GWA_BSIK-DAYS * P_DRATE )

/ 36500.

ENDIF.

ENDIF.

  • ENDIF.

ENDIF.

MODIFY GIT_BSIK FROM GWA_BSIK.

CLEAR: GWA_BSIK.

ENDLOOP.

ENDFORM. " CALCULATION

&----


*& Form VARIANTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VARIANTS .

PERFORM F_LAYOUT_INIT USING GIT_LAYOUT.

  • DATA : G_VARIANT LIKE DISVARIANT.

  • DATA : G_VAR LIKE DISVARIANT.

  • DATA : G_ALV_VAR LIKE DISVARIANT.

G_VAR-REPORT = 'ZFII_RFITEMAPLIST'.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = G_VAR

EXCEPTIONS

WRONG_INPUT = 1

NOT_FOUND = 2

PROGRAM_ERROR = 3

OTHERS = 4.

IF SY-SUBRC EQ 0.

G_VAR-VARIANT = '/SAPSUBTOT'.

G_ALV_VAR-REPORT = SY-REPID.

ELSE.

G_VAR-VARIANT = '' ."'/ZNETDUEDATE'.

ENDIF.

ENDFORM. " VARIANTS

&----


*& Form F_LAYOUT_INIT

&----


  • text

----


  • -->P_GS_LAYOUT text

----


FORM F_LAYOUT_INIT USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

P_GS_LAYOUT-DETAIL_INITIAL_LINES = 'X'.

  • P_GS_LAYOUT-no_sumchoice = ' '.

P_GS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.

ENDFORM. " F_LAYOUT_INIT

&----


*& Form SUB_TOTAL_DATE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SUB_TOTAL_DATE .

*CLEARING AND REFRESHING THE INTERNAL TABLES USED

REFRESH: GIT_BSIKF, GIT_BSIKM.

CLEAR: GWA_BSIKF, GWA_BSIKM.

*SUMMING OF THE AMOUNT FIELD

LOOP AT GIT_BSIK INTO GWA_BSIK.

MOVE-CORRESPONDING GWA_BSIK TO GWA_BSIKF.

COLLECT GWA_BSIKF INTO GIT_BSIKF.

CLEAR: GWA_BSIK, GWA_BSIKF.

ENDLOOP.

*FETCHING THE NUMBER OF DAYS

LOOP AT GIT_BSIKF INTO GWA_BSIKF.

READ TABLE GIT_BSIK INTO GWA_BSIK

WITH KEY BUKRS = GWA_BSIKF-BUKRS

LIFNR = GWA_BSIKF-LIFNR

ZFBDT = GWA_BSIKF-ZFBDT

BLART = GWA_BSIKF-BLART

NETDUEDT = GWA_BSIKF-NETDUEDT.

IF SY-SUBRC EQ 0.

GWA_BSIKM-DAYS = GWA_BSIK-DAYS.

  • GWA_BSIKM-BLART = GWA_BSIK-BLART.

MOVE-CORRESPONDING GWA_BSIKF TO GWA_BSIKM.

APPEND GWA_BSIKM TO GIT_BSIKM.

CLEAR: GWA_BSIK, GWA_BSIKF, GWA_BSIKM.

ENDIF.

ENDLOOP.

SORT GIT_BSIKM ASCENDING BY NETDUEDT.

ENDFORM. " SUB_TOTAL_DATE

&----


*& Form validate_date

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_DATE .

IF P_DDATE IS INITIAL.

MESSAGE E000(ZFI) WITH TEXT-006.

ENDIF.

ENDFORM. " validate_date

&----


*& Form VALIDATE_DOCUMENT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM VALIDATE_DOCUMENT .

*VALIDATING WHETHER RECORD IS THERE OR NOT

IF GIT_NOTPOST IS NOT INITIAL.

  • IF THE DOCUMENT NUMBERS WHICH ARE THERE IN

*GIT_BSIK IS ALSO PRESENT IN ZFII_PDITEM

*THEN IT MEAN POSTING IS ALREADY DONE.

SELECT

LIFNR

BELNR

BELNRSUB

GJAHR

BUKRS

BLART

FROM ZFII_PDITEM

INTO TABLE GIT_CHECK1

FOR ALL ENTRIES IN GIT_NOTPOST

WHERE BUKRS = GIT_NOTPOST-BUKRS

AND BELNRSUB = GIT_NOTPOST-BELNR

AND LIFNR IN S_LIFNR

AND BLART = GIT_NOTPOST-BLART

AND GJAHR = GIT_NOTPOST-GJAHR.

IF SY-SUBRC EQ 0.

*IF WE FIND THE DOCUMENTS IT MEAN THEY ARE ALREADY POSTED.

MESSAGE E000(ZFI) WITH TEXT-000.

EXIT.

ENDIF.

ELSE.

MESSAGE E000(ZFI) WITH TEXT-000.

ENDIF.

ENDFORM. " VALIDATE_DOCUMENT

&----


*& Form POSTED_NOTPOSTED

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POSTED_NOTPOSTED .

*CLEARING AND REFRESHING OF THE INTERNAL TABLES.

CLEAR: GWA_POST, GWA_NOTPOST.

REFRESH: GIT_POST, GIT_NOTPOST.

IF GIT_BSIKM IS NOT INITIAL.

*COLLECTING THE RECORDS WHICH RECORDS ARE

*POSTED AND WHICH ARE NOT POSTED.

SELECT

LIFNR

BELNR

BELNRSUB

GJAHR

BUKRS

BLART

FROM ZFII_PDITEM

INTO TABLE GIT_CHECK1

FOR ALL ENTRIES IN GIT_BSIKM

WHERE BUKRS = GIT_BSIKM-BUKRS

AND BELNRSUB = GIT_BSIKM-BELNR

AND LIFNR IN S_LIFNR

AND BLART = GIT_BSIKM-BLART

AND GJAHR = GIT_BSIKM-GJAHR.

IF SY-SUBRC EQ 0.

LOOP AT GIT_BSIKM INTO GWA_BSIKM.

READ TABLE GIT_CHECK1 INTO GWA_CHECK1

WITH KEY BELNRSUB = GWA_BSIKM-BELNR.

IF SY-SUBRC EQ 0.

"RECORD FOUND MEANS IT IS POSTED ALREADY

APPEND GWA_BSIKM TO GIT_POST.

ELSE.

"RECORD NOT FOUND MEANS IT IS NOT POSTED

APPEND GWA_BSIKM TO GIT_NOTPOST.

ENDIF.

CLEAR: GWA_BSIKM, GWA_CHECK1.

ENDLOOP.

ELSE.

*IF WE FIND NO DOCUMENTS THEN THESE DOCUMENTS ARE NOT POSTED.

GIT_NOTPOST[] = GIT_BSIKM[].

ENDIF.

ENDIF.

ENDFORM. " POSTED_NOTPOSTED

----


  • FORM TOP_OF_PAGE *

----


  • When TOP-OF-PAGE will be fired , this event will be called and it

  • will use the contents of i_list_top_of_page for output in the header

----


FORM XTOP_OF_PAGE.

  • WRITE: / 'Posted Documents'.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE_POST .

ENDFORM. "top_of_page

----


  • FORM TOP_OF_PAGE *

----


  • When TOP-OF-PAGE will be fired , this event will be called and it

  • will use the contents of i_list_top_of_page for output in the header

----


FORM YTOP_OF_PAGE.

  • WRITE: / 'NOT Posted Documents'.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

  • i_logo = 'ENJOYSAP_LOGO'

IT_LIST_COMMENTARY = GiT_LIST_TOP_OF_PAGE.

ENDFORM. "top_of_page

reward points if helpful

regards,

venkatesh