Narrative Reports based on multiple records

Hi experts,
We are trying to build email template via SOD report (similar to mail merge template, but the SOD report can retrieve data from multiple record types).
What we are thinking is to use narrative report...but we are not able to create the report that first page only reflects the data from first record, 2nd page reflects the data from 2nd report, and so on. (something look like a letter, each page will merge with the data from corresponding record)
Can anyone advise how to do the work?
Thanks,
Sab.

Hi experts,
are we able to create narrative report for multiple records? e.g. 1 single page narrative report, first page reflects the data of first customer record of the report, second page reflects the data of the second record, and so on.
Please advise..
Thanks in advance,
Sab

Similar Messages

  • How to develop a report based on multiple data bases in BIP

    Hi,
    I have to develop a report based on multiple database(Sources). My queries is having multiple data base tables. How to achieve this in BIP
    Regards,
    Malli

    Hi ,
    After creating the dataset under datamodel save your data sets.
    Click on Datamodel , on the right side window you will have the Main data set option , click on the drop down option and select Concatenated sql option.
    Check the below links you will get a good idea.
    http://www.rittmanmead.com/2008/04/bi-publisher-reports-with-multiple-data-sources/
    http://docs.oracle.com/cd/E12096_01/books/PubUser/T421739T423025.htm
    If the Post is useful to you award the points :)
    Thanks,
    Ananth v

  • Select in (select ...) (select main report based on child records)

    I have a Crystal Report XI rel 2 report but I need to narrow the search of the main report based on records in the child table.<br /><br />I have 3-tables and one report w/ a subreport.<br />The tables are locations, crashes, and vehicles.  The main report has the tables locations and crashes and the subreport has vehicles (one crash has 1 to n vehicles)<br /><br />How do I select records in the main report based on the child (see below SQL stmt.)<br />SELECT locations.county, locations.state, crashes.numpeople, crashes.time FROM locations,crashes<br />WHERE crashes.cid IN (SELECT cid FROM vehicles WHERE vehicles.vehicletype = &#39;Trailer&#39;);<br />

    Hi,
    Â You can use common shared variables to share data between a sub report and the main report.
    What Kathryn has suggested is correct but you must make sure that the sub report is run first and then the main report is executed.
    Â Hope this helps
    Â Cheers
    Â Sam

  • Calculations based on multiple records

    Hi all,
    My EUL has a folder that contains incidents with a start_date .
    I need to calculate the time between the startime of an incident en the next incident that occurs.
    EXAMPLE
    incident start_time
    54663 10:00
    54664 10:05
    This should result in 5 minutes.
    Is there any way to do this without creating an registered function/ folder/item/whatever in the administration edition?
    (only chancing the workbook itself?)
    We are currently using discover 3.1/3I
    tia,
    Martin

    I do not think it can be done in the User edition. You will need to create a custom folder in the Admin edition.
    Good luck
    Vipul
    Hi all,
    My EUL has a folder that contains incidents with a start_date .
    I need to calculate the time between the startime of an incident en the next incident that occurs.
    EXAMPLE
    incident start_time
    54663 10:00
    54664 10:05
    This should result in 5 minutes.
    Is there any way to do this without creating an registered function/ folder/item/whatever in the administration edition?
    (only chancing the workbook itself?)
    We are currently using discover 3.1/3I
    tia,
    Martin

  • Sub reports access database multiple times

    Hello,
      I have a crystal report created with a main and 2 sub reports. The data source is a stored procedure. when ever I ran/refresh  the report it access the database 3 times(first for main report and 2 times for 2 sub reports).
      There is a big single query been executed and stored procedure returns the result. Even though the result set is same the report should not access database multiple times.
       Is there any options or properties I have to select or missing. Is there any solution to resolve this connectivity issue.
    Thanks in advance.

    Hi,
    Each report will each have their own separate connection to the database.  In your case it will create 3 connection: one for the main report and one for each of the subreports.  If you use sureports, there's no way around this. 
    Also take into account where the subreports are on the main report.  If you have them in the detail or group sections the subreports will generate a new instance each time it runs.  So you may have not 3 connections but one for each record or group in the report. 
    I've had to design similar reports and needed to do it without subreports.  I wrote a stored procedure that generated two sets of records: detail and summary.  I grouped the data on the report based on their record type (Detail or Summary).  I found this also made the report faster. 
    Good luck,
    Brian

  • Report based on a reord group - PROBLEM

    Using Reports Server / Forms/Reports 6i
    I am trying to run a report based on a record group on the web. It fails giving the error 'Cannot run report.'
    The report is called from a form and the record group is passed as a data parameter. It works fine in Client/Server.
    I have tried to remove the data parameter and run the report without it but, despite working in the Client/Server environment, it still fails on the Web.
    Does anyone have any suggestions?

    I have found the answer to my problem in the forms forum!
    Apparently, this type of report won't work on the web and I have to use temporary tables!

  • Date based report with multiple record return

    Hello all,
       Here is the situation. Running MAS 4.1 and using Crystal 10 for doing reports. I currently have a custom report that shows all invoices that have been paid for any given date range. This works great except when there is a "credit Memo" against an invoice. The way I'm getting all paid invoices is via a formula. The record set I have to pull against lists the invoice amount, date paid and amount paid. Simple calculation on the returned record will tell you if it has been paid off or not. The problem I'm having is those invoice records that also have a credit memo against them. The credit memo entries do not have a "paid date" and since that is my main selection criteria those records will not pull into my report, and therefor those invoices will not be showed as being paid. What I need to happen (and I don't know how to do it). Is for the report to run based upon the date range specified, and pull in related records even if there is no "paid date" on them. The way MAS stores it's invoice/credit memo records is the same for both. The main difference is that invoice has the "type" field set to "IN" and a credit memo has the "type" field set to "CM". So the actual "invoice number" is the same for both kinds of records. I hope my request makes sense, if not let me know and I will try to explain what does not make sense.  Thanks in advance.  Bill

    Jason,
        You've been very helpful, but I guess I'm just not explaining myself that well. The Credit Memo's throw things off because they do not contain a "Paid Date" value. That field in the record is blank. Since it is blank the report query ignores them. Therefore when the report query returns all records that have a "Paid date" range of "x to y" they are never returned. This is a problem whenever a credit memo exists for an invoice because the "invoice total" never changes. So when a customer pays on their account for a particular invoice, they only pay what is due which is the "invoice total" minus any "credit" from the "Credit Memo". So when my A/R person receives payment they are showing the invoice paid in full because MAS automatically includes all invoices and credit memo's. My report does not because there is no data in the "Paid Date" field of the record for Credit Memos.
    I've been doing alot research in trying to resolve this "exception" to my report. I think I may be on to something, but my knowledge of arrays is extremely limited. My resolution involves populating an array with the "invoice numbers" that are returned from the initial query from the supplied date range. Then using the "invoice numbers" from the array have it then populate my details section of the report with all of "invoice records" both the actual invoice record and any "credit memo" records. I can then group the records returned  based upon the "invoice number". then within that grouping I can performing my calculations to show whether or not the invoice has been paid in full. What do you think?  I've been able to populate an array with the invoice numbers based upon my date search range, but I have yet to figure out how to take that information and perform another lookup to pull in the rest of the data I need. Do you have any ideas?
    Thanks.  Bill

  • Splitting the single record into multiple records based on validity

    Hi Guru's,
    basically i am an BI consultant with less knowledge on ABAP, can i request your help on the ABAP task.
    I am working on HR module which is integrated with SAP BI,  the reports will be executed based on calendar month the requirement is i should split the single record into a multiple records based on validity of the record.  basically the HR data would be in data from and date to. 
    below is the logic
    Check whether the start and end date of the record are in the same month and year.
    If yes  nothing changes
    If no  create multiple records
    1st record  original start date of the record u2018till end of that month
    Following record  1st of the next month  u2018till last day of the month
    u2026
    Last record  1st of the month u2018till original end date.
    All fields will have the same values, only the datefrom and dateto fields change.
    Can any one please provide me the same code to proceed on my task.
    Thanks and Regards,
    Venkat

    Hi,
    Using Rule group we can split it.
    Using Rule Group in SAP-BI  Part - 1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/business-intelligence/s-u/using%20rule%20group%20in%20sap-bi%20%20part%20-%201.pdf
    Thanks
    Reddy

  • How to e-mail/not e-mail a scheduled report based on records returned

    Hi Everyone,
    Is there a way that there can be logic performed on a report that has been scheduled and ran before it gets sent via e-mail to the end users?  We have scheduled reports that often end up with 0 records returned but users still get the e-mail with the report that contains 0 records.  I would like to e-mail the reports only if the records returned is greater than 0.
    We are on v3.1 so if there is a solution for 3.1 that would be great.  If this capability exists in 4.0, that information would be very helpful as well.
    Thank you for your time.
    David Hellinger

    Apply an event on your report.
    First go to Cmc, create an event based for example on a file that should be created in certain route if the query won't return 0 rows.
    Then apply this event in your report Schedule option Event.

  • SQL Command returns multiple records, but I see only one record in report

    I work with Crystal Reports XI R2 SP3 and Oracle 10g R2 database.
    I have an SQL Command that returns multiple records. Command name is "CommDivisionNames" and it returns column "CommDivisionNames.DIVISION_NAME". When I place this field into report details section of the report, I can see all 10 records returned and this is how it should be. I actually need this field to be placed in the report header section, and when I place the field there, then I see only the first record. I set that field as "can grow = true". When I do "browse field data" for this field, I see that all 10 records are there, but only the first one is displayed in report header section.
    I thought that I can place SQL Command field anywhere on the report (page header, footer, details) and that it will always show all records that it returns from the database. Can that be done?
    My "main part" of the report returns different set of records, and that's what I have in "report details" section. I need this list of divisions to be in the report header section, so user can see that the report was executed for DivA, DivC, DivE.
    Thank you,
    Milan

    sharonamt:
    Users select divisions from parameter, but the parameter multi values are division_numbers (1,5,10), not division_names. Division_names are visible in parameter_prompt_window as description, but parameter remembers only numbers and I don't know how I can reuse division_names later in formula.
    I do join for division_numbers and make them into one string variable and pass to sub-report, but I think that I can only get these division_names by calling an SQL command or calling stored procedure.
    If I try to do join({MySQLcommand.DIVISION_NAME}) I get error message "A string array is required here".
    Carl:
    I'm playing with cross-tab and I can use it to see all division_names in the report-header section. Since I need them in only one column or only one row, I have to edit cross-tab object and turn all unneeded border lines to white to make them look invisible. So, cross-tab could be a solution for my problem here.
    Another option could be to re-write my SQL command. Since I've read here that SQL command could be written in the same way as I would write a stored procedure, then I could use a bit more complex code to get all multiple division names from the database table into a local cursor, and then use do-while loop to concatenate them into one string, and then to return that string as one record (like 'DivA, DivB, DivC'), and then it should not be a problem to display only that one record/string in report header. It is my understanding that Crystal Reports can call stored procedure that works with many cursors/recordsets and CR will use only the last recordset from the stored procedure. Do you think it could be done this way?
    Thank you,
    Milan

  • I want to update multiple record in database which is based on condition

    hi all,
    I am using Jdev 11.1.2.1.0
    I have one table named(Pay_apply_det) in this table i want to update one column named(Hierarchy) every time and according to change i want to update or i want to maintain my log table named(pay_apply_appr).It based on level wise approval when the lowest person approve the record show on next level but if the second
    level person back it will be show only previous level hierarchy.And when the final approval happen the Posting_tag column of pay_apply_det will be updated too with hierarchy column.
    i have drag pay_apply_det's data control as a table in my .jsf page and add one column approve status in UI .in the approve status i used radio group which return A for approve B for back R for reject through value binding i make it get or set method in it baking bean.
    in backing bean class i have written code
        public void approveMethod(ActionEvent actionEvent) {
            ViewObject v9=new UtilClass().getView("PayApplyDetView1Iterator");
            int h5=0;
            Row rw9= v9.getCurrentRow();
            String x=(String) rw9.getAttribute("RemarkNew1");
            System.out.println(x);
            String z=getR2();
            System.out.println(z);
            if(( z.equals("R") || z.equals("B") )&& x==null)
                FacesMessage fm1 = new FacesMessage("Plz Insert Remark Feild");
                fm1.setSeverity(FacesMessage.SEVERITY_INFO);
                FacesContext context1 = FacesContext.getCurrentInstance();
                context1.addMessage(null, fm1);  
            else{
            ADFContext.getCurrent().getSessionScope().put("Radio",getR2().toString());
            String LogValue=(String)ADFContext.getCurrent().getSessionScope().get("logid");
            ViewObject voH=new UtilClass().getView("PayEmpTaskDeptView1Iterator"); 
            voH.setWhereClause("task_cd='449' and subtask_cd='01' and empcd='"+LogValue+"'");
            voH.executeQuery();
            Row row1= voH.first();
            int h1=(Integer)row1.getAttribute("Hierarchy");
              System.out.println("Login Person Hierarchy on save button press.."+h1);
            ViewObject vo9=new UtilClass().getView("PayApplyDetView1Iterator");
            Row row9= vo9.getCurrentRow();
            if(getR2().equals("A")&& h1!=1)
             row9.setAttribute ("ApprHier",h1);
                row9.setAttribute("IsClaimed","N");
                row9.setAttribute("ClaimedBy",null);
                row9.setAttribute("ClaimedOn", null);
            else if(getR2().equals("B") ) {
                ViewObject voO=new UtilClass().getView("LoHierViewObj1Iterator");
                voO.setNamedWhereClauseParam("QHVO", LogValue);
                Row rowO = voO.first();
               h5=(Integer)rowO.getAttribute("LPrehier");
                System.out.println("Back lower hier..."+h5);
                row9.setAttribute ("ApprHier",h5);
                row9.setAttribute("IsClaimed","N");
                row9.setAttribute("ClaimedBy",null);
                row9.setAttribute("ClaimedOn", null);
              else if((h1==1) &&(getR2().equals("A")) )
                      row9.setAttribute ("PostingTag","Y");
                      row9. setAttribute ("ApprHier", h1);
                        row9.setAttribute("IsClaimed","N");
                        row9.setAttribute("ClaimedBy",null);
                        row9.setAttribute("ClaimedOn", null);
              else if(getR2().equals("R"))
                row9.setAttribute ("ApprHier",-1);
                row9.setAttribute("IsClaimed","N");
                row9.setAttribute("ClaimedBy",null);
                row9.setAttribute("ClaimedOn", null);
            BindingContext BC=BindingContext.getCurrent();
            BindingContainer ac=BC.getCurrentBindingsEntry();
            OperationBinding ob=ac.getOperationBinding("Commit");
            ob.execute();
           vo9.executeQuery();
            FacesMessage fm = new FacesMessage("Your Data Successfully Commited..");
            fm.setSeverity(FacesMessage.SEVERITY_INFO);
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, fm);
        }here i put my approve status radio value in session variable because i also want to update my pay_apply_appr table which code i written in pay_apply_det IMPL class.
    Every thing is running well when i update single record but when i want to update multiple record then my current row only updated in pay_apply_det but log table( pay_apply_appr) created for all record.
    so is there any solution plz help me.
    thanks
    RAFAT

    Hi Rafat,
    If you are able to insert into, all you need to do is iterate through the rows. For this , before the first IF condition
    if(getR2().equals("A")&& h1!=1)Get the row count using int numRows =vo9.getRowCount(); , and then write it before the IF condition
    if (int i=0;i<numRows;i++} After
    row9.setAttribute("ClaimedOn", null);
            }write vo9.next(); to iterate to next row,
    Hope this will work.
    Nigel.

  • Display multiple records as sub-sections in the same report.

    I am using Crystal Reports (VS-2005).
    In a report, I have various sub-sections in the Details section. Each section represents a category and is connected with SQL command which uses LEFT OUTER JOIN.
    The first section is the main section and the subsequent sections are the child sections.
    Sometimes, a sub-section (other than the first main sub-section) picks multiple records of that category. In this case the report extends to multiple pages. Each report displays one record of this sub-section.
    I want to show the the same sub-section multiple times in the same report as opposed to multiple reports that are now automatically generated by Crystal Reports.
    How to handle this issue?

    This is a .NET programming forum related to Crystal Reports. Your question is best suited for our report design forum below. Also, when you post your question it will be helpful if you use report design terminology. We have elements like Report Header, Page Header, Groups, and Details sections. Just mentioning "sections" doesn't give us a good idea about what you are attempting to do.
    Check out the grouping options and see if it helps. You might need to create a formula to help you with your grouping though.
    If you like, I can move this to the design forum.
    [SAP Crystal Reports Design|SAP Crystal Reports;

  • Alv report for multiple record insertion

    hi,
    i'm new to abap. i'm using alv report for record display and insertion. how can i insert multiple records from alv to my table??

    well that can be achieved only by running BDC inside alv report to enter the entries.and in that too you can append or edit single entries only
    reward if useful
    regards
    vivek

  • How to create Form based on a table to display multiple record

    Hello All,
    Would somebody please tell me how to create a Form based on a single table ,
    to view and insert multi record based on a single table.In other words I would like
    to have a form as shown below ,where the users can Insert,update,delete,query and so on
    Item Id PArt Number List Price
    100 Item-1 $120.oo
    200 Item-2 $150.00
    300 Item-3 $50.00
    I know I can do it as Single Record block using Tabular Format,but multiple record ?????
    Thanks in Anticipation
    Babu

    Try this method,
    1. Creat a Master Detail Form (Custom Layout and not tabular)
    and in the master block select one field.
    2. In the HTML layout for master remove the reference for
    that field(so that nothing will appear in the master block
    of the form).
    3. Before the update (in the Pl/SQL event handler select the 'Save' event and write the following code to avoid updating master block).
    p_session.set_value(p_block_name => 'MASTER_BLOCK',
    p_attribute_name => 'MASTER_ACTION',
    p_value => 'None');
    doSave;
    For eg, let's say
    Master is from 'Dept' table and Detail is from 'Emp' table(with join condition Dept.dept_id = Emp.dept_id). In the master remove everything except dept_id field and in the HTML layout for master remove the reference of the dept_id field(you cannot remove this field physically from the master layout). Now the form will look like multirow form rather than master detail form but only problem with this workaround is 'Detail Action' will be present in the detail block.
    I hope this will help you.
    Thanks
    -Krishnamurthy

  • Updating multiple records based on process date

    Hello,
    I need to change the value of multiple records in one table if a condition is met for each record in another table when the application is run.
    I have an Employee table containing employee names that also has a status field where the values are either "Active" or "Disabled".
    There is a form in the application with an employee name select list using a dynamic LOV based on the Employee table. The LOV is restricted to "Active" employees. The form inserts employee-related transactions with the current date into the Transaction table.
    I want to automatically update the status of all employees in the Employee table from "Active" to "Disabled" where there have been no transactions in the Transaction table for that employee for more than 2 months. This will allow me to exclude them from the dynamic LOV based on the Employee table.
    Any suggestions are greatly appreciated.
    Thank you,
    Matt

    Hi Matt
    Something like this?
    UPDATE employees
    SET status = 'Disabled'
    WHERE status = 'Active'
    AND NOT EXISTS(SELECT 'X'
                                      FROM transactions
                                      WHERE emp_id = trn_emp_id
                                     AND tran_date >= SYSDATE - INTERVAL '60' DAY);Let me know if I've misunderstood...
    Cheers
    Ben

Maybe you are looking for