Report generation based on columns selected by user

Hi All,
I have gone through many posts with key column selector, fact selection not able to find solution to my issue, hence putting this infront of you.
In OBI Dashboard, I have dashboard prompts for dimensions with multiselect, based on the values selected report is generated.
Now user has a requirement in which, they should be able to select only those facts they are interested in; they want all column names to be listed in a multiselect prompt, only the selected facts should be present in the result(Report has around 20 fact columns)
Also there are 6 dimensions which are dashboard prompts (filters) they should be always displayed in the result and not to be listed in fact list that will be given to user for selection.
Obiee version : 10.1.3.4
Can any one please give me ideas to achieve this?
Thanks in advance,
Srl

So,
1. Have 6 Dim columns and set as prompted in the report and use prompts the standard way in a report as we know
2. Now use column selector in the Report where you place all the desired fact columns inside 4 anchored columns.
Ex. If you decide 4 column selector anchors and these 4 having all 20 fact columns in each, facilitates the user to run a report selecting any 4 metrics at one time, with the prompted selections
- dependency is user must run all 4 fact columns, could be 4 different fact columns or same fact column 4 times within the same report
- you may increase from 4 to 6 or so but user must select from all column selectors
Key is 'place all the desired fact columns inside 4 anchored columns'
Try this and see if this meets yours

