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,
    V

    Yes, 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 Jenney

    Hi 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.
    Marc

    Hi 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,
    Lance

    Hi 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.
    I’ve 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’. I’m 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 Cortez

    Hello,
    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_ALV

    Hello 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 record

    Hi 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 ideas

    Post 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 PM

    Valentin,
    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