‎2007 Dec 26 6:10 AM
Hi all
Am having a input screen where i have a filed calle USER NAME.If i save the input values in variant and then if i go back and then if i click one of the variants as input and then if i give F4 am getting the input correctly.If i dont give the input from the variants and if i give the input directly and then give F4 in the USERNAME screen am getting all the USERNAME fields which i dont need.Please help
Vijay
‎2007 Dec 26 6:14 AM
try using F4IF_FIELD_VALUE_REQUEST to build ur own hitlist for f4 help.
‎2007 Dec 26 6:14 AM
try using F4IF_FIELD_VALUE_REQUEST to build ur own hitlist for f4 help.
‎2007 Dec 26 6:21 AM
Hi am alreadi using it .am sending u d code below please go through it for further idea.
&----
*& Report ZJOURNALREGISTER
*&
&----
*&
*&
&----
REPORT zjournalregister_new1
LINE-SIZE 150
LINE-COUNT 58(5)
MESSAGE-ID zfi
NO STANDARD PAGE HEADING.
************************************************************************
Program name : ZJOURNALREGISTER
Developed By : Rajesh Sahal,Intelligroup
Date : 22/02/2007
Description : Journal Entry Register
*
*************************************************************************
************************************************************************
Tables Declarations
************************************************************************
TABLES : t001, "Company Codes
adrc, "Addresses (Business Address Services)
kna1, "General Data in Customer Master
lfa1, "Vendor Master (General Section)
skb1, "G/L account master (company code)
bkpf, "Accounting Document Header
bseg, "Accounting Document Segment
faglflexa. "General Ledger: Actual Line Items
************************************************************************
Types Declarations
*************************************************************************
type declaration for Accounting Document Header data
types : BEGIN OF t_bkpf ,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
blart TYPE bkpf-blart,
budat TYPE bkpf-budat,
cpudt TYPE bkpf-cpudt,
xblnr TYPE bkpf-xblnr,
bktxt TYPE bkpf-bktxt,
usnam TYPE bkpf-usnam,
END OF t_bkpf.
types : BEGIN OF t_bkpf1 ,
usnam TYPE bkpf-usnam,
belnr TYPE bkpf-belnr,
bukrs TYPE bkpf-bukrs,
gjahr TYPE bkpf-gjahr,
END OF t_bkpf1.
*TYPES: BEGIN OF ty_usnam,
usnam TYPE bkpf-usnam,
END OF ty_usnam.
*TYPES: BEGIN OF ty_gjahr,
gjahr1 TYPE bkpf-gjahr,
END OF ty_gjahr.
***ADDED BY VIJAY
*
*DATA:BEGIN of wa_ob occurs 2,
*usnam like bkpf-usnam,
*end of wa_ob.
***ADD END BY VIJAY
type declaration for Accounting Document Item
TYPES : BEGIN OF t_bseg,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
bschl TYPE bseg-bschl,
koart TYPE bseg-koart,
shkzg TYPE bseg-shkzg,
wrbtr TYPE bseg-wrbtr,
sgtxt TYPE bseg-sgtxt,
saknr TYPE bseg-saknr,
hkont TYPE bseg-hkont,
kunnr TYPE bseg-kunnr,
lifnr TYPE bseg-lifnr,
prctr TYPE bseg-prctr,
END OF t_bseg.
type declaration for Account desctiption
TYPES : BEGIN OF t_skat,
saknr TYPE skat-saknr,
txt50 TYPE skat-txt50,
END OF t_skat.
type declaration for Customer Description
TYPES : BEGIN OF t_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
END OF t_kna1.
type declaration for Vendor Description
TYPES : BEGIN OF t_lfa1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
END OF t_lfa1.
types dcelaration for General Ledger: Actual Line Items
TYPES : BEGIN OF t_faglflexa,
ryear TYPE faglflexa-ryear,
docnr TYPE faglflexa-docnr,
rbukrs TYPE faglflexa-rbukrs,
docln TYPE faglflexa-docln,
prctr TYPE faglflexa-prctr,
***ADDED BY VIJAY
usnam TYPE bkpf-usnam,
***ADD END BY VIJAY
END OF t_faglflexa.
type declaration for Final report
TYPES : BEGIN OF t_report,
belnr TYPE bkpf-belnr,
shkzg TYPE bseg-shkzg, " Phani.M
blart TYPE bkpf-blart,
prctr TYPE bseg-prctr,
buzei TYPE bseg-buzei,
budat TYPE bkpf-budat,
gjahr TYPE bkpf-gjahr,
hkont TYPE bseg-hkont,
txt50 TYPE skat-txt50,
bschl TYPE bseg-bschl,
wrbtrd TYPE bseg-wrbtr,
wrbtrc TYPE bseg-wrbtr,
sgtxt TYPE bseg-sgtxt,
bktxt TYPE bkpf-bktxt,
xblnr TYPE bkpf-xblnr,
END OF t_report.
************************************************************************
Internal Tables Declarations
************************************************************************
Internal table to store Accounting Document Header data
DATA : it_bkpf TYPE STANDARD TABLE OF t_bkpf WITH HEADER LINE,
Internal table to store Accounting Document Item
it_bseg TYPE STANDARD TABLE OF t_bseg WITH HEADER LINE,
Internal table to store Account Descriptions
it_skat TYPE STANDARD TABLE OF t_skat WITH HEADER LINE,
Internal table to store Customer Descriptions
it_kna1 TYPE STANDARD TABLE OF t_kna1 WITH HEADER LINE,
Internal table to store Vewndor Descriptions
it_lfa1 TYPE STANDARD TABLE OF t_lfa1 WITH HEADER LINE,
Internal table dcelaration for General Ledger: Actual Line Items
it_faglflexa TYPE STANDARD TABLE OF t_faglflexa WITH HEADER LINE,
Internal table to store final report
it_report TYPE STANDARD TABLE OF t_report WITH HEADER LINE.
***ADDED BY VIJAY
*DATA:it_usnam TYPE ty_usnam OCCURS 0 WITH HEADER LINE .
*DATA:it_gjahr TYPE ty_gjahr OCCURS 0 WITH HEADER LINE .
DATA:it_bkpf1 TYPE t_bkpf1 OCCURS 0 WITH HEADER LINE.
DATA : t_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.
***ADD END BY VIJAY
************************************************************************
Work Areas
************************************************************************
DATA wa_report TYPE t_report.
************************************************************************
Global Variables
************************************************************************
DATA : gv_wrbtrd TYPE p LENGTH 16 DECIMALS 2,
gv_wrbtrc TYPE p LENGTH 16 DECIMALS 2.
************************************************************************
Flags
************************************************************************
DATA : fg_endrep TYPE c,
fg_accttype TYPE c.
************************************************************************
Selection Screen
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : P_BUKRS TYPE BKPF-BUKRS OBLIGATORY. "Company Code
SELECT-OPTIONS : s_belnr FOR bkpf-belnr. "Document number
PARAMETERS : P_GJAHR TYPE BKPF-GJAHR OBLIGATORY. "Fiscal Year
***ADDED BY VIJAY
PARAMETERS : P_USNAM TYPE BKPF-USNAM .
***ADD END BY VIJAY
SELECT-OPTIONS: s_blart FOR bkpf-blart, "Document Type
s_budat FOR bkpf-budat, "Posting Date
s_cpudt FOR bkpf-cpudt, "Entry Date
s_prctr FOR bseg-prctr, "Profit center
s_koart FOR bseg-koart NO-EXTENSION NO INTERVALS. "Account Type
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
At Selection Screen on Comapny Code
************************************************************************
AT SELECTION-SCREEN ON p_bukrs.
Validate Company Code
*"" PERFORM validate_comp_code.
***ADDED BY VIJAY
PERFORM read_selection_screen.
***ADD END BY VIJAY
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_GJAHR.
PERFORM read_selection_screen.
CLEAR wa_ob.
CLEAR IT_BKPF.
*DISTINCt GJAHR
SELECT * FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs = p_bukrs.
IF NOT it_bkpf[] IS INITIAL.
SORT it_bkpf BY gjahr.
DELETE ADJACENT DUPLICATES FROM it_bkpf COMPARING GJAHR.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'GJAHR'
dynpprog = sy-repid
dynpnr = '1000'
dynprofield = 'P_GJAHR'
value_org = 'S'
TABLES
value_tab = it_bkpf
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE it_bkpf INDEX 0.
MOVE it_bkpf-gjahr TO P_gjahr.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_USNAM.
PERFORM read_selection_screen.
clear it_usnam.
clear it_bkpf.
*CLEAR wa_ob.
SELECT DISTINCt USNAM FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs = p_bukrs AND gjahr = p_gjahr.
AND belnr IN s_belnr.**
*if s_belnr-low is not initial and s_belnr-high is initial.
SELECT * FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE it_bkpf1
WHERE bukrs = p_bukrs AND gjahr = p_gjahr
and belnr IN s_belnr.
AND belnr IN s_belnr.
*AND belnr le s_belnr-high.
*endif.
IF NOT it_bkpf1[] IS INITIAL.
SORT it_bkpf1 BY BELNR.
DELETE ADJACENT DUPLICATES FROM it_bkpf1 COMPARING USNAM.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'USNAM'
dynpprog = SY-REPID
dynpnr = '1000'
dynprofield = 'P_USNAM'
value_org = 'S'
TABLES
value_tab = it_bkpf1
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE it_bkpf INDEX 1.
MOVE it_bkpf1-usnam TO P_USNAM.
ENDIF.
*ENDIF.
AT SELECTION-SCREEN ON s_koart.
CLEAR WA_OB.
IF s_koart-low EQ 'S'.
clear bseg.
select single * from bseg WHERE
bukrs eq p_bukrs and
belnr in s_belnr and
gjahr eq p_gjahr AND
koart ne 'S' AND
umskz ne 'F' and
prctr in s_prctr.
if sy-subrc ne 0.
fg_accttype = 'S'.
endif.
ELSE.
CLEAR bseg.
SELECT SINGLE * FROM bseg WHERE
bukrs EQ p_bukrs AND
belnr IN s_belnr AND
gjahr EQ p_gjahr AND
koart IN s_koart AND
umskz NE 'F' AND
prctr IN s_prctr.
IF sy-subrc EQ 0.
fg_accttype = 'O'.
ENDIF.
ENDIF.
**at selection-screen on s_saknr.
Validation to check Account Type for the GL Account provided
if not s_saknr is initial.
clear bseg.
select single * from bseg where hkont in s_saknr AND
KOART eq 'S'.
if sy-subrc ne 0.
message e001 with 'Only GL Account type S is allowed'(014).
else.
clear skb1.
select single * from skb1 where bukrs = p_bukrs AND
saknr = s_saknr-low AND
( mitkz ne 'A' and
mitkz ne 'D' and
mitkz ne 'K').
if sy-subrc ne 0.
message e001 with 'Only GL Account type S is allowed'(014).
endif.
endif.
endif.
************************************************************************
At Selection Screen
************************************************************************
AT SELECTION-SCREEN.
Validation to check if Document type is blank,Posting Date should be entered
IF s_blart[] IS INITIAL AND s_budat[] IS INITIAL.
MESSAGE e001 WITH text-003.
ENDIF.
************************************************************************
Top of Page
************************************************************************
TOP-OF-PAGE.
Display header
PERFORM display_header.
************************************************************************
Start of Selection
************************************************************************
START-OF-SELECTION.
Get Accounting Document Header data
PERFORM get_bkpf_data.
Get Accounting Docuemnt Item Data
PERFORM get_bseg_data.
Get all account descriptions
PERFORM get_accnt_desc.
Get all profit Centers
PERFORM get_all_profit_centers.
Get all Vendor names
PERFORM get_all_vendornames.
Get all customer names
PERFORM get_all_customernames.
Process Data
PERFORM process_data.
************************************************************************
End of Selection
************************************************************************
END-OF-SELECTION.
Display report
PERFORM display_report.
************************************************************************
End of page
************************************************************************
END-OF-PAGE.
Display Footer
PERFORM display_footer.
************************************************************************
S U B R O U T I N E S
************************************************************************
&----
*& Form GET_BKPF_DATA
&----
Get Accounting Document Header data
----
FORM get_bkpf_data .
CLEAR it_bkpf.
REFRESH it_bkpf.
SELECT belnr
gjahr
blart
budat
cpudt
xblnr
bktxt
FROM bkpf INTO TABLE it_bkpf
WHERE bukrs EQ p_bukrs AND
belnr IN s_belnr AND
gjahr EQ p_gjahr AND
blart IN s_blart AND
budat IN s_budat AND
usnam EQ p_usnam AND
cpudt IN s_cpudt.
IF sy-subrc EQ 0.
SORT it_bkpf BY belnr.
ENDIF.
ENDFORM. " GET_BKPF_DATA
&----
*& Form GET_BSEG_DATA
&----
Get Accounting Document Item Data
----
FORM get_bseg_data .
CLEAR it_bseg.
REFRESH it_bseg.
IF NOT it_bkpf[] IS INITIAL.
IF fg_accttype EQ 'S'. "Account Type S
SELECT belnr
gjahr
buzei
bschl
koart
shkzg
wrbtr
sgtxt
saknr
hkont
kunnr
lifnr
prctr
FROM bseg INTO TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE bukrs EQ p_bukrs AND
belnr EQ it_bkpf-belnr AND
gjahr EQ p_gjahr AND
( koart IN s_koart AND
koart NE 'K' AND
koart NE 'D' AND
koart NE 'A' ) AND
umskz NE 'F' AND
prctr IN s_prctr.
IF sy-subrc EQ 0.
SORT it_bseg BY belnr buzei.
ENDIF.
ELSEIF fg_accttype EQ 'O'. " Account Type K,D or A
SELECT belnr
gjahr
buzei
bschl
koart
shkzg
wrbtr
sgtxt
saknr
hkont
kunnr
lifnr
prctr
FROM bseg INTO TABLE it_bseg
FOR ALL ENTRIES IN it_bkpf
WHERE bukrs EQ p_bukrs AND
belnr EQ it_bkpf-belnr AND
gjahr EQ p_gjahr AND
umskz NE 'F' AND
usnam EQ p_usnam AND
prctr IN s_prctr.
ENDIF.
IF sy-subrc EQ 0.
SORT it_bseg BY belnr buzei.
ENDIF.
ENDIF.
ENDFORM. " GET_BSEG_DATA
&----
*& Form Validate_COMP_CODE
&----
Validate Company Code
----
FORM validate_comp_code .
SELECT SINGLE bukrs INTO t001-bukrs
FROM t001
WHERE bukrs EQ p_bukrs.
IF sy-subrc NE 0.
MESSAGE e001 WITH text-002.
ENDIF.
ENDFORM. " Validate_COMP_CODE
&----
*& Form GET_ACCNT_DESC
&----
Get account Descriptions
----
FORM get_accnt_desc .
IF NOT it_bseg[] IS INITIAL.
SELECT saknr
txt50
FROM skat INTO TABLE it_skat
WHERE spras EQ sy-langu
*-- Begin of change Phani.M
*-- Consider Account description where Chart of Accounts is '9999'
and ktopl = '9999'.
*-- End of change Phani.M
IF sy-subrc EQ 0.
SORT it_skat BY saknr.
DELETE ADJACENT DUPLICATES FROM it_skat COMPARING saknr.
ENDIF.
ENDIF.
ENDFORM. " GET_ACCNT_DESC
&----
*& Form PROCESS_DATA
&----
Process Data
----
FORM process_data .
LOOP AT it_bseg.
Populate header details
READ TABLE it_bkpf WITH KEY belnr = it_bseg-belnr.
IF sy-subrc EQ 0.
it_report-belnr = it_bkpf-belnr.
it_report-blart = it_bkpf-blart.
it_report-budat = it_bkpf-budat.
it_report-gjahr = it_bkpf-gjahr.
it_report-bktxt = it_bkpf-bktxt.
it_report-xblnr = it_bkpf-xblnr.
ENDIF.
*-- Begin of change Phani.M
it_report-shkzg = it_bseg-shkzg.
*-- End of change Phani.M
Populate Item level data
it_report-buzei = it_bseg-buzei.
it_report-sgtxt = it_bseg-sgtxt.
it_report-bschl = it_bseg-bschl.
IF it_bseg-prctr IS INITIAL.
READ TABLE it_faglflexa WITH KEY ryear = p_gjahr
docnr = it_bkpf-belnr
rbukrs = p_bukrs
docln+3(3) = it_bseg-buzei.
IF sy-subrc EQ 0.
it_report-prctr = it_faglflexa-prctr.
ENDIF.
ELSE.
it_report-prctr = it_bseg-prctr.
ENDIF.
Account replacement
IF it_bseg-koart = 'D'.
it_report-hkont = it_bseg-kunnr.
READ TABLE it_kna1 WITH KEY kunnr = it_bseg-kunnr.
IF sy-subrc EQ 0.
it_report-txt50 = it_kna1-name1.
ENDIF.
ELSEIF it_bseg-koart = 'K'.
it_report-hkont = it_bseg-lifnr.
Populate Account Description
READ TABLE it_lfa1 WITH KEY lifnr = it_report-hkont.
IF sy-subrc EQ 0.
it_report-txt50 = it_lfa1-name1.
ENDIF.
ELSEIF it_bseg-koart = 'S'.
it_report-hkont = it_bseg-hkont.
Populate Account Description
READ TABLE it_skat WITH KEY saknr = it_report-hkont.
IF sy-subrc EQ 0.
it_report-txt50 = it_skat-txt50.
ENDIF.
ENDIF.
Amount Debited or Credited
IF it_bseg-shkzg EQ 'S'. "Debit
it_report-wrbtrd = it_bseg-wrbtr.
ELSEIF it_bseg-shkzg EQ 'H'. "Credit
it_report-wrbtrc = it_bseg-wrbtr.
ENDIF.
APPEND it_report.
CLEAR it_report.
ENDLOOP.
ENDFORM. " PROCESS_DATA
&----
*& Form DISPLAY_REPORT
&----
Display Report
----
FORM display_report .
DATA : l_headerinfo(50) TYPE c,
l_wrbtrd TYPE bseg-wrbtr,
l_wrbtrc TYPE bseg-wrbtr,
l_skip TYPE sy-linct,
l_lines TYPE i,
l_count TYPE i,
lt_report TYPE STANDARD TABLE OF t_report WITH HEADER LINE.
CLEAR : gv_wrbtrc,gv_wrbtrd.
IF NOT it_report[] IS INITIAL.
SORT it_report BY belnr shkzg.
*-- Begin of change by Phani.M 19-03-2007
*-- If S_KOART-low = 'S' then exclude all the records that
*-- dont have Account type as 'S' and all records that dont have
*-- corresponding Debit or Credit line item
IF s_koart-low = 'S'.
lt_report[] = it_report[].
LOOP AT it_report.
CLEAR l_count.
LOOP AT lt_report WHERE belnr = it_report-belnr.
IF ( it_report-shkzg = 'H' AND lt_report-shkzg = 'S' ) OR
( it_report-shkzg = 'S' AND lt_report-shkzg = 'H' ).
l_count = l_count + 1.
ENDIF.
ENDLOOP.
IF l_count LT 1.
CLEAR l_count.
DELETE it_report WHERE belnr = it_report-belnr.
ENDIF.
ENDLOOP.
ENDIF.
*-- End of change by Phani.M 19-03-2007
DESCRIBE TABLE it_report LINES l_lines.
LOOP AT it_report INTO wa_report.
at new belnr.
perform col_headings.
endat.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
CLEAR l_headerinfo.
WRITE:/ wa_report-blart,
5 wa_report-belnr,
wa_report-buzei,
16 wa_report-budat,
27 wa_report-gjahr,
32(25) wa_report-sgtxt+0(25),
58 wa_report-hkont,
69(25) wa_report-txt50+0(25),
97 wa_report-bschl,
103 wa_report-prctr.
IF NOT wa_report-wrbtrd IS INITIAL.
WRITE: 115 wa_report-wrbtrd.
ENDIF.
IF NOT wa_report-wrbtrc IS INITIAL.
WRITE: 132 wa_report-wrbtrc.
ENDIF.
WRITE: 150 space.
WRITE:/32(25) wa_report-sgtxt+25(25),
69(25) wa_report-txt50+25(25),
150 space.
CONCATENATE wa_report-bktxt wa_report-xblnr INTO l_headerinfo
SEPARATED BY space.
l_wrbtrc = l_wrbtrc + wa_report-wrbtrc.
l_wrbtrd = l_wrbtrd + wa_report-wrbtrd.
gv_wrbtrc = gv_wrbtrc + wa_report-wrbtrc.
gv_wrbtrd = gv_wrbtrd + wa_report-wrbtrd.
AT END OF belnr.
WRITE: /110(44) '_________________________________________'.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/91 'Total :'(015),
115 l_wrbtrc,
132 l_wrbtrd,
150 space.
CLEAR : l_wrbtrc,l_wrbtrd.
FORMAT COLOR COL_NORMAL.
WRITE: /110(44) '_________________________________________'.
IF l_headerinfo NE space.
WRITE:/32 l_headerinfo,
150 space.
SKIP 2.
ENDIF.
IF sy-tabix = l_lines.
fg_endrep ='X'.
SKIP 2.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: /110(44) '_________________________________________'.
WRITE:/85 'Grand Total :'(016),
97 gv_wrbtrc,
130 gv_wrbtrd.
WRITE: /110(44) '_________________________________________'.
ENDIF.
ENDAT.
AT LAST.
IF sy-linno NE sy-linct.
l_skip = sy-linct - 5 - sy-linno.
SKIP l_skip.
ENDIF.
ENDAT.
ENDLOOP.
ELSE.
SKIP 3.
WRITE: AT (sy-linsz) 'No Data found for given selection criteria'(017) CENTERED.
ENDIF.
ENDFORM. " DISPLAY_REPORT
&----
*& Form DISPLAY_HEADER
&----
Display Header
----
FORM display_header .
DATA : l_citypin(30) TYPE c.
SKIP.
CLEAR : t001,adrc.
Display Company Address and Report title
SELECT SINGLE * FROM t001 WHERE bukrs EQ p_bukrs.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM adrc WHERE addrnumber EQ t001-adrnr.
IF sy-subrc EQ 0.
WRITE AT (sy-linsz) adrc-name1 CENTERED.
WRITE AT (sy-linsz) adrc-street CENTERED.
CONCATENATE adrc-city1 '-' adrc-post_code1 INTO l_citypin
SEPARATED BY space.
WRITE AT (sy-linsz) l_citypin CENTERED.
ENDIF.
SKIP.
WRITE AT (sy-linsz) 'Journal Entry Register'(018) CENTERED.
SKIP.
WRITE:/ 'Company Code'(019), p_bukrs.
ENDIF.
IF NOT s_blart[] IS INITIAL.
WRITE:/ 'Document register for Document type'(020),
s_blart-low, 'to'(023), s_blart-high.
ELSE.
WRITE:/ 'Document register for Document type *'(021).
ENDIF.
WRITE:/ 'Posting Dates'(022), s_budat-low.
IF NOT s_budat-high IS INITIAL.
WRITE: text-023, s_budat-high.
ENDIF.
WRITE: 125 'Page Number :'(024),
sy-pagno.
IF NOT it_report[] IS INITIAL.
PERFORM col_headings.
ENDIF.
ENDFORM. " DISPLAY_HEADER
&----
*& Form DISPLAY_FOOTER
&----
Display Page Footer
----
FORM display_footer .
ULINE.
WRITE:/ 'Username :'(025),sy-uname,
'Date :'(026), sy-datum,
50 'Time :'(027), sy-uzeit.
SKIP.
IF fg_endrep EQ 'X'.
WRITE AT (sy-linsz) 'End of Report'(028) CENTERED.
ENDIF.
ENDFORM. " DISPLAY_FOOTER
&----
*& Form GET_ALL_PROFIT_CENTERS
&----
Get all profit centers
----
FORM get_all_profit_centers .
CLEAR it_faglflexa.
REFRESH it_faglflexa.
IF NOT it_bkpf[] IS INITIAL.
SELECT ryear
docnr
rbukrs
docln
prctr
FROM faglflexa
INTO TABLE it_faglflexa
FOR ALL ENTRIES IN it_bkpf
WHERE ryear = p_gjahr AND
rbukrs = p_bukrs AND
docnr EQ it_bkpf-belnr.
ENDIF.
ENDFORM. " GET_ALL_PROFIT_CENTERS
&----
*& Form col_headings
&----
text
----
--> p1 text
<-- p2 text
----
FORM col_headings .
ULINE.
FORMAT COLOR COL_HEADING.
WRITE:/ 'Doc'(029),
5 'Document'(030),
17 'Posting'(031),
27 'Year'(006),
32 'Item Text'(032),
58 'Account No'(007),
69 'Account Description'(008),
95 'Posting'(009),
103 'Profit Ctr'(010),
115 'Amount Debited'(011),
132 'Amount Credited'(012),
150 space.
WRITE:/ 'Typ'(033),
5 'Number'(034),
18 'Date'(035),
96 'Key'(036),
150 space.
ULINE.
ENDFORM. " col_headings
&----
*& Form GET_ALL_CUSTOMERNAMES
&----
text
----
FORM get_all_customernames .
CLEAR it_kna1.
REFRESH it_kna1.
IF NOT it_bseg[] IS INITIAL.
SELECT kunnr
name1
INTO TABLE it_kna1
FROM kna1
FOR ALL ENTRIES IN it_bseg
WHERE kunnr EQ it_bseg-kunnr.
ENDIF.
ENDFORM. " GET_ALL_CUSTOMERNAMES
&----
*& Form GET_ALL_VENDORNAMES
&----
text
----
FORM get_all_vendornames .
CLEAR it_lfa1.
REFRESH it_lfa1.
IF NOT it_bseg[] IS INITIAL.
SELECT lifnr
name1
INTO TABLE it_lfa1
FROM lfa1
FOR ALL ENTRIES IN it_bseg
WHERE lifnr EQ it_bseg-lifnr.
ENDIF.
ENDFORM. " GET_ALL_VENDORNAMES
FORM read_selection_screen.
DATA: lv_dyname LIKE d020s-prog VALUE 'ZJOURNALREGISTER_NEW1',
lv_dynumb LIKE d020s-dnum VALUE '1000'.
DATA: BEGIN OF lt_dynpfields OCCURS 3.
INCLUDE STRUCTURE dynpread.
DATA: END OF lt_dynpfields.
MOVE 'P_BUKRS' TO lt_dynpfields-fieldname.
APPEND lt_dynpfields.
MOVE 'P_GJAHR' TO lt_dynpfields-fieldname.
APPEND lt_dynpfields.
MOVE 'S_BELNR-LOW' TO lt_dynpfields-fieldname.
APPEND lt_dynpfields.
MOVE 'S_BELNR-HIGH' TO lt_dynpfields-fieldname.
APPEND lt_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = lv_dyname
dynumb = lv_dynumb
translate_to_upper = 'X'
TABLES
dynpfields = lt_dynpfields
EXCEPTIONS
invalid_abapworkarea = 01
invalid_dynprofield = 02
invalid_dynproname = 03
invalid_dynpronummer = 04
invalid_request = 05
no_fielddescription = 06
undefind_error = 07.
CLEAR: lt_dynpfields.
LOOP AT lt_dynpfields.
CASE lt_dynpfields-fieldname.
WHEN 'P_BUKRS'.
p_bukrs = lt_dynpfields-fieldvalue.
WHEN 'P_GJAHR'.
p_gjahr = lt_dynpfields-fieldvalue.
WHEN 'S_BELNR-LOW'.
p_usnam = lt_dynpfields-fieldvalue.
WHEN 'S_BELNR-HIGH'.
p_usnam = lt_dynpfields-fieldvalue.
ENDCASE.
ENDLOOP.
ENDFORM. " read_selection_screen