Multiple subqueries to create a Report
I can't seem to find the appropriate solution for a report. I have Joined two tables together to get all the information I need, but now I have to group data by state and group by three other variables - New, Retained, Cancelled. Then loop through the amount of states that are in the DB. Assuming I have UT and WA
The report should look something like this:
State: UT
Number
Premiums
New Policies
3
$74.97
Retained Policies
2
$13.98
Cancelled Policies
1
$5.99
Net Policies
4
$82.96
State: WA
Number
Premiums
New Policies
3
$74.97
Retained Policies
2
$13.98
Cancelled Policies
1
$5.99
Net Policies
4
$82.96
Here is my sort of working Code:
<CFQUERY NAME="ActiveCustomers" DATASOURCE="#db#">
SELECT * FROM tbl_customers
INNER JOIN tbl_plans ON tbl_plans.ProductID = tbl_customers.ProductID
WHERE Status = "Active" AND Month(DateSignup) < "#Form.Month#"
ORDER BY DateSignup asc;
</CFQUERY>
<cfset ActiveCustomerTotal = 0>
<cfoutput query="ActiveCustomers">
<cfset ActiveCustomerTotal = #ActiveCustomerTotal# + #ActiveCustomers.ProductPrice#>
</cfoutput>
<CFQUERY NAME="NewCustomers" DATASOURCE="#db#">
SELECT * FROM tbl_customers
INNER JOIN tbl_plans ON tbl_plans.ProductID = tbl_customers.ProductID
WHERE Status = "Active" AND Month(DateSignup) = "#Form.Month#"
ORDER BY DateSignup asc;
</CFQUERY>
<cfset NewCustomerTotal = 0>
<cfoutput query="NewCustomers">
<cfset NewCustomerTotal = #NewCustomerTotal# + #NewCustomers.ProductPrice#>
</cfoutput>
<CFQUERY NAME="CancelledCustomers" DATASOURCE="#db#">
SELECT c.Status, c.ProductID,(SELECT SUM(p.ProductPrice) FROM tbl_plans p WHERE p.ProductID = c.ProductID) AS ItemSum
FROM tbl_customers c
WHERE c.Status = "Cancelled" AND Month(c.Cancelled) = "#Form.Month#"
ORDER BY Cancelled asc;
</CFQUERY>
<cfset CancelledCustTotal = 0>
<cfoutput query="CancelledCustomers">
<cfset CancelledCustTotal = #CancelledCustTotal# + #ItemSum#>
</cfoutput>
I have looked everywhere for help.
I don't have Create Scripts because I use Sequel Pro to create everything visually. I would consider myself More Designer than Programmer - Don't hold it against me.
"New Policies", "Retained Policies", "Cancelled Policies", and "Net Policies" are just titles to describe the calculations - They don't exist in the table structure.
For example:
tbl_customers has 3 customers that signed up this month (New Policies).
tbl_customers has 6 customers that signed up prior to this Month but still Active(Retained Policies - carry over from previous Months).
tbl_customers has 4 customers that cancelled this Month (Cancelled Policies).
The "Net" is New + Retained - Cancelled.
So, I do a query that Joins tbl_customers(this table holds the ProductID(Policy), State, DateSignup, Status(active or cancelled), Cancelled(null if still active) and tbl_plans holds ProductID(Policy), ProductPrice(PolicyPrice).
A Join outputs all listings:
SELECT c.State AS State, p.ProductPrice AS Price
FROM tbl_customers c
INNER JOIN tbl_plans p ON p.ProductID = c.ProductID
I originally created Three different Queries:
<CFQUERY NAME="ActiveCustomers" DATASOURCE="#db#">
SELECT * FROM tbl_customers
INNER JOIN tbl_plans ON tbl_plans.ProductID = tbl_customers.ProductID
WHERE Status = "Active" AND Month(DateSignup) < "#Form.Month#"
ORDER BY DateSignup asc;
</CFQUERY>
<cfset ActiveCustomerTotal = 0>
<cfoutput query="ActiveCustomers">
<cfset ActiveCustomerTotal = #ActiveCustomerTotal# + #ActiveCustomers.ProductPrice#>
</cfoutput>
<CFQUERY NAME="NewCustomers" DATASOURCE="#db#">
SELECT * FROM tbl_customers
INNER JOIN tbl_plans ON tbl_plans.ProductID = tbl_customers.ProductID
WHERE Status = "Active" AND Month(DateSignup) = "#Form.Month#"
ORDER BY DateSignup asc;
</CFQUERY>
<cfset NewCustomerTotal = 0>
<cfoutput query="NewCustomers">
<cfset NewCustomerTotal = #NewCustomerTotal# + #NewCustomers.ProductPrice#>
</cfoutput>
<CFQUERY NAME="CancelledCustomers" DATASOURCE="#db#">
SELECT c.Status, c.ProductID,(SELECT SUM(p.ProductPrice) FROM tbl_plans p WHERE p.ProductID = c.ProductID) AS ItemSum
FROM tbl_customers c
WHERE c.Status = "Cancelled" AND Month(c.Cancelled) = "#Form.Month#"
ORDER BY Cancelled asc;
</CFQUERY>
<cfset CancelledCustTotal = 0>
<cfoutput query="CancelledCustomers">
<cfset CancelledCustTotal = #CancelledCustTotal# + #ItemSum#>
</cfoutput>
This works to obtain all calculations for the three variables, but tried to combine the results into one single query with a UNION.
<CFQUERY NAME="Customers" DATASOURCE="#db#">
SELECT c.State, SUM(p.ProductPrice ) AS Price FROM tbl_customers c
INNER JOIN tbl_plans p ON p.ProductID = c.ProductID
WHERE Status = "Active" AND Month(DateSignup) = "10"
GROUP BY Month(c.DateSignup), c.State
UNION ALL
SELECT c.State, SUM(p.ProductPrice )AS Price FROM tbl_customers c
INNER JOIN tbl_plans p ON p.ProductID = c.ProductID
WHERE Status = "Active" AND Month(DateSignup) < "10"
GROUP BY Month(c.DateSignup), c.State
UNION ALL
SELECT c.State, SUM(p.ProductPrice )AS Price FROM tbl_customers c
INNER JOIN tbl_plans p ON p.ProductID = c.ProductID
WHERE Status = "Cancelled" AND Month(Cancelled) = "10"
GROUP BY Month(Cancelled), c.State
</CFQUERY>
The Union works, but now I don't know how to group out the table by state.
What I need to do is start grouping the output.
Group all policies that where DateSignup is this Month. (New Policies)
Group all policies that where DateSignup is older than this Month, but are still "Active" (Retained Policies)
Group all policies that are where Status is "Cancelled" and Cancelled is This Month.
Then, Output the results like so:
UT
Number
Premiums
New Policies
3
$74.97
Retained Policies
6
$225.98
Cancelled Policies
4
$178.88
Net
5
$122.04
WA
Number
Premiums
New Policies
1
$9.99
Retained Policies
3
$225.98
Cancelled Policies
1
$9.99
Net
3
$225.98
Similar Messages
-
XML publisher multiple templates in a single report
Hello
We are currently implementing PeopleSoft benefits where the user will have an option to select a benefit template from multiple selections and create a report form based from the combination of template he selected.
My question would be based from the multiple templates, is it possible if the templates be printed out into just one report using xml publisher?
thank you!Yes. This is possible by using sub templates.
You can declare sub templates in the beginning and then call the sub template.
You will need to register the sub templates in "Content Library" (Reporting Tools > XML Publisher> Content Library) to be able to call thses from another template. -
Creating a report with multiple Y-axes on one graph
I currently have a script that will create a report with either 1, 2, or 3 graphs and has the ability to have four graphs per plot. I would like to add functionality to this script by making the Y-axis on the graphs have multiple Y-axes. How can I programmatically create a graph with multiple Y-axes?
To create an new axis system use the command GraphObjNew, eg:
Call GraphObjNew("2D-Axis","2DAxis1")
Call GraphObjOpen("2DAxis1")
D2AxisBackColor = "blue"
Call GraphObjClose("2DAxis1")
Call PicUpdate
If you have DIAdem Version 10 you can also create a new y-axis using GraphObjYAxisNew. This command is not available in versions 9.1:
Call GraphObjOpen("2DAxis1")
AxisNo = GraphObjYAxisNew("left")
If AxisNo>0 Then
Call GraphObjOpen(D2AxisYObj(AxisNo))
D2AXISYTXT ="My new axis"
D2AXISYTXTFONT ="Arial"
D2AXISYTXTCOLOR ="red"
Call GraphObjClose(D2AxisYObj(AxisNo))
End If
Call GraphObjClose("2DAxis1")
Winfried
Message Edited by winner on 03-23-2006 03:48 PM -
Can we merge data from multiple sources in Hyperion Interactive Reporting ?
Hi Experts,
Can we merge data from multiple sources in Hyperion Interactive Reporting ?Example can we have a report based on DB2
Oracle,
Informix and Multidiemnsional Databases like DB2,MSOLAP,ESSBASE?
Thanks,
VYes, Each have their own Query and have some common dimension for the Results Sections to be joined together in a final query.
look in help for Creating Local Joins -
How to create a report with data using the Crystal Reports for Java SDK
Hi,
How do I create a report with data that can be displayed via the Crystal Report for Java SDK and the Viewers API?
I am writing my own report designer, and would like to use the Crystal Runtime Engine to display my report in DHTML, PDF, and Excel formats. I can create my own report through the following code snippet:
ReportClientDocument boReportClientDocument = new ReportClientDocument();
boReportClientDocument.newDocument();
However, I cannot find a way to add data elements to the report without specifying an RPT file. Is this possible? I seems like it is since the Eclipse Plug In allows you to specify your database parameters when creating an RPT file.
is there a way to do this through these packages?
com.crystaldecisions.sdk.occa.report.data
com.crystaldecisions.sdk.occa.report.definition
Am I forced to create a RPT file for the different table and column structures I have?
Thank you in advance for any insights.
Ted JenneyHi Rameez,
After working through the example code some more, and doing some more research, I remain unable to populate a report with my own data and view the report in a browser. I realize this is a long post, but there are multiple errors I am receiving, and these are the seemingly essential ones that I am hitting.
Modeling the Sample code from Create_Report_From_Scratch.zip to add a database table, using the following code:
<%@ page import="com.crystaldecisions.sdk.occa.report.application.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.document.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.definition.*"%>
<%@ page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
<%@ page import = "com.crystaldecisions.report.web.viewer.*"%>
<%
try {
ReportClientDocument rcd = new ReportClientDocument();
rcd.newDocument();
// Setup the DB connection
String database_dll = "Sqlsrv32.dll";
String db = "qa_start_2012";
String dsn = "SQL Server";
String userName = "sa";
String pwd = "sa";
// Create the DB connection
ConnectionInfo oConnectionInfo = new ConnectionInfo();
PropertyBag oPropertyBag1 = oConnectionInfo.getAttributes();
// Set new table logon properties
PropertyBag oPropertyBag2 = new PropertyBag();
oPropertyBag2.put("DSN", dsn);
oPropertyBag2.put("Data Source", db);
// Set the connection info objects members
// 1. Pass the Logon Properties to the main PropertyBag
// 2. Set the Server Description to the new **System DSN**
oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_LOGONPROPERTIES, oPropertyBag2);
oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_SERVERDESCRIPTION, dsn);
oPropertyBag1.put("Database DLL", database_dll);
oConnectionInfo.setAttributes(oPropertyBag1);
oConnectionInfo.setUserName(userName);
oConnectionInfo.setPassword(pwd);
// The Kind of connectionInfos is CRQE (Crystal Reports Query Engine).
oConnectionInfo.setKind(ConnectionInfoKind.CRQE);
// Add a Database table
String tableName = "Building";
Table oTable = new Table();
oTable.setName(tableName);
oTable.setConnectionInfo(oConnectionInfo);
rcd.getDatabaseController().addTable(oTable, null);
catch(ReportSDKException RsdkEx) {
out.println(RsdkEx);
catch (Exception ex) {
out.println(ex);
%>
Throws the exception
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: java.lang.NullPointerException---- Error code:-2147467259 Error code name:failed
There was other sample code on SDN which suggested the following - adding the table after calling table.setDataFields() as in:
String tableName = "Building";
String fieldname = "Building_Name";
Table oTable = new Table();
oTable.setName(tableName);
oTable.setAlias(tableName);
oTable.setQualifiedName(tableName);
oTable.setDescription(tableName) ;
Fields fields = new Fields();
DBField field = new DBField();
field.setDescription(fieldname);
field.setHeadingText(fieldname);
field.setName(fieldname);
field.setType(FieldValueType.stringField);
field.setLength(40);
fields.add(field);
oTable.setDataFields(fields);
oTable.setConnectionInfo(oConnectionInfo);
rcd.getDatabaseController().addTable(oTable, null);
This code succeeds, but it is not clear how to add that database field to a section. If I attempt to call the following:
FieldObject oFieldObject = new FieldObject();
oFieldObject.setDataSourceName(field.getFormulaForm());
oFieldObject.setFieldValueType(field.getType());
// Now add it to the section
oFieldObject.setLeft(3120);
oFieldObject.setTop(120);
oFieldObject.setWidth(1911);
oFieldObject.setHeight(226);
rcd.getReportDefController().getReportObjectController().add(oFieldObject, rcd.getReportDefController().getReportDefinition().getDetailArea().getSections().getSection(0), -1);
Then I get an error (which is not unexpected)
com.crystaldecisions.sdk.occa.report.lib.ReportDefControllerException: The field was not found.---- Error code:-2147213283 Error code name:invalidFieldObject
How do I add one of the table.SetDataFields() to my report to be displayed?
Are there any other pointers or suggestions you may have?
Thank you -
How to create a report with different page sizes
Hi,
I would like to create a report with different page sizes, it's possible to do it with diadem?
When I change the layout parameters, changes afect to all sheets...
Is there a way to change page size individually for each sheet?
Thanks in advance.
MarcHi Marc,
You can use the DocStart and DocEnd commands along with the PicPrint command to spool multiple print commands to the same output PDF file using the direct printer approach. This should enable you to programmatically specify the page size differently for each sheet that you add to the print job.
' Print PDF Page by Page.VBS
OPTION EXPLICIT
Dim i, Path, OldPrintName
Path = AutoActPath & "2D Stacked"
Call DataDelAll
Call DataFileLoad(Path & ".TDM")
PDFFileName = Path & " Page by Page.pdf"
IF FileExist(PDFFileName) THEN Call FileDelete(PDFFileName)
OldPrintName = PrintName
PrintName = "winspool,DIAdem PDF Export,LPT1:" ' Set to PDF printer
PDFResolution = "72 DPI" ' "2400 DPI" , "default"
PDFOptimization = TRUE
PDFFontsEmbedded = FALSE
PDFJPGCompressed = "high"
PrintOrient = "landscape" ' orient paper
Call PrintMaxScale("GRAPH") ' auto-max, see alternative margin setting variables below
PrintLeftMarg = 0.181
PrintTopMarg = 0.181
PrintWidth = 10.67
'PrintHeigth = 7 (read-only)
Call WndShow("REPORT")
Call DocStart ' Begin multi-page document/print job
FOR i = 1 TO 4
Call PicLoad(Path & ".TDR")
Call GraphSheetNGet(1)
Call GraphSheetRename(GraphSheetName, "Page " & i)
Call PicUpdate
Call PicPrint("WinPrint") ' Add a page to be printed
NEXT ' i
Call DocEnd ' End multi-page document/print job
PrintName = OldPrintName
Call ExtProgram(PDFFileName)
Brad Turpin
DIAdem Product Support Engineer
National Instruments -
Performance issues when creating a Report / Query in Discoverer
Hi forum,
Hope you are can help, it involves a performance issues when creating a Report / Query.
I have a Discoverer Report that currently takes less than 5 seconds to run. After I add a condition to bring back Batch Status that = Posted we cancelled the query after reaching 20 minutes as this is way too long. If I remove the condition the query time goes back to less than 5 seconds.
Please see attached the SQL Inspector Plan:
Before Condition
SELECT STATEMENT
SORT GROUP BY
VIEW SYS
SORT GROUP BY
NESTED LOOPS OUTER
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
TABLE ACCESS BY INDEX ROWID GL.GL_CODE_COMBINATIONS
AND-EQUAL
INDEX RANGE SCAN GL.GL_CODE_COMBINATIONS_N2
INDEX RANGE SCAN GL.GL_CODE_COMBINATIONS_N1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUES
INDEX RANGE SCAN APPLSYS.FND_FLEX_VALUES_N1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUE_SETS
INDEX UNIQUE SCAN APPLSYS.FND_FLEX_VALUE_SETS_U1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUES_TL
INDEX UNIQUE SCAN APPLSYS.FND_FLEX_VALUES_TL_U1
INDEX RANGE SCAN APPLSYS.FND_FLEX_VALUE_NORM_HIER_U1
TABLE ACCESS BY INDEX ROWID GL.GL_JE_LINES
INDEX RANGE SCAN GL.GL_JE_LINES_N1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
TABLE ACCESS BY INDEX ROWID GL.GL_JE_HEADERS
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_DAILY_CONVERSION_TYPES_U1
TABLE ACCESS BY INDEX ROWID GL.GL_JE_SOURCES_TL
INDEX UNIQUE SCAN GL.GL_JE_SOURCES_TL_U1
INDEX UNIQUE SCAN GL.GL_JE_CATEGORIES_TL_U1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_JE_BATCHES_U1
INDEX UNIQUE SCAN GL.GL_BUDGET_VERSIONS_U1
INDEX UNIQUE SCAN GL.GL_ENCUMBRANCE_TYPES_U1
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
TABLE ACCESS BY INDEX ROWID GL.GL_JE_BATCHES
INDEX UNIQUE SCAN GL.GL_JE_BATCHES_U1
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
INDEX UNIQUE SCAN GL.GL_JE_BATCHES_U1
TABLE ACCESS BY INDEX ROWID GL.GL_PERIODS
INDEX RANGE SCAN GL.GL_PERIODS_U1
After Condition
SELECT STATEMENT
SORT GROUP BY
VIEW SYS
SORT GROUP BY
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS
NESTED LOOPS
NESTED LOOPS OUTER
NESTED LOOPS
TABLE ACCESS FULL GL.GL_JE_BATCHES
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
INDEX UNIQUE SCAN GL.GL_JE_BATCHES_U1
TABLE ACCESS BY INDEX ROWID GL.GL_JE_HEADERS
INDEX RANGE SCAN GL.GL_JE_HEADERS_N1
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
INDEX UNIQUE SCAN GL.GL_ENCUMBRANCE_TYPES_U1
INDEX UNIQUE SCAN GL.GL_DAILY_CONVERSION_TYPES_U1
INDEX UNIQUE SCAN GL.GL_BUDGET_VERSIONS_U1
TABLE ACCESS BY INDEX ROWID GL.GL_JE_SOURCES_TL
INDEX UNIQUE SCAN GL.GL_JE_SOURCES_TL_U1
INDEX UNIQUE SCAN GL.GL_JE_CATEGORIES_TL_U1
INDEX UNIQUE SCAN GL.GL_JE_BATCHES_U1
TABLE ACCESS BY INDEX ROWID GL.GL_JE_LINES
INDEX RANGE SCAN GL.GL_JE_LINES_U1
INDEX UNIQUE SCAN GL.GL_SETS_OF_BOOKS_U2
TABLE ACCESS BY INDEX ROWID GL.GL_CODE_COMBINATIONS
INDEX UNIQUE SCAN GL.GL_CODE_COMBINATIONS_U1
TABLE ACCESS BY INDEX ROWID GL.GL_PERIODS
INDEX RANGE SCAN GL.GL_PERIODS_U1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUES
INDEX RANGE SCAN APPLSYS.FND_FLEX_VALUES_N1
INDEX RANGE SCAN APPLSYS.FND_FLEX_VALUE_NORM_HIER_U1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUES_TL
INDEX UNIQUE SCAN APPLSYS.FND_FLEX_VALUES_TL_U1
TABLE ACCESS BY INDEX ROWID APPLSYS.FND_FLEX_VALUE_SETS
INDEX UNIQUE SCAN APPLSYS.FND_FLEX_VALUE_SETS_U1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
INDEX UNIQUE SCAN GL.GL_JE_HEADERS_U1
Is there anything i can do in Discoverer Desktop / Administration to avoid this problem.
Many thanks,
LanceHi Rod,
I've tried the condition (Batch Status||'' = 'Posted') as you suggested, but the qeury time is still over 20 mins. To test i changed it to (Batch Status||'' = 'Unposted') and the query was returned within seconds again.
Ive been doing some more digging and have found the database view that is linked to the Journal Batches folder. See below.
I think the problem is with the column using DECODE. When querying the column in TOAD the value of P is returned. But in discoverer the condition is done on the value Posted. Im not too sure how DECODE works, but think this could be the causing some sort of issue with Full Table Scans. How do we get around this?
Lance
DECODE( JOURNAL_BATCH1.STATUS,
'+', 'Unable to validate or create CTA',
'+*', 'Was unable to validate or create CTA',
'-','Invalid or inactive rounding differences account in journal entry',
'-*', 'Modified invalid or inactive rounding differences account in journal entry',
'<', 'Showing sequence assignment failure',
'<*', 'Was showing sequence assignment failure',
'>', 'Showing cutoff rule violation',
'>*', 'Was showing cutoff rule violation',
'A', 'Journal batch failed funds reservation',
'A*', 'Journal batch previously failed funds reservation',
'AU', 'Showing batch with unopened period',
'B', 'Showing batch control total violation',
'B*', 'Was showing batch control total violation',
'BF', 'Showing batch with frozen or inactive budget',
'BU', 'Showing batch with unopened budget year',
'C', 'Showing unopened reporting period',
'C*', 'Was showing unopened reporting period',
'D', 'Selected for posting to an unopened period',
'D*', 'Was selected for posting to an unopened period',
'E', 'Showing no journal entries for this batch',
'E*', 'Was showing no journal entries for this batch',
'EU', 'Showing batch with unopened encumbrance year',
'F', 'Showing unopened reporting encumbrance year',
'F*', 'Was showing unopened reporting encumbrance year',
'G', 'Showing journal entry with invalid or inactive suspense account',
'G*', 'Was showing journal entry with invalid or inactive suspense account',
'H', 'Showing encumbrance journal entry with invalid or inactive reserve account',
'H*', 'Was showing encumbrance journal entry with invalid or inactive reserve account',
'I', 'In the process of being posted',
'J', 'Showing journal control total violation',
'J*', 'Was showing journal control total violation',
'K', 'Showing unbalanced intercompany journal entry',
'K*', 'Was showing unbalanced intercompany journal entry',
'L', 'Showing unbalanced journal entry by account category',
'L*', 'Was showing unbalanced journal entry by account category',
'M', 'Showing multiple problems preventing posting of batch',
'M*', 'Was showing multiple problems preventing posting of batch',
'N', 'Journal produced error during intercompany balance processing',
'N*', 'Journal produced error during intercompany balance processing',
'O', 'Unable to convert amounts into reporting currency',
'O*', 'Was unable to convert amounts into reporting currency',
'P', 'Posted',
'Q', 'Showing untaxed journal entry',
'Q*', 'Was showing untaxed journal entry',
'R', 'Showing unbalanced encumbrance entry without reserve account',
'R*', 'Was showing unbalanced encumbrance entry without reserve account',
'S', 'Already selected for posting',
'T', 'Showing invalid period and conversion information for this batch',
'T*', 'Was showing invalid period and conversion information for this batch',
'U', 'Unposted',
'V', 'Journal batch is unapproved',
'V*', 'Journal batch was unapproved',
'W', 'Showing an encumbrance journal entry with no encumbrance type',
'W*', 'Was showing an encumbrance journal entry with no encumbrance type',
'X', 'Showing an unbalanced journal entry but suspense not allowed',
'X*', 'Was showing an unbalanced journal entry but suspense not allowed',
'Z', 'Showing invalid journal entry lines or no journal entry lines',
'Z*', 'Was showing invalid journal entry lines or no journal entry lines', NULL ), -
Multiple Facts at the same report
Hello gurus,
How can I use multiple facts at the same report using OBIEE 10g?
I followed the instructions of this website but it's not working...
http://obibb.wordpress.com/2010/05/31/multiple-fact-reporting-on-non-conforming-dimensions/
Physical Model:
ASSET (DIMENSION) ------------ ASSET (FACT) ----------------- PERSON (DIMENSION) ----------------- CAMPAIGN (FACT) ---------------- CAMPAIGN (DIMENSION)
Business Model:
ASSET (DIM) ---------------- FACT ------------------- CAMPAIGN (DIM)
(ASSET - CAMPAIGN)
|
|
|
|
PERSON (DIM)
Asset and Campaign: Non conformed Dimensions;
Person: Conformed Dimension;
Note that I want to use at my report some asset and campaign informations to answer questions like:
Wich assets were created after the campaign launch? or List of asset by person and campaigns.
Is it possible to do? I'm trying to change all kinds of column levels (Total/Detail) and it keeps sending an error like:
"Internal error: No matching table for expr Fact_W_CAMP_HIST_F_Teste.SOURCE_WID, File server/Query/Optimizer/SmartScheduler/PhysicalRequestGenerator/Src/SQOSPSimplifyJoin.cpp, line 118."
Thank you in advance.
Ramon CortezHello,
Thank you for your help.
Now I'm getting this error: "None of the fact tables are compatible with the query request Fact.SOURCE_WID". ---> Fact.CAMPAIGN_WID
I'm actually not sure about the behaviour of the content tab. As I understood, I must use Total for non-conformed dimensions and detail for conformed, right?
In this case I have:
ASSET (DIMENSION) ------------ ASSET (FACT) ----------------- PERSON (DIMENSION) ----------------- CAMPAIGN (FACT) ---------------- CAMPAIGN (DIMENSION)
So, at Asset (FACT) content tab I have to set detail for Asset (DIM) and Person (DIM) and total for Campaign (DIM).
At Campaign (FACT) content tab I have to set detail for Campaign (DIM) and Person (DIM) and total for Asset (DIM).
But at the columns, if I set detail for Campaign(DIM) as total, all the other columns will show only Campaign at content tab. Why is it happening?
My requeriment measure is like:
SUM(CASE WHEN Asset.Date1 BETWEEN Campaign.DateA and Campaign.DateB AND Asset.Product = Campaign.Product and Asset.Status = 'Active' THEN 1 ELSE 0 END)
How can I do this using person as conformed dimension?
Thanks,
Ramon Cortez -
Multiple queries in a single report?
I'm having some issues with the ColdFusion Report Builder...
I have a database table called "Items" that includes fields
for Reviewer and Status. I want to create a report that will list a
reviewer, then express the number of items where the Status is
"open" as a total or record count. I want to do the same for total
items, and then express the number of "open" items as a percentage.
For example:
REVIEWER, OPEN ITEMS, TOTAL ITEMS, PERCENT OPEN
John Doe, 10, 20, 50%
Jane Smith, 15, 60, 25%
...and so on.
So far I've only been able to get my report to display the
recordcount of the entire query. In order troubleshoot the problem
I created a regular cfm page to do the same thing. Here's what I
did:
<cfquery name="getreviewers"
datasource="#APPLICATION.datasource#">
SELECT DISTINCT Reviewer
FROM Items
ORDER BY Reviewer
</cfquery>
<cfoutput query="getreviewers">
<cfquery name="getopenitems"
datasource="#APPLICATION.datasource#">
SELECT Status
FROM Items
WHERE Status='open'
AND Reviewer = '#Reviewer#'
</cfquery>
<cfset open = getopenitems.recordcount>
<cfquery name="getallitems"
datasource="#APPLICATION.datasource#">
SELECT Status
FROM Items
WHERE Reviewer = '#Reviewer#'
</cfquery>
<cfset all = getallitems.recordcount>
<cfset percent = (open / all) * 100>
#getreviewers.DR_Item_Reviewer#, #open#, #all#,
#Round(percent)#%
</cfoutput>
That worked great, but as you can see I had to nest a couple
of queries inside a <cfoutput>. I don't know how to
incorporate this into the report builder, as it seems you can only
specify a single query. Another thing that occurs to me is perhaps
I'm going about this the wrong way. Is there perhaps a function
that will display things the way I want them without fussing with
multiple queries? Any help would be greatly appreciated. Thanks in
advance.It seems like you are trying to do a subreport. You can nest
reports within the report feature...just check out the subreport
feature under the help section. If that doesn't help let me
know. -
Creating ALV reports using OOP concept
After creating many reports i found out that 90% of the coding in a report is copy paste i.e. only 10% of coding effort is required which includes
creating the custom data types and internal table variables ...
populating the data
creating screen,GUI status and GUI title
Just copy paste the below code and do as stated :
*ALV TEMPLATE
*create screen no. 2000
*change flow logic in screen if necessary
*create GUI status and GUI title
*change selection texts and text symbols*
REPORT Y_TEMPLATE_ALV.
TABLES : ."use if range of values required on selection screen.
DATA: zcl_alvgrid TYPE REF TO cl_gui_alv_grid,
zcl_ccontainer TYPE REF TO cl_gui_docking_container,
wa_layout TYPE lvc_s_layo,
it_fieldcat TYPE STANDARD TABLE OF lvc_s_fcat,
wa_fieldcat TYPE lvc_s_fcat,
z_document TYPE REF TO cl_dd_document,
o_docking TYPE REF TO cl_gui_docking_container,"Docking Container
o_split TYPE REF TO cl_gui_easy_splitter_container, "Splitter
o_top_container TYPE REF TO cl_gui_container, "Top Container
o_bottom_container TYPE REF TO cl_gui_container."Bottom Container
TYPES : BEGIN OF TY_FINAL,
"All columns which are to be displayed in the report should be included here
END OF TY_FINAL.
*Add additional Internal Tables's if data is to be extracted from multiple tables
*Then loop at main table and Read the other tables
DATA :IT_DATA TYPE STANDARD TABLE OF , "data extracted from tables can be stored in this internal table variable ..
WA_DATA TYPE ,
iT_alv TYPE STANDARD TABLE OF TY_FINAL, " pass to the method SET_TABLE_FOR_FIRST_DISPLAY of class
ZCL_ALVGRID [Already done ; its just fyi]
WA_alv TYPE TY_FINAL.
DATA :V_CLN(255) TYPE C, " For no. of records
V_LINE TYPE I. " for conversion of integer to character
* Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:
SELECT-OPTIONS: " PARAMETERS and Range on selection screen
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN OUTPUT.
* START OF SELECTION *
START-OF-SELECTION.
* SELECT * FROM INTO CORRESPONDING FIELDS OF TABLE IT_DATA WHERE ....in ....
IF SY-SUBRC = 0.
LOOP AT IT_DATA INTO WA_DATA.
MOVE-CORRESPONDING WA_DATA TO wa_alv. " if data is fetched from only one table
APPEND wa_alv TO it_alv.
CLEAR : wa_alv,WA_DATA.
ENDLOOP.
DESCRIBE TABLE it_alv LINES V_LINE.
V_CLN = V_LINE.
ENDIF.
END-OF-SELECTION.
PERFORM DISPLAY_ALV.
*& Module STATUS OUTPUT
* text
MODULE STATUS_2000 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'ALV'.
* ** Creating Docking Container
CREATE OBJECT o_docking
EXPORTING
* side = cl_gui_docking_container=>dock_at_right
ratio = '95'.
IF sy-subrc EQ 0.
* Splitting the Docking container
CREATE OBJECT o_split
EXPORTING
parent = o_docking
sash_position = 05 "Position of Splitter Bar (in Percent)
with_border = 0. "With Border = 1 Without Border = 0
* Placing the containers in the splitter
o_top_container = o_split->top_left_container .
o_bottom_container = o_split->bottom_right_container .
* Creating the document
CREATE OBJECT z_document
EXPORTING
style = 'ALV_GRID'.
ENDIF.
* Calling the methods for dynamic text
CALL METHOD z_document->add_text
EXPORTING
TEXT = 'No. of Records:'
sap_emphasis = cl_dd_area=>strong. " For bold
* Adding GAP
CALL METHOD z_document->add_gap
EXPORTING
width = 10.
* Adding Text
CALL METHOD z_document->add_text
EXPORTING
TEXT = v_cln.
* Adding Line
CALL METHOD z_document->new_line.
* Display the data
CALL METHOD z_document->display_document
EXPORTING
parent = o_top_container.
IF zcl_alvgrid IS INITIAL .
*----Creating ALV Grid instance
CREATE OBJECT zcl_alvgrid
EXPORTING
i_parent = o_bottom_container
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Calling the method of ALV to process top of page
CALL METHOD zcl_alvgrid->list_processing_events
EXPORTING
i_event_name = 'TOP_OF_PAGE'
i_dyndoc_id = z_document.
* Preparing field catalog.
PERFORM T_FIELDCAT USING:
'1' 'BRNCD' 'BRAND'.
* 'Column no' 'FIELDNAME' 'Column Heading'
WA_LAYOUT-CWIDTH_OPT = 'X'.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-SEL_MODE = 'A'.
* Setting table for first display
CALL METHOD ZCL_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = WA_LAYOUT
CHANGING
IT_OUTTAB = it_alv
IT_FIELDCATALOG = IT_FIELDCAT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 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.
ELSE.
CALL METHOD ZCL_ALVGRID->REFRESH_TABLE_DISPLAY
EXCEPTIONS
FINISHED = 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.
ENDIF.
ENDMODULE. " STATUS OUTPUT
MODULE USER_COMMAND_2000 INPUT.
DATA: V_OK_CODE TYPE SY-UCOMM,
V_SAVE_OK TYPE SY-UCOMM.
V_OK_CODE = SY-UCOMM.
V_SAVE_OK = V_OK_CODE.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 1000.
WHEN 'EXIT'.
LEAVE program.
WHEN OTHERS.
SET SCREEN 1000.
ENDCASE.
CLEAR V_SAVE_OK.
SET SCREEN 0.
LEAVE SCREEN.
ENDMODULE. " USER_COMMAND_2000 INPUT
*& Form T_FIELDCAT
* text
* -->x text
* -->y text
* -->z text
FORM T_FIELDCAT USING VALUE(X) TYPE ANY
VALUE(Y) TYPE ANY
VALUE(Z) TYPE ANY.
WA_FIELDCAT-COL_POS = X.
WA_FIELDCAT-FIELDNAME = Y.
WA_FIELDCAT-COLTEXT = Z.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " T_FIELDCAT
*& Form DISPLAY_ALV
* text
* --> p1 text
* <-- p2 text
FORM DISPLAY_ALV .
IF NOT it_alv[] IS INITIAL.
CALL SCREEN 2000.
ELSE.
MESSAGE 'No data for Display' TYPE 'I'.
ENDIF.
ENDFORM. " DISPLAY_ALVHello Jay,
Calling methods, creating instances, casting etc are not OOP. When you say you've developed an OO-report you think OO, refer to this blog to see what i mean - Global Data in ABAP OO Programs
BR,
Suhas -
How to create custom report in crm 2013
Hi,
I want to create custom report in crm 2013. I want to show Contact information in report. My scenario is that when I select multiple record and run report then contact information show in different pages. I want to show record in textbox in report. Here
is an example of display recordHi Aamir,
Have a look at below link it shows step by step how to create custom SSRS report.
http://www.njevity.com/blog/creating-dynamics-crm-2011-reports-sql-reporting-services-pre-filtering-and-default-filters
It tells using fetchxml, you can use SQL query as well. You need to use pre filtering to run report on selected record.
Thanks,
Prasad
Make sure to "Vote as Helpful" and "Mark As Answer",if you get answer of your question. -
Question about creating a report with variable columns
Post Author: Archmage
CA Forum: General
Hi,
Is there a way to create a Crystal report based on the following situation?
Run a stored procedure with two date parameters:
If you run from 9/1/07 to 9/30/07, then the data result would be as follows: (example only) and the report format would follow
Cust Sept 07
AB100 2000
If run from 8/01/07 to 9/30/07
Cust Aug 07 Sept 07
AB100 1000 2000
if run from 7/01/07 to 9/30/07
Cust July 07 Aug 07 Sept 07
AB100 1000 1000 2000
So Basically, based on the parameters chosen, it could be a report with one, two, three, or even 40 columns, each column representing the month.
Thanks for any ideasPost Author: Archmage
CA Forum: General
Does this require that the stored procedure has already created the different columns by month first? Or can the raw data be a three column source
like
CUSTNO DATE AMT
AA100 8/1/07 1000
AA100 9/1/07 2000
AA100 10/1/07 2500
And checking the format with multiple columns will create the Crystal report like:
CustNo Aug 07 Sept 07 Oct 07
AA100 1000 2000 2500 -
Creating multipage report using XSL
Hi
Here is one requirement in our project, where we have multiple purchase order in XML file, each of the purchase order may contains n number of lines. We have to create the PO report using the XSL-FO method.
If any purchase order printed on n no. of pages then page from 1 to (n-1) should display only subtotal and n th(the last page for respective purchase order) page should display the total of all the line involved in the respective purchase order.
I want to ask :
how it can be done?
Is it possible using XSL-FO or XSLT?Apache FOP may be used to create PDF reports from an XML file.
http://www.packtpub.com/article/converting-xml-to-pdf -
Exporting to multiple PDF's from one report
I have a requirement to create multiple PDF's from one report.
My thought is that I can I can create a foreach loop that cycles through one of my groups. I would then like to have each file have the name of that group.
If anyone could help me on how to code this in C# that would be great. I need to know where I should be putting this code (program.cs or crystalreport.cs) and how I run it. I am assuming I don't need the viewer for this function, since this is all on my end and no users need to have access to it.
My other requirement is to have each of these reports be put into their own folders at C:\. Thanks for the help in advance!OK. Yup, you should be able to do this. When I was reading the initial post it looked like you might have ben wanting to export only a certain section of a report (which is a no go).
Anyhow, first thing you want to do is apply Service pack 3:
https://smpdl.sap-ag.de/~sapidp/012002523100007123572010E/cr2008_sp3.exe
Next, you want to look at a few sample apps and go over some docs. What you want to achieve can be done by using parameters or selection formulas.
A good coding resources is the [Crystal Reports for Visual Studio 2005 Walkthroughs|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23]. Don't worry about the title, it will apply to CR 2008 also.
Next, sample apps can be downloaded from here:
https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples
[CR 2008 developer library|http://help.sap.com/businessobject/product_guides/boexir31/en/crsdk_net_dg_12_en.chm]
[API reference|http://help.sap.com/businessobject/product_guides/boexir31/en/crsdk_net_apiRef_12_en.chm]
Not sure if you are thinking of this being a web app, but here are some resources for that:
[Interactivity and Reports in Web Applications|http://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/208edbbf-671e-2b10-d7b5-9b57a832e427&overridelayout=true]
Before starting your project, you should have a look at [this|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40bccdfd-88a6-2b10-1da1-c47a54b625a7] to make sure you are using the right SDK for your purposes.
Finally, the following are links to 3rd party resources and I'm adding htese just as an FYI:
http://www.emoreau.com/Entries/Articles/2006/09/Feeding-Crystal-Reports-from-your-application.aspx
http://msdn.microsoft.com/en-us/magazine/cc301570.aspx
Ludek
Follow us on Twitter http://twitter.com/SAPCRNetSup -
Multiple audit records per one report refresh
We use BO XI R3 on Windows with CMS on DB2.
I need to create audit reports on BO report usage with following data:
username, timestamp, duration, report name for DeskI and WebI reports.
I use auditing on DesktopIntelligenceCacheServer and WebIntelligenceProcessingServer.
The problem is that I'm getting multiple records in AUDIT_EVENT table with different event_ids and timestamps per one refreshed report.
Following SQL brings 2 records from WebI server all the time (first with duration=0) and from 1 to 5 records from DeskI server, all of them with real report duration.
SELECT
start_timestamp,
ae.EVENT_ID,
user_name,
duration,
object_type,
detail_id,
detail_text
FROM BO_XI_R3.AUDIT_EVENT ae,
bo_xi_r3.AUDIT_DETAIL ad,
bo_xi_r3.EVENT_TYPE et
where ae.EVENT_TYPE_ID=et.EVENT_TYPE_ID
and ae.EVENT_ID=ad.EVENT_ID
and ad.DETAIL_TYPE_ID=8
and ae.EVENT_TYPE_ID=19
order by 1;
How to separate unique refresh info?
Edited by: Valentin Volk on Oct 3, 2008 9:03 PMValentin,
The "duplicate" records that you are seeing, is it always consistent or just sometimes. I ran you query against my Auditor database and sometimes (like maybe less than 50%) I am seeing "duplicate" records. I say "duplicate" because the Event_ID is different in each case, but by sorty by start_timestamp, I can see a duration 0 record, and if the query takes like 5 seconds, then five seconds later I see the entry again (with a new Event_ID) and the second record has a duration of 5. What does all this mean? I don't know exactly, other than BO sees the act of submitting a report (sometimes) as an activity (and records an "enter" record with a duration of zero, zero for obvious reasons), then when the report ends another entry to the journal used to record the duration. And at other times I don't see the "enter" record, just the entry with the duration. In my practice we run a similiar query as you've provided but we do not record where duration is zero.
thanks,
John
Maybe you are looking for
-
What is the exact definition of PO status "Changes transmitted" ?
Hi' Can any one tel me what is the exact definition of PO status "Changes transmitted" ? We are using a SRM05 system. Thanks.
-
Will the MacBook run Worms 3D and Unreal Tournament 2004?
I wish to change my current PowerBook for the new MacBook but for one of the things i use my computer the most besides for high school is to play games and i would like to know if the new MacBook will be able to run smoothly this two games.
-
Configuration in App.config for MS Excel 2002
I want to read data from MS Excel 2002 into my List<t> I want to connect MS Excel using App.config. Assuming file name is "MyExcelFile.xls" and DataTableName is "Sheet1$", how could I make configuration string?
-
Logged in with unknown account apple app store?
I got the alert on my mac that there were updates for my mac in the app store, so I opened the app store and there I got the notice "There are updates for other accounts, Log in with <email> to perform the updates from this account" (translated from
-
HT1477 i need to know a australia itunes code
can someone send me a australia itunes code