Similar Messages

  • Table Sorting based on Column Selection

    Dear All,
    I am using an AbstractTableModel. I would like to implement the sorting based on Column selection. Could anyone help me in this please.
    Thanks in advance,
    Regards
    Irfaan

    check this
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.UIManager;
    import javax.swing.table.AbstractTableModel;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumnModel;
    import java.awt.Component;
    import java.awt.GridLayout;
    import java.awt.Insets;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Hashtable;
    public class TableSorter extends JPanel
        private boolean             DEBUG       = false;
        private Object[]            columnNames = { "First Name", "Last Name", "Sport", "# of Years",
                                                    "Vegetarian"};
        private Object[][]          data        = { { "Mary", "Campione", "Snowboarding", 1, 2 },
                { "Alison", "Huml", "Rowing", 3, 4 }, { "Kathy", "Walrath", "Knitting", 5, 9 },
                { "Sharon", "Zakhour", "Speed reading", 6, 10 }, { "Philip", "Milne", "Pool", 7, 11 },
                { "Isaac", "Rabinovitch", "Nitpicking", 8, 12 }, };
        private SortFilterModel     m_modSortFilterModel;
        private TableColumnModel    m_modColumnModel;
        private TableHeaderRenderer m_btnSorterRenderer;
        protected boolean           m_bAbCOC    = true;
        JTable                      table       = new JTable();
        public TableSorter()
            super(new GridLayout(1, 0));
            m_modSortFilterModel = new SortFilterModel();
            m_modSortFilterModel.addMouseListener(table);
            table.setModel(m_modSortFilterModel);
            m_btnSorterRenderer = new TableHeaderRenderer();
            m_modColumnModel = table.getColumnModel();
            for (int i = 0; i < columnNames.length; i++)
                m_modColumnModel.getColumn(i).setHeaderRenderer(m_btnSorterRenderer);
            JScrollPane scrollPane = new JScrollPane(table);
            add(scrollPane);
        private class SortFilterModel extends AbstractTableModel
            int[]           indexes;
            ATSTableSorter  sorter;
            public String[] tableHeadersArray;
            boolean         isAscent = true;
            public void addMouseListener(final JTable table)
                table.getTableHeader().addMouseListener(new MouseAdapter()
                    public void mouseClicked(MouseEvent event)
                        int tableColumn = table.columnAtPoint(event.getPoint());
                        m_btnSorterRenderer.setPressedColumn(tableColumn);
                        m_btnSorterRenderer.setSelectedColumn(tableColumn);
                        if (TableHeaderRenderer.DOWN == m_btnSorterRenderer.getState(tableColumn))
                            isAscent = true;
                        else
                            isAscent = false;
                        // translate to table model index and sort
                        int modelColumn = table.convertColumnIndexToModel(tableColumn);
                        sortByColumn(modelColumn, isAscent);
            public Object getValueAt(int row, int col)
                int rowIndex = row;
                if (indexes != null)
                    rowIndex = indexes[row];
                return data[rowIndex][col];
            public void setValueAt(Object value, int row, int col)
                int rowIndex = row;
                if (indexes != null)
                    rowIndex = indexes[row];
                super.setValueAt(value, rowIndex, col);
            public void sortByColumn(int column, boolean isAscent)
                if (sorter == null)
                    sorter = new ATSTableSorter(this);
                sorter.sort(column, isAscent);
                fireTableDataChanged();
            public int[] getIndexes()
                int n = getRowCount();
                if (indexes != null)
                    if (indexes.length == n)
                        return indexes;
                indexes = new int[n];
                for (int i = 0; i < n; i++)
                    indexes[i] = i;
                return indexes;
            public int getRowCount()
                return data.length;
            public String getColumnName(int c)
                return columnNames[c].toString();
            public int getColumnCount()
                return columnNames.length;
            public Class getColumnClass(int col)
                switch (col)
                case 0:
                    return String.class;
                case 1:
                    return String.class;
                case 2:
                    return String.class;
                case 3:
                    return Integer.class;
                case 4:
                    return Integer.class;
                          default:
                    return Object.class;
        class ATSTableSorter
            SortFilterModel model;
            public ATSTableSorter(SortFilterModel model)
                this.model = model;
            public void sort(int column, boolean isAscent)
                int n = model.getRowCount();
                int[] indexes = model.getIndexes();
                for (int i = 0; i < n - 1; i++)
                    int k = i;
                    for (int j = i + 1; j < n; j++)
                        if (isAscent)
                            if (compare(column, j, k) < 0)
                                k = j;
                        else
                            if (compare(column, j, k) > 0)
                                k = j;
                    int tmp = indexes;
    indexes[i] = indexes[k];
    indexes[k] = tmp;
    public int compare(int column, int row1, int row2)
    Object o1 = model.getValueAt(row1, column);
    Object o2 = model.getValueAt(row2, column);
    if (o1 == null && o2 == null)
    return 0;
    else if (o1 == null)
    return -1;
    else if (o2 == null)
    return 1;
    else
    Class type = model.getColumnClass(column);
    if (type.getSuperclass() == Number.class)
    return compare((Number) o1, (Number) o2);
    else if (type == String.class)
    return ((String) o1).compareTo((String) o2);
    else
    return ((String) o1).compareTo((String) o2);
    public int compare(Number o1, Number o2)
    double n1 = o1.doubleValue();
    double n2 = o2.doubleValue();
    if (n1 < n2)
    return -1;
    else if (n1 > n2)
    return 1;
    else
    return 0;
    class TableHeaderRenderer extends JButton implements TableCellRenderer
    public static final int NONE = 0;
    public static final int DOWN = 1;
    public static final int UP = 2;
    int pushedColumn;
    Hashtable state;
    public TableHeaderRenderer()
    pushedColumn = -1;
    state = new Hashtable();
    setMargin(new Insets(0, 0, 0, 0));
    setHorizontalTextPosition(LEFT);
    public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus,
    int row, int column)
    setText((value == null) ? "" : value.toString());
    setBorder(UIManager.getBorder("TableHeader.cellBorder"));
    boolean isPressed = (column == pushedColumn);
    getModel().setPressed(isPressed);
    getModel().setArmed(isPressed);
    return this;
    public void setPressedColumn(int col)
    pushedColumn = col;
    public void setSelectedColumn(int col)
    if (col < 0)
    return;
    Integer value = null;
    Object obj = state.get(new Integer(col));
    if (obj == null)
    value = new Integer(DOWN);
    else
    if (((Integer) obj).intValue() == DOWN)
    value = new Integer(UP);
    else
    value = new Integer(DOWN);
    state.clear();
    state.put(new Integer(col), value);
    public int getState(int col)
    int retValue;
    Object obj = state.get(new Integer(col));
    if (obj == null)
    retValue = NONE;
    else
    if (((Integer) obj).intValue() == DOWN)
    retValue = DOWN;
    else
    retValue = UP;
    return retValue;
    private static void createAndShowGUI()
    JFrame frame = new JFrame("TableDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    TableSorter newContentPane = new TableSorter();
    newContentPane.setOpaque(true); // content panes must be opaque
    frame.setContentPane(newContentPane);
    frame.pack();
    frame.setVisible(true);
    public static void main(String[] args)
    javax.swing.SwingUtilities.invokeLater(new Runnable()
    public void run()
    createAndShowGUI();

  • Automatic Report Bursting based on column names given by user as parameter.

    Hi,
    Could some help me achieve the following functionality. The requirement are:
    1. create a report that has parameters that are column names (display values e.g: department, location, employee job code)
    2. the end user will select one or more columns from the multi-select parameter
    3. we want that there should be a button on clicking that the user should get automatic file bursting. He should not be required to go to schedules tab and create a new job for that.
    4. the report should burst to a file location depending on the columns selected by the user, e.g. if user selected department and location then we should have files saved in the set file location as sales-india.pdf, sales-us.pdf, hr-india.pdf, hr-us.pdf and so on.
    I am new to BI Publisher.
    Could you help me in creating such a parameter, what should be report sql for capturing the data from parameter and then doing report bursting automatically based on two or more parameter values given by the user.
    There is no need to show the report to the user in BI Publisher as there are thousands of rows in a table. Three tables join to give the employee data.
    -Priyanka

    Thanks for a quick response but I am still not clear on
    1. how to do this using custom java code
    and
    2. actually user would login to interactive dashboard and there he will give these parameters using which we need to automatically burst a BI publisher report. Can this be done some how?
    -Priyanka

  • Dynamic crystal report generation - issues with column headings

    Hi All,<br>
    I'm trying to generate a crystal report dynamically based on a "result set" data(Query: select REPORT_ID, REPORT_NAME, REPORT_DESC, RPT_FILE_NAME, LOCATION from IRS_REPORT_DETAILS). I'm able to generate the report run time, But the report is without columns heads. I would like to include the column headings as well. <br><br>
    I searched the API(RAS) and found that there is a 'add(java.lang.String fieldName, java.lang.String headingText) " method present in "ReportObjectController" using which we can add the headings.<br><br>
    ReportDefController reportDefController = clientDoc.getReportDefController();
    ReportObjectController reportObjectController = reportDefController.getReportObjectController();
    reportObjectController.add( "{Table.Field}", "FieldName" );
    <br><br>
    I'm facing problems in using this code. When trying to use this function for my fields(Ex: reportObjectController.add( "{ IRS_REPORT_DETAILS.REPORT_ID}", "Report ID" );) it is giving me the following error:<br><br>"com.crystaldecisions.sdk.occa.report.lib.ReportSDKGroupException: The field was not found.---- Error code:-2147213310 Error code name:fieldNotFound"<br><br>
    <b>The following is my dynamic crystal report generation code:</b><br><br>
    public ReportClientDocument execute(String repName, String query) {
              ReportClientDocument boReportClientDocument = null;
              try {
                   boReportClientDocument = new ReportClientDocument();
                   boReportClientDocument.newDocument();
                      // Add a table based on the given Resultset to the report.
                   dbConnResultSet mySampleResultSet = new dbConnResultSet();
                   //mySampleResultSet.execute(query);
                   boReportClientDocument.getDatabaseController().addDataSource(
                             mySampleResultSet.execute(query));
                   IReportSource test = boReportClientDocument.getReportSource();
                   // Access all the database fields
                   DatabaseController databaseController = boReportClientDocument
                             .getDatabaseController();
                   IDatabase database = databaseController.getDatabase();
                   Tables tables = database.getTables();
                   ITable table = (Table) tables.getTable(0);
                   int NO_OF_FIELDS = table.getDataFields().size();
                   int LEFT_POSITION = 200;
                   // Add all the database fields to the report document
                   for (int i = 0; i < NO_OF_FIELDS; i++) {
                        IField field = table.getDataFields().getField(i);
                        FieldObject fieldObject = new FieldObject();
                        fieldObject.setFieldValueType(field.getType());
                        fieldObject.setDataSource(field.getFormulaForm());
                        IReportObject rep = (IReportObject) fieldObject;
                        IObjectFormat objformat = rep.getFormat();
                        objformat.setEnableCanGrow(true);
                        objformat.setHorizontalAlignment(Alignment.from_int(1));
                        rep.setFormat(objformat);
                        rep.setLeft(LEFT_POSITION);
                        rep.setWidth(1000);
                        LEFT_POSITION = LEFT_POSITION + 1000 + 50;
                        ISection section = boReportClientDocument
                                  .getReportDefController().getReportDefinition()
                                  .getDetailArea().getSections().getSection(0);
                                   //***************** Data being added to the report here, But headings are not added*****************
                        boReportClientDocument.getReportDefController()
                                  .getReportObjectController().add(rep, section, i);
                   boReportClientDocument.createReport();
                   /*Some report saving code is present down*/
              } catch (ReportSDKException ex) {
                   ex.printStackTrace();
              } catch (Exception ex) {
                   ex.printStackTrace();
              return boReportClientDocument;
    <br><br>
    appreciate your help.

    IField field = table.getDataFields().getField(i);
    Here you are getting the first field in the array.  This may not be the field you want to add since we aren't sure how the arrays are ordered when retrieving fields from the report.  It is better to retrieve the fields with the findObjectByName method, thus ensuring you are retrieving the field you want to add to your heading.

  • How to setup Multiple report layouts based on parameter selection

    I'm trying to create a report that will be based on the parameter values a user select. There will be 3 different layouts for the report.
    Customer
    Salesperson
    Category
    If the user selects one of the three a different layout will be displayed.
    This is probably a simple solution but my Reports 6i skills are a little rusty.
    Your advise would be appreciated.

    Ok so you have a parameter form, and some parameters. In the data model, you can put your 3 queries. In the layout, as Ino said, put all 3 frames that you could possibly have.
    The way I would use to choose which query to use is below. Others may have other methods, but I like this.
    Ok lets say you have query A,B,C for simplicity. You have one parameter (P_PARAM1) on the form, and the user can choose A,B or C. Based on the parameter, you choose which query to use.
    In query A, you would add this line to the where statement:
    and :P_PARAM1 = 'A' You add the same lines to queries B and C, but change the letter obviously. So if the user enters A, it will only run query A because that was the parameter selected.
    Now for the layout, click on the frame that corresponds with group/query A. You would click F11 or launch the PL/SQL editor, and add the following format trigger (or something similar).
    function F_GRP_A return boolean is
    begin
      IF :P_PARAM1 = 'A' then
        return (TRUE);
      ELSE
        return (FALSE);
      END IF;
    end;Ok - then add that same logic to Frame B and C, and based on the parameter it will hide or show the frame.
    Hope that helps - thats a basic way to do what you're looking for!

  • Report generation toolkit and column

    Hello, i asked this question before, but this time i just needed some input..
    I originally asked, if i am doing various experiment sets and say each sets takes in about 1000 data points, and i have to do 50 such experiments continously i wanted to know if there was a way of arranging the data so that for each experiment is written in a different column, so i have 50 different column. Instead of the current one column with 50000 data points.
    I was kindly suggested various alternatives such as using arrays...now my querry is regarding something that i heard which involves Report Generation toolset.
    If i was to get this toolset, with this make my life easier interms of sorting my data out into different columns? I ahve also been
    told it will do all sorts of graphs and do pretty much everying thing falling short of making a cup of tea
    Now has any one had any experience in this type of porblem? or do i have to stick with the array solution. Incidently the reason why i have a niggling problem with arrays is that my programme is stricly no limited to just 50000 data for some runs i can decide to take more data in one set then the orther so building an array becomes problematic.
    Please let me know what you all think of this kind Regards
    Mansoor

    Hello Mansoor
    If you want to write the data to an Excel spreadsheet there are several options available to you as well as the Report Generation Toolkit.
    I have posted some links to help and advice on performing this action using the toolkit, but also using the file I/O vi's and using active X.
    Have a look at these links and if you have any further questions please reply to this post.
    Report Generation Toolkit User Manual
    http://digital.ni.com/manuals.nsf/webAdvsearch/463​34E8183C5360586256E3F00603DDB?OpenDocument&vid=niw​c&node=132100_US
    Report Generation Toolkit Tutorials
    http://zone.ni.com/devzone/devzone.nsf/webcategori​es/A50386FBB21ECC1A86256AB7006C2E6C
    File I/O information
    http://zone.ni.com/devzone/devzone.nsf/webcategori​es/BC4E8ABB211CFE7F
    86256A1F0062CEB2
    Writing data to an Excel file example in the LabVIEW example finder at the following location: - �Communicating with External Applications -> ActiveX -> Excel -> Write Table to XL.vi�
    Regards
    Hannah
    NI

  • SP2013 Is it possible to show/hide columns based on column selections?

    SharePoint 2013
    I have a lists with a school district selection choice column (refer to as column A). Then I have three other columns with schools based on district. What I would like to do is only show schools in a certain district based on what district
    is selected in column A. Can anyone tell me if this is possible and if so, how can i acheive it?

    It generally takes a little script to get the cascading right;
    http://sharepoint-works.blogspot.ch/2012/02/cascading-dropdown-or-filtered-values.html
    https://www.youtube.com/watch?v=70-hXWY6ARY
    InfoPath is another possibility. Are you using that?
    w: http://www.the-north.com/sharepoint | t: @JMcAllisterCH | YouTube: http://www.youtube.com/user/JamieMcAllisterMVP

  • RFC data  into WebDynpro Table based on Page selected by user in Portal

    Hi All
    I am new to webdynpro. we are developing an application in which we are supposed sent two parameters to RFC to retrive data. Two parameters are Role (plant) and page names(Sub - plant).
    Finally there should only one RFC for whole application which takes parameters when user selects a role and page inside a role.
    How can I do this. Please help me.

    Hi,
    1. Develop an RFC at the backend SAP system, which takes in 2 input ( plant and sub-plant) and gives the list of results as a table.
    2. Create a model in the WD Java application to call the RFC.
    3. call the rfc, get the output and print the result in a table designed in the view.
    There is a sample application which can be found here
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/wd%20java/wd%20tutorials/creating%20a%20web%20dynpro%20application%20accessing%20abap%20functions.pdf
    This does a similar application which you are trying to do. This takes in 2 input parameters from the user 'Departure city' and 'Arrival city' and prints the list if flights. If you go thru this sample application, you can develop urs very easily.
    You can even get the source code of this project in the following link
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/28113de9-0601-0010-71a3-c87806865f26?rid=/library/uuid/49f2ea90-0201-0010-ce8e-de18b94aee2d#15 [original link is broken]
    Click 'download from SDN' in the link above.
    Hope this helps you
    Regards,
    Sharadha

  • Multiple column selection in ssrs report

    Hi all
    I am developing one report 
    which would be based on column selection combo
    what i want to achieve...
    i will use Store procedure
    and in my report i want multi select parameter called @Column_To_Select
    i want available values for combobox as total column names which is return by store procedure
    and when i select column1 is should only display column1 from tablix
    can one help how can i get column names from store procedure 
    Dilip Patil..

    You cant alter dataset like this. metadata has to be constant for SSRS report to work properly.
    I think your requirement should be implemented as follows. Always bring all columns from query inside dataset. Then in your report container (tablix/matrix) set an expression for columns visibility property to show only when select parameter value has the
    column name.
    The expression would be like below for hidden property each column
    =IIF(InStr("," & Join(Parameters!Columnnames.Value,",") & ",",",ColumnName,")>0,False,True)
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • SSRS 2008 - hide chart lines based on parameter selected

    How to control visibility of chart lines based on Params selected by user?
    By default, my report display last 3 years worth of data (including current) with Month on the x axis and Counts on the y axis. I have two Boolean parameters:
    TwoYrs? T/F
    ThreeYrs? T/F
    if False is selected for TwoYr and ThreeYr parameters then I want to hide chart lines corresponding to last year and the year before.
    What I've tried: Created 3 Series groups with filters. eg. YearSeries1 to return only current year data and applying an expression to display it if params TwoYrs and ThreeYrs = False. and so on for YearSeries2 to return current + last
    years data if param TwoYrs is True and ThreeYrs = False.  But I don't see where to add expression to control the display of the individual series groups.  I am open to any way of doing this, but this seemed most logical.

    Hi Ok-Hee,
    In your Source Query just need to filter the series data based on the Parameters.
    I have written sample query below:-
    select * from
    select 1 monthnumber , 'Jan' MonthName, 2013 year,100 amount
    union
    select 1 monthnumber , 'Jan' MonthName, 2014 year ,200 amount
    union
    select 1 monthnumber , 'Jan' MonthName, 2015 year , 300 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2013 year, 300 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2014 year, 350 amount
    union
    select 2 monthnumber , 'Feb' MonthName, 2015 year,200 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2013 year, 380 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2014 year, 100 amount
    union
    select 3 monthnumber , 'Mar' MonthName, 2015 year, 500 amount
    )t
    where year in (
    select distinct FilterYear from
    select case when @TwoYrs=1 then year(getdate())-1 else year(getdate()) end FilterYear
    union
    select case when @TwoYrs=1 and @ThreeYrs =1 then year(getdate())-2 else year(getdate()) end FilterYear
    union
    select year(getdate()) FilterYear
    ) t
    I have created one post in my blog , you can check the result.
    https://msbitips.wordpress.com/2015/03/12/ssrs-2008-hide-chart-lines-based-on-parameter-selected/
    Thanks
    Prasad

  • Extract XML data based on column tag

    Dear All,
    i want to extract the XML data type based on column selection.
    For example:
    i have the below xml in my database stored as XMLTYPE() data.
    <c1>10</c1><c2>0011</c2><c3>DEBIT</c3><c4>USD</c4>
    i want to extract the column tag c2&c3 alone. Is there any query to extract the same.
    Waiting for your response.Thanks in Advance.

    Hi,
    How do I set the web service option up correctly?  The XMLs are being created behind the scenes on what data to be used but I don't know how to make the menu only pick the xml based on the menu option.
    I have one XML that populates the menu options and specific XML's that has the data that goes with each menu option. The menu population works great but it doesn't pull the other XML's to populate the charts. This is the part that I need help.
    How do I use the web service to fix this? Any help would be very much appriecated.  I could even send you my dashboard if it helps so you can see what I've gotten so far (it's not all prettied up yet since I wanted to see if it's doable first)
    I'm new to Xcelsius so I apologize if these are newbie questions.
    Thanks,
    Jay

  • Logic to select Report name based on User's input.

    Hi Guru's
    Good Morning!
    I have a requirement to create a XMLPUBLISHER Report Whihc is Called as ITEM COUNT SUMMARY + ITEM COUNT DETAIL REPORT Following below
    are my ParameterS
    0.REPORT NAME
    1.ORG
    2.ORG COUNTRY
    3.ITEM SELECTION
    4.ORDER TYPE
    5.STATUS
    6.RECEIPT DATE FROM
    7.RECEIPT DATE TO
    8.TRANSIT DAYS
    REPORT NAME: PARAMETER WILL LET THE USER to select the requrired Reports to be run.
    ORG: is the Names of the SHIP FROM ORG
    ORG COUNTRY: is a Dependent Parameter based on the ORG (i.e When a SHIP FROM ORG is Selected the ORG CHOICE Should have the CHoices for the selected ORG and when Nothing Selected from that ORG it should run for every ORG COUNTRY in that SHIP FROM ORG Currently we have two ORG COUNTRY PER SHIP FROM ORG say(USA, CANADA)
    ITEM SELECTION: We need to Run this Report based on Item Selection ( The Logic should handle a total item selection whihc are comma seperated for upto 29
    items)
    ORDER TYPE : Types of Order Again this can be a List of Comma Seperated Values for order Types
    STATUS: STatus should be Comma Seperated (ENTERED,WAVED,NOTWAVED,SHIPPED)
    TRANSIT DAYS: Transit Days
    RECEIPT DATE FROM: This is the Starting DATe range for the REport to be run
    RECEIPT DATE TO: This is the END DATe range for the REport to be run.
    The ITEM COUNT SUMMARY Report should allow the users to run the report 3 ways
    1.ITEM COUNT RUN BY ORDER TYPE ( for all the STATUS)
    2.ITME COUNT RUN BY STATUS ( FOR all the ORDER TYPES)
    3.ITEM COUNT RUN BY TRANSIT DAYS
    And My approach is I have three Queries Created for the above and in the DATA DEFINITION File
    I have them Listed my DATA DEFININTION ( Sorry as my Query's GO More than 70+ LINES for Each Query I thought I will just paste the Order How i have arranged my queries in the Tempalte)
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <dataTemplate name="TPC_ITEM_COUNT_SUMMARY" description = "TPC_ITEM_COUNT_SUMMARY" version="1.0">
    <properties>
         <property name="xml_tag_case" value="upper"/>
    </properties>
    <!-- parameters for the Report -->
         <parameters>
         <parameter name="report_name" dataType="varchar2"/>
         <parameter name="item_selection"          dataType="varchar2"/>
         <parameter name="order_type"               dataType="varchar2"/>
         <parameter name="pstatus"               dataType="varchar2"/>
         <parameter name="org_name"               dataType="varchar2"/>
         <parameter name="org_choice"               dataType="number"/>
         <parameter name="first_receipt_date"     dataType="date"/>
         <parameter name="last_receipt_date"     dataType="date"/>
         <parameter name="from_date"               dataType="date"/>
         <parameter name="to_date"                    dataType="date"/>
         <parameter name="transit_days"          dataType="number"/>
         </parameters>
    <dataQuery>
    <sqlStatement name= "HDR">
    <![CDATA[
    SELECT UPPER('The ABC Corporation, Ltd.')     AS "COMPANY"
                   ,'Item Count Summary - '||INITCAP(:report_selection)||' for Company '||:org_name AS "REPORT"
                   ,'Order Types - '||UPPER(:order_type) AS "ORDER_TYPE"
                   , SYSDATE AS "RUN_DATE"
         ,'Receipt Date'||' '||TO_CHAR(NVL(TO_DATE(:first_receipt_date,'DD-MON-YYYY'),SYSDATE),'YYYYMMDD')                     ||' '||'thru'||' '||TO_CHAR(NVL(TO_DATE(:last_receipt_date,'DD-MON-YYYY'),SYSDATE),'YYYYMMDD') AS "RANGE"
    FROM DUAL;
    ]]>               
    </sqlStatement>
    <sqlStatement name= "BY_STATUS">
         <![CDATA[
    Query for ITEM COUNT SUMMARY by STATUS
    ]]>
    </sqlStatement>
    <sqlStatement name= "BY_ORDERTYPE">
         <![CDATA[
    Query for ITEM COUNT SUMMARY by ORDERTYPE
    ]]>
    </sqlStatement>
    <sqlStatement name= "BY_TRANSITDAYS">
         <![CDATA[
    Query for ITEM COUNT SUMMARY by TRANSITDAYS
    ]]>
    </sqlStatement>
    </dataQuery>
    <dataStructure>
    <group name="G_HDR" source="HDR">
              <element name="COMPANY" value="COMPANY" />
              <element name="REPORT" value="REPORT" />
              <element name="ORDER_TYPE" value="ORDER_TYPE" />
              <element name="RANGE" value="RANGE" />
    </group>
    <group name="G_BY_STATUS" source="BY_STATUS">                
              <element name="RCPT_DT" value="RCPT_DT"/>
    <element name="ITEM"     value="ITEM" />
              <element name="ITEM_DESCRIPTION" value="ITEM_DESCRIPTION" />
              <element name="ENTERED"     value="ENTERED" />
    <element name="WAVED"     value="WAVED" />
    <element name="NOTWAVED"     value="NOTWAVED" />
    <element name="SHIPPED"     value="SHIPPED"/>
    </group>
              <group name="G_BY_ORDERTYPE" source="BY_ORDERTYPE">                                         
    <element name="ITEM"          value="ITEM" />
              <element name="ITEM_DESCRIPTION" value="ITEM_DESCRIPTION" />
              <element name="RCPT_DT"     value="RCPT_DT"/>
              <element name="ORDER_TYPE"     value="ORDER_TYPE" />
    <element name="QUANTITY" value="QUANTITY" />
              </group>
    </dataStructure>
    </dataTemplate>
    Now My Problem is How Do i Get a Logic to Let the Report Name Selection To be REferenced in the Data Definition file..
    I would like to request you to Please help me out in arriving at a Solution for Implementing the Logic
    When the USer selects ITEM COUNT SUMMARY BY ORDER TYPE I want "BY_ORDERTYPE" to be Executed and so on..
    Is there a Way That I can Write in my Data definition file as
    DECODE(:REPORT_NAME ,'ITEM COUNT SUMMARY BY ORDERTYPE', Run query for BY_ORDERTYPE,
    ,'ITEM COUNT SUMMARY BY STATUS', Run query for BY_STATUS,
    ,'ITEM COUNT SUMMARY BY TRANSIT DAYS', Run query for BY_TRANSITDAYS,run query for DETAIL REPORT);
    Also My Item Description Contains Special Characters like Registered Symbol, Copyright Symbol How would I force my XML Parser to Still consider them as TEXT's
    May I Directly Specify <?xdofx:DECODE :REPORT_NAME = 'ITEM COUNT SUMMARY BY ORDERTYPE' THEN BY_ORDERTYPE ?> in the DATA DEFINITION file , I think this is only allowed in RTF please Help,
    Thanks
    vasanthanand

    Thanks for the Reply sir,
    When you say Write the Code, you are referring to the Package is that correct,unfortunately I am not implementing this via PL/SQL Package.
    you mentioned that I can Implement the Logic in the Data definition file( which is a XML file), how and Where I have print use that IF construct (or) Can you Please Print the Code snippet in the Model XML template that i have pasted in my Post.
    May i know what is this
    ln_req_id := fnd_request.submit_request -- for XML1 For...
    Sorry about my ignorance...

  • How to create a dynamic RTF report which creates dynamic columns based on dynamic column selection from a table?

    Hi All,
    Suppose I have table, whose structure changes frequently on daily basis.
    For eg. desc my_table gives you following column name on Day 1
    SQL > desc my_table;
    Output
    Name
    Age
    Phone
    On Day 2, two more columns are added, viz, Address and Salary.
    SQL > desc my_table;
    Output
    Name
    Age
    Phone
    Address
    Salary
    Now I want to create an Dynnamic RTF report which would fetch data from ALL columns from my_table on daily basis. For that I have defined a concurrent program with XML as output type and have attached a data template/data definition to it which takes in XML as input and gives final output of conc program in EXCEL layout. I am able to do this for constant number of columns, but dont know how to do it when the number of columns to be displayed changes dynamically.
    For Day 1 my XML file should be like this.
    <?xml version="1.0" encoding="UTF-8"?>
    <dataTemplate name="XYZ" description="iExpenses Report" Version="1.0">
    <dataQuery>
    <sqlStatement name="Q2">
    <![CDATA[
    SELECT Name
    ,Age
    ,Phone
    FROM my_table
    ]]>
    </sqlStatement>
    </dataQuery>
    <dataStructure>
    <group name="G_my_table" source="Q2">
      <element name="Name" value="Name" />
      <element name="Age" value="Age" />
      <element name="Phone" value="Phone" />
    </group>
    </dataStructure>
    </dataTemplate>
    And my Day 1, EXCEL output from RTF template should be like this.
    Name     Age     Phone
    Swapnill     23     12345
    For Day 2 my XML file should be like this. With 2 new columns selected in SELECT clause.
    <?xml version="1.0" encoding="UTF-8"?>
    <dataTemplate name="XYZ" description="iExpenses Report" Version="1.0">
    <dataQuery>
    <sqlStatement name="Q2">
    <![CDATA[
    SELECT Name
    ,Age
    ,Phone
    ,Address
    ,Salary
    FROM my_table
    ]]>
    </sqlStatement>
    </dataQuery>
    <dataStructure>
    <group name="G_my_table" source="Q2">
      <element name="Name" value="Name" />
      <element name="Age" value="Age" />
      <element name="Phone" value="Phone" />
      <element name="Address" value="Address" />
      <element name="Salary" value="Salary" />
    </group>
    </dataStructure>
    </dataTemplate>
    And my Day 2, EXCEL output from RTF template should be like this.
    Name     Age     Phone     Address     Salary
    Swapnill     23     12345         Madrid     100000
    Now, I dont know below things.
    Make the XML dynamic as in on Day 1 there must be 3 columns in the SELECT statement and on Day 2, 5 columns. I want to create one dynamic XML which should not be required to be changed if new columns are added in my_table. I dont know how to create this query and also create their corresponding elements below.
    Make the RTF template dyanamic as in Day1 there must 3 columns in EXCEL output and on Day 2, 5 columns. I want to create a Dynamic RTF template which would show all the columns selected in Dynamic XML.I dont know how the RTF will create new XML tags and how it will know where to place it in the report. Means, I can create RTF template on Day 1, by loading XML data for 3 columns and placing 3 XML tags in template. But how will it create and place tags for new columns on Day 2?
    Hope, you got my requirement, its a challenging one. Please let me know how I can implement the required solution using RTF dynamically without any manual intervention.
    Regards,
    Swapnil K.
    Message was edited by: SwapnilK

    Hi All,
    I am able to fulfil above requirement. Now I am stuck at below point. Need your help!
    Is there any way to UPDATE the XML file attached to a Data Definition (XML Publisher > Data Definition) using a standard package or procedure call or may be an API from backend? I am creating an XML dynamically and I want to attach it to its Data Definition programmatically using SQL.
    Please let me know if there is any oracle functionality to do this.
    If not, please let me know the standard directories on application/database server where the XML files attached to Data Definitions are stored.
    For eg, /$APPL_TOP/ar/1.0/sql or something.
    Regards,
    Swapnil K.

  • Hiding columns in list based on prompt selection

    Hi,
    Question with me here is How to show the details only for selected Years in the prompts.
    Users have to select a range of years for which they want to see the data and based on this selection, the columns should appear. more importatnly, there are other surrounding columns which should appear always on the result screen (that restricts me to use pivot instead).
    e.g. Case 1 - User selected Year Range = 2011 to 2014 -
    Result set columns should be
    ID, CODE, DESC, VALUE_2011, VALUE_2012, VALUE_2013, VALUE_2014, Contact Person, Mail, Phone
    Case 2 - User selected Year Range = 2011 to 2016 -
    Result set columns should be
    ID, CODE, DESC, VALUE_2011, VALUE_2012, VALUE_2013, VALUE_2014, VALUE_2015, VALUE_2016, Contact Person, Mail, Phone
    Did anyone have a solution for such case?
    Thanks in advance.

    user1997473 wrote:
    Limitation I have is - I can not rearrange columns. I have to have initial few columns static, next few based on Years selected and last few static columns in same order. So I can not use pivot per my understanding. Any alternate approach?I don't understand your situation fully, but to answer your requirement, "I have to have...last few static columns in same order.," do this:
    1) Put the dimension columns you need at the end of the report in the Measures section, on the bottom.
    2) Change the Aggregation Rule to Max and the values will appear.
    So you can have dimension columns at the end of a pivot table; you just have to do a little trickery.

  • Is there a way to hide some reports based on the selected values in prompt.

    Hi Experts,
    Is there a way to hide some reports based on the selected values in prompt.
    For ex. if a year is selected in the prompt then the report should display year wise report.
    If a year and half year both are selected in the drop down from prompt section then 2 reports should come.. One for year wise and another for half year wise.Kindly look into this.
    Regards
    Ashish

    Hi,
    Use presentation values in prompts for year,half,qtr and month.Example- For year-y is presentation variable in the same way for halfyear-h,qtr-q and month-m.
    create four intermediate reports.Example-Report r1 with only year column,r2 with only halfyear column,r3 with qtr column and r4 with month column.
    Make column in each report(r1,r2,r3,r4) is equal to their presentation variables(y,h,q,m).
    Use four sections.
    Section1-Place report that should come when only year.
    section2-Place report that should come for year and halfyear.
    Section3-Place report that should come for year,halfyear and qtr.
    Section4-Place report that should come for year,halfyear,qtr and month.
    Apply guided navigation for each section selecting guided navigation-
    For section1-
    properties->Guided navigation->check this Reference Source Request(Yes)->select report r1(year)->check this Show Section(if request returns row)
    In the same way do for remaining section2(select r2),section3(select r3) and section4(select r4)
    Thanks,
    Srikanth
    http://bintelligencegroup.wordpress.com/

Maybe you are looking for

  • How many devices can be under one Apple ID for using find my iPhone?

    I work for a school and we were told by an Apple representative that Find My iPhone works for only 10 devices under each Apple ID. Is this true? If I have 30 iPads under 1 apple ID will only 10 of them show up under "Devices" on iCloud? Will we only

  • Ical 3.0.8 to-dos all gone - irreplaceable important info - help!

    Hello, My wife today lost all of her to-dos - they just weren't there when she opened iCal. There's some irreplaceable things in there - things our young kids have said for example (don't ask why she keeps it there - I can't figure it out myself...)

  • My photoshop CS4 is on mydesktop but does not open a photo.

    My Adobe Photoshop CS4 is open on my desktop but does not open any photos.  Can I re-download the application with my serial number?

  • Message Pool Problem

    I have a program that it functions perfectly in the environment of Development, but when I carry to Quality, the messages of the Message Pool do not appear more. Just the "Message Key" appears instead of the "Message Text".

  • FAQ:一些关于Debug的基本知识(7)

    这次我们介绍user exit的使用方法. <什么是user exit> 简单的说,就是SAP在系统中为客户加入自己的程序来影响标准程序运行而准备的接口.      A function exit provides the customer with the possibility      to add own functionality to the system without modifying the      standard program.      The developers