Reporting of null data on group sort

I am writing a report for annual deliveries and, using Group Expert, I am extracting data monthly, but, some months there are no deliveries and hence there is no data to extract. This gives a problem when charting since there are 'missing' months. It must be possible to instruct either the Group sort or the Chart to include months where there is no data as zero, but, despite searching I have not been able to find a simple check button that will include all months regardless of data available. Would appreciate any help.
Edited by: Paul Barlow on Jan 21, 2009 8:33 AM

Hi Paul,
With no usable table it will be difficult What you could do is something like
SELECT
months.month, tdpur045.orno,tdpur045.pono,tdpur045.date,tccom020.nama,tdpur045.suno,tdpur045.item,tdpur045.srnb,tdpur045.iqan,tdpur041.ddtc,tdpur041.ddta,tdpur045.dqua
FROM
(select '01'  as month from dual union all select '02  as month from dual ... select '12'  as month from dual) as months, tdpur041 tdpur041,tdpur045 tdpur045,tccom020 tccom020
WHERE
months.month (+)= to_char(tdpur045.date, "mm")
(tdpur041.orno=tdpur045.orno AND tdpur041.pono=tdpur045.pono AND tdpur045.suno=tccom020.suno) AND ((tdpur045.date>=date.to.num(2008,01,22) AND tdpur045.date<=date.to.num(2009,01,21)) AND (tdpur045.suno LIKE " *.066330. *" OR tdpur045.suno LIKE " *.076180. *" OR tdpur045.suno LIKE " *.232030. *" OR tdpur045.suno LIKE " *.233040. *" OR tdpur045.suno LIKE " *.250030. *" OR tdpur045.suno LIKE " *.935480. *" OR tdpur045.suno LIKE " *.951790. *") AND (tdpur045.orno<200000 OR tdpur045.orno>699999))
ORDER BY
tccom020.nama ASC
assuming Oracle here, and you will need to check the order join syntax. It is very messy but it might work
Regards
Alan

Similar Messages

  • Reports generated with null data

    Hi,
    I setup a role which has read access to all records under different tab corretly. However, the reports are displayed with null data. Any idea?
    Thanks VK

    Hi Bobb,
    "Role-Based Can Read All Records" equal to No in my configuration. Requirement is not to allow report creation on others data.
    So, if I make it Yes, then they can access all data in CRMOD and create report. Please let me know if my understanding is correct.
    Thanks VK

  • Hyperlink in report on a field the data is grouped on

    Hi,
    I have a standard Portal report that is grouped by COUNTRY field. I have a link on the COUNTRY field that brings up a detail report. Since the data is grouped by COUNTRY and there are multiple lines with the same COUNTRY, it only shows the COUNTRY value on the first line. However, you can see a dash on the rest of the lines and it is very confusing for the users. Is there any way to get rid of this dash? (It shows nothing if there is no link attached to the field but I do need the link).
    Thank you,
    Inga

    How do I change my monitor profile to check whether it’s corrupted? - The Lightroom Queen Help Desk & Members Area - Pow…

  • SSRS report not displaying data in correct order

    Guys,
    I have a SSRS 2012 report not displaying returned records from SQL in the correct order.  Running the stored procedure in SSMS and supplying the parameter values returns the data correctly and running Query Designer in SSRS using the stored procedure
    on the dataset in question, likewise returns the data correctly.  Only when I run the actual report does the data display incorrectly(always last name order).  I've done similar reporting using very similar stored procedures and I've never had this
    problem.  Below is the stored procedure.  "@SortBy" is the parameter with the sorting value. 1=Due Date; 2=Denial Amt and 3=Last name and is passed by SSRS to SQL.  Wish I could supply screen shots.  
    Thanks for any help,
    Dave
    ALTER PROCEDURE [dbo].[RAC_PT_List]
    @Level as int,
    @SortBy as int,
    @PTLName as varchar(30) = NULL,
    @User as varchar(10) = NULL
    AS
    SELECT pat.headerID,
    pat.PT_LName + ', ' + pat.PT_FName AS PTName,
    pat.PT_AcctNo,
    rco.RCO_CLMREF,
    rco.RCO_AppealLevel,
    rco.RCO_LevelNo,
    rco.RCO_AuditorStatus,
    let.LET_DEN_DueDate,
    CONVERT(varchar(12),let.LET_DEN_DueDate) as DueDate,
    let.LET_DEN_Dollars,
    let.userID
    FROM Master_PT_List pat
    INNER JOIN Master_RCO_Work rco on RCO.PT_headerID = pat.headerID
    INNER JOIN Master_Letters let on LET.PT_headerID = pat.headerID
    WHERE (@PTLName IS NULL OR(pat.PT_LName LIKE + '%' + @PTLName + '%'))
    AND (rco.RCO_LevelNo = @Level)
    AND (let.userID = @User)
    --AND (rco.RCO_AuditorStatus <> 'Closed' and rco.RCO_AdminStatus <> 'Closed')
    ORDER BY 
    CASE WHEN @SortBy = '1' THEN LET_DEN_DueDate
    END
    DESC,
    CASE WHEN @SortBy = '2' THEN let.LET_DEN_Dollars
    END
    DESC,
    CASE WHEN @SortBy = '3' THEN pat.PT_LName
    END

    Hi DaveMac1960,
    According to your description, when you render data in report, you find it always shows the data with unexpected order. Right?
    In Reporting Services, if we don't set any sorting in tablix, it will order the data as your query in SSMS or Query Builder. In some scenario, for example, we add parent group for data rows, it will have the rows sort by the group on data field by default,
    and the "order by" in your query will be ignored. So please check the Sorting tab in Tablix Properties, in this scenario, we suggest you delete any sorting in the Sorting tab so that the "Order By" clause can work.
    Reference:
    Sort Data in a Data Region (Report Builder and SSRS)
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Advanced Datagrid GroupingCollection of flat data (XMLLISTCollection) while sorting throws exception

    HI,
         Iam using AdvancedDatagrid inorder to group the flat data populated from the backend through BlazeDS. Result data will be in xml format and i have converted it to xmllistcollection and assigned to the grouping collection source. Flat data is grouped by one of the attribute called 'Name' and refreshed after data has been populated.
    Data structre used as input is: WIth this structure, iam grouping by the field 'Name'.
      <Report> <att_report>
      <id>FDR1</id>
      <Name>Feeder 1</Name>
      <frequency>Monthly</frequency>
      <Field>Finance 1</Field>
      <Aug_10>100</Aug_10>
      <Jul_10>200</Jul_10>
    </att_report>
    <att_report>
      <id>FDR1</id>
      <Name>Feeder 1</Name>
      <frequency>Yearly</frequency>
      <Field>Finance 2</Field>
      <Jul_10>200</Jul_10>
    </att_report>
    <att_report>
      <id>FDR2</id>
      <Name>Feeder 2</Name>
      <frequency>Quarterly</frequency>
      <Field>Finance 3</Field>
      <Jul_10>2000</Jul_10>
    </att_report>
    <att_report>
      <id>FDR2</id>
      <Name>Feeder 2</Name>
      <frequency>MOnthly</frequency>
      <Field>Finance 2</Field>
      <Jul_10>2000</Jul_10>
    </att_report>
    <att_report>
      <id>FDR4</id>
      <Name>Feeder 4</Name>
      <frequency>yearly</frequency>
      <Field>Finance 5</Field>
      <Jul_10>2000</Jul_10>
    </att_report>
    </Report>
    Grouping is done as expected. We have additional functionalities like soring / seraching of the result set. Either one is working fine. Other functionality throws excpetion mentioned below.
    When any of the advanced datagrid grid column header is clicked for sorting, it throws exception. I have pasted the exception below for reference.
    TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at mx.collections::HierarchicalCollectionView/internalRefresh()[C:\work\flex\dmv_automation\ projects\datavisualisation\src\mx\collections\HierarchicalCollectionView.as:709]
    at mx.collections::HierarchicalCollectionView/refresh()[C:\work\flex\dmv_automation\projects \datavisualisation\src\mx\collections\HierarchicalCollectionView.as:686]
    at mx.controls::AdvancedDataGridBaseEx/sortHandler()[C:\work\flex\dmv_automation\projects\da tavisualisation\src\mx\controls\AdvancedDataGridBaseEx.as:6869]
    at mx.controls::AdvancedDataGrid/sortHandler()[C:\work\flex\dmv_automation\projects\datavisu alisation\src\mx\controls\AdvancedDataGrid.as:6899]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()
    at mx.controls::AdvancedDataGrid/headerReleaseHandler()[C:\work\flex\dmv_automation\projects \datavisualisation\src\mx\controls\AdvancedDataGrid.as:7120]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()
    at mx.controls::AdvancedDataGridBaseEx/mouseUpHandler()[C:\work\flex\dmv_automation\projects \datavisualisation\src\mx\controls\AdvancedDataGridBaseEx.as:5738]
    at mx.controls::AdvancedDataGrid/mouseUpHandler()[C:\work\flex\dmv_automation\projects\datav isualisation\src\mx\controls\AdvancedDataGrid.as:8457]
    I tried with couple of options but still not able to get rid of the excpetion. I browsed through couple of links also, still not able to find an solution. Can i know whether it is a bug or it can be fixed.
    Any help / suggestions on this will be great.
    Thanks in Advance,
    Srinivasan

    Read the error messages and pay attention to the line number of the error:
    1)1 import java.io.*;
    2
    3 public class Test
    4 {
    5   public static void openFile()
    6   {
    7     FileOutputStream f = new FileOutputStream("data.txt");
    8   }
    9
    10   public static void main (String[] args)
    11   {
    12     openFile();
    13   }
    14 }
    $ javac -cp "" Test.java
    Test.java:7: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
        FileOutputStream f = new FileOutputStream("data.txt");
                             ^
    1 error2)1 import java.io.*;
    2
    3 public class Test
    4 {
    5   public static void openFile() throws FileNotFoundException
    6   {
    7     FileOutputStream f = new FileOutputStream("data.txt");
    8   }
    9
    10   public static void main (String[] args)
    11   {
    12     openFile();
    13   }
    14 }
    $ javac -cp "" Test.java
    Test.java:12: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
        openFile();
                ^
    1 error3)
    1 import java.io.*;
    2
    3 public class Test
    4 {
    5   public static void openFile() throws FileNotFoundException
    6   {
    7     FileOutputStream f = new FileOutputStream("data.txt");
    8   }
    9
    10   public static void main (String[] args)
    11   {
    12     try
    13     {
    14       openFile();
    15     }
    16     catch(FileNotFoundException e)
    17     {
    18       System.out.println("Error file doesn't exist.");
    19     }
    20   }
    21 }
    $ javac -cp "" Test.java
    $
    1 import java.io.*;
    2
    3 public class Test
    4 {
    5   public static void openFile() throws FileNotFoundException
    6   {
    7     FileOutputStream f = new FileOutputStream("data.txt");
    8   }
    9
    10   public static void main (String[] args) throws FileNotFoundException
    11   {
    12     openFile();
    13   }
    14 }
    $ javac -cp "" Test.java
    $

  • Changing group sort programmaticaly

    Is there a way to change or create a "group sort" formula from vb.net 2005? I am using Crystal reports XI R2.
    I need to be able to sort by ItemID, Qty, Amount or Volume, create the sort formula and be able to change the sort direction also.
    I tried to use:
                Dim crSortField As SortField
                Dim fieldDef As DatabaseFieldDefinition
                For Each crSortField In cr.DataDefinition.SortFields
                    fieldDef = cr.Database.Tables(0).Fields(crSortField.Field.Name.ToString)
                    crSortField = cr.DataDefinition.SortFields(1)
                    crSortField.Field = fieldDef
                    crSortField.SortDirection = SortDirection.DescendingOrder
                Next
    I get an error that says: The sort is not defined in the data definition.
    Any help would be appreciated.

    Here is a sample I had kicking around.
    Keep in mind that you must have at least one sort already set up to be able to change it. Otherwise you'll need to use the RAS SDK to add sorts at runtime.
              private void Form1_Load(object sender, System.EventArgs e)
                   ConfigureCrystal();
              private void ConfigureCrystal()
                   // Instantiate and load the Sort Report.rpt
                   crReportDocument = new ReportDocument();
                   crReportDocument.Load(Application.StartupPath + "\\..\\..\\Sort Report.rpt");
                   // Change the sorting for the group to sort based on the summary
                   // of @Order Amount x Tax.
                   SortFields crSortFields = crReportDocument.DataDefinition.SortFields;
                   foreach(SortField crSortField in crSortFields)
                        if (crSortField.Field.Name == "Count ({Orders.Order ID}, {Customer.Customer ID})")
                             // Get the new field to sort on
                             FieldDefinition crFieldDefinition = crReportDocument.DataDefinition.SummaryFields[1];
                             crSortField.Field = crFieldDefinition;
                             crSortField.SortDirection = SortDirection.DescendingOrder;
                             break;     // break out of the foreach loop
                   // Change the sorting for the record type as well
                   foreach(SortField crSortField in crSortFields)
                        if(crSortField.Field.Name == "Order ID")
                             FieldDefinition crFieldDefinition = crReportDocument.Database.Tables[1].Fields[1]; // the Order Amount in in the 2nd table and 2nd field
                             crSortField.Field = crFieldDefinition;
                             crSortField.SortDirection = SortDirection.DescendingOrder;
                             break; // break out of this foreach loop
                   // Set the ReportSource of the CrystalReportViewer control
                   crystalReportViewer1.ReportSource = crReportDocument;
              private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
                   // clean up
                   crReportDocument.Close();
                   crReportDocument.Dispose();
                   crReportDocument = null;

  • GL Trial Balance Report Query with date Effectivity

    We have a requirement to show the GL Trial Balance report with Effective dates as Parameters.
    Current Analysis:
    The Journals get updated with corresponding CCID in GL_BALANCES table when the Journal is posted. GL_BALANCE is SOB specific, if the SOB has month as period then the balances in GL_BALANCES would get updated against the month(period).
    To overcome the period problem, we explored the option of using a View based on GL_JE_HEADERS and GL_JE_LINES for 'Posted' Journal Batches of a SOB. We are checking whether the GL_JE_HEADERS.default_effective_date lies between the :p_from_date and :p_to_date which is sent to the Report as a parameter. The above idea does not return expected data when the custom Trial Balance Report is run.
    Following is the Query we have written for it:
    SELECT cc.segment4 ACCOUNT, bal.code_combination_id,
    bal.begin_balance_dr
    + SUM (NVL (gljel.accounted_dr, 0)) opening_bal_dr,
    bal.begin_balance_cr
    + SUM (NVL (gljel.accounted_cr, 0)) opening_bal_cr,
    ffv.description,
    (SELECT SUM (NVL (gljel.accounted_dr, 0))
    FROM gl_je_headers gljeh,
    gl_je_lines gljel,
    gl_code_combinations gcc
    WHERE gljeh.default_effective_date BETWEEN :p_from_date
    AND :p_to_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.code_combination_id = gcc.code_combination_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND gljeh.actual_flag = 'A'
    --AND gljel.code_combination_id =
    -- bal.code_combination_id
    AND gcc.segment4 = cc.segment4
    GROUP BY gcc.segment4) c_dr,
    (SELECT SUM (NVL (gljel.accounted_cr, 0))
    FROM gl_je_headers gljeh,
    gl_je_lines gljel,
    gl_code_combinations gcc
    WHERE gljeh.default_effective_date BETWEEN :p_from_date
    AND :p_to_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.code_combination_id = gcc.code_combination_id
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND gljeh.actual_flag = 'A'
    AND gcc.segment4 = cc.segment4
    GROUP BY gcc.segment4) c_cr
    FROM gl_period_statuses per,
    gl_code_combinations cc,
    gl_balances bal,
    gl_je_headers gljeh,
    gl_je_lines gljel,
    fnd_flex_values_vl ffv,
    fnd_flex_value_sets ffvs
    WHERE cc.chart_of_accounts_id = :p_chart_of_accts_id
    AND bal.currency_code = :p_currency
    AND bal.actual_flag = 'A'
    AND bal.period_name = per.period_name
    AND cc.template_id IS NULL
    AND cc.code_combination_id = bal.code_combination_id
    AND per.set_of_books_id = :p_set_of_books_id
    AND per.application_id = 101
    AND :p_from_date BETWEEN per.start_date AND per.end_date
    AND gljeh.period_name = per.period_name
    AND gljeh.default_effective_date <= :p_from_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND ffv.flex_value_set_id = ffvs.flex_value_set_id
    AND ffvs.flex_value_set_name = 'JSWEL_ACCOUNT'
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND cc.summary_flag = ffv.summary_flag
    AND cc.segment4 = ffv.flex_value
    AND gljeh.actual_flag = 'A'
    AND gljel.code_combination_id = bal.code_combination_id
    GROUP BY bal.begin_balance_dr,
    bal.begin_balance_cr,
    cc.segment4,
    ffv.description,
    bal.code_combination_id
    The problem is that not all expected columns are being queried. Kindly advise as appropriate.
    Note: I have also posted this thread on the Financials forum. Posting here to present the query to a larger audience with the expectation that my query would be answered.
    Thanks & Regards
    Sumit

    suggest to create customize TB report.

  • GL Trial Balance Report with Effective Dates as Parameters

    We have a requirement to show the GL Trial Balance report with Effective dates as Parameters.
    Current Analysis:
    The Journals get updated with corresponding CCID in GL_BALANCES table when the Journal is posted. GL_BALANCE is SOB specific, if the SOB has month as period then the balances in GL_BALANCES would get updated against the month(period).
    To overcome the period problem, we explored the option of using a View based on GL_JE_HEADERS and GL_JE_LINES for 'Posted' Journal Batches of a SOB. We are checking whether the GL_JE_HEADERS.default_effective_date lies between the :p_from_date and :p_to_date which is sent to the Report as a parameter. The above idea does not return expected data when the custom Trial Balance Report is run.
    Following is the Query being used:
    SELECT cc.segment4 ACCOUNT, bal.code_combination_id,
    bal.begin_balance_dr
    + SUM (NVL (gljel.accounted_dr, 0)) opening_bal_dr,
    bal.begin_balance_cr
    + SUM (NVL (gljel.accounted_cr, 0)) opening_bal_cr,
    ffv.description,
    (SELECT SUM (NVL (gljel.accounted_dr, 0))
    FROM gl_je_headers gljeh,
    gl_je_lines gljel,
    gl_code_combinations gcc
    WHERE gljeh.default_effective_date BETWEEN :p_from_date
    AND :p_to_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.code_combination_id = gcc.code_combination_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND gljeh.actual_flag = 'A'
    --AND gljel.code_combination_id =
    -- bal.code_combination_id
    AND gcc.segment4 = cc.segment4
    GROUP BY gcc.segment4) c_dr,
    (SELECT SUM (NVL (gljel.accounted_cr, 0))
    FROM gl_je_headers gljeh,
    gl_je_lines gljel,
    gl_code_combinations gcc
    WHERE gljeh.default_effective_date BETWEEN :p_from_date
    AND :p_to_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.code_combination_id = gcc.code_combination_id
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND gljeh.actual_flag = 'A'
    AND gcc.segment4 = cc.segment4
    GROUP BY gcc.segment4) c_cr
    FROM gl_period_statuses per,
    gl_code_combinations cc,
    gl_balances bal,
    gl_je_headers gljeh,
    gl_je_lines gljel,
    fnd_flex_values_vl ffv,
    fnd_flex_value_sets ffvs
    WHERE cc.chart_of_accounts_id = :p_chart_of_accts_id
    AND bal.currency_code = :p_currency
    AND bal.actual_flag = 'A'
    AND bal.period_name = per.period_name
    AND cc.template_id IS NULL
    AND cc.code_combination_id = bal.code_combination_id
    AND per.set_of_books_id = :p_set_of_books_id
    AND per.application_id = 101
    AND :p_from_date BETWEEN per.start_date AND per.end_date
    AND gljeh.period_name = per.period_name
    AND gljeh.default_effective_date <= :p_from_date
    AND gljeh.je_header_id = gljel.je_header_id
    AND gljel.period_name = gljeh.period_name
    AND gljel.set_of_books_id = :p_set_of_books_id
    AND ffv.flex_value_set_id = ffvs.flex_value_set_id
    AND ffvs.flex_value_set_name = 'JSWEL_ACCOUNT'
    AND gljeh.status = 'P'
    AND gljel.status = 'P'
    AND cc.summary_flag = ffv.summary_flag
    AND cc.segment4 = ffv.flex_value
    AND gljeh.actual_flag = 'A'
    AND gljel.code_combination_id = bal.code_combination_id
    GROUP BY bal.begin_balance_dr,
    bal.begin_balance_cr,
    cc.segment4,
    ffv.description,
    bal.code_combination_id
    Kindly suggest if I am missing anything. I am sure that the great guns here can help me out.
    Thanks
    Sumit

    suggest to create customize TB report.

  • Interactive Report Returns Misleading Data Because of ROWNUM Limit

    Hi, We have been relying on widespread use of Interactive Reports for internal Business Intelligence in our company, and they have been very popular. However, a user found a data discrepancy when sorting a report because the ROWNUM limit of :APXWS_MAX_ROW_CNT is applied before the user requested ORDER BY clause. We are running Apex version 3.2.0.00.27 on a 10.2.0.4 database.
    The IR query returns quotes from our custom quoting application, and the default number of rows is 100 (and is changeable by the user). The user wanted to see the most recent quotes, so he selected the "Creation Date" column header and simply applied a descending filter. The most recent quote returned was dated last week. However, if he applied an additional filter of "creation date in the last week", he did see today's date and mostly current quote rows.
    When I ran debug on his IR query, I can see that the ROWNUM limit is applied first, then the ORDER BY. This means that the database fetches the first x rows that match the supplied parameters, and then orders the result set. However, this is not what the user meant, he wanted the first rows of an ordered set.
    Here's the debug query output (with the middle removed because it's long):
    select
           "QUOTE_NUMBER",
           "CUSTOMER",
           "CUST_CONTACT",
           "QUOTE_STATUS",
           "TOTAL_PRICE",
           "TOTAL_WEIGHT",
           "WHSE",
           "SHIP_DATE",
           "PO_NUMBER",
           "ORACLE_REFERENCE",
           "INSIDE_SALESREP",
           "OUTSIDE_SALESREP",
           "CREATION_DATE",
           "ID",
           "ORA_CUST_ID",
           "CUST_CONTACT_ID",
           count(*) over () as apxws_row_cnt
    from (
    select  *  from (
    SELECT
      kh.id,
      kh.ora_cust_id,
      kh.quote_number quote_number ,
      kh.cust_contact_id,
      k2_customers_pkg.get_contact(cust_contact_id) cust_contact ,
      k2_customers_pkg.get_cust_name(kh.ora_cust_id)customer,
      k2_customers_pkg.get_cust_number(ora_cust_id)
    ( ......... more sql goes here )
    AND k2_customers_pkg.get_outside_salesrep_number(kh.ora_site_id)||'%' LIKE :P64_OUTSIDE_SALES||'%'
    AND kh.whse_code like :P64_WAREHOUSES||'%'
    AND ((1=
        CASE WHEN :P64_ITEM_ID IS NULL THEN
            1
        ELSE
            (SELECT 1
               FROM k2_quote_lines kl
               JOIN k2_ingredients ki
                 ON ki.quote_line_id=kl.id
              WHERE (1=1
                AND kh.id=kl.quote_id
                AND ki.ora_item_id=:P64_ITEM_ID AND ROWNUM=1))
        END)
        OR 1=(
            SELECT 1 FROM k2_quote_lines kl WHERE kl.quote_id=kh.id AND kl.part_id=:P64_ITEM_ID AND ROWNUM=1
    )  r
    ) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
    order by "CREATION_DATE" DESC,"QUOTE_NUMBER" DESCHowever, what the user wanted is to have the ORDER BY applied first, then the limit. I realize performance may suffer, but users are now alarmed that they cannot trust these reports. I'm tempted to log a SR with Oracle on this.
    Any thoughts on this? Is this fixed in 4.0?
    Thank you, Wolf Moritz

    Hi, thanks for the response. I did spend a bit of time on trying to trick the interactive report into reversing the rownum and order by clauses. But ultimately I didn't see how to do it. Whatever query I paste into the source of the report is then wrapped in a couple of containing select statements which first applies the rownum limit and then the order by clause (if the user selects any columns to sort by).
    So this query:
    select * from scott.empBecomes:
    select
           "EMPNO",
           "ENAME",
           "JOB",
           "MGR",
           "HIREDATE",
           "SAL",
           "COMM",
           "DEPTNO",
           count(*) over () as apxws_row_cnt
    from (
    select  *  from (
    select * from scott.emp
    )  r
    ) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
    pAnd a user applied sort becomes:
    select
           "EMPNO",
           "ENAME",
           "JOB",
           "MGR",
           "HIREDATE",
           "SAL",
           "COMM",
           "DEPTNO",
           count(*) over () as apxws_row_cnt
    from (
    select  *  from (
    select * from scott.emp
    )  r
    ) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
    order by "DEPTNO" DESCIf I could somehow bind to some item for the order by string I might then be able to trick the report into ordering the result set first (which I know can't really be done unless using dynamic sql). Forcing an initial hard coded order by isn't practical on this particular report, although I do see why that might work in some circumstances.
    Side note on the oddly placed case statement: This interactive report has some page level "meta" parameter items, and that case statement was meant as a way to avoid an exists statement on a particularly large table if no value was submitted for P64_ITEM_ID. It's been a long time since we deployed the report, so it's probably worth testing some explain/autotrace plans on this case statement vs an exists statement in the predicate. But for now it works!
    Thanks, Wolf

  • Series group sorting

    Hi
    I am facing one problem. In my report i need to change chart order series group sorting by report parameter
    value. Is it impossible?
    thanx in advence.

    Hi Unbeliever,
    Per my understanding you have an parameter and the order of the series group will sort based on the  value in the parameter selected, right?
    I assumed that you have two values in the parameter(ASC,DESC) to define the order. you can add an expression in the Series group to change the order based on this parameter.
    Details information below for your reference:
    Right click the Series group to select the "Series Group properties".
    Select the "Sorting" and add expression below to conditional change order(By default the order is ASC):
    =IIF(Parameters!Order.Value="ASC",Fields!CarModel.Value,switch(Fields!CarModel.Value="LXI",5,
    Fields!CarModel.Value="Test1",4,
    Fields!CarModel.Value="Test2",3,
    Fields!CarModel.Value="VXI",2,Fields!CarModel.Value="ZXI",1))
    Preview you will got the chart display as below:
    If your problem still exists, please try to provide more details information about the value in the parameter and also sample data in the table and so on.
    Regards
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Getting a group sort type (CrSortDirectionEnum)

    I needed to get the sort directon for a GROUP sort. However, using the following code is invalid for groups (at least if the group is not asc/desc):
    CrystalDecisions.CrystalReports.Engine.SortFields crystalSortFields = report.DataDefinition.SortFields;
    if (crystalSortFields != null)
        foreach (CrystalDecisions.CrystalReports.Engine.SortField crystalSortField in crystalSortFields)
            switch (crystalSortField.SortDirection)
                case CrystalDecisions.Shared.SortDirection.AscendingOrder:
                    break;
                case CrystalDecisions.Shared.SortDirection.DescendingOrder:
                    break;
                case CrystalDecisions.Shared.SortDirection.TopNOrder:
                case CrystalDecisions.Shared.SortDirection.BottomNOrder:
                default:
                    break;
    After some searching, and some trial and error, I found a solution:
    using System.Reflection;
    using System.Runtime.InteropServices;
    using CrystalDecisions.ReportAppServer.DataDefModel;
    CrystalDecisions.CrystalReports.Engine.SortFields crystalSortFields = report.DataDefinition.SortFields;
    if (crystalSortFields != null)
        foreach (CrystalDecisions.CrystalReports.Engine.SortField crystalSortField in crystalSortFields)
            if (crystalSortField.SortType == CrystalDecisions.Shared.SortFieldType.GroupSortField)
                MethodInfo getRasSort = crystalSortField.GetType().GetMethod("get_RasSort", BindingFlags.NonPublic | BindingFlags.Instance);
                object rasSort = getRasSort.Invoke(crystalSortField, System.Type.EmptyTypes);
                IntPtr iunkwn = Marshal.GetIUnknownForObject(rasSort);
                switch ((CrSortDirectionEnum)((dynamic)rasSort).Direction)
                    case CrSortDirectionEnum.crSortDirectionAscendingOrder:
                        break;
                    case CrSortDirectionEnum.crSortDirectionDescendingOrder:
                        break;
                    case CrSortDirectionEnum.crSortDirectionBottomNOrder:
                    case CrSortDirectionEnum.crSortDirectionBottomNPercentage:
                    case CrSortDirectionEnum.crSortDirectionNoSortOrder:
                    case CrSortDirectionEnum.crSortDirectionTopNOrder:
                    case CrSortDirectionEnum.crSortDirectionTopNPercentage:
                    default:
                        break;
    BTW, this is VS2010 w/ CR for VS2010.

    Hello Pablo
    Many, many thanks for sharing this solution. I'm going to make a KB out of this as it is a good piece of knowledge to capture.
    Happy coding,
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • ORACLE reports Build 10g - Data Model - query - If statement in Alias ?

    I have the following select statement. It has the alias Survivors, Deaths and "All
    With the ORACLE reports Build 10g - Data Model - I have the following query statement. I require the alias to change. Can the following be done.
    Cases". Is it posible to use :P_LANGUAGE variable to say that -- IF :P_LANGUAGE = FRENCH THEN alias are Survivants for survivors, Décès for Deaths, Tous_les_cas for All Cases. Please advise
    SELECT ALL T_NTR_MULTIBAR.CAT, T_NTR_MULTIBAR.NUM_CASES_LEFTBAR AS Survivors,
    T_NTR_MULTIBAR.NUM_CASES_MIDDLEBAR AS Deaths, T_NTR_MULTIBAR.NUM_CASES_RIGHTBAR AS "All Cases"
    FROM T_NTR_MULTIBAR
    WHERE INSTANCE_NUM = :P_INSTANCENUM
    order by ORDERS

    It is no problem, you can automatically change the complete query before the report is running, which delivers you different kind of values. But the alias names does not change in the group of the data-model, although two query are running with different alias names at different times. In the data model you see the alias names of the first implemented select statement, which are the column fields in the layout.

  • How to create a report using XML data source from Crystal Report Designer

    Hi,
    Iu2019m having Crystal Report Designer XI R2 SP4. Iu2019m trying to create a report using XML data source stored on disk. This is a customer order report and the xml is structured in such a way that it has an order details header part (master) and then it has several order lines (detail). One order line can have several order line characteristics (detail-detail). So what I need to know is now I can design this layout from the designer. If this was done using views I can do it with sub-reports but using xml data this seems to be different. Can you help me to design this layout? I have included the xml and xsd as well.
    Thank you in advance.
    Regards,
    Chanaka
    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <CUSTOMER_ORDER_CONF_REP_REQUEST xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns="urn:ifsworld-com:customer_order_conf_rep">
        <CUSTOMER_ORDER_CONF_REP>
            <ORDER_NO>D555809</ORDER_NO>
            <PRINTED_DATE>2009-03-26T08:52:54</PRINTED_DATE>
            <AUTHORIZE_NAME>Chanaka</AUTHORIZE_NAME>
            <CUSTOMER_NO>CU-1473-INV</CUSTOMER_NO>
            <CUST_NAME>Mr.Johan Matts</CUST_NAME>
            <SHIP_ADDR_1>93,Main Street</SHIP_ADDR_1>
            <SHIP_ADDR_2>Negambo Road</SHIP_ADDR_2>
            <SHIP_ADDR_3>Watthala</SHIP_ADDR_3>
            <SHIP_ADDR_4>SRI LANKA</SHIP_ADDR_4>
            <BILL_ADDR_1>93,Main Street</BILL_ADDR_1>
            <BILL_ADDR_2>Negambo Road</BILL_ADDR_2>
            <BILL_ADDR_3>Watthala</BILL_ADDR_3>
            <BILL_ADDR_4>SRI LANKA</BILL_ADDR_4>
            <CUSTOMER_PO_NO>112984638</CUSTOMER_PO_NO>
            <CUSTOMER_FAX>112984639</CUSTOMER_FAX>
            <CUSTOMER_EMAIL>abcbababab</CUSTOMER_EMAIL>
            <ORDER_LINES>
                <ORDER_LINE>
                    <LINE_NO>1</LINE_NO>
                    <CUSTOMER_PART_NO>NW-IP11</CUSTOMER_PART_NO>
                    <CUSTOMER_PART_DESC>iPod</CUSTOMER_PART_DESC>
                    <SALE_UNIT_PRICE>1200</SALE_UNIT_PRICE>
                    <PRICE_TOTAL>1200</PRICE_TOTAL>
                    <DISCOUNT>0</DISCOUNT>
                    <PRICE_QTY>1</PRICE_QTY>
                    <ORDER_LINE_CHARACTERSTICS>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID xsi:nil="1"/>
                            <CHARACTERISTIC_VALUE xsi:nil="1"/>
                        </CHARACTERISTIC_ITEM>
                    </ORDER_LINE_CHARACTERSTICS>
                </ORDER_LINE>
                <ORDER_LINE>
                    <LINE_NO>2</LINE_NO>
                    <CUSTOMER_PART_NO>NW-IP24</CUSTOMER_PART_NO>
                    <CUSTOMER_PART_DESC>XGA Projector</CUSTOMER_PART_DESC>
                    <SALE_UNIT_PRICE>500</SALE_UNIT_PRICE>
                    <PRICE_TOTAL>1500</PRICE_TOTAL>
                    <DISCOUNT>0</DISCOUNT>
                    <PRICE_QTY>3</PRICE_QTY>
                    <ORDER_LINE_CHARACTERSTICS>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>1</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>Free Instalation</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                    </ORDER_LINE_CHARACTERSTICS>
                </ORDER_LINE>
                <ORDER_LINE>
                    <LINE_NO>3</LINE_NO>
                    <CUSTOMER_PART_NO>NW-IP02</CUSTOMER_PART_NO>
                    <CUSTOMER_PART_DESC>Sony DVD Player</CUSTOMER_PART_DESC>
                    <SALE_UNIT_PRICE>1000</SALE_UNIT_PRICE>
                    <PRICE_TOTAL>1000</PRICE_TOTAL>
                    <DISCOUNT>0</DISCOUNT>
                    <PRICE_QTY>1</PRICE_QTY>
                    <ORDER_LINE_CHARACTERSTICS>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>1</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>Free 5 DVDs</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                    </ORDER_LINE_CHARACTERSTICS>
                </ORDER_LINE>
                <ORDER_LINE>
                    <LINE_NO>4</LINE_NO>
                    <CUSTOMER_PART_NO>NW-IP99</CUSTOMER_PART_NO>
                    <CUSTOMER_PART_DESC>Flatscreen TV</CUSTOMER_PART_DESC>
                    <SALE_UNIT_PRICE>1500</SALE_UNIT_PRICE>
                    <PRICE_TOTAL>1350</PRICE_TOTAL>
                    <DISCOUNT>10</DISCOUNT>
                    <PRICE_QTY>1</PRICE_QTY>
                    <ORDER_LINE_CHARACTERSTICS>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>1</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>Free Delivery</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>2</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>1 year additional warranty</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                    </ORDER_LINE_CHARACTERSTICS>
                </ORDER_LINE>
                <ORDER_LINE>
                    <LINE_NO>5</LINE_NO>
                    <CUSTOMER_PART_NO>NW-IP56</CUSTOMER_PART_NO>
                    <CUSTOMER_PART_DESC>Sony MP3 Player</CUSTOMER_PART_DESC>
                    <SALE_UNIT_PRICE>200</SALE_UNIT_PRICE>
                    <PRICE_TOTAL>400</PRICE_TOTAL>
                    <DISCOUNT>0</DISCOUNT>
                    <PRICE_QTY>2</PRICE_QTY>
                    <ORDER_LINE_CHARACTERSTICS>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>1</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>Free carry belt</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>2</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>Free promotional 4GB memory bar</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                        <CHARACTERISTIC_ITEM>
                            <CHARACTERISTIC_ID>3</CHARACTERISTIC_ID>
                            <CHARACTERISTIC_VALUE>No warranty on memory bar</CHARACTERISTIC_VALUE>
                        </CHARACTERISTIC_ITEM>
                    </ORDER_LINE_CHARACTERSTICS>
                </ORDER_LINE>
            </ORDER_LINES>
        </CUSTOMER_ORDER_CONF_REP>
    </CUSTOMER_ORDER_CONF_REP_REQUEST>
    XSD
    <?xml version="1.0" encoding="UTF-8"?>
    <?report  module="ORDER" package="CUSTOMER_ORDER_CONF_REP" ?>
    <xs:schema targetNamespace="urn:ifsworld-com:customer_order_conf_rep" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:ifsworld-com:customer_order_conf_rep" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="CUSTOMER_ORDER_CONF_REP_REQUEST">
    <xs:complexType>
    <xs:all minOccurs="1" maxOccurs="1">
    <xs:element name="CUSTOMER_ORDER_CONF_REP">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="50">
    <xs:element name="ORDER_NO" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="PRINTED_DATE" type="xs:dateTime" nillable="true" minOccurs="0"/>
    <xs:element name="AUTHORIZE_NAME" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUSTOMER_NO" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUSTOMER_PO_NO" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUST_NAME" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="SHIP_ADDR_1" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="SHIP_ADDR_2" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="SHIP_ADDR_3" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="SHIP_ADDR_4" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="BILL_ADDR_1" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="BILL_ADDR_2" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="BILL_ADDR_3" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="BILL_ADDR_4" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUSTOMER_FAX" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUSTOMER_EMAIL" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="ORDER_LINES" nillable="true" minOccurs="0">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element name="ORDER_LINE">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="39">
    <xs:element name="LINE_NO" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="SALE_UNIT_PRICE" type="xs:float" nillable="true" minOccurs="0"/>
    <xs:element name="PRICE_TOTAL" type="xs:float" nillable="true" minOccurs="0"/>
    <xs:element name="DISCOUNT" type="xs:float" nillable="true" minOccurs="0"/>
    <xs:element name="PRICE_QTY" type="xs:float" nillable="true" minOccurs="0"/>
    <xs:element name="CUSTOMER_PART_NO" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="4000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CUSTOMER_PART_DESC" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="4000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="ORDER_LINE_CHARACTERSTICS" nillable="true" minOccurs="0">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element name="CHARACTERISTIC_ITEM">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="6">
    <xs:element name="CHARACTERISTIC_ID" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    <xs:element name="CHARACTERISTIC_VALUE" nillable="true" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="2000"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:all>
    </xs:complexType>
    </xs:element>
    </xs:schema>

    Hi Sourashree,
    Thank you for the response and ideas you have given me so far. I can get the fetch the data from the data source without any problem. That is I do the following,
    1.     New Report
    2.     From Create New Connection-> XML
    3.     Provide the u201CLocal XML Fileu201D and have u201CSpecify Schema Fileu201D checked -> Next
    4.     Provide the u201CLocal Schema Fileu201D  -> Finish
    Then I can see the following under XML
    + CUSTOMER_ORDER_CONF_REP_REQUEST
            CUSTOMER_ORDER_CONF_REP_REQUEST
         CUSTOMER_ORDER_CONF_REP_REQUEST/CUSTOMER_ORDER_CONF_REP
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES/ORDER_LINE
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES/ORDER_LINE/ORDER_LINE_CHARACTERSTICS
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES/ORDER_LINE/ORDER_LINE_CHARACTERSTICS/CHARACTERSTIC_ITEM
    And from here if I add the following three I can get all the fields I need to the report
         CUSTOMER_ORDER_CONF_REP_REQUEST/CUSTOMER_ORDER_CONF_REP
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES/ORDER_LINE
         CUSTOMER_ORDER_CONF_REP_REQUEST/ CUSTOMER_ORDER_CONF_REP/ORDER_LINES/ORDER_LINE/ORDER_LINE_CHARACTERSTICS/CHARACTERSTIC_ITEM
    Then I come to the Linking section. Here I canu2019t link anything. There is a common field called u201CInternal_IDu201D but I canu2019t link using it. So I get a message when I click Next. From here I add all the fields.
    For this point onwards only I need help. How do I group, add fields and design the layout so I can get an report output as follows.
    Date
    Order number                                   Authorized code
    Customer No
    Name
    Phone
    Fax email
    Shipping address 1                              Billing Address 1
    Shipping address 2                              Billing Address 2
    Shipping address 3                              Billing Address 3
    Shipping address 4                              Billing Address 4
    Order Line 1 detailsu2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026                      LINE_NO     CUSTOMER_PART_NO          CUSTOMER_PART_DESC     SALE_UNIT_PRICE     PRICE_QTY     DISCOUNT     PRICE_TOTAL
    Characteristic details belonging to Order line 1       CHARACTERISTIC_ID 1  CHARACTERISTIC_VALUE1
                                           CHARACTERISTIC_ID 2  CHARACTERISTIC_VALUE2
                                           CHARACTERISTIC_ID 3  CHARACTERISTIC_VALUE3
    Order Line 2 detailsu2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Characteristic details belonging to Order line 2
    Order Line 3 detailsu2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Characteristic details belonging to Order line 3
    Order Line 4 detailsu2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Characteristic details belonging to Order line 4
    Order Line 5 detailsu2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026u2026
    Characteristic details belonging to Order line 5
    How can I achieve this kind of a layout using the give xml and xsd? Should I use grouping if so how should I do the grouping?
    I have included the full xml and xsd in the first mail I posted but I canu2019t see it now. I can include that again if you want.
    Regards,
    Chanaka

  • XML Publisher report errors out when RDF report has no data

    Hi everyone,
    I created a template and attached it to an RDF. When i run the oracle report with the attached template, if the report has 'not data exists' the report is erroring out. is it the normal functionality of XML publiher??. Because i remember at my earlier client i have run some reports for which if 'no data exists' still the program would complete normal but the output would be blank.
    The xml output is creating the tags for the elements.
    any help appeciated.
    Thanks
    sam

    Hi Sam,
    Yes this will happen depending on what the template is repeating on etc. You can handle this quite easily using sub-templates.
    Firstly create your normal template as a sub-template (so surrounded by the <?template:TEMPLATE_NAME?> tags)
    Then create a second template that contains the text "NO DATA FOUND" as another sub-template.
    Create a third template (this will be your main template called by the report), which imports the two sub-templates, then using a choose statement, count the number of occurences of you main repeating group in your XML. If the count = 0 then call the "NO_DATA_FOUND" sub-template, otherwise call the normal sub-template.
    I hope this helps, if you need an example I can send you one, just let me know your email address.
    Regards,
    Cj

  • Tax Report Returns No Data [Message 131-85]

    Our client has been using SBO for the past few years and run the Standard Tax Report.
    They follow a standard procedure whereby they open the Tax Report enter the period details and click OK, the report returns all Input and Output Tax details.
    This month they have run the report and no matter what dates you enter the report returns No Date [Message 131-85]
    Does anyone have any clues as to what might be causing this?

    I have discovered via a SQL trace that the following script is tun for the tax report
    exec sp_executesql N'
    SELECT      T0.[AbsEntry],
         T0.[Code],
         MIN(T0.[Name]),
         T0.[SrcObjType],
         T0.[DocNum],
         MIN(T0.[Category]),
         MIN(T0.[IsEC]),
         T0.[IsAcq],
         MIN(T0.[VatPercent]),
         MIN(T0.[EqPercent]),
         T0.[DocDate],
         MIN(T0.[TaxDate]),
         MIN(T0.[CANCELED]),
         SUM(T0.[BaseSum]),
         SUM(T0.[VatSum]),
         SUM(T0.[EqSum]),
         SUM(T0.[DeductSum] - T0.[EqSum]),
         MIN(T0.[SrcObjAbs]),
         N''0'',
         0,
         0,
         MIN(T0.[DocDate]),
         0,
         0,
         MIN(T0.[NumAtCard]),
         SUM(T0.[BaseSumSc]),
         SUM(T0.[VatSumSc]),
         SUM(T0.[EqSumSC]),
         SUM(T0.[DedctSumSC] - T0.[EqSumSC]),
         MIN(T0.[TaxType]),
         T0.[CrditDebit],
         MIN(T0.[CardCode]),
         MIN(T0.[CardName]),
         MIN(T0.[SrcLineNum]),
         MIN(T0.[VatDate]),
         MIN(T0.[VatIdUnCmp]),
         MIN(T0.[LicTradNum]),
         MIN(T0.[BPLicTradNum]),
         MIN(T0.[AddID]),
         SUM(T0.[BaseSum])
         FROM  [dbo].[B1_VatView] T0 
         WHERE (T0.[Code] = (@P1)  OR       
         T0.[Code] = (@P2)  OR 
         T0.[Code] = (@P3)  OR 
         T0.[Code] = (@P4)  OR 
         T0.[Code] = (@P5)  OR 
         T0.[Code] = (@P6)  OR 
         T0.[Code] = (@P7)  OR 
         T0.[Code] = (@P8)  OR 
         T0.[Code] = (@P9)  OR 
         T0.[Code] = (@P10)  OR 
         T0.[Code] = (@P11)  OR 
         T0.[Code] = (@P12) ) AND 
         T0.[DocDate] >= (@P13)  AND 
         T0.[DocDate] <= (@P14)  
         GROUP BY T0.[AbsEntry], T0.[Code], T0.[SrcObjType], T0.[DocNum], T0.[IsAcq], T0.[DocDate], T0.[CrditDebit]
         ORDER BY T0.[IsAcq] DESC,T0.[CrditDebit]',N'@P1 nvarchar(30),@P2 nvarchar(30),@P3 nvarchar(30),@P4 nvarchar(30),@P5 nvarchar(30),@P6 nvarchar(30),@P7 nvarchar(30),@P8 nvarchar(30),@P9 nvarchar(30),@P10 nvarchar(30),@P11 nvarchar(30),@P12 nvarchar(30),@P13 datetime2,@P14 datetime2',N'SEXP',N'SFRE',N'SGST',N'SNT',N'PCAF',N'PCAP',N'PFRE',N'PGNR',N'PGST',N'PGSTV',N'PNT',N'PPRI','2010-03-01 00:00:00','2010-03-31 00:00:00'
    If I run this in SQL I get the following error, which mat shed some light on what is happening
    Msg 2715, Level 16, State 3, Line 1
    Column, parameter, or variable #13: Cannot find data type datetime2.
    Parameter or variable '@P13' has an invalid data type.
    Msg 2715, Level 16, State 3, Line 1
    Column, parameter, or variable #14: Cannot find data type datetime2.
    Parameter or variable '@P14' has an invalid data type.

Maybe you are looking for

  • Starting transaction in SAPGUI via JCo

    Hello, I'm trying to start SAPGUI for Windows using parameter setSapGui(1), but the GUI Window does not show. When I'm using setAbapDebug(true)than the GUI window starts in debug mode. What can be wrong? Does anyone have any ideas? I'm trying to star

  • Photoshop Elements 7 tutorial book recommendation

    Hi - I'm looking for a recommendation for a practical, how-to book for Photoshop Elements 7.  I am new to the software and have purchased a book which is pretty good but it's still too much like a technical manual.  Two books by Avi Muchnick, "When P

  • Is this possible? Pixel-aligned 1024x768 on 1440x900 MBPro?

    I've got a 2006-era MacBook Pro and I'm going to be producing a series of screencast demos at 1024x768 resolution. I want to set the screen resolution to 1024x768, but have it actually display at that resolution, not stretched to fit a 900px screen.

  • Macbook Pro Software Update

    I just had a new macbook pro and i updated it to OS X Yosemite. Software update keeps asking me to update iTunes 12.0.1 even though i have updated it several times. Please help. Thanks in advance.

  • Color workflow process status

    Hello, i want adding some color to the workflow process status. I find a link (http://www.orahyplabs.com/2010/08/customize-workflow-in-hyperion-planning.html) ...that explains how to do this...and so I'm wondering how access to two tables HSP_PM_ACTI