Report painter document
CAN ANY ONE SEND ME THE MATERIAL OR ANY DOCUMENTATION ON REPORT PAINTER. My email id: [email protected]
regards
VINU
Edited by: VINU C T on Apr 25, 2008 4:43 AM
Edited by: VINU C T on Apr 25, 2008 4:44 AM
Dear,
Please refer below link:
http://sapdocs.info/wp-content/uploads/2008/11/report-painter.pdf
Br,Vivek
Similar Messages
-
Report Writer and Report painter documents
Hi
If anyone have any documents regarding the report painter and writer, could you please send it to [email protected]?
Documents with step by step creation of custom report from scratch...? or anything related to these...except the help.sap.com site links..
Anyhelp is greatly appreciated...
thank you
thilothamaHi all,
I am having this report s_alr_87013549 - here I can select by Projects and get the cost elements. I want to use this report as a base for my custom report, which should give me the same result as the above report with Project, WBS, Network activities for each line level..My questions are,
1. Do I have to define my own library? with columns I need or use the library that the S_ALR report is in??
2. I am having trouble in understanding characterics, key figure cocncepts - also info structures - to define a report with rows and columns like this - what shld i do>??
Project name|WBSElement|Network Activity|NetworkActivityElement|CostElemt|PartnerObject|actualCOSt|PlanCost
These columns should be there in my report...
Finally - can i have more than 4 columns in my report??
Please provide Expert advice....I will be really thankful... -
Report painter- Amount in Document currecy instead of LC
Hi,
Am new to report painter. i created report painter in FDI4. this report is to display the due amount.
when i click on table cell, which is amount field . Am chosen cell type as 'Select with Key figure' option .
After then i try to select key figure for that cell (Popup:Element definition).
In F4 selection there is only one Key figure which is Amount in LC.
I need to display the field value as Amount in Document currency.
How to bring Amount in Docment curreny in that F4. Is it possible.
I didnt get any thread related to my requirement in SDN.
pl help.Solved by myself..
Two steps to be taken to bring Amount in Doc. currency as a key figure(F4 help).
1. Added new field 'WRSHB' , data element for this field WRSHB_D (Used Append Structure) in RFRRD20 structure. FDI4 used this structure only.
2. create new entries in TKAF table under application class Account receivable FBRD. field value WRSHB ,data element value WRSHB_D, and others field value are as same as DMSHB record.
After these steps, now u check in FDI4 tcode. U can get Amt in doc. currency as key figure. -
/TD is appearing in the HTM document when downloaded from Report painter
Hi,
We are facing the below issue when we are downloading the report painter report in HTM format.
When I am downloading a report in HTM format (Web page or Excel) I see some special characters u201C/TD>u201D in the HTM download document. I am able to download this report in other clients and landscapes without any special characters.
% Standard Cost of Sales 1.547 56.669 /TD>
% Gross Margin 94.982 27.601
% Selling, Admin. & General 19.723 9.290 /TD>
Thanks and Regards,
DeepaCheck the following notes helps you
=> Note 1460343 - RW: Unicode and export of report to file
=> Note 1522758 - RW: Unicode and export to application server
thanks
G. Lakshmipathi -
Can anybody help me in Report Painter? I need a link.
Regards,
SubhasishPlease go through the enclosed document. This will give you step-by-step approach for Report painter:
http://www.virtuosollc.com/PDF/Get_Reporter.pdf
Check url
http://help.sap.com/saphelp_47x200/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm
Check Report Painter Step-by-Step example under Tools->Report Painter / Report Writer->Report Painter->Creating a Report Painter Report.
Just go through These Links to learn about report Painter.
http://help.sap.com/saphelp_erp2005/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/5b/d22cee43c611d182b30000e829fbfe/frameset.htm
I have a standard report and it uses a structure to pull the data for the report. I need to create a custom report which uses the same structure, selection screen but a different layout. Could any of u plz advice, if its doable in report painter or just plain abap program?? Also I am interested to know how the report painter stores the actual report?? as ABAP program?? Please help..urgent..
check the SAP help ..
http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/content.htm
I had made couple of SD reports in report painter 4 year ago .. as far as process is concern you have create library , but it deals with information structure which start with s0* , after defining information structure in library it take to select the fields and display them on your out put . information structure have the statistical data most of the time . As i worked on information structure , so31,32,33 .....
I t creates ABAP program like ABAP query creates in background . if you execute Customer Over due analysis or in Co02 cost analysis report or MC* ( MM stock reports ) those are in report painter .
Hope this'll give you some guide line ...
As far as I know about report painter, It create a report in background..Like when you make ABAP query (SQ01, 02, 03 ) .. It will create a report. You cant modify the report . You have to get OSS id in order to do that. if you're ready do it then you can pass it to Memory and can achieve your goal ...
I think it will give you some hint. I wish I could have authorization to use report painter on my this project so I can help you out practically.
Please see these steps , it`ll help you ...
http://www.thespot4sap.com/Articles/Code_CostCentreReport.asp
The variation objects are coming from the sets.
For example, when you read the report 'Cost Centers: Actual/Plan/Variance'(T-code : S_ALR_87013611), you can find the characteristic 'Cost Center' is set as a 'set variable'. So the cost center in the report left side are coming from the cost center group that you input.
Does any know if we could use Report Painter across two controlling areas? Any documentation available will be great. Yes. When setting up a report in CCA you can have multiple controlling areas. In the General data selection you will have the option for the CA as a selection.
You can also use standard references objects to construct your own reports: libraries, standard layouts, default columns, and row and column models, all in the standard R/3 System, are available for custom reports.
Report Painter report definition requires several Preparatory Steps, depending on the complexity of the report to be generated.
1) Create a library and pick your reporting tables.
2) Create your report
3) define your set up within the report
a)General data selections
b)Colimns
c) rows
d) formulas
Standard layouts are maintained in the IMG "Financial Accounting" under "Special Ledger -> Information System -> Maintain standard layout.
Create libraries, which means assigning the
characteristics
key figures
Predefined columns
For each of these categories you need to select the objects to be used in reports of the specific library. You define the sequence of the objects in the selection lists of the Report Painter in field "Position". Frequently used objects should be at the top of the list.
go to
http://help.sap.com/saphelp_erp2005/helpdata/en/5b/d22ba743c611d182b30000e829fbfe/frameset.htm
I have created a report through report writer/Painter(GR51). My query here is to link this report to a transaction code. Could you please suggest me how can I acheive this?
Go to SE93 and select the Transaction with Parameters ( Parameter Transaction)
Then in the Transaction field give: START_REPORT
Skip initial screen
Screen 0
In the default value for the parameters give
D_SREPOVARI-REPORTTYPE RW
D_SREPOVARI-REPORT ( Give your Report Group )
If you have any doubt pick any report painter tcode and check in SE93
Follow below steps
1) Execute report through report painter
2) From system status get the program name
3 ) go to se93 and select report transaction and assign
program name .
Is it possible to make bigger the text a I have on a text field?, Im using the screen painter and I need to put the title bigger (as a requirment).
You can define your text as any length.If you are talking about the font,i am afraid you cannot do that.
No, you can not change the size(font) of the text on the dynpro, you can hightlight it, which changes the color to "blue" to make it stand out. You can change this on the attributes tab when double-clicking on the element in screen painter.
what is the sentence that open a screen painter file
Don´t really understand what you mean with "open a screen painter file".
If you are speaking about showing a form generated with the screen painter,
Dim oXMLDoc As New MSXML2.DOMDocument
oXMLDoc.load("Form.xml")
SBO_Application.LoadBatchActions(oXMLDoc.xml)
Dim oForm As SAPbouiCOM.Form
oForm = SBO_Application.Forms.Item("YourFormID")
oForm.Visible = True
regards
vinod -
In report painter GRR3 1VK Actual Value picked up from previous year
Dear Experts,
In report painter GRR3 > 1VK
1. Column of Actual Quantity to take in Basic Key Figure from Statistical Quantity
2. The value is 4 (Actual) and Version is 0
I found that the Actual value appeared are actually taken from the previous fiscal year. I have checked the line items and their document posting date it shown as last fiscal year.
In this case, where should I amend to have the report pick up only actual value of this fiscal year? or Is there any value to maintain for GRR3 to pickup the current fiscal year actual posting?
Thank you very much and Best Regards,
Annehi..
Goto GRR3 > click on Lib 1VK it will show you all the report in 1VK library > select your report & double click on it
It will display the report format. Then go to Edit at the top. you will find General data selection.click on it you will find available characteristics. Then goto GRR2 for making any change/selection for Fiscal year char
If your report is a standard one you can not change. then copy the report from GRR1 and make the changes.
You can also see the char in GR23 by selecting 1VK lib.
kkumar
Edited by: kkbdsp on Mar 11, 2011 9:21 AM -
Data of the Report Painter report
Dear ALL,
I have the Report Painter report. When I'm executing this report I can save the data into the extract.
Could you tell me where are these data in the system(table?)? I want use these data for SAP script form.
Best regards,
IgorPlease go through the enclosed document. This will give you step-by-step approach for Report painter:
http://www.virtuosollc.com/PDF/Get_Reporter.pdf
Check url
http://help.sap.com/saphelp_47x200/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm
Check Report Painter Step-by-Step example under Tools->Report Painter / Report Writer->Report Painter->Creating a Report Painter Report.
Just go through These Links to learn about report Painter.
http://help.sap.com/saphelp_erp2005/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/5b/d22cee43c611d182b30000e829fbfe/frameset.htm
Please go through the enclosed document. This will give you step-by-step approach for Report painter:
http://www.virtuosollc.com/PDF/Get_Reporter.pdf
Check url
http://help.sap.com/saphelp_47x200/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm
Check Report Painter Step-by-Step example under Tools->Report Painter / Report Writer->Report Painter->Creating a Report Painter Report.
Just go through These Links to learn about report Painter.
http://help.sap.com/saphelp_erp2005/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/5b/d22cee43c611d182b30000e829fbfe/frameset.htm
I think it will give you some hint. I wish I could have authorization to use report painter on my this project so I can help you out practically.
Please see these steps , it`ll help you ...
http://www.thespot4sap.com/Articles/Code_CostCentreReport.asp
regards
vinod -
Due Date Analysis in Report Painter
Hi:
I have a query regarding Report painter FKI1 to FKI6 for Vendor aging analysis. Aging reports build from report enable user to analyze all vendors invoices which are overdue by N of days you specify for every column e.g all invoices overdue btw 0-30, 30-60 and so on but client is requiring an aging report for AP & AR which shows how old an invoice is, our baseline date is document date for all payment terms. e.g we have four columns in report 0-30,30-60,60-90 and >120. If an invoice was created with a document date 25.12.2014 which though not due should appear in 0-30 days. I need to know if its possible within report painter to have such or i will have to go for ABAP.
ThanksHello Atif,
Your requirement can be fulfilled by report painter
1- build a form with structure one axis with key figure
2- create required N days columns
3- use characteristic (Due date analysis with value =1) for analysis of line items due.
4- use characteristic (Days for net due date ) with value from/ to N days.
5- define a report with desired characteristics ( vendor, document number ....)
Regarding to you example
define column 0-30 as a sum formula of the following 2 columns
a column "0-30 due" with characteristics
(Due date analysis with value = 1) and
(Days for net due date with value from 0 to 30)
define another one "not due" with characteristics
(Due date analysis with value = 2) and
(Days for net due date with value from 0 to 99999)
for more information you can check the following standard reports delivered by SAP:
AP/ FKI0 >> report 0SAPDUEAN-01 Due Date Analysis for Open Items
AR/ FDI0 >> report 0SAPDUEAN-01 Due Date Analysis for Open Items
Regards,
Ibrahim -
Report Painter / Writer Help
Hello experts,
Could you please help me with some documentation on report painter and report writer ...
I didn't found detailed wiki to follow for my first report painter sample.
As mentioned in some other threads there's documentation on http://help.sap.com/ but I'm searching for beginners docs to follow step by step.
Thank you in advance for your help.
Regards,
Moez.Hi Moezz,
Please check below link.
[http://www.virtuosollc.com/PDF/Get_Reporter.pdf]
This document is with Screen shots & step by step one.
This could be of great help for you.
Kindly set to resolved if it helps you.
Regards
Abhii..... -
Actual quantity record in Report Painter
Hello SAP CO experts,
I have a question regarding actual quantity record which is not showing in internal order report for newly opened cost element (report created in Report Painter with reference to SAP report 6009-001 Actual/Plan Values/Quantity). Actual quantity from SD document flow is not updated with those cost element category 11- revenue. Actual line items report shows actual quantity, but total record is not updated in summary report.
Is it a problem that cost element at the time it was created did not have indicator for quantity record checked? As this field is time dependent, how can I solve this issue?
Please give me some advice regarding this question.
DuskoHello Dusko,
If you have activated the tick at later date then it is obvious that you would not have the quantity posted between the date the tick wasn't there and the day you put the tick as no new documents are generated. However, if you can see the quantity in the line items then the same should be displayed in the table.
Kind Regards // Shaubhik -
Actual Value displayed in GRR3 report painter Library 1VK
Dear Experts,
In report painter GRR3 > 1VK
I have summarized the Consumption according to Cost Centre of each activity types, I have set;
1. Column of Actual Quantity to take in Basic Key Figure from Statistical Quantity
2. The value is 4 (Actual) and Version is 0
Once I run the GRR3 report, there is some figure in that particular column and does not know where to trace the origin of those value. This actual figure appears on current period onwards where actual data does not been distributed on the system yet.
Kindly advice.
Best Regards,
AnneDear Ajay,
Im so happy right now I found that the Actual value appeared are actually taken from the previous fiscal year. I have checked the line items and their document posting date it shown as last fiscal year.
In this case, where should I amend to have the report pick up only actual value of this fiscal year?
Thank you very much Ajay
Best Regards,
Anne -
How to Modify the Selection Screen in Report Painter
Hi All,
I am working on Report painter and writer,
can any body helpme how to change the selection screen i.e i want add some more select options to the exisiting roport .
how can i add more select options to the exisiting one
please let me know the Procedure and provide some relevent documents .
Thanks and Best regards.
umaHello...
In the program ...we can find the following chunk of code..
selection-screen:begin of block B1 with frame title text-001.
Parameters : ....
select-options:.....
selection-screen:end of block b1.
if we need to add any more user inputs we can write the code inside the existing
selection screen....end of block .
or create a new block ..just the block name should be different...
if we are using select options...we need to declare the table name using the key word for the field on which we are giving select options ....
Tables : BSIK.
Please see the following code:
Imagine :- we have the current selection screen..
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_BUKRS LIKE BSIK-BUKRS DEFAULT SPACE.
SELECT-OPTIONS: S_LIFNR FOR BSIK-LIFNR.
SELECTION-SCREEN END OF BLOCK B1.
we need to add 2 more fields on the selection screen ..this we can do as the following
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_BUKRS LIKE BSIK-BUKRS DEFAULT SPACE.
SELECT-OPTIONS: S_LIFNR FOR BSIK-LIFNR,
S_HKONT FOR BSIK-HKONT.
PARAMETER: P_DATE LIKE BSIK-BUDAT OBLIGATORY DEFAULT
SY-DATUM.
SELECTION-SCREEN END OF BLOCK B1.
OR...create a new block...
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: S_HKONT FOR BSIK-HKONT.
PARAMETER: P_DATE LIKE RFPDO-ALLGSTID OBLIGATORY DEFAULT
SY-DATUM.
SELECTION-SCREEN END OF BLOCK B2.
there are many options available in selection screens..like creating check box,radio button etc..
for more info press F1 help on the Selection screen in the ABAP editor
Revert back if not clear and reward if helpful
Regards
Byju -
Display the values in Docment Currency in Report Painter-FDI4
Hi,
Am new to report painter. i created report painter in FDI4. this report is to display the due amount.
when i click on table cell, which is amount field . Am chosen cell type as 'Select with Key figure' option .
After then i try to select key figure for that cell (Popup:Element definition).
In F4 selection there is only one Key figure which is Amount in LC.
I need to display the field value as Amount in Document currency.
How to bring Amount in Docment curreny in that F4. Is it possible.
I didnt get any thread related to my requirement in SDN.
pl help.Hi there,
Could you insert the field FAEDT (Net due date) in customer reports? (reports from transaction FDI3). This field is not in a table, only in a structure. I defined it in TKAF like that:
USGFL
D
ROLNM
FAEDT_FPOS
CHTAB
RFPOSXEXT
CHFIE
FAEDT
ORTAB
RFPOSXEXT
ORFIE
FAEDT
DIMPR
2
RSLIN
1
And I also added it in the RFRRD20, but did not work. Can you tell me how to do it? I will reward with point. Thanx!! -
Difference between Form & Report Painter
Hi Experts,
What is the difference between Forms and Report painter reports? (My understanding is that Forms for PCA and Report painter for Cost Center).
Could also any one provide me the like related to SAP Documents to create Report Painter & Forms reports
Thanks in Advance
Gowsi<b>Form painter</b> is a term used in SAP Smart form context
http://help.sap.com/saphelp_nw2004s/helpdata/en/4b/83fb48df8f11d3969700a0c930660b/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/4b/83fb42df8f11d3969700a0c930660b/content.htm
http://www.thespot4sap.com/articles/Code_CostCentreReport.asp
<b>Report painter</b>
A tool for creating reports that meet specific business and reporting requirements.
The Report Painter enables you to report on data from various applications. It uses a graphical report structure that forms the basis for the report definition. When defining the report, you work with a structure that corresponds to the final structure of the report when the report data is output.
The SAP System is delivered with several row and column models that can be used as building blocks to help you create reports quickly and simply.
http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7dc143c211d182b30000e829fbfe/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7dc143c211d182b30000e829fbfe/frameset.htm
Regards
Vivek
*Assign points for all the useful answers -
Customer Ageing - Report Painter
Hi,
Can any tell whether we can achieve the customized reports for the customer ageing (Txn: S_ALR_870121276) through report painter. If so can i get any help for the steps to be followed /material regarding this.
Regards,
Nagendra Prasad.JThis is one aging report.. have a look at it and see if its useful.
This displays cusomer and vendor aging report.
Award points if useful.
REPORT zgar_ic_custvend_aging NO STANDARD PAGE HEADING
LINE-SIZE 192
MESSAGE-ID zz
LINE-COUNT 65.
Data declaration *
TABLES: bsik, "Secondary Index for Vendors
t880, "Global Company Data
t001s, "Accounting Clerks
t001. "Company Codes
Internal table declaration. *
*Store data from vendor tables (BSIK, BSAK).
DATA: BEGIN OF g_t_venddata OCCURS 0,
bukrs LIKE bsak-bukrs, "Company code
lifnr LIKE bsak-lifnr, "Vendor number
gjahr LIKE bsak-gjahr, "Fiscal year
zuonr LIKE bsak-zuonr, "Assignment number
shkzg LIKE bsak-shkzg, "Debit/credit indicator
dmbtr LIKE bsak-dmbtr, "Amount in local currency
dmbe2 LIKE bsak-dmbe2, "Amount in global currency
belnr LIKE bsak-belnr, "Document number
augdt LIKE bsak-augdt, "Clearing date
augbl LIKE bsak-augbl, "Doc. no. of clearing document
budat LIKE bsak-budat, "Posting date
hkont LIKE bsak-hkont, "GL account
waers LIKE bsak-waers, "Currency key
xblnr LIKE bsak-xblnr, "Document number
acctp TYPE c, "Account type. D or K
name1 LIKE kna1-name1, "Comp nmae
END OF g_t_venddata.
*Store data from customer tables (BSID, BSAD).
DATA: BEGIN OF g_t_custdata OCCURS 0,
kunnr LIKE bsad-kunnr, "Customer Number
bukrs LIKE bsad-bukrs, "Company Code
gjahr LIKE bsad-gjahr, "Fiscal year
augdt LIKE bsad-augdt, "clearing date
zuonr LIKE bsad-zuonr, "Assignment number
belnr LIKE bsad-belnr, "acct doc no
name1 LIKE lfa1-name1, "name from cust master
budat LIKE bsad-budat, "posting date
bldat LIKE bsad-bldat, "document date
xblnr LIKE bsad-xblnr, "document number
shkzg LIKE bsad-shkzg, "debit/credit indicator
dmbtr LIKE bsad-dmbtr, "local currency
dmbe2 LIKE bsad-dmbe2, "Group currency
waers LIKE bsad-waers, "Currency key
hkont LIKE bsad-hkont, "GL account
acctp TYPE c, "Account type D/K
END OF g_t_custdata.
*Store data according to age category.
DATA: BEGIN OF g_t_maintab OCCURS 0,
bukrs LIKE bsad-bukrs, "Company Code
tpart(10) TYPE c, "Trading partner
acctp TYPE c, "Account type D/K
gjahr LIKE bsad-gjahr, "Fiscal year
augdt LIKE bsad-augdt, "clearing date
zuonr LIKE bsad-zuonr, "Assignment number
belnr LIKE bsad-belnr, "acct doc no
name1 LIKE lfa1-name1, "name from cust master
budat LIKE bsad-budat, "posting date
bldat LIKE bsad-bldat, "document date
xblnr LIKE bsad-xblnr, "document number
shkzg LIKE bsad-shkzg, "debit/credit indicator
dmbtr LIKE bsad-dmbtr, "local currency
hkont LIKE bsad-hkont, "GL account
bktxt LIKE bkpf-bktxt, "Document header text
butxt LIKE t001-butxt, "company name
waers LIKE bsad-waers, "Currency key
balamt TYPE dmbtr, "balance amount
amount1 TYPE dmbtr, "Amount for category 1
amount2 TYPE dmbtr, "Amount for category 2
amount3 TYPE dmbtr, "Amount for category 3
amount4 TYPE dmbtr, "Amount for category 4
END OF g_t_maintab.
*Store all the vendor numbers
DATA: BEGIN OF g_t_vend OCCURS 5000,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF g_t_vend.
*Store all the customer numbers
DATA: BEGIN OF g_t_cust OCCURS 5000,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF g_t_cust.
*Range to store trading partner numbers.
RANGES : r_tpart FOR lfa1-lifnr.
Variables to maintain open items count
DATA: g_open_items TYPE i,
g_open_items1 TYPE i,
g_open_items2 TYPE i,
g_open_items3 TYPE i,
g_open_items4 TYPE i.
*Header texts (For report header)
DATA: g_headertext1(50),
g_headertext2(16).
Selection screen declaration. *
SELECT-OPTIONS p_ccode FOR bsik-bukrs OBLIGATORY. "Company code
SELECT-OPTIONS p_tpartv FOR t880-rcomp. "Trading partner
SELECT-OPTIONS p_clerk FOR t001s-busab. "Accounting clerk
SELECT-OPTIONS p_pdate FOR sy-datum. "Posting date
PARAMETERS p_adate LIKE sy-datum DEFAULT sy-datum. "Age as of date
*GL Account codes
SELECT-OPTIONS p_glacc FOR bsik-hkont DEFAULT '48200000' TO '48299999'
OBLIGATORY.
*Data Column range (Age range)
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK age_range WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) text-002.
SELECTION-SCREEN POSITION 33.
PARAMETERS p_range1(4) TYPE c DEFAULT '30' OBLIGATORY.
SELECTION-SCREEN POSITION 43.
PARAMETERS p_range2(4) TYPE c DEFAULT '60' OBLIGATORY.
SELECTION-SCREEN POSITION 53.
PARAMETERS p_range3(4) TYPE c DEFAULT '90' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK age_range.
*Reporting Currency
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK crr_sel WITH FRAME TITLE text-003.
PARAMETERS: p_local RADIOBUTTON GROUP cgrp DEFAULT 'X',
p_grpcrr RADIOBUTTON GROUP cgrp.
SELECTION-SCREEN END OF BLOCK crr_sel.
*Type of report
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK rep_sel WITH FRAME TITLE text-004.
PARAMETERS: p_detrep RADIOBUTTON GROUP rgrp DEFAULT 'X',
p_sumrep RADIOBUTTON GROUP rgrp.
SELECTION-SCREEN END OF BLOCK rep_sel.
Top-Of-Page *
TOP-OF-PAGE.
IF p_detrep = 'X'.
Write report header for detailed report.
PERFORM f8000_write_comp_header
USING g_t_maintab-bukrs
g_t_maintab-waers
g_t_maintab-butxt
text-t02
g_headertext1.
ELSE.
Write report header for summary report.
PERFORM f8000_write_comp_header
USING '0000'
g_t_maintab-waers
text-t05
g_headertext1
g_headertext2.
ENDIF.
*Eject
Line selection event *
AT LINE-SELECTION.
IF p_detrep = 'X'.
SET PARAMETER ID 'BLN' FIELD g_t_maintab-belnr.
SET PARAMETER ID 'BUK' FIELD g_t_maintab-bukrs.
SET PARAMETER ID 'GJR' FIELD g_t_maintab-gjahr.
IF NOT g_t_maintab-belnr IS INITIAL.
Call transaction FB03 to display line item details.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE e999 WITH text-e01.
ENDIF.
Clear belnr.
MOVE space TO g_t_maintab-belnr.
ENDIF.
*Eject
Main processing of program starts here *
START-OF-SELECTION.
Pad zeroes to the trading partner range to make it 10 chars
PERFORM f0100_prepare_tradingpartners.
Fetch data from customer and vendor tables.
PERFORM f1000_fetch_data.
Prepare data. Assign sign to amount, separate line items into 4 age
categories
PERFORM f2000_prepare_data.
End of selection.
END-OF-SELECTION.
Write reports
IF NOT g_t_maintab[] IS INITIAL.
IF p_detrep = 'X'.
PERFORM f4000_write_detailed_rep.
ELSE.
PERFORM f5000_write_summary_rep.
ENDIF.
ELSE.
MESSAGE i999 WITH text-e02 text-e03.
ENDIF.
*Eject
*& Form f0100_prepare_tradingpartners
Subroutine for preparing trading partner numbers. Pad extra
zeros to make trading partner field size 10.
FORM f0100_prepare_tradingpartners.
LOOP AT p_tpartv.
MOVE-CORRESPONDING p_tpartv TO r_tpart.
IF NOT r_tpart-low IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = r_tpart-low
IMPORTING
output = r_tpart-low.
ENDIF.
IF NOT r_tpart-high IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = r_tpart-high
IMPORTING
output = r_tpart-high.
ENDIF.
APPEND r_tpart.
ENDLOOP.
ENDFORM. " f0100_prepare_tradingpartners
*Eject
*& Form f1000_fetch_data
This subroutine is used to fetch data from customer (BSID and
BSAD) and vendor (BSIK and BSAK) tables.
FORM f1000_fetch_data.
*Get vendor data.
PERFORM f1100_fetch_vend_data.
*Get customer data.
PERFORM f1200_fetch_cust_data.
ENDFORM. " f1000_fetch_data
*Eject
*& Form f1100_fetch_vend_data
This subroutine is used to get data from BSIK and BSAK
tables. First all vendors are selected then all line items are
retrieved from BSIK and BSAK tables.
FORM f1100_fetch_vend_data.
PERFORM f9000_progress_indicator USING text-m01.
*Select all vendors.
SELECT h~lifnr
h~name1
INTO TABLE g_t_vend
FROM lfa1 AS h
JOIN lfb1 AS c
ON h~lifnr = c~lifnr
WHERE h~lifnr IN r_tpart
AND c~bukrs IN p_ccode
AND c~busab IN p_clerk.
IF NOT g_t_vend[] IS INITIAL.
PERFORM f9000_progress_indicator USING text-m01.
Select open line items.
SELECT bukrs "company
lifnr "vendor number
augdt "clearing date
augbl "docno for clearing doc
zuonr "allocation number
gjahr "fiscal year
belnr "acct doc no
buzei "line item within doc
budat "posting date
waers "Currency key
xblnr "document number
shkzg "debit, credit indicator
dmbtr "local currency
hkont "gl acct
dmbe2 "group currency
FROM bsik
INTO CORRESPONDING FIELDS OF TABLE g_t_venddata
FOR ALL ENTRIES IN g_t_vend
WHERE bukrs IN p_ccode "company code
AND lifnr = g_t_vend-lifnr "trading partner
AND budat IN p_pdate "Posting date
AND budat <= p_adate
AND hkont IN p_glacc "gl acct
PERFORM f9000_progress_indicator USING text-m04.
Select cleared line items.
SELECT bukrs "company
lifnr "vendor number
augdt "clearing date
augbl "docno for clearing doc
zuonr "allocation number
gjahr "fiscal year
belnr "acct doc no
buzei "line item within doc
budat "posting date
waers "Currency key
xblnr "document number
shkzg "debit, credit indicator
dmbtr "local currency
hkont "gl acct
dmbe2 "group currency
FROM bsak
APPENDING CORRESPONDING FIELDS OF TABLE g_t_venddata
FOR ALL ENTRIES IN g_t_vend
WHERE bukrs IN p_ccode "Company code
AND lifnr = g_t_vend-lifnr "Selected vendors
AND augdt > p_adate
AND budat IN p_pdate "Posting date
AND budat <= p_adate
AND hkont IN p_glacc "GL acct
ENDIF.
IF NOT g_t_venddata[] IS INITIAL.
*Set Account type flag for vendors -- 'K'.
SORT g_t_venddata BY bukrs lifnr.
SORT g_t_vend BY lifnr.
g_t_venddata-acctp = text-k01.
MODIFY g_t_venddata TRANSPORTING acctp WHERE acctp = ' '.
Add vendor names.
LOOP AT g_t_venddata WHERE name1 = ' '.
READ TABLE g_t_vend
WITH KEY lifnr = g_t_venddata-lifnr BINARY SEARCH.
IF sy-subrc = 0.
g_t_venddata-name1 = g_t_vend-name1.
MODIFY g_t_venddata TRANSPORTING name1 WHERE lifnr =
g_t_venddata-lifnr.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " f1100_fetch_vend_data
*Eject
*& Form f1200_fetch_cust_data
This function module is used to get data from BSID and BSAD
tables. First all customers are selected then all line items
are retrieved from BSIK and BSAK tables.
FORM f1200_fetch_cust_data.
PERFORM f9000_progress_indicator USING text-m06.
*Select all customers.
SELECT h~kunnr
h~name1
INTO TABLE g_t_cust
FROM kna1 AS h
JOIN knb1 AS c
ON h~kunnr = c~kunnr
WHERE h~kunnr IN r_tpart
AND c~bukrs IN p_ccode
AND c~busab IN p_clerk.
IF NOT g_t_cust[] IS INITIAL.
PERFORM f9000_progress_indicator USING text-m06.
*Fetch customer open items.
SELECT bukrs "company
kunnr "customer number
augdt "clearing date
augbl "docno for clearing doc
zuonr "allocation number
gjahr "fiscal year
belnr "acct doc no
buzei "line item within doc
budat "posting date
waers "Currency key
xblnr "document number
shkzg "debit, credit indicator
dmbtr "local currency
hkont "gl acct
dmbe2 "group currency
FROM bsid
INTO CORRESPONDING FIELDS OF TABLE g_t_custdata
FOR ALL ENTRIES IN g_t_cust
WHERE bukrs IN p_ccode "company code
AND kunnr = g_t_cust-kunnr "Selected customer
AND budat IN p_pdate "Posting date
AND budat <= p_adate
AND hkont IN p_glacc "GL acct
PERFORM f9000_progress_indicator USING text-m07.
Select Customer cleared line items.
SELECT bukrs "company
kunnr "customer number
augdt "clearing date
augbl "docno for clearing doc
zuonr "allocation number
gjahr "fiscal year
belnr "acct doc no
buzei "line item within doc
budat "posting date
waers "Currency key
xblnr "document number
shkzg "debit, credit indicator
dmbtr "local currency
hkont "gl acct
dmbe2 "group currency
FROM bsad
APPENDING CORRESPONDING FIELDS OF TABLE g_t_custdata
FOR ALL ENTRIES IN g_t_cust
WHERE bukrs IN p_ccode "company code
AND kunnr = g_t_cust-kunnr "Selected customer
AND augdt > p_adate
AND budat IN p_pdate "Posting date
AND budat <= p_adate
AND hkont IN p_glacc "GL acct
ENDIF.
IF NOT g_t_custdata[] IS INITIAL.
*Set account type for customers -- 'D'.
SORT g_t_custdata BY bukrs kunnr.
SORT g_t_cust BY kunnr.
g_t_custdata-acctp = text-d01.
MODIFY g_t_custdata TRANSPORTING acctp WHERE acctp = ' '.
Add customer names.
LOOP AT g_t_custdata WHERE name1 = ' '.
READ TABLE g_t_cust
WITH KEY kunnr = g_t_custdata-kunnr BINARY SEARCH.
IF sy-subrc = 0.
g_t_custdata-name1 = g_t_cust-name1.
MODIFY g_t_custdata TRANSPORTING name1 WHERE kunnr =
g_t_custdata-kunnr.
ENDIF.
ENDLOOP.
ENDIF.
ENDFORM. " f1200_fetch_cust_data
*Eject
*& Form f2000_Prepare_data
This function module is used to format data according to report
1. Fetch local or global amount value according to user
parametrs.
2. Sign is assigned to each amount
3. Line items are categorized according to the aging category
4. Populate document header text.
5. Populate company names.
FORM f2000_prepare_data.
DATA : l_amount TYPE dmbtr,
l_age_of_item TYPE p,
l_as_of_age TYPE d,
l_posting_date TYPE d,
l_time TYPE t,
l_count TYPE sy-tabix.
DATA: BEGIN OF l_t_doc_txt OCCURS 0,
bukrs TYPE bkpf-bukrs,
belnr TYPE bkpf-belnr,
bktxt LIKE bkpf-bktxt,
END OF l_t_doc_txt.
DATA: BEGIN OF l_t_curr_txt OCCURS 0,
bukrs LIKE t001-bukrs,
waers LIKE t001-waers,
butxt LIKE t001-butxt,
END OF l_t_curr_txt.
PERFORM f9000_progress_indicator USING text-m03.
l_as_of_age = p_adate.
MOVE text-t01 TO l_time.
*Prepare G_T_MAINTAB, 1. Populate vendor data.
LOOP AT g_t_venddata.
CLEAR: g_t_maintab, l_amount, l_age_of_item, l_posting_date.
MOVE-CORRESPONDING g_t_venddata TO g_t_maintab.
g_t_maintab-tpart = g_t_venddata-lifnr.
Check for currency selected by the user.
IF p_local = 'X'.
l_amount = g_t_venddata-dmbtr.
ELSE.
l_amount = g_t_venddata-dmbe2.
ENDIF.
Check for type of transaction. Debit or Credit.
IF g_t_venddata-shkzg = 'H'.
l_amount = l_amount * -1.
ENDIF.
MOVE g_t_venddata-budat TO l_posting_date.
Assign amount value to appropriate aging category.
Calculate age of line item
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = l_posting_date
time1 = l_time
date2 = l_as_of_age
time2 = l_time
IMPORTING
datediff = l_age_of_item
EXCEPTIONS
invalid_datetime = 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.
IF l_age_of_item <= p_range1. "Range1
g_t_maintab-amount1 = l_amount.
ELSE.
IF l_age_of_item > p_range1 AND l_age_of_item <= p_range2."Range2
g_t_maintab-amount2 = l_amount.
ELSE.
IF l_age_of_item > p_range2
AND l_age_of_item <= p_range3. "Range3
g_t_maintab-amount3 = l_amount.
ELSE. "Range4
g_t_maintab-amount4 = l_amount.
ENDIF.
ENDIF.
ENDIF.
Assign balance amounts.
g_t_maintab-balamt = l_amount.
Add record to main internal table
APPEND g_t_maintab.
ENDLOOP.
*Prepare G_T_MAINTAB, 2. Populate customer data.
LOOP AT g_t_custdata.
CLEAR: g_t_maintab, l_amount, l_age_of_item, l_posting_date.
MOVE-CORRESPONDING g_t_custdata TO g_t_maintab.
g_t_maintab-tpart = g_t_custdata-kunnr.
Check for currency selected by the user.
IF p_local = 'X'.
l_amount = g_t_custdata-dmbtr.
ELSE.
l_amount = g_t_custdata-dmbe2.
ENDIF.
Check for type of transaction. Debit or Credit.
IF g_t_custdata-shkzg = 'H'.
l_amount = l_amount * -1.
ENDIF.
MOVE g_t_custdata-budat TO l_posting_date.
Assign amount value to appropriate aging category.
Calculate age of line item
CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
EXPORTING
date1 = l_posting_date
time1 = l_time
date2 = l_as_of_age
time2 = l_time
IMPORTING
datediff = l_age_of_item
EXCEPTIONS
invalid_datetime = 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.
IF l_age_of_item <= p_range1. "Range1
g_t_maintab-amount1 = l_amount.
ELSE.
IF l_age_of_item > p_range1 AND l_age_of_item <= p_range2."Range2
g_t_maintab-amount2 = l_amount.
ELSE.
IF l_age_of_item > p_range2
AND l_age_of_item <= p_range3. "Range3
g_t_maintab-amount3 = l_amount.
ELSE. "Range4
g_t_maintab-amount4 = l_amount.
ENDIF.
ENDIF.
ENDIF.
Assign balance amounts.
g_t_maintab-balamt = l_amount.
APPEND g_t_maintab.
ENDLOOP.
IF NOT g_t_maintab[] IS INITIAL.
SORT g_t_maintab BY bukrs belnr.
SELECT bukrs belnr bktxt FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE l_t_doc_txt
FOR ALL ENTRIES IN g_t_maintab
WHERE bukrs = g_t_maintab-bukrs AND
belnr = g_t_maintab-belnr AND
gjahr = g_t_maintab-gjahr.
SELECT bukrs butxt waers FROM t001
INTO CORRESPONDING FIELDS OF TABLE l_t_curr_txt
WHERE bukrs IN p_ccode.
SORT l_t_doc_txt BY bukrs belnr.
SORT l_t_curr_txt BY bukrs.
Add Document header texts
LOOP AT g_t_maintab.
l_count = sy-tabix.
READ TABLE l_t_doc_txt
WITH KEY bukrs = g_t_maintab-bukrs belnr = g_t_maintab-belnr
BINARY SEARCH.
IF sy-subrc = 0.
g_t_maintab-bktxt = l_t_doc_txt-bktxt.
MODIFY g_t_maintab INDEX l_count TRANSPORTING bktxt.
ENDIF.
CLEAR l_t_doc_txt-bktxt.
ENDLOOP.
PERFORM f9000_progress_indicator USING text-m03.
Update company name and currency field.
LOOP AT g_t_maintab WHERE butxt = ' ' OR waers = ' '.
READ TABLE l_t_curr_txt
WITH KEY bukrs = g_t_maintab-bukrs BINARY SEARCH.
IF sy-subrc = 0.
g_t_maintab-butxt = l_t_curr_txt-butxt.
g_t_maintab-waers = l_t_curr_txt-waers.
MODIFY g_t_maintab TRANSPORTING butxt waers
WHERE bukrs = g_t_maintab-bukrs.
ENDIF.
CLEAR: l_t_curr_txt-butxt, l_t_curr_txt-waers.
ENDLOOP.
ENDIF. "IF NOT g_t_maintab[] IS INITIAL
ENDFORM. " f2000_Prepare_data
*Eject
*& Form f4000_write_detailed_rep
This subroutine is used to write detailed report.
FORM f4000_write_detailed_rep.
DATA l_t_maintab LIKE g_t_maintab.
Variables for summary amount of each account type of a trading pair
DATA: l_tpart_acc1 TYPE dmbtr,
l_tpart_acc2 TYPE dmbtr,
l_tpart_acc3 TYPE dmbtr,
l_tpart_acc4 TYPE dmbtr,
l_tpart_acc_bal TYPE dmbtr.
Variables for summary amount of each trading pair
DATA: l_tpart1 TYPE dmbtr,
l_tpart2 TYPE dmbtr,
l_tpart3 TYPE dmbtr,
l_tpart4 TYPE dmbtr,
l_tpart_bal TYPE dmbtr.
SET TITLEBAR 'DETAILED_REPORT'.
Prepare header texts for report header.
CONCATENATE p_adate4(2) '/' p_adate6(2) '/' p_adate+0(4) INTO
g_headertext1.
CONCATENATE text-h20 g_headertext1
INTO g_headertext1 SEPARATED BY space.
SORT g_t_maintab BY bukrs tpart acctp.
*Start detailed report.
FORMAT INTENSIFIED OFF.
LOOP AT g_t_maintab.
l_t_maintab = g_t_maintab.
*At new company code write page header
AT NEW bukrs.
g_t_maintab = l_t_maintab.
NEW-PAGE.
ENDAT.
*Write line item records.
WRITE:/2 l_t_maintab-tpart, "Trading partner
14 l_t_maintab-acctp, "Account type
17 l_t_maintab-belnr, "Document number
35 l_t_maintab-budat, "posting date
47 l_t_maintab-xblnr, "Reference doc. number
65 l_t_maintab-bktxt, "Doc header text.
92 l_t_maintab-balamt, "balance amount
114 l_t_maintab-amount1, "Amount cat 1
136 l_t_maintab-amount2, "Amount cat 2
158 l_t_maintab-amount3, "Amount cat 3
180 l_t_maintab-amount4. "Amount cat 4
g_t_maintab-bukrs = l_t_maintab-bukrs.
g_t_maintab-gjahr = l_t_maintab-gjahr.
g_t_maintab-belnr = l_t_maintab-belnr.
Hide values so that these can be used on line selection event.
HIDE: g_t_maintab-bukrs, g_t_maintab-gjahr, g_t_maintab-belnr.
Calculate amounts for account summary.
l_tpart_acc1 = l_tpart_acc1 + l_t_maintab-amount1.
l_tpart_acc2 = l_tpart_acc2 + l_t_maintab-amount2.
l_tpart_acc3 = l_tpart_acc3 + l_t_maintab-amount3.
l_tpart_acc4 = l_tpart_acc4 + l_t_maintab-amount4.
l_tpart_acc_bal = l_tpart_acc_bal + l_t_maintab-balamt.
Calculate amounts for trading partner summary.
l_tpart1 = l_tpart1 + l_t_maintab-amount1.
l_tpart2 = l_tpart2 + l_t_maintab-amount2.
l_tpart3 = l_tpart3 + l_t_maintab-amount3.
l_tpart4 = l_tpart4 + l_t_maintab-amount4.
l_tpart_bal = l_tpart_bal + l_t_maintab-balamt.
*At end of one account type write summary for account type.
AT END OF acctp.
g_t_maintab = l_t_maintab.
PERFORM f8100_write_acctype_summary
USING l_tpart_acc1 l_tpart_acc2 l_tpart_acc3 l_tpart_acc4
l_tpart_acc_bal l_t_maintab-acctp l_t_maintab-tpart
l_t_maintab-name1.
CLEAR: l_tpart_acc1, l_tpart_acc2, l_tpart_acc3, l_tpart_acc4,
l_tpart_acc_bal.
ENDAT.
At end of trading pair, write trading partner summary.
AT END OF tpart.
g_t_maintab = l_t_maintab.
PERFORM f8200_write_tradingpair_summar
USING l_tpart1 l_tpart2 l_tpart3 l_tpart4 l_tpart_bal
l_t_maintab-tpart l_t_maintab-name1.
CLEAR: l_tpart1, l_tpart2, l_tpart3, l_tpart4, l_tpart_bal.
ENDAT.
ENDLOOP.
ENDFORM. " f4000_write_detailed_rep
*Eject
*& Form f5000_write_summary_rep
Subroutine to write summary report.
FORM f5000_write_summary_rep.
*Counters for trading partner
DATA: l_count_tpart TYPE i, "Counter for trading pairs.
l_count_tpart1 TYPE i, "Trading partner in age cat 1
l_count_tpart2 TYPE i, "Trading partner in age cat 2
l_count_tpart3 TYPE i, "Trading partner in age cat 3
l_count_tpart4 TYPE i. "Trading partner in age cat 4
Flag for trading partner count.
DATA: l_flag_tpart1 TYPE c, "Flag for Trading partner in age cat 1
l_flag_tpart2 TYPE c, "Flag for Trading partner in age cat 2
l_flag_tpart3 TYPE c, "Flag for Trading partner in age cat 3
l_flag_tpart4 TYPE c. "Flag for Trading partner in age cat 4
Variables to store sum of all line items for a company code.
DATA: l_comp_amt_bal TYPE dmbtr,
l_comp_amt1 TYPE dmbtr,
l_comp_amt2 TYPE dmbtr,
l_comp_amt3 TYPE dmbtr,
l_comp_amt4 TYPE dmbtr.
Internal table to store sum of amounts for all the companies selected.
DATA: BEGIN OF l_t_compall_amt OCCURS 0,
waers LIKE bsad-waers, "Currency key
balamt TYPE dmbtr, "Total balance amount
amount1 TYPE dmbtr, "Amount for category 1
amount2 TYPE dmbtr, "Amount for category 2
amount3 TYPE dmbtr, "Amount for category 3
amount4 TYPE dmbtr, "Amount for category 4
END OF l_t_compall_amt.
DATA: l_tpart_amt_bal TYPE dmbtr,
l_tpart_amt1 TYPE dmbtr,
l_tpart_amt2 TYPE dmbtr,
l_tpart_amt3 TYPE dmbtr,
l_tpart_amt4 TYPE dmbtr.
DATA l_currtxt(11).
DATA l_t_maintab LIKE g_t_maintab.
Prepare header texts for report header.
CONCATENATE p_adate4(2) '/' p_adate6(2) '/' p_adate+0(4) INTO
g_headertext2.
CONCATENATE text-t04 p_glacc-low text-h06 p_glacc-high
INTO g_headertext1 SEPARATED BY space.
CONCATENATE text-t03 g_headertext2 INTO g_headertext2 SEPARATED BY
space.
SET TITLEBAR 'SUMMARY_REPORT'.
SORT g_t_maintab BY bukrs tpart acctp.
DESCRIBE TABLE g_t_maintab LINES l_count_tpart. "***
FORMAT INTENSIFIED OFF.
CLEAR: l_flag_tpart1, l_flag_tpart2, l_flag_tpart3, l_flag_tpart4.
CLEAR: l_tpart_amt_bal,
l_tpart_amt1,
l_tpart_amt2,
l_tpart_amt3,
l_tpart_amt4.
CLEAR: l_comp_amt_bal,
l_comp_amt1,
l_comp_amt2,
l_comp_amt3,
l_comp_amt4.
Write summary report.
LOOP AT g_t_maintab.
l_t_maintab = g_t_maintab.
Maintain open items count
g_open_items = g_open_items + 1.
IF l_t_maintab-amount1 <> 0.
g_open_items1 = g_open_items1 + 1.
ELSEIF l_t_maintab-amount2 <> 0.
g_open_items2 = g_open_items2 + 1.
ELSEIF l_t_maintab-amount3 <> 0.
g_open_items3 = g_open_items3 + 1.
ELSEIF l_t_maintab-amount4 <> 0.
g_open_items4 = g_open_items4 + 1.
ENDIF.
*Calculate amounts for trading partners and maintain trading partner
*count.
l_tpart_amt_bal = l_tpart_amt_bal + l_t_maintab-balamt.
IF g_t_maintab-amount1 <> 0.
l_tpart_amt1 = l_tpart_amt1 + l_t_maintab-amount1.
Increase count according to flag.
IF l_flag_tpart1 IS INITIAL.
l_count_tpart1 = l_count_tpart1 + 1.
l_flag_tpart1 = 'X'.
ENDIF.
ELSEIF g_t_maintab-amount2 <> 0.
l_tpart_amt2 = l_tpart_amt2 + l_t_maintab-amount2.
Increase count according to flag.
IF l_flag_tpart2 IS INITIAL.
l_count_tpart2 = l_count_tpart2 + 1.
l_flag_tpart2 = 'X'.
ENDIF.
ELSEIF g_t_maintab-amount3 <> 0.
l_tpart_amt3 = l_tpart_amt3 + l_t_maintab-amount3.
Increase count according to flag.
IF l_flag_tpart3 IS INITIAL.
l_count_tpart3 = l_count_tpart3 + 1.
l_flag_tpart3 = 'X'.
ENDIF.
ELSEIF g_t_maintab-amount4 <> 0.
l_tpart_amt4 = l_tpart_amt4 + l_t_maintab-amount4.
Increase count according to flag.
IF l_flag_tpart4 IS INITIAL.
l_count_tpart4 = l_count_tpart4 + 1.
l_flag_tpart4 = 'X'.
ENDIF.
ENDIF. "g_t_maintab-amount1 <> 0
Calculate total of amount for all companies
Separate totals into different rows for different local currency.
IF p_local = 'X'.
READ TABLE l_t_compall_amt WITH KEY waers = l_t_maintab-waers.
ELSE.
READ TABLE l_t_compall_amt INDEX 1.
ENDIF.
IF sy-subrc = 0.
l_t_compall_amt-balamt = l_t_compall_amt-balamt +
l_t_maintab-balamt.
l_t_compall_amt-amount1 = l_t_compall_amt-amount1 +
l_t_maintab-amount1.
l_t_compall_amt-amount2 = l_t_compall_amt-amount2 +
l_t_maintab-amount2.
l_t_compall_amt-amount3 = l_t_compall_amt-amount3 +
l_t_maintab-amount3.
l_t_compall_amt-amount4 = l_t_compall_amt-amount4 +
l_t_maintab-amount4.
MODIFY l_t_compall_amt FROM l_t_compall_amt INDEX sy-tabix.
ELSE.
MOVE-CORRESPONDING l_t_maintab TO l_t_compall_amt.
IF NOT p_local = 'X'.
MOVE 'GRP' TO l_t_maintab-waers.
ENDIF.
APPEND l_t_compall_amt.
ENDIF.
Calculate total amount for current company.
l_comp_amt_bal = l_comp_amt_bal + l_t_maintab-balamt.
l_comp_amt1 = l_comp_amt1 + l_t_maintab-amount1.
l_comp_amt2 = l_comp_amt2 + l_t_maintab-amount2.
l_comp_amt3 = l_comp_amt3 + l_t_maintab-amount3.
l_comp_amt4 = l_comp_amt4 + l_t_maintab-amount4.
IF p_local = 'X'.
CONCATENATE text-h04 l_t_maintab-waers
INTO l_currtxt SEPARATED BY space.
ELSE.
MOVE text-h05 TO l_currtxt.
ENDIF.
Write subtotal for each trading partner.
AT END OF tpart.
l_count_tpart = l_count_tpart + 1.
Write the summary lines
WRITE:/2 l_t_maintab-bukrs,
10 l_t_maintab-tpart,
42 l_tpart_amt_bal,
64 l_currtxt,
87 l_tpart_amt1,
109 l_tpart_amt2,
131 l_tpart_amt3,
153 l_tpart_amt4.
CLEAR: l_tpart_amt_bal,
l_tpart_amt1,
l_tpart_amt2,
l_tpart_amt3,
l_tpart_amt4.
CLEAR: l_flag_tpart1, l_flag_tpart2, l_flag_tpart3, l_flag_tpart4.
ENDAT.
Write subtotal for each company code.
AT END OF bukrs.
PERFORM f8300_write_comp_summ USING l_comp_amt_bal
l_comp_amt1
l_comp_amt2
l_comp_amt3
l_comp_amt4
l_t_maintab-bukrs
l_t_maintab-butxt
l_t_maintab-waers.
CLEAR: l_comp_amt_bal,
l_comp_amt1,
l_comp_amt2,
l_comp_amt3,
l_comp_amt4.
ENDAT.
ENDLOOP.
Maybe you are looking for
-
I am running Snow Leopard and have a Mobile Me account. My Mobile Me account expires at the end of June. I have been told that I will need to buy the Lion upgrade to run icloud on my imac, but I am aware that Lion is due to be replaced by Mountain
-
Media files won't import with any of the import options
Hi all, just finished a job and returned a company laptop. Copied the iTunes library to my dropbox. Got a new laptop and tried to import my media into iTunes, but I can't get the media in. Tried Preferences / Advanced / set iTunes media folder locati
-
Why is my Itunes "Purchased" list empty?
My Ipod is missing "Ten Million Slaves" by Otis Taylor, I would download it again, but not able to. I checked my computer in the music and media files and its not there either...and not on the Ipod. I went to the Itunes store and there are no purchas
-
Trying to send photo via share/send button in iphoto
Having problems, possible due to being a newbie, with sending a photo via the share/send button in iphoto. A message comes up "The email server didn't recognize your username/password combination". I have checked all preferences in mail and all seem
-
Wireless connection w/linksys to Comcast?
I am trying to connect my daughter;s Linksys router to her Comcast cable DSL but am having trouble making the wireless connection. Do I have to change her settings in the computer to make this work? If so, what needs to be changed. I know Linksys wor