Reports needed
I also need few reports for my interview preparation.reports with steps like how to create them.i read few examples of reports on sdn forum only like,client want to analyse sales flow of customer in all the years and compare it with the current year.And a report which indicates the list of customers whose sales transactions have been reduced by 10% in the current year compared to the last year.
I need sol'n for such reports.I hope you gurus will find a bit of time in helping me out.
Regards,
Ashish
Email:[email protected]
Standard SAP SD Reports:=
Statistic Group:
Purpose To capture data for Standard Reports, we require to activate Statistic Group as under:
--> Item category (Configuration)
--> Sales document type (Configuration)
--> Customer (Maintain in Master data)
--> Material (Maintain in Master data)
When you generate statistics in the logistics information system, the system uses the combination of specified statistics groups to determine the appropriate update sequence. The update sequence in turn determines for exactly which fields the statistics are generated.
Configuration:
IMG --> Logistics Information System (LIS) --> Logistics Data Warehouse --> Updating --> Updating Control --> Settings: Sales --> Statistics Groups -->
1. Maintain Statistics Groups for Customers
2. Maintain Statistics Groups for Material
3. Maintain Statistics Groups for Sales Documents
4. Assign Statistics Groups for Each Sales Document Type
5. Assign Statistics Groups for each Sales Document Item Type .....
All Standard Reports which are available are as under:
SAP Easy Access: Information Systems -> Logistics -> Sales and distribution ->
1. Customer -> Incoming orders / Returns / Sales / Credit memos / Sales activities / Customer master / Conditions / Credit Master Sheet
2. Material -> Incoming orders / Returns / Sales / Credit memos / Material master / ...
3. Sales organization -> Sales organization / Sales office / Sales employee
4. Shipping point -> Deliveries / Returns
5. SD documents -> Orders / Deliveries / Billing documents ...
& so on.
Some of the Standard reports in SD are:
Sales summary - VC/2
Display Customer Hierarchy - VDH2
Display Condition record report - V/I6
Pricing Report - V/LD
Create Net Price List - V_NL
List customer material info - VD59
List of sales order - VA05
List of Billing documents - VF05
Inquiries list - VA15
Quotation List - VA25
Incomplete Sales orders - V.02
Backorders - V.15
Outbound Delivery Monitor - VL06o
Incomplete delivery - V_UC
Customer Returns-Analysis - MC+A
Customer Analysis- Sales - MC+E
Customer Analysis- Cr. Memo - MC+I
Deliveries-Due list - VL04
Billing due list - VF04
Incomplete Billing documents - MCV9
Customer Analysis-Basic List - MCTA
Material Analysis(SIS) - MCTC
Sales org analysis - MCTE
Sales org analysis-Invoiced sales - MC+2
Material Analysis-Incoming orders - MC(E
General- List of Outbound deliveries - VL06f
Material Returns-Analysis - MC+M
Material Analysis- Invoiced Sales - MC+Q
Variant configuration Analysis - MC(B
Sales org analysis-Incoming orders - MC(I
Sales org analysis-Returns - MC+Y
Sales office Analysis- Invoiced Sales - MC-E
Sales office Analysis- Returns - MC-A
Shipping point Analysis - MC(U
Shipping point Analysis-Returns - MC-O
Blocked orders - V.14
Order Within time period - SD01
Duplicate Sales orders in period - SDD1
Display Delivery Changes - VL22
Regards,
Rajesh Banka
Reward points if helpful.
Similar Messages
-
Report needed to conbine stock movement and corresponding balance
Hi Friends,
End user need a report to show stock movement trasaction and it's coresponding stock balance.
In MB51, we can see all the stock movements against one material, is there any way a report could show stocks' corresponding iventory balance under diffierent invenotory category (unrestriced,QC, Return and block) for each movement trasaction ?
Report needed like below
SLoc , MoveType , Material document, posting date, qty, unrestic bal, QC balance, return Balance, Blked Bal.
Thanks,
LHi,
Kindly take the help of abaper and create a customized report or also you can have query created in SQ01.
Hope this will help you !!!
Regards,
Krishna O -
Understanding report need backup recovery window ..
Hello,
I have a big database which backed up within several days at night time. The retention policy is "recovery window of 3 days". I've tried to analyze the results of
report need backup;But I noticed than this command return just the list of datafiles having latest backup older than 3 days. I've tried to read again the docs:
>
Reports data files for which there are not sufficient backups to satisfy a recovery window-based retention policy for the specified number of days, that is, data files without sufficient backups for point-in-time recovery to any point back to the time SYSDATE - integer.
>
Please correct me if I'm wrong, but I consider that the ability to make recover to any point in time within 3 days require the backup taken earlier than 3 days ago and archivelogs from the time when backup was taken to the recover PIT. Im I right? If so then how I should interprete the results of report need backup ? I can't find the detailed explanations of this in the docs :(
Thanks in advance,
ConstantineYou are correct in your appreciations.
This report is about the need of backups, without considering archivelog backups.
It does not mean that listed files are in an unrecoverable situation.
Regards. -
Report needed for storage costs in WM
Hi All,
I need a report for the storage costs for utilising the warehouse by plants. Cost of space utilised per m3 will be provided in selection screen. For each material the volume should taken from material master. Warehouse will be utilised by three plants and report needed to calculate the space occupied by the materials in warehouse per plant per month. I am not able to find the logic to calculate average space utilised(as day to day there will putaways,transfer postings and picking).All stocks to be taken into consideration.Let me know how to proceed.
Regards,
ManikDear Experts,
Cud u plz throw some light on this...
Regards,
Manik -
Stand alone oracle report - need help asap
Hi,
We are in ORACLE Apps 11i. We started using ORACLE BI Publisher to create templates for the Oracle Reports. How we are doing reports now is
1) create data definition XML which has all the queries embedded.
2) Create Data definition in XML Publisher Admin responsibility.
3. Attach the Data definition XML to that.
4. Create a concurrent program definition for the report with XML Type and run the report and save the data file with tags.
5. Create the template ,rtf in Word and export data using ORACLE BI Publisher. 6. Create template definition in the XML Publisher Admin responsibility and attach this .rtf to that and run the report.
Now I have a requirement stating that the REPORT SHOULD BE AN ORACLE STAND ALONE REPORT AND THE REPORT NEEDS TO BE RUN THROUGH CONCURRENT PROGRAM SCREEN. I am planning on doing the following steps.
1. I have to create an .rdf using report builder.
2. Create concurrent program executable and definition for the report.
3. Create data definition in XML Publisher admin responsibility.
4. Run the report in apps.
5. Create the tempalte .rtf in word and export data with the XML Data file with tags,
6. Run the report.
Am I correct? Any help is appreciated asap.
Thanks
AkilYou said,
standalone report ?? is that mean without using bipublisher ??
1st method.
create concurrent program, output xml,
create data template, create datadefintion , attach Datatemplate.
run the cc pgm, get xml, design RTF , create template definition , attach RTF,
run the cc pgm, you get the pdf output.
2nd method.
create rdf,
create concurrent program, output xml,
run the cc pgm, get xml, design RTF ,
create datadefintion , create template definition , attach RTF,
run the cc pgm, you get the pdf output.
, both requires, cc pgm, rtf, data defintion , template definition.
only differnece is , how do you get the data, i mean, xml...
data template or RDF. -
We have an incremental level-1 backup Mon-Sat and cold full backup on Sundays with retention policy of 7 days. While troubleshooting some backup issues (space issue, expired backups) I ran the following commands and trying to understand the output.
RMAN> report need backup database;
RMAN retention policy will be applied to the command
RMAN retention policy is set to recovery window of 7 days
Report of files whose recovery needs more than 7 days of archived logs
File Days Name
100 146 /orahprdidx/hprd/psindex05.dbf
RMAN> report unrecoverable;
Report of files that need backup due to unrecoverable operations
File Type of Backup Required Name
RMAN> report need backup days = 7 database;
Report of files whose recovery needs more than 7 days of archived logs
File Days Name
100 146 /orahprdidx/hprd/psindex05.dbf
RMAN> report obsolete recovery window of 7 days;
no obsolete backups found
RMAN>
I looks like I need 146 days worth of archive log files to recover the psindex05.dbf. If so, what I could do to bring that into the 7 days policy?
The database is fine, I am not trying to recover the database.
This was setup by someone and now I am taking over with minimum RMAN experience.
I appreciate any help in this subject.The datafile was offline. I guess it was created my mistake and hanging in there. Once I do the cleanup it should go away.
-
Hi! I am newbie to Reports need help with check boxes
Hi! I am newbie to Reports need help with check boxes. I am try-in to make a new check boxes that will validate in runtime. I have created two frames and one frame is dummy and other frame has big X line on it with conditions. Is this a right way to create check box! Please help thanks!
and one frame is dummy and other frame has big X
line on it with conditions. Is this a right way to
create check box! Please help thanks!Instead of creating a frame for X, you can create Ractangle and place X in it. Rest is fine. -
Change COPA Report - need to add Variable and Characteristics
Hello,
I need to change the existing COPA report, Need to add WBS element as a selection criteria and also a characteristics so it can be drilled down. Create WBS as a global variable in KE3E and it is not showing up in when i change the report in KE30 in the available list of characteristics. And also it is not showing up in KE35 when i change the general selection to add as a Variable.Go to KE91 and create the report.
In KE91, the Characteristic Cost element (KSTAR) is available. Add it as below.
Cost Element .... Check the box Hierarchy node ...... check the box Variable on/off ...... KSTAR...... Cost element.
After this, just check in Variable, the Cost element shuold appear
Line item based reports are defined in KE91 (segment level reports in KE31).
Both types of reports can be started in KE30 and changed in KE32
Let us know if you still have any queries
Thanks
Edited by: nkonnipati on Feb 19, 2012 5:34 AM -
Reasons for Introducing database functions for Discoverer Reporting Needs
Hi All,
I would like to know the criteria other organizations have used in creating custom database functions specifically for Discoverer reporting needs. It seems good and appropriate to identify these reasons in order that they have a sufficiently good reason (e.g. in presenting this to a change management board).
Here is a quick swipe:
-query explain plan improvements
-take away the complexity of having the end user deal with complex calculations
-consistency of a value (e.g. a complex amortization calculation)
-an attribute is used from a dependent table with a minimum cardinality of zero
Can anyone list other good reasons in terms of Discoverer reporting?
Thanks,
Patrick
Edited by: Patrick Bacon on Jul 15, 2009 10:30 AMHi Patrick
In addition to the reasons you have given the reasons for having functions anyway apply just as equally to Discoverer as they do to other applications.
Typically the main reasons why I would use a function are:
a) due to the complexity of the code, or
b) to evaluate something which an end user either could not do or does not have access to.
For example if a user needs to have aggregations from multiple tables side by side in a report, typically from tables which have no joins between them, I write functions to go get the individual results.
One specific function that I use a lot is one that calculates the number of working days between any given two days. Some of my HR customers use such a function to calculate the number of sick days for an employee when obviously only working days should count. Doing this in a normal Discoverer calculation would be very hard. Retail customers might use this for calculating the number of days it took to ship and item.
There are other reasons why I use functions but these are the typical ones.
Best wishes
Michael -
Report needed - Open materials on PO, sorted by material and not PO number
Hello,
I've been trying to obtain a report that can give me a list of materials that are open for all PO numbers. Instead of this being sorted by PO number, I want it sorted by material number.
I've gone through all the ME2 transactions (i.e. ME2L, ME2M, ME2N, etc.) and all iterations of the scope of list with the selelction parameter WE101, but every time it comes up sorting by Purchase Order and then listing the open materials on the specific PO.
I've gone through transaction ME80FN, which gives all the proper information I need, but there's no indicator in there looking for materials with only open quantities...it only gives both open and closed.
Does anyone have any recommendations for a standard SAP report that can be accessed?
Edited by: Andy Slania on Sep 27, 2010 9:15 PMAndy,
I don't think there is one in the older R/3 systems. I don't really know, because I quit looking after I discovered SAP Query (SQ01)..
If a standard SAP report doesn't meet business requirements, one can have an ABAPer create a custom (Z) report. However, another path is to use SQ02/SQ01 to create reports that may meet the needs, without commissioning a new ABAP report.
In 4.6C it is possible to create Queries that have all the data found in the ME2* reports, but additionally can have ALV output. Of course, in your case, since you can define 'sorts' in queries, ALV becomes a moot point.
A Query expert can create enhanced PO reports that will satisfy most any requirement. If the query infoset uses a SAP database, such as MEPOLDB, then it is not even necessary to create joins of tables - SAP has already done the heavy lifting.
Best Regards,
DB49 -
Hi,
One of my client needs the custom report as follows . The report should display the MONTHLY SALES QTY , AVAILABLE STOCK AT THE ENDOF THE MONTH for an Item by Warehouse or Location. The format is like this
Item1 Item2
Monthly Sale QTY, Available Stock Monthly Sale QTY, Available Stock
WHS-1 x y x y
WHS-2 x y x y
WHS-3 x y x y
if any custom query or XL- Report available , plz reply me .
Regards,
SrinivasHi Srini,
Check the thread,
Re: SALES REGISTER QUERY
Customer Aging report query
aging query
Regards,
Madhan. -
Report needs to be corrected it is urgent
Ageing Analysis of Inventory Material. This is a report for Inventory Ageing. The report is not giving correct result for the field Value of total valuated stock(MBEWH-SALK3). After displaying the report when we add up the field SALK3 it not the correct result which I got in transaction code MB5L. Can anyone kindly help me in correcting out this report. I am keeping the source code also.
*& Application : Materials Management (MM)
*& Description : Ageing Analysis of Inventory Material
*& Transaction Code :
*& Area Menu Code : ZMM
Report ZMM0001.
MAPPING OF MONTH AND PERIOD AS FINACIAL YEAR STARTS FROM APR - MAR. *
just for reference.
MONTH PERIOD
01.2003 - 10.2003
02.2003 - 11.2003
03.2003 - 12.2003
04.2003 - 01.2003
05.2003 - 02.2003
06.2003 - 03.2003
07.2003 - 04.2003
08.2003 - 05.2003
09.2003 - 06.2003
10.2003 - 07.2003
11.2003 - 08.2003
12.2003 - 09.2003
01.2004 - 10.2004
02.2004 - 11.2004
03.2004 - 12.2004
04.2004 - 01.2004
REPORT ZMMR0001 MESSAGE-ID GW NO STANDARD PAGE HEADING
LINE-COUNT 1000
LINE-SIZE 170.
*FLOWLOGIC
*This Program displays the Ageing Analysis details of Material inventory
*pick up the opening balance consider the previous month of the period
*entered in selection screen.
*Get the qty and value for all material types from mbew table but
*excludeentries where no valuation type is defined
*calculate the receipt qty pick all entries from z_mkpf_mseg where
*date( is less that or equal to the last day of the month and movement
*type equals '101', '561', '501', '951', '953', '955', '957', '301' *
*into i_mseg table.
*To calculate the reversal for receipt qty.
*To get the issue qty upto the date of receipt, delete the issue qty
*fromstock to get the exact stock value on the date the receipt of
*materials happen.
*Calculate the difference in days and mark values based on the below
*condition.
*Display the output as per the user given format.
*FLOWLOGIC
Tables
TABLES : S031, " Statistics: Movements for current stocks
S032, " Statistics: Current Stock and Grouping Terms
MBEW, " Material Valuation
MBEWH, " Material Valuation: History
MARC, " Plant Data for Material
MARA, "material master
T001W, " Plant Details
MKPF,
V_T179.
TYPE-POOLS
TYPE-POOLS: SLIS.
DATA: IT_HEADING TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: LAY TYPE SLIS_LAYOUT_ALV.
DATA: IT_SORT_SUBTOTAL TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA: IT_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: V_REPID LIKE SY-REPID.
DATA: PRDHA1(5),
PRDHA2(10),
LVL1(40),
LVL2(40),
LVL3(40).
RANGES: S_BWTAR FOR BWTAR.
INTERNAL Tables
*******For Mat. Desc.************
DATA : BEGIN OF I_MAKT OCCURS 0,
MATNR TYPE MAKT-MATNR, " Material Code
MAKTX TYPE MAKT-MAKTX, " Material Description
END OF I_MAKT.
DATA : BEGIN OF TEMP OCCURS 0,
VTEXT(40),
END OF TEMP.
*******For Mat. No. & Type & Grp*
DATA : BEGIN OF I_MARA OCCURS 0,
MATNR TYPE MARA-MATNR, " Material Code
MATKL TYPE MARA-MATKL,
MTART TYPE MARA-MTART,
MFRNR TYPE MARA-MFRNR,
END OF I_MARA.
******For Stock******************
DATA : BEGIN OF I_MBEWH OCCURS 0,
MATNR TYPE MBEWH-MATNR,
BWTAR TYPE MBEWH-BWTAR,
LBKUM TYPE MBEWH-LBKUM,
SALK3 TYPE MBEWH-SALK3,
BWKEY TYPE MBEWH-BWKEY,
VBELN TYPE EBEW-VBELN,
POSNR TYPE EBEW-POSNR,
SOBKZ TYPE QBEW-SOBKZ,
PSPNR TYPE QBEW-PSPNR,
LFGJA TYPE MBEW-LFGJA,
LFMON TYPE MBEW-LFMON,
END OF I_MBEWH.
DATA: I_MBEWH1 LIKE I_MBEWH OCCURS 0 WITH HEADER LINE.
*******For Moving Price***********
DATA : BEGIN OF I_MBEW OCCURS 0,
MATNR TYPE MBEWH-MATNR,
BWTAR TYPE MBEWH-BWTAR,
LBKUM TYPE MBEWH-LBKUM,
VERPR TYPE MBEWH-VERPR,
VPRSV TYPE MBEWH-VPRSV,
STPRS TYPE MBEWH-STPRS,
END OF I_MBEW.
DATA : BEGIN OF I_RECIPT1 OCCURS 0,
MATNR TYPE Z_MKPF_MSEG-MATNR,
NAME1 TYPE LFA1-NAME1,
MAKTX TYPE MAKT-MAKTX,
BWTAR TYPE Z_MKPF_MSEG-BWTAR,
VERPR TYPE MBEWH-VERPR,
PRDHA LIKE MARA-PRDHA,
VTEXT(40) ,
LBKUM TYPE MBEWH-LBKUM,
SALK3 TYPE MBEWH-SALK3,
QTY1 TYPE MBEWH-LBKUM,
VAL1 TYPE P DECIMALS 2,
QTY2 TYPE MBEWH-LBKUM,
VAL2 TYPE P DECIMALS 2,
QTY3 TYPE MBEWH-LBKUM,
VAL3 TYPE P DECIMALS 2,
QTY4 TYPE MBEWH-LBKUM,
VAL4 TYPE P DECIMALS 2,
QTY5 TYPE MBEWH-LBKUM,
VAL5 TYPE P DECIMALS 2,
QTY6 TYPE MBEWH-LBKUM,
VAL6 TYPE P DECIMALS 2,
QTY7 TYPE MBEWH-LBKUM,
VAL7 TYPE P DECIMALS 2,
END OF I_RECIPT1.
DATA : BEGIN OF I_MKPF_MSEG OCCURS 0,
MATNR LIKE MARA-MATNR,
MBLNR LIKE MSEG-MBLNR,
ZEILE LIKE MSEG-ZEILE,
MENGE LIKE MSEG-MENGE,
BWART LIKE MSEG-BWART,
BUDAT LIKE MKPF-BUDAT,
NET_VAL LIKE MSEG-MENGE,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
LFBNR LIKE MSEG-LFBNR,
LFPOS LIKE MSEG-LFPOS,
SHKZG LIKE MSEG-SHKZG,
MEINS LIKE MARA-MEINS,
SMBLN LIKE MSEG-SMBLN,
SMBLP LIKE MSEG-SMBLP,
END OF I_MKPF_MSEG,
WA_MSEG LIKE I_MKPF_MSEG.
********For Material Movement***
DATA: BEGIN OF I_MSEG OCCURS 0,
MBLNR TYPE Z_MKPF_MSEG-MBLNR,
MATNR TYPE Z_MKPF_MSEG-MATNR,
WERKS TYPE Z_MKPF_MSEG-WERKS,
BWART TYPE Z_MKPF_MSEG-BWART,
BUDAT TYPE Z_MKPF_MSEG-BUDAT,
MENGE TYPE Z_MKPF_MSEG-MENGE,
MEINS TYPE Z_MKPF_MSEG-MEINS,
BWTAR TYPE Z_MKPF_MSEG-BWTAR,
NET_VAL LIKE MSEG-MENGE,
ZEILE TYPE MSEG-ZEILE,
END OF I_MSEG.
********For Material Monvment(Reverse)***
DATA: BEGIN OF I_MSEG1 OCCURS 0,
MBLNR TYPE Z_MKPF_MSEG-MBLNR,
MATNR TYPE Z_MKPF_MSEG-MATNR,
WERKS TYPE Z_MKPF_MSEG-WERKS,
BWART TYPE Z_MKPF_MSEG-BWART,
BUDAT TYPE Z_MKPF_MSEG-BUDAT,
MENGE TYPE Z_MKPF_MSEG-MENGE,
MEINS TYPE Z_MKPF_MSEG-MEINS,
BWTAR TYPE Z_MKPF_MSEG-BWTAR,
SMBLN TYPE Z_MKPF_MSEG-SMBLN,
SMBLP TYPE Z_MKPF_MSEG-SMBLP,
END OF I_MSEG1.
DATA: I_MSEG2 LIKE I_MSEG1 OCCURS 0 WITH HEADER LINE.
********For Recipt Details*******
DATA: BEGIN OF I_RECIPT OCCURS 0,
MATNR TYPE Z_MKPF_MSEG-MATNR,
BWTAR TYPE Z_MKPF_MSEG-BWTAR,
BUDAT TYPE Z_MKPF_MSEG-BUDAT,
DAYS TYPE P,
QTY TYPE Z_MKPF_MSEG-MENGE,
MONTH(3),
YEAR(4),
VERPR TYPE MBEWH-VERPR,
COST TYPE P DECIMALS 2,
MARK(1),
END OF I_RECIPT.
DATA: BEGIN OF I_PLANT OCCURS 0,
WERKS LIKE T024W-WERKS,
EKORG LIKE T024W-EKORG,
BUKRS LIKE T024E-BUKRS,
CHK(1) TYPE C,
END OF I_PLANT.
DATA: BEGIN OF I_USERGRP OCCURS 0.
INCLUDE STRUCTURE USGRP_USER.
DATA: VKORG LIKE VBAK-VKORG,
END OF I_USERGRP.
DATA: MUGRP LIKE USGRP_USER-USERGROUP.
DATA: MUNAME LIKE SY-UNAME,
MMSGTX1(50) TYPE C.
*********For Temp.Values*****
*data: begin of i_temp occurs 0,
matnr type z_mkpf_mseg-matnr,
bwtar type z_mkpf_mseg-bwtar,
budat type z_mkpf_mseg-budat,
menge type z_mkpf_mseg-menge,
end of i_temp.
DATA: DAYS(2).
DATA: NET_VAL LIKE MSEG-MENGE.
DATA: DATE1 TYPE D.
DATA: DATE2 TYPE D.
DATA: MBLNR TYPE MSEG-MBLNR.
DATA: MATNR TYPE MSEG-MATNR.
DATA: BWTAR TYPE MSEG-BWTAR.
DATA : V_DATE TYPE SY-DATUM.
DATA : X(2) TYPE C VALUE '01'.
DATA : P TYPE T009B-POPER. " MONTH
DATA : Q TYPE T009B-BDATJ. " YEAR
DATA : A TYPE T009B-POPER. " FOR MONTH WHERE MONTH STARTS AT APRIL
DATA : B(4) TYPE C. " FOR YEAR
DATA : DATE TYPE SY-DATUM.
DATA: NUMBER_OF_DAYS TYPE P.
DATA: DAT TYPE D.
DATA : X1(2) .
DATA: VPRSV TYPE MBEWH-VPRSV,
STPRS TYPE MBEWH-STPRS.
DATA: C TYPE C VALUE 0,
S(10).
Parameter / Selection - screens
SELECTION-SCREEN BEGIN OF BLOCK IND1 WITH FRAME TITLE TEXT_001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(28) TEXT_002 FOR FIELD P_WERKS.
PARAMETERS : P_WERKS LIKE S031-WERKS OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(28) TEXT_003 FOR FIELD P_SPMON.
PARAMETERS : P_SPMON LIKE S031-SPMON MODIF ID ABC .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) TEXT_004 FOR FIELD S_MATNR.
SELECT-OPTIONS : S_MATNR FOR S031-MATNR.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK IND1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT_005.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) TEXT_006 FOR FIELD SO_MATTP.
SELECT-OPTIONS : SO_MATTP FOR MARA-MTART.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) TEXT_007 FOR FIELD SO_MATGP.
SELECT-OPTIONS : SO_MATGP FOR MARA-MATKL.
SELECTION-SCREEN END OF LINE.
begin of changes by cvns01
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) TEXT_008 FOR FIELD SO_MFRNR.
SELECT-OPTIONS : SO_MFRNR FOR MARA-MFRNR.
SELECTION-SCREEN END OF LINE.
end of changes by cvns01
*changes
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) TEXT_009 FOR FIELD SO_MFRNR.
SELECT-OPTIONS : SO_PRDHA FOR MARA-PRDHA NO INTERVALS."NO-EXTENSION.
SELECTION-SCREEN END OF LINE.
*end
SELECTION-SCREEN END OF BLOCK B2.
Initialization
INITIALIZATION.
TEXT_001 = 'Required Data'.
TEXT_002 = 'Plant'.
TEXT_003 = 'Period to analyze - month'.
TEXT_004 = 'Material Number'.
TEXT_005 = 'Optional Data'.
TEXT_006 = 'Material Type'.
TEXT_007 = 'Material Group'.
start of changes by cvns01
TEXT_008 = 'Manufacturer No.'.
TEXT_009 = 'Product Hierarchy'.
end of changes by cvns01
CLEAR:P,Q.
CLEAR A.
P = SY-DATUM+4(2).
SHIFT P LEFT DELETING LEADING C.
Q = SY-DATUM(4).
IF P <= 9.
CONCATENATE Q '0' P INTO S. "p_spmon.
ELSE.
CONCATENATE Q P INTO S. "p_spmon.
ENDIF.
*concatenate q p into s. "p_spmon.
CONDENSE S.
P_SPMON = S.
AT SELECTION-SCREEN ON WERKS
AT SELECTION-SCREEN ON P_WERKS.
CHECK SY-UCOMM = 'ONLI'.
SELECT SINGLE * FROM T001W WHERE WERKS EQ P_WERKS.
IF SY-SUBRC NE 0.
MESSAGE E999 WITH 'Invalid Plant'.
ENDIF.
SELECT T024W~WERKS T024E~EKORG T024E~BUKRS
INTO CORRESPONDING FIELDS OF TABLE I_PLANT
FROM T024W
JOIN T024E ON T024E~EKORG = T024W~EKORG
WHERE T024W~WERKS EQ P_WERKS.
SORT I_PLANT BY WERKS.
DELETE ADJACENT DUPLICATES FROM I_PLANT COMPARING WERKS.
SELECT * INTO CORRESPONDING FIELDS OF TABLE I_USERGRP
FROM USGRP_USER
WHERE BNAME = SY-UNAME.
IF I_USERGRP[] IS INITIAL.
MESSAGE E208(00) WITH 'You are not authorised to view this report'.
ENDIF.
LOOP AT I_USERGRP.
CONCATENATE I_USERGRP-USERGROUP(2) '00' INTO I_USERGRP-VKORG.
MODIFY I_USERGRP.
ENDLOOP.
LOOP AT I_USERGRP.
LOOP AT I_PLANT WHERE BUKRS = I_USERGRP-VKORG.
I_PLANT-CHK = 'X'.
MODIFY I_PLANT.
ENDLOOP.
ENDLOOP.
*delete i_plant where chk = ''.
IF NOT I_PLANT[] IS INITIAL.
LOOP AT I_PLANT.
IF I_PLANT-CHK = ''.
CLEAR P_WERKS.
CONCATENATE 'You are not authorised for plant ' I_PLANT-WERKS INTO MMSGTX1 SEPARATED BY SPACE.
MESSAGE E208(00) WITH MMSGTX1.
ENDIF.
ENDLOOP.
ENDIF.
IF P_WERKS = ''.
MESSAGE E208(00) WITH 'Select/Enter Plant'.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'ABC'.
SCREEN-INPUT = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN
*AT SELECTION-SCREEN .
SELECT SINGLE * FROM s031 WHERE werks EQ p_werks
AND spmon EQ p_spmon
AND matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE e999 WITH 'NO VALUES EXIST FOR SELECTION CRITERIA'.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
PERFORM PRDHA_INITIALIZATION.
PERFORM FETCH_DATA.
PERFORM DISPLAY_DATA.
END-OF-SELECTION.
*& Form FETCH_DATA
text
--> p1 text
<-- p2 text
FORM FETCH_DATA .
CLEAR:P,Q.
CLEAR A.
P = P_SPMON+4(2).
Q = P_SPMON+0(4).
******Materials**********************************
changes made by akshatha
SELECT MARA~MATNR
FROM MARA
JOIN MARC
ON MARCMATNR = MARAMATNR
INTO CORRESPONDING FIELDS OF TABLE I_MARA
WHERE MARA~MATNR IN S_MATNR
AND MARC~WERKS = P_WERKS
AND MARA~MTART IN SO_MATTP
AND MARA~MATKL IN SO_MATGP
AND MARA~MFRNR IN SO_MFRNR
AND MARA~PRDHA IN SO_PRDHA.
end of changes
To get material description for the material
IF NOT I_MARA[] IS INITIAL.
SELECT MATNR
MAKTX
FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR
AND SPRAS = SY-LANGU.
TO GET OPEN BALANCE QTY WE NEED TO CONSIDER PREVIOUS MONTH OF THE
CORRESPONDING PERIOD
WE WILL GET PROBLEM ONLY PROBLEM WHEN PERIOD IS '01'. THEN WE MUST
CONSIDER FOR 12 TH MONTH OF PREVIOUS YEAR.
****Closing Stock as on Selection-Screen Month....
*By Default last date of month is taken
changed by akshatha
CONCATENATE P_SPMON X INTO V_DATE.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
I_DATE = V_DATE
I_MONMIT = 00
I_PERIV = 'V3'
IMPORTING
E_BUPER = A
E_GJAHR = Q
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
to get stock quantity
SELECT MATNR LBKUM SALK3 BWKEY LFGJA LFMON
FROM MBEWH
INTO CORRESPONDING FIELDS OF TABLE I_MBEWH
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS AND BWTAR IN S_BWTAR
AND LFGJA = Q
AND LFMON = A
AND LBKUM > '0.0'.
SELECT MATNR LBKUM SALK3 BWKEY VBELN POSNR LFGJA LFMON
FROM EBEWH
APPENDING CORRESPONDING FIELDS OF TABLE I_MBEWH
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS
AND BWTAR IN S_BWTAR
AND LFGJA = Q
AND LFMON = A
AND LBKUM > '0.0'.
and VPRSV = 'S'.
SELECT MATNR LBKUM SALK3 BWKEY SOBKZ PSPNR LFGJA LFMON
FROM QBEWH
APPENDING CORRESPONDING FIELDS OF TABLE I_MBEWH
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS
AND BWTAR IN S_BWTAR
AND LFGJA = Q
AND LFMON = A
AND LBKUM > '0.0'.
SELECT MATNR LBKUM SALK3 BWKEY BWTAR
FROM MBEW
INTO CORRESPONDING FIELDS OF TABLE I_MBEWH1
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS
AND LBKUM > '0.0'.
SELECT MATNR LBKUM SALK3 BWKEY VBELN POSNR SOBKZ BWTAR
FROM EBEW
APPENDING CORRESPONDING FIELDS OF TABLE I_MBEWH1
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS
AND LBKUM > '0.0'.
SELECT MATNR LBKUM SALK3 BWKEY BWTAR SOBKZ PSPNR
FROM QBEW
APPENDING CORRESPONDING FIELDS OF TABLE I_MBEWH1
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR
AND BWKEY = P_WERKS
AND LBKUM > '0.0'.
SORT I_MBEWH BY MATNR BWKEY.
SORT I_MBEWH1 BY MATNR BWKEY.
LOOP AT I_MBEWH.
LOOP AT I_MBEWH1 WHERE MATNR = I_MBEWH-MATNR
AND BWKEY = I_MBEWH-BWKEY.
DELETE I_MBEWH1.
ENDLOOP.
ENDLOOP.
APPEND LINES OF I_MBEWH1 TO I_MBEWH.
CLEAR : I_MBEWH1.
REFRESH I_MBEWH1.
SORT I_MBEWH BY MATNR.
LOOP AT I_MBEWH .
I_MBEWH1 = I_MBEWH.
AT END OF MATNR.
SUM.
I_MBEWH1-LBKUM = I_MBEWH-LBKUM.
I_MBEWH1-SALK3 = I_MBEWH-SALK3.
APPEND I_MBEWH1.
ENDAT.
ENDLOOP.
DELETE I_MBEWH1 WHERE LBKUM <= 0.
I_MBEWH[] = I_MBEWH1[].
end of changes
loop at i_mara.
concatenate p_spmon x into v_date.
call function 'DATE_TO_PERIOD_CONVERT'
exporting
i_date = v_date
I_MONMIT = 00
i_periv = 'V3'
importing
e_buper = a
e_gjahr = q
exceptions
input_false = 1
t009_notfound = 2
t009b_notfound = 3
others = 4 .
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
To get STOCK QUANTITY and STOCK VALUE for All Valuation Type
select matnr
bwtar
lbkum
salk3
from mbewh
into corresponding fields of i_mbewh
where matnr = i_mara-matnr
and bwkey = p_werks
and lfmon = a " 'A' IS PERIOD FOR FISCAL YR
and lfgja = q.
collect i_mbewh.
clear i_mbewh.
endselect.
if sy-subrc ne 0.
select matnr
bwtar
lbkum
salk3
from mbew
into corresponding fields of i_mbewh
where matnr = i_mara-matnr
and bwkey = p_werks.
collect i_mbewh.
clear i_mbewh.
endselect.
endif.
endloop.
end of changes
Logic: If the Val. Type is defined then for that material dont take
the line item where Val. Type is blank......
sort i_mbewh by matnr bwtar.
i_mbewh1[] = i_mbewh[].
delete i_mbewh where bwtar = ' '.
loop at i_mbewh1.
read table i_mbewh with key matnr = i_mbewh1-matnr.
if sy-subrc <> 0.
move-corresponding i_mbewh1 to i_mbewh.
append i_mbewh.
endif.
endloop.
sort i_mbewh by matnr bwtar.
i_mbewh1[] = i_mbewh[].
end of changes
*****************Last Date of the month is Calculated to find Qty
DAT = V_DATE.
CALL FUNCTION 'HR_E_NUM_OF_DAYS_OF_MONTH'
EXPORTING
P_FECHA = DAT
IMPORTING
NUMBER_OF_DAYS = NUMBER_OF_DAYS.
X1 = NUMBER_OF_DAYS.
CONCATENATE P_SPMON X1 INTO DATE.
********RECIPT QTY FETCHING*************************
select mblnr
matnr
bwart
budat
menge
meins
bwtar
zeile
from z_mkpf_mseg
into (i_mseg-mblnr,
i_mseg-matnr,
i_mseg-bwart,
i_mseg-budat,
i_mseg-menge,
i_mseg-meins,
i_mseg-bwtar,
i_mseg-zeile)
for all entries in i_mbewh
where matnr = i_mbewh-matnr and werks = p_werks
and ( budat le date or budat eq date )
and bwart in ('101','561','501','951','953','955',
**'957','301','105')
and bwtar = i_mbewh-bwtar.
append i_mseg.
clear i_mseg.
endselect.
select mblnr
matnr
bwart
budat
menge
meins
bwtar
zeile
from mseg "z_mkpf_mseg
into corresponding fields of table i_mseg
(i_mseg-mblnr,
i_mseg-matnr,
i_mseg-bwart,
i_mseg-budat,
i_mseg-menge,
i_mseg-meins,
i_mseg-bwtar,
i_mseg-zeile)
for all entries in i_mbewh
where matnr = i_mbewh-matnr and werks = p_werks
and ( budat le date or budat eq date )
and bwart in ('101','561','501','951','953','955',
***'957','301','105')
and bwart in ('101','561','501','951','953','955',
*'957','301','309','105')
and bwtar = i_mbewh-bwtar.
loop at i_mseg.
select single * from mkpf
where mblnr = i_mseg-mblnr.
if ( mkpf-budat ge date ).
delete i_mseg where mblnr = i_mseg-mblnr.
else.
i_mseg-budat = mkpf-budat.
modify i_mseg.
endif.
endloop.
sort i_mseg descending by matnr bwtar budat.
**********For Reversal FOR RECIPT(CHECK FOR REFERENCE)
**********(102,562,502,952,954,956,958)
select mblnr
matnr
bwart
menge
meins
bwtar
smbln
smblp
from mseg
into corresponding fields of table i_mseg1
for all entries in i_mbewh
where matnr = i_mbewh-matnr and werks = p_werks
and bwart in ('102','562','502','952','954','956','958','302')
and bwtar = i_mbewh-bwtar.
loop at i_mseg1.
select single * from mkpf
where mblnr = i_mseg1-mblnr.
if ( mkpf-budat ge date ).
delete i_mseg1 where mblnr = i_mseg1-mblnr.
else.
i_mseg1-budat = mkpf-budat.
modify i_mseg1.
endif.
endloop.
loop at i_mseg1.
read table i_mseg with key mblnr = i_mseg1-smbln
zeile = i_mseg1-smblp.
if sy-subrc = 0.
i_mseg-menge = i_mseg-menge - i_mseg1-menge.
delete i_mseg where mblnr = i_mseg1-smbln and
zeile = i_mseg1-smblp.
move-corresponding i_mseg to i_mseg2.
append i_mseg2.
endif.
endloop.
loop at i_mseg2.
move-corresponding i_mseg2 to i_mseg.
append i_mseg.
endloop.
end of changes.
SELECT MSEGMATNR MSEGMBLNR MSEGZEILE MSEGMENGE MSEGBWART MSEGEBELN
MSEGEBELP MSEGSMBLN MSEG~SMBLP
MKPFBUDAT MSEGSHKZG
FROM MKPF
JOIN MSEG ON MSEGMBLNR = MKPFMBLNR
AND MSEGMJAHR = MKPFMJAHR
INTO CORRESPONDING FIELDS OF TABLE I_MKPF_MSEG
FOR ALL ENTRIES IN I_MARA
WHERE MSEG~MATNR = I_MARA-MATNR
AND MSEG~WERKS = P_WERKS
AND MKPF~BUDAT LE DATE
AND MSEG~BWART IN ('101','105','561','501','301','309','951','953','955','957','712','657','658',
'521','522','303','304','102','562','502','952','954','956','958','302').
DELETE I_MKPF_MSEG WHERE ( BWART = '309' AND SHKZG = 'H' )
OR ( BWART = '303' AND SHKZG = 'H' )
OR ( BWART = '304' AND SHKZG = 'S' )
OR ( BWART = '657' AND SHKZG = 'H' )
OR ( BWART = '658' AND SHKZG = 'S' ).
SORT I_MKPF_MSEG BY MATNR MBLNR.
LOOP AT I_MKPF_MSEG.
if i_mkpf_mseg-bwart = '101' or i_mkpf_mseg-bwart = '102'.
select single * from ekpo where ebeln = i_mkpf_mseg-ebeln
and ebelp = i_mkpf_mseg-ebelp.
if ekpo-pstyp = 7.
delete i_mkpf_mseg where ebeln = i_mkpf_mseg-ebeln
and ebelp = i_mkpf_mseg-ebelp.
CLEAR I_MKPF_MSEG-MENGE.
endif.
endif.
IF ( I_MKPF_MSEG-BWART = '101' OR I_MKPF_MSEG-BWART = '105' OR I_MKPF_MSEG-BWART = '561' OR
I_MKPF_MSEG-BWART = '501' OR I_MKPF_MSEG-BWART = '301' OR I_MKPF_MSEG-BWART = '309' OR
I_MKPF_MSEG-BWART = '951' OR I_MKPF_MSEG-BWART = '953' OR I_MKPF_MSEG-BWART = '955' OR
I_MKPF_MSEG-BWART = '957' OR I_MKPF_MSEG-BWART = '303' OR I_MKPF_MSEG-BWART = '521' OR
I_MKPF_MSEG-BWART = '712' OR I_MKPF_MSEG-BWART = '657' ).
NET_VAL = NET_VAL + I_MKPF_MSEG-MENGE.
ENDIF.
LOOP AT I_MKPF_MSEG WHERE MATNR = I_MKPF_MSEG-MATNR.
IF ( I_MKPF_MSEG-BWART = '102' OR I_MKPF_MSEG-BWART = '562' OR
I_MKPF_MSEG-BWART = '502' OR I_MKPF_MSEG-BWART = '952' OR
I_MKPF_MSEG-BWART = '954' OR I_MKPF_MSEG-BWART = '956' OR
I_MKPF_MSEG-BWART = '958' OR I_MKPF_MSEG-BWART = '302' OR
I_MKPF_MSEG-BWART = '304' OR I_MKPF_MSEG-BWART = '522' OR
I_MKPF_MSEG-BWART = '658' ) AND
( I_MKPF_MSEG-MBLNR = I_MKPF_MSEG-SMBLN AND
I_MKPF_MSEG-ZEILE = I_MKPF_MSEG-SMBLP ).
NET_VAL = NET_VAL - I_MKPF_MSEG-MENGE.
DELETE I_MSEG WHERE MBLNR = I_MSEG1-SMBLN AND
ZEILE = I_MSEG1-SMBLP.
ENDIF.
ENDLOOP.
WA_MSEG = I_MKPF_MSEG.
AT END OF MATNR.
I_MSEG-MATNR = WA_MSEG-MATNR.
I_MSEG-MENGE = NET_VAL.
I_MSEG-BUDAT = WA_MSEG-BUDAT.
APPEND I_MSEG.
CLEAR NET_VAL.
ENDAT.
ENDLOOP.
end of changes
DELETE I_MSEG WHERE MENGE = '0.000'.
SORT I_MSEG DESCENDING BY MATNR BWTAR BUDAT.
***#******RECIPT COMPLETE FINAL TABLE( I_MSEG)**********
********IF THE VAL. TYPE IS NOT THERE THEN PUT 'X'
loop at i_mbewh.
if i_mbewh-bwtar = ' '.
i_mbewh-bwtar = 'X'.
modify i_mbewh.
endif.
endloop.
delete i_mbewh where lbkum = '0.00'.
end of changes
loop at i_mseg.
if i_mseg-bwtar = ' '.
i_mseg-bwtar = 'X'.
modify i_mseg.
endif.
endloop.
end of changes
DATA: MENGE TYPE MSEG-MENGE.
start of changes by akshatha
SORT I_MSEG BY MATNR BWTAR.
SORT I_MBEWH BY MATNR BWTAR.
LOOP AT I_MSEG.
if condition, read and it_mseg-loop commented by akshatha.
if i_mbewh-lbkum > '0.00'.
read table i_mbewh with key matnr = i_mseg-matnr
bwtar = i_mseg-bwtar.
loop at i_mseg .
if ( i_mseg-mblnr <> mblnr ) and ( i_mseg-matnr ne i_temp-matnr
or i_mseg-bwtar ne i_temp-bwtar ) .
i_temp-matnr = i_mseg-matnr.
i_temp-bwtar = i_mseg-bwtar.
i_temp-budat = i_mseg-budat.
i_temp-menge = i_mseg-menge.
mblnr = i_mseg-mblnr.
matnr = i_mseg-matnr.
bwtar = i_mseg-bwtar.
append i_temp.
end of changes
delete i_mseg .
loop at i_mbewh where matnr = matnr
and bwtar = bwtar.
end of changes
LOOP AT I_MBEWH WHERE MATNR = I_MSEG-MATNR
AND BWTAR = I_MSEG-BWTAR.
FOR GETTING THE VALUES OF ISSUES ON & UPTO THE DATE OF RECIPT.
DELETE THE ISSUE QTY FROM STOCK SO THAT WE CAN GET THE EXACT STOCK
VALUE ON THE DATE WHEN RECIPT OF MATERIAL HAS HAPPEN
ISSUES R NOTHING BUT TYPE OF CONSUPTION.
commented and changed by akshatha
if ( i_mbewh-lbkum >= i_temp-menge ).
IF ( I_MBEWH-LBKUM >= I_MSEG-MENGE ).
I_RECIPT-MATNR = I_MBEWH-MATNR.
I_RECIPT-BWTAR = I_MBEWH-BWTAR.
i_recipt-budat = i_temp-budat.
I_RECIPT-BUDAT = I_MSEG-BUDAT.
end of changes
*Type Conversion From Sy-datum to type d.
DATE1 = DATE.
DATE2 = I_RECIPT-BUDAT.
*Type Conversion From Sy-datum to type d.
CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
DATE1 = DATE1
TIME1 = SY-UZEIT
DATE2 = DATE2
TIME2 = SY-UZEIT
IMPORTING
DATEDIFF = I_RECIPT-DAYS.
IF SY-SUBRC <> 0.
ENDIF.
i_recipt-qty = i_temp-menge.
I_RECIPT-QTY = I_MSEG-MENGE.
i_mbewh-lbkum = i_mbewh-lbkum - i_temp-menge.
I_MBEWH-LBKUM = I_MBEWH-LBKUM - I_MSEG-MENGE.
elseif ( i_mbewh-lbkum < i_temp-menge ).
ELSEIF ( I_MBEWH-LBKUM < I_MSEG-MENGE ).
I_RECIPT-MATNR = I_MBEWH-MATNR.
I_RECIPT-BWTAR = I_MBEWH-BWTAR.
i_recipt-budat = i_temp-budat.
I_RECIPT-BUDAT = I_MSEG-BUDAT.
*Type Conversion From Sy-datum to type d.
DATE1 = DATE.
DATE2 = I_RECIPT-BUDAT.
*Calculation of Difference of dates
CALL FUNCTION 'SD_DATETIME_DIFFERENCE'
EXPORTING
DATE1 = DATE1
TIME1 = SY-UZEIT
DATE2 = DATE2
TIME2 = SY-UZEIT
IMPORTING
DATEDIFF = I_RECIPT-DAYS.
IF SY-SUBRC <> 0.
ENDIF.
I_RECIPT-QTY = I_MBEWH-LBKUM.
I_MBEWH-LBKUM = '0.00'.
ENDIF.
MODIFY I_MBEWH.
APPEND I_RECIPT.
exit.
end of changes
ENDLOOP.
endif.
IF I_MBEWH-LBKUM <> '0.00'.
clear i_temp.
CLEAR I_MSEG.
ENDIF.
endloop.
endif.
end of changes
ENDLOOP.
**********FINAL RECIPT TABLE WITH AGE
SORT I_RECIPT BY MATNR BWTAR DAYS.
LOOP AT I_RECIPT.
*Calculation of Fiscal yr for moving price.
PERFORM PERIOD_CALCULATION USING I_RECIPT-BUDAT+4(2)
I_RECIPT-BUDAT+0(4) I_RECIPT-MONTH
I_RECIPT-YEAR.
IF I_RECIPT-BWTAR = 'X'.
I_RECIPT-BWTAR = ' '.
ENDIF.
**************Moving Price for All material for all months......
SELECT SINGLE VERPR
VPRSV
STPRS
FROM MBEWH
INTO (I_RECIPT-VERPR,
VPRSV,
STPRS )
WHERE MATNR = I_RECIPT-MATNR
AND BWTAR = I_RECIPT-BWTAR
AND BWKEY = P_WERKS
AND LFMON = I_RECIPT-MONTH
AND LFGJA = I_RECIPT-YEAR
and lbkum = i_recipt-qty.
IF SY-SUBRC <> 0.
SELECT SINGLE VERPR
VPRSV
STPRS
FROM MBEW
INTO (I_RECIPT-VERPR,
VPRSV,
STPRS )
WHERE MATNR = I_RECIPT-MATNR
AND BWKEY = P_WERKS
and lbkum = i_recipt-qty.
ENDIF.
IF I_RECIPT-VERPR IS INITIAL.
SELECT SINGLE VERPR
VPRSV
STPRS
FROM EBEWH
INTO (I_RECIPT-VERPR,
VPRSV,
STPRS )
WHERE MATNR = I_RECIPT-MATNR
AND BWTAR = I_RECIPT-BWTAR
AND BWKEY = P_WERKS
AND LFMON = I_RECIPT-MONTH
AND LFGJA = I_RECIPTNever mind. I updated my aperture in app store and it fixed the problem. Thank you.
-
Report Needed to show WBS and Profit Center on Invoices
I need a report of open and cleared invoices that show the WBS and Profit Center.
I have tried the FBL5N and it doesn't populate it. Any other reports out there???You dont have to join them. Keep both profit center and cost centre in the cube. While defining the update rules, derive profit center from cot centre.
In the report , keep profit center and cost centre as free char.
The users can dynamically drill down and view the report for cost centre or profit centre or both.
Another idea is to keep profit centre as a nav attribute in the cube and in that case, you dont have to derive profit centre from cost centre in the update rules.
Ravi Thotahdri -
SQL Report--NEED to display HYPERLINK
Hi. I need to display a hyperlink for one of the columns in a SQL Report. Here are my columns url, name, type.
I want the name column to be hyperlinks to the corresponding entry in the url column.
Here's the sql that I was trying to get to work based on what someone else helped me with:
select type, ''| |name| |''web
from interop.links
Here is the results when I run the report:
<#''.LABEL#>
<#''.FIELD#>
<#''.FIELD#>
<#''.FIELD#>
<#''.FIELD#>
<#''.FIELD#> ...etc, etc.
Does anyone have suggestions for what I am doing wrong or another solution? I really need to figure out how to do this. Thanks!
Michelle
nullHi,
Here is what I understand from your question.
You have 3 columns
URL
NAME
TYPE
Say you have url=> www[dot]oracle[dot]com
name=>Uncle Larry is always right
you want name to have a href which points to
the value in column url
so you need
select url as the_url,''| |name| |'' as the_name,type from the table
null -
Ar aging report, need help urgent please help!
Hey All Gurus,
Im in a thick soup here. I am trying to do something like this -
if you see the selection screen i have rep and super rep, when a user enters a rep value --- it should use the same value to pull all open items for the super rep as well, since they are essentially the same. please help! this one needs to be done fast. i am pasting the code so that it will be easier ...
thanks a million!
*& Report ZFDOFW04_NEW
REPORT ZFDOFW04_NEW MESSAGE-ID FR
LINE-SIZE 132
LINE-COUNT 60.
*==================================================================
Program: ZFDOFW03 - Aged Trial Balance Report
This produces an Accounts Receivable Past Due Aging Report
in a more simplified/condensed format than the
SAP supplied aging report program - RFDOPR10.
This program is a modified copy of RFDOFW00, - a SAP
Future-Due Report.
This was a 'rush' job - program probably should be
rewritten someday not using logical databases as that
maybe why this runs so slowly!
Original: Feb 1997.
MAINTENANCE HISTORY:
NES071797 Copied from ZFDOFW03. Adding parameter for saeles rep.
JDEDERER - changed header text so it is differnet from ZFDORW03. 9/23
*TEXT SYMBOLS :
001 Open items per
002 O p e n
003 D u e o n
004 cc ba in total
005 until
006 Days until
007 Days over
008 Days
009 over
011 valid until........
012 Insurance limit.....
016 F u t u r e
017 + days
018 D u e
020 Last dunn.notice...
021 Dunning level....
030 S U M M A R Y S H E E T
031 =====================
050 Name Page
051 Burton Snowboard
SELECTION TEXTS:
SUMMEN Output totals only
TAGE1 Due date I until
TAGE2 Due date II until
TAGE3 Due date III until
TAGE4 Due date IV until
TABLES: T001, KNA1, KNB1, KNB5, BSID, BSEGA, RFPDO1, KNVP,
T014, "credit control areas JAM
KNVK, "cust master - contact partner JAM
T014T, "Credit control areas names
BKPF, "TONY ISSUE 4743
TVKO, "TONY ISSUE 4743
KNKK. "cust master - credit mgmt JAM
TYPES: BEGIN OF TOT_TYPE, "DEVK939546
BUKRS LIKE LFB1-BUKRS, "DEVK939546
GSBER LIKE BSIK-GSBER, "DEVK939546
KKBER LIKE BSID-KKBER,
RAST1 TYPE P, "DEVK939546
RAST2 TYPE P, "DEVK939546
RAST3 TYPE P, "DEVK939546
RAST4 TYPE P, "DEVK939546
RAST5 TYPE P, "DEVK939546
RAST6 TYPE P, "DEVK939546
RAST7 TYPE P, "DEVK939546
END OF TOT_TYPE, "DEVK939546
TOT_TAB TYPE TOT_TYPE OCCURS 0. "DEVK939546
CONSTANTS:
C_FALSE TYPE I VALUE 0, "JAM
C_TRUE TYPE I VALUE 1.
DATA: BEGIN OF GTAB OCCURS 1000,
SUPER(10) TYPE C, "TONYC
REP(10) TYPE C, "TONYC
FILKD(10), "tonyc show buying groups
LAND1 LIKE KNA1-LAND1,
GSBER LIKE BSIK-GSBER,
REGIO LIKE KNA1-REGIO,
NAME1 LIKE KNA1-NAME1,
NAME2 LIKE KNA1-NAME2,
ORT01 LIKE KNA1-ORT01,
TELF1 LIKE KNVK-TELF1, "telephone number JAM
CONT_NAME1 LIKE KNVK-NAME1, "contact name JAM
NAMEV LIKE KNVK-NAMEV, "contact name JAM
KUNNR LIKE KNA1-KUNNR, "TONYC
BUKRS LIKE LFB1-BUKRS, "TONYC
KKBER LIKE BSID-KKBER, "tonyc issue #2500
ZTERM LIKE KNB1-ZTERM, "tonyc issue #2500
KLIMK_TXT(22) TYPE C, "credit limit JAM
WAERS LIKE T014-WAERS, "currency JAM
SORT_GSB, "TONYC
RAST1 TYPE P,
RAST2 TYPE P,
RAST3 TYPE P,
RAST4 TYPE P,
RAST5 TYPE P,
RAST6 TYPE P,
RAST7 TYPE P,
T_IND,
END OF GTAB.
DATA HOLD_NAME(40).
DATA HOLD_BUKRS LIKE T001-BUKRS. "tonyc
DATA GOOD_SUPER_REP. "tonyc
DATA: HOLD_REP LIKE KNA1-KUNNR, "tonyc
SUPER_NAME LIKE KNA1-NAME1, "tonyc
REP_NAME LIKE KNA1-NAME1. "tonyc
DATA NAME_LENGTH(2) TYPE C. "tonyc
DATA BACKSLASH(3) VALUE ' / '. "tonyc
DATA REPS_INFO(70) TYPE C. "tonyc
DATA REPORT_TYPE(12) TYPE C.
DATA: C_CREDIT_ABTNR LIKE KNVK-ABTNR. "dept 003 = credit
DATA Z_HOLD_LIMIT(22) TYPE N. "tonyc issue#2216
DATA Z_DESCRIPTION(18). "tonyc issue#2216
DATA WRITE_TOTAL.
DATA HOLD_KLIMK LIKE KNKK-KLIMK.
DATA HOLD_KLIMK2(22) TYPE C.
DATA HOLD-CTLPC LIKE KNKK-CTLPC.
DATA HOLD-CTLPC-TEXT LIKE T691T-RTEXT.
DATA HOLD_ZTERM LIKE KNVV-ZTERM.
DATA TOTAL_RAST7 TYPE P.
DATA TOTAL_RAST2 TYPE P.
DATA TOTAL_RAST3 TYPE P.
DATA TOTAL_RAST4 TYPE P.
DATA TOTAL_RAST5 TYPE P.
DATA TOTAL_RAST6 TYPE P.
DATA TOTAL_RAST1 TYPE P.
DATA HOLD_BUKRS2 LIKE T001-BUKRS.
DATA HOLD_KKBER LIKE BSID-KKBER.
DATA HOLD_KKBER_DESC LIKE T014T-KKBTX.
DATA HOLD_KKBER_DESC2 LIKE T014T-KKBTX.
DATA HOLD_KUNNR2 LIKE KNA1-KUNNR.
DATA L_FIRST_DAY_OF_FISCAL LIKE SY-DATUM. "tonyc issue #3047
DATA: STAB TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
RTOT TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
STOT TYPE TOT_TAB WITH HEADER LINE, "DEVK939546
OP,
MAXMANDT LIKE DD_STIDA,
MAXMANST TYPE P,
SUMKLIMB TYPE P,
SUMVLIBB TYPE P,
VERZUG TYPE P,
OBAD TYPE P,
BLOCK_CNT TYPE P,
INTENS,
ONEBYTE(1) TYPE C,
TAGE1A LIKE RFPDO1-ALLGFAEL,
TAGE2A LIKE RFPDO1-ALLGFAEL,
TAGE3A LIKE RFPDO1-ALLGFAEL,
HOLD_KUNNR LIKE KNA1-KUNNR, "tonyc
HOLD_SUPER LIKE KNA1-KUNNR, "tonyc
HOLD_REP2 LIKE KNA1-KUNNR, "tonyc
SUPER_REP LIKE KNA1-KUNNR, "tonyc
TEMP_TELF1 LIKE KNA1-TELF1, "JAM
IT_T014 LIKE T014 OCCURS 0 WITH HEADER LINE, "JAM
G_KLIMK_TXT LIKE GTAB-KLIMK_TXT, "JAM
G_WAERS LIKE GTAB-WAERS, "JAM
G_CONT_NAME(50) TYPE C. "JA
DATA FILL_REP_INFO.
BC SUNILP 05/14/2007
DATA: BEGIN OF ITAB_VBRP OCCURS 0.
INCLUDE STRUCTURE VBRP.
DATA: END OF ITAB_VBRP.
DATA: T_PERC TYPE F,
SUM_NETWR LIKE VBRP-NETWR.
*DATA: GTAB_LINES LIKE GTAB OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF GTAB_LINES OCCURS 0.
INCLUDE STRUCTURE GTAB.
DATA: IND(1),
OBAD TYPE P.
DATA: END OF GTAB_LINES.
DATA: BEGIN OF ITAB_VBRP1 OCCURS 0,
VBELN LIKE VBRP-VBELN,
NETWR LIKE VBRP-NETWR,
ZZMREP LIKE VBRP-ZZMREP, "Super Rep
ZZLREP LIKE VBRP-ZZLREP, "Rep
PERC TYPE F,
END OF ITAB_VBRP1.
EC SUNILP 05/14/2007
BEGIN_OF_BLOCK 2.
PARAMETERS: REGIO LIKE KNA1-REGIO.
PARAMETERS: CONSOL AS CHECKBOX. "TONYC
PARAMETERS: P_KKBER AS CHECKBOX, "TONYC
P_CONV AS CHECKBOX. "tonyc issue #3047
PARAMETERS: SUMMEN LIKE RFPDO1-ALLGSUMM,
TAGE1 LIKE RFPDO1-ALLGFAEL DEFAULT '30',
TAGE2 LIKE RFPDO1-ALLGFAEL DEFAULT '60',
TAGE3 LIKE RFPDO1-ALLGFAEL DEFAULT '90',
TAGE4 LIKE RFPDO1-ALLGFAEL DEFAULT '120'.
END_OF_BLOCK 2.
BEGIN_OF_BLOCK 3.
SELECT-OPTIONS: P_SUPREP FOR KNVP-KUNNR, "Super REP "DEVK939546
P_REP FOR KNVP-KUNNR, "SALES REP "DEVK939546
P_VKORG FOR TVKO-VKORG, "TONYC ISSUE 4743
P_LOTKZ FOR BKPF-LOTKZ. "TONYC ISSUE 4743
END_OF_BLOCK 3.
INITIALIZATION. "JAM
PERFORM LOAD_T014. "JAM
refresh dd_augdt.
clear dd_augdt.
dd_augdt-option = 'EQ'.
dd_augdt-sign = 'I'.
dd_augdt-low = ' '.
append dd_augdt.
AT SELECTION-SCREEN.
IF CONSOL = 'X'.
IF NOT P_SUPREP[] IS INITIAL. "DEVK939546
MESSAGE E999 WITH 'Consolidated report not allowed w/ Super Rep'.
ENDIF.
ENDIF.
CHECK IF THE REP INFO IS ADDED OR NOT - VS
IF NOT P_SUPREP IS INITIAL OR"TONY ISSUE 4743
NOT P_REP IS INITIAL."TONY ISSUE 4743
FILL_REP_INFO = 'X'."TONY ISSUE 4743
ENDIF."TONY ISSUE 4743
START-OF-SELECTION.
get_frame_title 2.
add function module to track usage JD 10/13/98 *****
CALL FUNCTION 'Z_RUN_LOG'
EXCEPTIONS
OTHERS = 1.
*IF NOT P_SUPREP IS INITIAL AND NOT P_REP IS INITIAL.
P_SUPREP = ' '.
*ENDIF.
GET KNA1 FIELDS LAND1 REGIO KUNNR NAME1 NAME2 ORT01 TELF1. "JAM
new-page.
skip.
TEMP_TELF1 = KNA1-TELF1.
MAXMANDT = '19000101'.
MAXMANST = 0.
SUMVLIBB = 0.
PERFORM GET_CUST_CONTACT. "JAM
Check sales rep- NES071797
Get any valid record and exit.
IF NOT p_suprep[] IS INITIAL. "DEVK939546 "TONY ISSUE 4743 start
good_super_rep = ' '.
SELECT kunn2 INTO super_rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZS' AND
kunn2 IN p_suprep.
EXIT.
ENDSELECT.
IF sy-subrc = 0.
good_super_rep = 'X'.
gtab-super = super_rep.
super_rep = ' '.
ENDIF.
CHECK good_super_rep = 'X'.
SELECT kunn2 INTO gtab-rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZR' AND
kunn2 IN p_rep.
EXIT.
ENDSELECT.
CHECK sy-subrc = 0.
ELSEIF NOT p_rep[] IS INITIAL. "DEVK939546
SELECT kunn2 INTO gtab-rep FROM knvp UP TO 1 ROWS
WHERE
kunnr = kna1-kunnr AND
parvw = 'ZR' AND
kunn2 IN p_rep.
EXIT.
ENDSELECT.
CHECK sy-subrc = 0.
ENDIF. "TONY ISSUE 4743 end
GET KNB1 FIELDS BUKRS VLIBB ZTERM. "tonyc #2500
GTAB-BUKRS = KNB1-BUKRS.
GTAB-ZTERM = KNB1-ZTERM.
SUMVLIBB = SUMVLIBB + KNB1-VLIBB.
GET KNB5.
IF KNB5-MADAT > MAXMANDT.
MAXMANDT = KNB5-MADAT.
ENDIF.
IF KNB5-MAHNS > MAXMANST.
MAXMANST = KNB5-MAHNS.
ENDIF.
SUMKLIMB = SUMKLIMB + KLIMB.
GET BSID.
CHECK BSID-BSTAT = SPACE.
field was intended for Business Area, changed to use Currency
GTAB-GSBER = BSID-WAERS.
IF P_KKBER = 'X'. "TONYC ISSUE #2500
IF BSID-KKBER = ' '.
GTAB-KKBER = BSID-BUKRS.
ELSE.
GTAB-KKBER = BSID-KKBER. "TONYC ISSUE #2500
ENDIF.
ENDIF. "TONYC ISSUE #2500
SELECT SINGLE * FROM BKPF "TONY ISSUE 4743
WHERE BUKRS = BSID-BUKRS "TONY ISSUE 4743
AND BELNR = BSID-BELNR "TONY ISSUE 4743
AND GJAHR = BSID-GJAHR. "TONY ISSUE 4743
BC SUNILP 05/14/2007
IF BKPF-XREF2_HD IS NOT INITIAL.
CHECK BKPF-XREF2_HD IN P_SUPREP. "TONY ISSUE 4743
ELSE.
IF P_REP[] IS INITIAL.
REFRESH: ITAB_VBRP, ITAB_VBRP1.
IF NOT BKPF-XBLNR IS INITIAL.
SELECT * FROM VBRP INTO ITAB_VBRP WHERE VBELN = BKPF-XBLNR.
APPEND ITAB_VBRP. CLEAR ITAB_VBRP.
ENDSELECT.
CHECK ITAB_VBRP[] IS NOT INITIAL.
CLEAR: SUM_NETWR.
LOOP AT ITAB_VBRP.
CHECK ITAB_VBRP-ZZMREP IN P_SUPREP.
CHECK ITAB_VBRP-ZZLREP IN P_REP.
MOVE-CORRESPONDING ITAB_VBRP TO ITAB_VBRP1.
COLLECT: ITAB_VBRP1.
SUM_NETWR = SUM_NETWR + ITAB_VBRP-NETWR.
CLEAR ITAB_VBRP.
ENDLOOP.
CHECK ITAB_VBRP1[] IS NOT INITIAL.
LOOP AT ITAB_VBRP1.
CLEAR: T_PERC.
T_PERC = ( ITAB_VBRP1-NETWR / SUM_NETWR ).
ITAB_VBRP1-PERC = T_PERC.
MODIFY ITAB_VBRP1 INDEX SY-TABIX TRANSPORTING PERC.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
EC SUNILP 05/14/2007
IF FILL_REP_INFO = 'X'.
GTAB-SUPER = BKPF-XREF2_HD. "TONY ISSUE 4743 "MOVE THE CONTENTS OF XREF2_HD TO GTAB INTERNAL TABLE - VS
ENDIF.
BC SUNILP 05/14/2007
IF BKPF-XREF1_HD IS NOT INITIAL.
CHECK BKPF-XREF1_HD IN P_REP. "TONY ISSUE 4743 " ELSE MOVE THE CONTENTS OF - VS
ELSE.
REFRESH: ITAB_VBRP, ITAB_VBRP1.
IF NOT BKPF-XBLNR IS INITIAL.
SELECT * FROM VBRP INTO ITAB_VBRP WHERE VBELN = BKPF-XBLNR.
APPEND ITAB_VBRP. CLEAR ITAB_VBRP.
ENDSELECT.
CHECK ITAB_VBRP[] IS NOT INITIAL.
CLEAR: SUM_NETWR.
LOOP AT ITAB_VBRP.
CHECK ITAB_VBRP-ZZMREP IN P_SUPREP.
CHECK ITAB_VBRP-ZZLREP IN P_REP.
MOVE-CORRESPONDING ITAB_VBRP TO ITAB_VBRP1.
COLLECT: ITAB_VBRP1.
SUM_NETWR = SUM_NETWR + ITAB_VBRP-NETWR.
CLEAR ITAB_VBRP.
ENDLOOP.
CHECK ITAB_VBRP1[] IS NOT INITIAL.
LOOP AT ITAB_VBRP1.
CLEAR: T_PERC.
T_PERC = ( ITAB_VBRP1-NETWR / SUM_NETWR ).
ITAB_VBRP1-PERC = T_PERC.
MODIFY ITAB_VBRP1 INDEX SY-TABIX TRANSPORTING PERC.
ENDLOOP.
ENDIF.
ENDIF.
EC SUNILP 05/14/2007
IF FILL_REP_INFO = 'X'.
GTAB-REP = BKPF-XREF1_HD. "TONY ISSUE 4743
ENDIF.
CHECK BKPF-LOTKZ IN P_LOTKZ. "TONY ISSUE 4743
CHECK BKPF-BRNCH IN P_VKORG. "TONY ISSUE 4743
SELECT SINGLE FILKD INTO GTAB-FILKD FROM BSEG
WHERE BUKRS = BSID-BUKRS
AND BELNR = BSID-BELNR
AND GJAHR = BSID-GJAHR
AND BUZEI = BSID-BUZEI.
gtab-gsber = bsid-gsber.
get rep info for each bsid record
IF NOT P_SUPREP IS INITIAL. "tonyc
SELECT KUNNR FROM VBPA INTO HOLD_REP UP TO 1 ROWS "tonyc
WHERE VBELN = BSID-VBELN "tonyc
AND PARVW = 'ZR'. "tonyc
ENDSELECT. "tonyc
IF NOT P_REP IS INITIAL. "tonyc
CHECK HOLD_REP = P_REP. "tonyc
ENDIF. "tonyc
GTAB-REP = HOLD_REP. "tonyc
HOLD_REP = ' '. "tonyc
ENDIF. "tonyc
PERFORM GET_KNKK_INFO. "JAM
GTAB-KLIMK_TXT = G_KLIMK_TXT.
GTAB-WAERS = G_WAERS.
GTAB-LAND1 = KNA1-LAND1.
GTAB-REGIO = KNA1-REGIO.
GTAB-KUNNR = KNA1-KUNNR.
GTAB-NAME1 = KNA1-NAME1.
GTAB-NAME2 = KNA1-NAME2.
GTAB-ORT01 = KNA1-ORT01.
*if there is no phone number for the contact, pull the phone
*number from the sold-to
IF KNVK-TELF1 = ' '.
GTAB-TELF1 = TEMP_TELF1.
ELSE.
GTAB-TELF1 = KNVK-TELF1. "JAM
ENDIF.
GTAB-CONT_NAME1 = KNVK-NAME1.
GTAB-NAMEV = KNVK-NAMEV.
verzug = bsega-netdt - dd_stida.
VERZUG = DD_STIDA - BSEGA-NETDT. "days past due calculation
OP = 'X'.
GTAB-RAST2 = GTAB-RAST3 = GTAB-RAST4 = 0.
GTAB-RAST5 = GTAB-RAST6 = OBAD = GTAB-RAST7 = 0.
IF VERZUG LE 0. "future due
GTAB-RAST1 = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE1. "past due 1 to tage1 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST2 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE2. "past due tage1 to tage2 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST3 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE3. "past due tage2 to tage3 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST4 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG LE TAGE4. "past due tage3 to tage4 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST5 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ELSE.
IF VERZUG GT TAGE4. "past due > tage4 days
GTAB-RAST1 = BSEGA-WRSHB.
GTAB-RAST6 = BSEGA-WRSHB.
OBAD = BSEGA-WRSHB.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
GTAB-RAST7 = GTAB-RAST1 - OBAD.
stab = gtab.
MOVE-CORRESPONDING GTAB TO STAB.
BC SUNILP 05/15/2007
IF ITAB_VBRP1[] IS NOT INITIAL.
GTAB-T_IND = 'X'.
LOOP AT ITAB_VBRP1.
MOVE-CORRESPONDING GTAB TO GTAB_LINES.
GTAB_LINES-SORT_GSB = '1'.
GTAB_LINES-SUPER = ITAB_VBRP1-ZZMREP.
GTAB_LINES-REP = ITAB_VBRP1-ZZLREP.
GTAB_LINES-RAST1 = GTAB_LINES-RAST1 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST2 = GTAB_LINES-RAST2 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST3 = GTAB_LINES-RAST3 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST4 = GTAB_LINES-RAST4 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST5 = GTAB_LINES-RAST5 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST6 = GTAB_LINES-RAST6 * ITAB_VBRP1-PERC.
GTAB_LINES-RAST7 = GTAB_LINES-RAST7 * ITAB_VBRP1-PERC.
GTAB_LINES-OBAD = GTAB_LINES-OBAD * ITAB_VBRP1-PERC.
COLLECT: GTAB_LINES.
ENDLOOP.
ELSE.
MOVE-CORRESPONDING GTAB TO GTAB_LINES.
GTAB_LINES-T_IND = 'X'.
GTAB_LINES-SORT_GSB = '1'.
IF GTAB_LINES-SUPER IN P_SUPREP OR GTAB_LINES-REP IN P_REP.
COLLECT: GTAB_LINES.
ENDIF.
ENDIF.
EC SUNILP 05/15/2007
gtab-sort_gsb = stab-sort_gsb = '0'.
collect: gtab, stab.
gtab-gsber = stab-gsber = '****'.
GTAB-SORT_GSB = '1'.
IF REGIO = SPACE OR REGIO = GTAB-REGIO.
IF GTAB_LINES-SUPER IN P_SUPREP OR GTAB_LINES-REP IN P_REP.
COLLECT: GTAB, STAB.
ENDIF.
ENDIF.
END-OF-SELECTION.
TAGE1A = TAGE1 + 1.
TAGE2A = TAGE2 + 1.
TAGE3A = TAGE3 + 1.
IF SUMMEN = ' '.
sort gtab by bukrs land1 regio kunnr gsber sort_gsb.
sort gtab by bukrs land1 regio name1 kunnr gsber sort_gsb. "JAM
IF CONSOL = 'X'.
SORT GTAB BY LAND1 REGIO NAME1 KUNNR BUKRS KKBER GSBER SORT_GSB.
"TONYC
REPORT_TYPE = 'consolidated'.
ELSEIF NOT P_SUPREP[] IS INITIAL. "DEVK939546
SORT GTAB
BY SUPER REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
BC SUNILP 05/15/2007
SORT GTAB_LINES
BY SUPER REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'super rep'.
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
ELSEIF NOT P_REP[] IS INITIAL. "DEVK939546
SORT GTAB "DEVK939546
BY REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
"DEVK939546
BC SUNILP 05/15/2007
SORT GTAB_LINES
BY REP NAME1 BUKRS KKBER LAND1 REGIO NAME1 GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'rep'. "DEVK939546
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
ELSE.
SORT GTAB BY BUKRS KKBER LAND1 REGIO NAME1 KUNNR GSBER SORT_GSB.
BC SUNILP 05/15/2007
SORT GTAB_LINES BY BUKRS KKBER LAND1 REGIO NAME1 KUNNR GSBER SORT_GSB.
EC SUNILP 05/15/2007
REPORT_TYPE = 'regular'.
ENDIF.
BC SUNILP 05/15/2007
DELETE ADJACENT DUPLICATES FROM GTAB COMPARING BUKRS NAME1.
LOOP AT GTAB_LINES.
IF P_REP[] IS INITIAL.
IF GTAB_LINES-SUPER NOT IN P_SUPREP.
DELETE GTAB_LINES.
ENDIF.
ELSE.
IF GTAB_LINES-SUPER NOT IN P_SUPREP OR GTAB_LINES-REP NOT IN P_REP.
DELETE GTAB_LINES.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT GTAB.
READ TABLE GTAB_LINES WITH KEY BUKRS = GTAB-BUKRS
NAME1 = GTAB-NAME1.
IF SY-SUBRC NE '0'.
DELETE GTAB.
ENDIF.
ENDLOOP.
EC SUNILP 05/15/2007
LOOP AT GTAB.
MOVE GTAB-BUKRS TO T001-BUKRS. READ TABLE T001.
RESERVE 5 LINES.
CASE REPORT_TYPE.
WHEN 'regular'.
IF HOLD_BUKRS <> GTAB-BUKRS.
IF SY-TABIX > 1. "TONYC
NEW-PAGE. SKIP. "TONYC
ENDIF. "TONYC
ENDIF.
PERFORM WRITE_CUST_INFO. "TONYC
PERFORM WRITE_DETAIL.
hold_bukrs = gtab-bukrs. "tonyc
WHEN 'consolidated'.
IF HOLD_KUNNR <> GTAB-KUNNR. "TONYC
PERFORM WRITE_CUST_INFO. "TONYC
ENDIF. "TONYC
HOLD_KUNNR = GTAB-KUNNR. "TONYC
PERFORM WRITE_DETAIL.
WHEN 'super rep'.
IF GTAB-T_IND NE 'X'.
BC SUNILP 05/22/2007
READ TABLE GTAB_LINES WITH KEY BUKRS = GTAB-BUKRS
NAME1 = GTAB-NAME1.
EC SUNILP 05/22/2007
IF ( HOLD_SUPER <> GTAB_LINES-SUPER ) OR
( HOLD_REP2 <> GTAB_LINES-REP ).
NEW-PAGE.
PERFORM GET_AND_WRITE_SUPERINFO.
ENDIF.
HOLD_REP2 = GTAB_LINES-REP.
HOLD_SUPER = GTAB_LINES-SUPER.
IF HOLD_KUNNR <> GTAB-KUNNR. "TONYC
WRITE :/. "TONYC
ULINE. "TONYC
PERFORM WRITE_CUST_INFO. "TONYC
ENDIF. "TONYC
HOLD_KUNNR = GTAB-KUNNR. "TONYC
PERFORM WRITE_DETAIL. "TONYC
AT END OF REP. "DEVK939546
SKIP. "DEVK939546
RESERVE 7 LINES. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Rep:', "DEVK939546
GTAB-REP, '/', REP_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES RTOT. "DEVK939546
REFRESH RTOT. "DEVK939546
ENDAT. "DEVK939546
AT END OF SUPER. "DEVK939546
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
NEW-PAGE. SKIP. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Super Rep:', "DEVK939546
GTAB-SUPER, '/', SUPER_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES STOT. "DEVK939546
REFRESH STOT. "DEVK939546
ENDAT. "DEVK939546
ELSE.
LOOP AT GTAB_LINES WHERE BUKRS = GTAB-BUKRS
AND NAME1 = GTAB-NAME1.
IF ( HOLD_SUPER <> GTAB_LINES-SUPER ) OR
( HOLD_REP2 <> GTAB_LINES-REP ).
NEW-PAGE.
PERFORM GET_AND_WRITE_SUPERINFO.
ENDIF.
HOLD_REP2 = GTAB_LINES-REP.
HOLD_SUPER = GTAB_LINES-SUPER.
IF HOLD_KUNNR <> GTAB_LINES-KUNNR.
WRITE :/.
ULINE.
PERFORM WRITE_CUST_INFO.
ENDIF.
HOLD_KUNNR = GTAB_LINES-KUNNR.
PERFORM WRITE_DETAIL.
AT END OF REP.
SKIP.
RESERVE 7 LINES.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE: / 'Summary for Rep:',
GTAB_LINES-REP, '/', REP_NAME, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES RTOT.
REFRESH RTOT.
ENDAT.
AT END OF SUPER.
CLEAR STAB. "tonyc 03/06/2004
REFRESH STAB. "tonyc 03/06/2004
NEW-PAGE. SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE: / 'Summary for Super Rep:',
GTAB_LINES-SUPER, '/', SUPER_NAME, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES STOT.
REFRESH STOT.
ENDAT.
ENDLOOP.
ENDIF.
WHEN 'rep'. "DEVK939546
LOOP AT GTAB_LINES WHERE BUKRS = GTAB-BUKRS
AND NAME1 = GTAB-NAME1.
IF HOLD_REP2 <> GTAB_LINES-REP. "DEVK939546
NEW-PAGE. "DEVK939546
PERFORM GET_AND_WRITE_REPINFO. "DEVK939546
ENDIF. "DEVK939546
HOLD_REP2 = GTAB_LINES-REP. "DEVK939546
IF HOLD_KUNNR <> GTAB_LINES-KUNNR. "DEVK939546
WRITE :/. "DEVK939546
ULINE. "DEVK939546
PERFORM WRITE_CUST_INFO. "DEVK939546
ENDIF. "DEVK939546
HOLD_KUNNR = GTAB_LINES-KUNNR. "DEVK939546
PERFORM WRITE_DETAIL. "DEVK939546
AT END OF REP. "DEVK939546
SKIP. "DEVK939546
RESERVE 7 LINES. "DEVK939546
FORMAT COLOR COL_TOTAL INTENSIFIED. "DEVK939546
WRITE: / 'Summary for Rep:', "DEVK939546
GTAB_LINES-REP, '/', REP_NAME, 132 ONEBYTE."DEVK939546
PERFORM WRITE_TOTS TABLES RTOT. "DEVK939546
REFRESH RTOT. "DEVK939546
ENDAT. "DEVK939546
ENDLOOP.
ENDCASE.
ENDLOOP.
ENDIF.
OP = ' '.
REFRESH GTAB.
IF NOT REPORT_TYPE = 'super rep'.
ULINE.
ENDIF.
SKIP 1.
IF SUMMEN = ' '. "if 'output totals only' bypass new-page
NEW-PAGE. SKIP.
ENDIF.
WRITE: /25 TEXT-030, 132 ONEBYTE, /25 TEXT-031, 132 ONEBYTE.
PERFORM WRITE_TOTS TABLES STAB. "DEVK939546
TOP-OF-PAGE.
INTENS = SPACE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE: / SY-VLINE, 1 TEXT-001, DD_STIDA, 75 TEXT-051, 132 SY-VLINE.
ULINE.
WRITE: / SY-VLINE, 13 SY-VLINE, 30 SY-VLINE,
47 SY-VLINE, 58 TEXT-003, 81 SY-VLINE,
92 TEXT-003, 115 SY-VLINE, 118 TEXT-003, 132 SY-VLINE,
/ SY-VLINE, 02 TEXT-004, 13 SY-VLINE, TEXT-002,
30 SY-VLINE, 32 TEXT-018, 47 SY-VLINE,
50 '1', 54 TEXT-040, 57 TAGE1, 64 SY-VLINE, " 65 tage2,
67 TAGE1A, 72 TEXT-040, 75 TAGE2,
81 SY-VLINE, 83 TAGE2A, 89 TEXT-040, 91 TAGE3, 98 SY-VLINE,
101 TAGE3A, 107 TEXT-040, 110 TAGE4, 115 SY-VLINE,
117 TAGE4, 123 TEXT-017, 132 SY-VLINE.
ULINE.
SKIP 1.
SUMMARY.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
FORM write_tots *
--> PTAB *
FORM WRITE_TOTS TABLES PTAB TYPE TOT_TAB. "DEVK939546
CLEAR INTENS. "DEVK939546
FORMAT COLOR COL_HEADING INTENSIFIED OFF. "DEVK939546
IF P_CONV = 'X'. "tonyc issue #3047 begin
WRITE /4 TEXT-101.
WRITE: /4 TEXT-102,
50 TEXT-100.
ENDIF. "tonyc issue #3047 end
ULINE. "DEVK939546
SORT PTAB BY BUKRS GSBER. "DEVK939546
LOOP AT PTAB. "DEVK939546
IF SY-TABIX > 1.
WRITE_TOTAL = 'X'.
ENDIF.
MOVE PTAB-BUKRS TO T001-BUKRS. READ TABLE T001. "DEVK939546
MOVE PTAB-GSBER TO T001-WAERS. "DEVK939546
IF P_CONV = 'X'. "tonyc issue #3047 begin
PERFORM CONVERT_VALUES USING STAB-RAST1
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST2
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST3
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST4
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST5
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST6
STAB-GSBER.
PERFORM CONVERT_VALUES USING STAB-RAST7
STAB-GSBER.
ENDIF. "TOnyc issue #3047 end
MOVE-CORRESPONDING PTAB TO STAB.
COLLECT STAB.
IF P_KKBER = 'X'. "TONYC ISSUE #2500
CLEAR HOLD_KKBER_DESC2.
SELECT SINGLE KKBTX INTO HOLD_KKBER_DESC2 FROM T014T
WHERE KKBER = STAB-KKBER AND
SPRAS = 'E'.
IF SY-SUBRC <> '0'.
HOLD_KKBER_DESC2 = 'Undetermined'.
ENDIF.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 6 STAB-GSBER, HOLD_KKBER_DESC2, SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
IF P_CONV = 'X'. "tonyc issue #3047 begin
T001-WAERS = 'USD'.
ENDIF. "tonyc issue #3047 end
WRITE: 13 STAB-RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) STAB-RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
HOLD_BUKRS2 = STAB-BUKRS. "TONYC ISSUE #2500
ULINE.
FORMAT COLOR OFF.
TOTAL_RAST1 = STAB-RAST1 + TOTAL_RAST1.
TOTAL_RAST2 = STAB-RAST2 + TOTAL_RAST2.
TOTAL_RAST3 = STAB-RAST3 + TOTAL_RAST3.
TOTAL_RAST4 = STAB-RAST4 + TOTAL_RAST4.
TOTAL_RAST5 = STAB-RAST5 + TOTAL_RAST5.
TOTAL_RAST6 = STAB-RAST6 + TOTAL_RAST6.
TOTAL_RAST7 = STAB-RAST7 + TOTAL_RAST7.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF. "DEVK939546
IF INTENS = SPACE. "DEVK939546
FORMAT COLOR COL_NORMAL INTENSIFIED OFF. "DEVK939546
INTENS = 'X'. "DEVK939546
ELSE. "DEVK939546
FORMAT COLOR COL_NORMAL INTENSIFIED ON. "DEVK939546
INTENS = SPACE. "DEVK939546
ENDIF. "DEVK939546
WRITE: / SY-VLINE, PTAB-BUKRS, PTAB-GSBER, SY-VLINE, "DEVK939546
(14) PTAB-RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,"DEVK939546
(14) PTAB-RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE."DEVK939546
TOTAL_RAST1 = STAB-RAST1 + TOTAL_RAST1.
TOTAL_RAST2 = STAB-RAST2 + TOTAL_RAST2.
TOTAL_RAST3 = STAB-RAST3 + TOTAL_RAST3.
TOTAL_RAST4 = STAB-RAST4 + TOTAL_RAST4.
TOTAL_RAST5 = STAB-RAST5 + TOTAL_RAST5.
TOTAL_RAST6 = STAB-RAST6 + TOTAL_RAST6.
TOTAL_RAST7 = STAB-RAST7 + TOTAL_RAST7.
ENDIF.
ENDLOOP. "DEVK939546
ULINE. "DEVK939546
IF P_KKBER = 'X'. "TONYC ISSUE #2500
IF P_CONV = 'X'. "tonyc issue #3047 begin
FORMAT COLOR OFF.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: SY-VLINE,
6 'TOTAL ', SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 13 TOTAL_RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
ULINE.
ENDIF. "tonyc issue #3047 end
ELSE.
IF P_CONV = 'X'.
FORMAT COLOR OFF.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: SY-VLINE,
6 'TOTAL ', SY-VLINE.
ULINE.
FORMAT COLOR OFF.
WRITE: / SY-VLINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: 13 TOTAL_RAST1 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST7 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST2 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST3 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST4 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST5 NO-ZERO CURRENCY T001-WAERS, SY-VLINE,
(14) TOTAL_RAST6 NO-ZERO CURRENCY T001-WAERS, SY-VLINE.
ULINE.
ENDIF.
ENDIF.
SKIP 1. "DEVK939546
ENDFORM. "DEVK939546
*& Form GET_KNKK_INFO
text
--> p1 text
<-- p2 text
FORM GET_KNKK_INFO.
CLEAR: G_WAERS,
G_KLIMK_TXT,
KNKK-KLIMK.
get credit control area (KKBER) for comp code (BUKRS)
SELECT SINGLE KLIMK
INTO KNKK-KLIMK
FROM KNKK
WHERE KUNNR = KNA1-KUNNR AND
KKBER = T001-KKBER.
IF SY-SUBRC = 0.
get currency for cred ctrl area
CLEAR IT_T014.
READ TABLE IT_T014 WITH KEY KKBER = T001-KKBER BINARY SEARCH.
G_WAERS = IT_T014-WAERS.
WRITE KNKK-KLIMK TO G_KLIMK_TXT CURRENCY G_WAERS.
ENDIF.
ENDFORM. " GET_KNKK_INFO
*& Form SELECT_KNKK
text
-->P_KKBER Credit Limit Controlling Area
<--P_FOUND_KNKK Indicates if record found
FORM SELECT_KNKK USING P_KKBER
CHANGING P_FOUND_KNKK.
CLEAR: G_WAERS,
G_KLIMK_TXT,
KNKK-KLIMK.
SELECT SINGLE KLIMK
INTO KNKK-KLIMK
FROM KNKK
WHERE KUNNR = KNA1-KUNNR AND
KKBER = P_KKBER.
IF SY-SUBRC = 0.
P_FOUND_KNKK = C_TRUE.
get currency for cred ctrl area
CLEAR IT_T014.
READ TABLE IT_T014 WITH KEY KKBER = P_KKBER BINARY SEARCH.
G_WAERS = IT_T014-WAERS.
WRITE KNKK-KLIMK TO G_KLIMK_TXT CURRENCY G_WAERS.
ELSE.
P_FOUND_KNKK = C_FALSE.
ENDIF.
ENDFORM. " SELECT_KNKK
*& Form GET_CUST_CONTACT & PHONE NUMBER
FORM GET_CUST_CONTACT.
CLEAR KNVK.
C_CREDIT_ABTNR = '0003'. "look for contact in credit dept
SELECT NAME1
NAMEV
TELF1
INTO (KNVK-NAME1,
KNVK-NAMEV,
KNVK-TELF1)
FROM KNVK
WHERE KUNNR = KNA1-KUNNR AND
ABTNR = C_CREDIT_ABTNR.
ENDSELECT.
If there wasn't a contact person for the credit dept, then just
pull up the first contact info we find regardless of dept
IF SY-SUBRC <> 0.
CLEAR KNVK.
SELECT NAME1
NAMEV
TELF1
INTO (KNVK-NAME1,
KNVK-NAMEV,
KNVK-TELF1)
FROM KNVK
WHERE KUNNR = KNA1-KUNNR.
IF SY-SUBRC = 0.
EXIT.
ENDIF.
ENDSELECT.
ELSE.
EXIT.
ENDIF. "not contact found in credit dept.
ENDFORM. " GET_CUST_CONTACT
*& Form LOAD_T014
FORM LOAD_T014.
SELECT *
INTO TABLE IT_T014
FROM T014.
SORT IT_T014.
ENDFORM. " LOAD_T014
*& Form WRITE_CUST_INFO "TONYC
text moved code and created a form. for cleaner code "TONYC
--> p1 text
<-- p2 text
FORM WRITE_CUST_INFO.
IF NOT REPORT_TYPE = 'super rep'.
IF SY-TABIX > 1.
ULINE.
ENDIF.
ENDIF.
CONCATENATE GTAB-NAMEV "JAM
GTAB-CONT_NAME1
INTO G_CONT_NAME
SEPARATED BY SPACE.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF REPORT_TYPE = 'super rep'.
IF GTAB-T_IND NE 'X'.
WRITE: / GTAB-KUNNR, GTAB-NAME1, GTAB-ORT01, GTAB-REGIO, GTAB-LAND1,
"g_cont_name,
132 ONEBYTE.
ELSE.
WRITE: / GTAB_LINES-KUNNR, GTAB_LINES-NAME1, GTAB_LINES-ORT01, GTAB_LINES-REGIO, GTAB_LINES-LAND1,
"g_cont_name,
132 ONEBYTE.
ENDIF.
WRITE: /21 onebyte, 12 gtab-name2, 45 gtab-ort01,
gtab-telf1, "gtab-klimk_txt, gtab-waers.
132 onebyte.
ELSE.
WRITE: / GTAB-KUNNR, GTAB-NAME1, GTAB-ORT01, GTAB-REGIO, GTAB-LAND1,
"g_cont_name, "JAM
132 ONEBYTE.
WRITE: /11 onebyte, 12 gtab-name2, 45 gtab-ort01,
gtab-telf1, "gtab-klimk_txt, gtab-waers, "JAM
132 onebyte.
ENDIF.
ENDFORM. " WRITE_CUST_INFO
*& Form GET_AND_WRITE_SUPERINFO
text
--> p1 text
<-- p2 text
FORM GET_AND_WRITE_SUPERINFO.
ULINE.
IF GTAB-T_IND NE 'X'.
SELECT SINGLE NAME1 FROM KNA1 INTO SUPER_NAME "TONYC
WHERE KUNNR = GTAB-SUPER. "TONYC
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME "TONYC
WHERE KUNNR = GTAB-REP. "TONYC
CONCATENATE SUPER_NAME REP_NAME INTO REPS_INFO "TONYC
SEPARATED BY BACKSLASH. "TONYC
FORMAT COLOR COL_TOTAL INTENSIFIED. "TONYC
WRITE:/ GTAB-SUPER, '/', "TONYC
GTAB-REP, "TONYC
25 REPS_INFO, 132 ONEBYTE. "TONYC
ELSE.
SELECT SINGLE NAME1 FROM KNA1 INTO SUPER_NAME
WHERE KUNNR = GTAB_LINES-SUPER.
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME
WHERE KUNNR = GTAB_LINES-REP.
CONCATENATE SUPER_NAME REP_NAME INTO REPS_INFO
SEPARATED BY BACKSLASH.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ GTAB_LINES-SUPER, '/',
GTAB_LINES-REP,
25 REPS_INFO, 132 ONEBYTE.
ENDIF.
ENDFORM. " GET_AND_WRITE_SUPERINFO
*& Form GET_AND_WRITE_REPINFO
text
--> p1 text
<-- p2 text
FORM GET_AND_WRITE_REPINFO.
ULINE.
SELECT SINGLE NAME1 FROM KNA1 INTO REP_NAME
WHERE KUNNR = GTAB-REP.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ GTAB-REP,
25 REP_NAME, 132 ONEBYTE.
ENDFORM. " GET_AND_WRITE_REPINFO
*& Form WRITE_DETAIL
text
--> p1 text
<-- p2 text
FORM WRITE_DETAIL.
clear z_description. "TONYC #2216
move GTAB-KLIMK_TXT to z_hold_limit.
IF z_hold_limit = 400.
z_description = 'COD/Check'.
elseif z_hold_limit = 500.
z_description = 'COD/Cash'.
elseif z_hold_limit = 600.
z_description = 'Need Dealer Agree'.
elseif z_hold_limit = 700.
z_description = 'Need PDCs'.
elseif z_hold_limit = 800.
z_description = 'Need Fin Statements'.
elseif z_hold_limit = 900.
z_description = 'Past Due Balance'.
elseif z_hold_limit = 1000.
z_description = 'Miracle?'.
endif. "TONYC #2216
MOVE GTAB-GSBER TO T001-WAERS.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF HOLD_KUNNR2 <> GTAB-KUNNR. "TONYC
IF REPORT_TYPE = 'super rep'.
WRITE: /3 ONEBYTE, GTAB-BUKRS.
WRITE: 92 gtab-klimk_txt, gtab-waers, 132 onebyte. "TONYC
WRITE: 92 gtab-klimk_txt, z_description,132 onebyte."TONYC #2500
ELSE.
WRITE: / ONEBYTE, GTAB-BUKRS.
WRITE: 92 gtab-klimk_txt, z_description,132 onebyte."TONYC #2500
WRITE: 92 gtab-klimk_txt, gtab-waers, 132 onebyte. "TONYC
ENDIF.
ENDIF.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
IF P_KKBER = 'X'. "TONYC ISSUE# 2500
CLEAR HOLD_KKBER_DESC.
SELECT SINGLE KKBTX INTO HOLD_KKBER_DESC FROM T014T
WHERE KKBER = GTAB-KKBER AND
SPRAS = 'E'.
IF SY-SUBRC <> '0'.
HOLD_KKBER_DESC = 'Undetermined'.
ENDIF.
SELECT SINGLE KLIMK CTLPC
INTO (HOLD_KLIMK, HOLD-CTLPC)
FROM KNKK
WHERE KUNNR = GTAB-KUNNR AND
KKBER = GTAB-KKBER.
SELECT SINGLE RTEXT INTO HOLD-CTLPC-TEXT FROM T691T
WHERE SPRAS = 'EN' AND
CTLPC = HOLD-CTLPC AND
KKBER = GTAB-KKBER.
WRITE HOLD_KLIMK TO HOLD_KLIMK2 CURRENCY GTAB-WAERS.
WRITE: /7 GTAB-KKBER,
12 HOLD_KKBER_DESC,
80 HOLD_KLIMK2,
103 GTAB-GSBER,
108 HOLD-CTLPC-TEXT.
ENDIF. "TONYC ISSUE# 2500
FORMAT COLOR COL_NORMAL INTENSIFIED ON. "TONYC
MOVE STAB-GSBER TO T001-WAERS.
CLEAR HOLD_NAME.
SELECT SINGLE NAME1 FROM KNA1 INTO HOLD_NAME
WHERE KUNNR = GTAB-FILKD.
WRITE: /15 GTAB-FILKD,
30 HOLD_NAME.
IF GTAB-T_IND NE 'X'.
WRITE: /15(14) GTAB-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ELSE.
IF REPORT_TYPE NE 'super rep'.
LOOP AT GTAB_LINES WHERE KUNNR = GTAB-KUNNR.
WRITE: / GTAB_LINES-SUPER, ONEBYTE,
15(14) GTAB_LINES-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ENDLOOP.
ELSE.
WRITE: / GTAB_LINES-SUPER, ONEBYTE,
15(14) GTAB_LINES-RAST1 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST7 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST2 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST3 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST4 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST5 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
(14) GTAB_LINES-RAST6 NO-ZERO CURRENCY T001-WAERS, ONEBYTE,
132 ONEBYTE.
ENDIF.
ENDIF.
HOLD_BUKRS = GTAB-BUKRS. "Tonyc
HOLD_KUNNR2 = GTAB-KUNNR. "TONYC
HOLD_KKBER = GTAB-KKBER. "TONYC ISSUE #2500
IF REPORT_TYPE = 'super rep' OR REPORT_TYPE = 'rep'. "DEVK939546
IF GTAB-T_IND NE 'X'.
MOVE-CORRESPONDING GTAB TO RTOT. "DEVK939546
COLLECT RTOT. "DEVK939546
ELSE.
MOVE-CORRESPONDING GTAB_LINES TO RTOT.
COLLECT RTOT.
ENDIF.
IF REPORT_TYPE = 'super rep'. "DEVK939546
IF GTAB-T_IND NE 'X'.
MOVE-CORRESPONDING GTAB TO STOT. "DEVK939546
COLLECT STOT. "DEVK939546
ELSE.
MOVE-CORRESPONDING GTAB_LINES TO STOT.
COLLECT STOT.
ENDIF.
ENDIF. "DEVK939546
ENDIF. "DEVK939546
ENDFORM. " WRITE_DETAIL
*& Form convert_values
text
-->P_STAB_RAST1 text
-->P_STAB_GSBER text
FORM CONVERT_VALUES USING P_STAB_RAST1 "tonyc issue #3047 begin
P_STAB-GSBER.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
CLIENT = SY-MANDT
DATE = SY-DATUM
FOREIGN_AMOUNT = P_STAB_RAST1
FOREIGN_CURRENCY = P_STAB-GSBER
LOCAL_CURRENCY = 'USD'
RATE = 0
TYPE_OF_RATE = 'M'
READ_TCURR = 'X'
IMPORTING
EXCHANGE_RATE =
FOREIGN_FACTOR =
LOCAL_AMOUNT = P_STAB_RAST1
LOCAL_FACTOR =
EXCHANGE_RATEX =
FIXED_RATE =
DERIVED_RATE_TYPE =
EXCEPTIONS
NO_RATE_FOUND = 1
OVERFLOW = 2
NO_FACTORS_FOUND = 3
NO_SPREAD_FOUND = 4
DERIVED_2_TIMES = 5
OTHERS = 6 .
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. " convert_valuessolved
-
Showing prompt value in report - Need Urgent help
Hi All,
I have created a query that has a prompt (it is not the dashboard prompt) that has " in Between" operator. It is on date column. When i am generating report by passing the prompt value the data is coming properly.
I have downloaded the report in excel format and it is coming perfect. But i am not able to provide the data that he has selected in the prompt.
Like on top of page i need to show - The report is genrated for Date1 to Date2.
And then the data.
Thanks in advance for any clue. I am not able to figure out how to do this.
Thanks
AshokHi Ashok,
It seems it's possible, but not with the Filters view... but with Narrative View....
If you have Calendar Date (which contains all dates till today) column in your model, then... if you want to show only the date prompt values on top even though you have all other prompts...
For above mentioned criteria... you can't show only one date using filters view...
Now... go with Narrative View,
In that particular report add Calendar Date column 2 times...
On one column apply Max(date) and on another column apply Min(Date)....
Hide those...
Now note down the positions of these above 2 columns in criteria... say 6 & 7... respectively...
Now you write in narrative view...
Selected Date between @ and @6
So... based on the dates you selected.. the calendar date populate with the values and would hold the max and min i.e. what... selected values of your prompts...
So by using this.. you can only show.. one prompt.... not all the prompts which you have...
May helpful to you when you have .. Calendar Date only... remember ;)
Thanks & Regards
Kishore Guggilla
Edited by: Kishore Guggilla on Nov 20, 2008 7:52 PM
Maybe you are looking for
-
How do I stop itunes from corrupting it's library on almost a daily basis?
How do I stop itunes from corrupting it's library on almost a daily basis? It's actually becoming infurating to use, and what's happening is I am losing my downloads since the last automated itunes backup (having to rename & replace the current corr
-
Error connecting to ftp server
Dear All, I'm doing file to file scenario through XI. The receiver communication channel is a normal file adapter and it is working perfectly fine . My sender communication channel is a FTP adapter. I'm trying to send a file from FTP to a fo
-
RDP from internet not working in Hyper-v VMs
Hello . Sorry for my english .I hope to explain clearly my problem . I 've Hyper-v on Windows 2008 server r2 . I've 3 Virtual networks ( External , Private and internal ) . In my VMs there are two domains . The first one is bound with internal Vn an
-
Yosemite keeps forgetting my window arrangement
I'm running OS X Yosemite, 10.10.2 on a: MacBook Pro (Retina, 15-inch, Mid 2014) Processor 2.2 GHz Intel Core i7 Memory 16 GB 1600 MHz DDR3 I have an extra monitor plugged into the laptop via a thunderbolt adaptor, and I've set the windows arrangemen
-
Hi experts, We are trying to CIF a plant from ECC to EWM. The locations master is created in EWM but no Business partner is created. We have mentioned in integration model to create both Loc master and BP. Are we missing on any setting / data ? Any p