Dynamically set report viewer report name

<p>I have a CR4E application with several reports. I want to use the same viewer for each report in the app but need to change the report name based on the user&#39;s selection from a dropdown list on a form. How do I dynamically change the reportName in the viewer?<br />Thanks, Bill</p>

The viewer takes reportSource objects to display reports. The trick is to always have viewer in a seperate page from the rest of your business logic.
I created a sample for you where I have a page that has two links. Both links go to the same jsp page but they display different reports depending on the variables placed in the URL. My viewer page then reads the URL to discover which report you want display.Â
First Page:Â
<</font>body>
<<font size="2" color="#3f7f7f">a href="DynamicReportViewer.jsp?report=CrystalReport1.rpt" > Report1 </</font>a><</font>br>
<</font>a href="DynamicReportViewer.jsp?report=CrystalReport2.rpt" /a>Report2 </</font>a><</font>br>
</<font size="2" color="#3f7f7f">body>
JSP CODE to display reports
String reportName;
reportName = (String)request.getParameter("report");
ReportClientDocument clientDoc = (ReportClientDocument) session.getAttribute(reportName);
<font size="2" color="#7f0055">if</font>(clientDoc ==<font size="2" color="#7f0055">null</font>) {clientDoc =<font size="2" color="#7f0055">new</font>ReportClientDocument();
clientDoc.open(reportName, OpenReportOptions._openAsReadOnly);
session.setAttribute(reportName, clientDoc);
CrystalReportViewer crystalReportPageViewer =<font size="2" color="#7f0055">new</font>CrystalReportViewer();
IReportSource reportSource = clientDoc.getReportSource();
crystalReportPageViewer.setReportSource(reportSource);
crystalReportPageViewer.setOwnPage(<font size="2" color="#7f0055">true</font>); crystalReportPageViewer.setOwnForm(<font size="2" color="#7f0055">true</font>);
crystalReportPageViewer.processHttpRequest(request, response, application, <font size="2" color="#7f0055">null</font>);
Rob Horne
http://diamond.businessobjects.com/blog/10

Similar Messages

  • How do you dynamically set the flat file name

    Within my process flow I call a mapping. Within this mapping I have a flat file operator (which creates and writes to a .csv file). All working great.
    From this process flow I want to be able to pass a parameter to the mapping (which I can do), and use the value of this parameter as the file name of the .csv file. But I can’t seem to be able to dynamically set the ‘Default physical file name’ to this parameter value within the mapping.
    Does anyone have any ideas?
    Thanks
    Ansel

    Hi Ansel
    Check out the blog entry here;
    http://blogs.oracle.com/warehousebuilder/newsItems/viewFullItem$154
    You can use an expression.
    Cheers
    David

  • How to publish Report Viewer reports as Web Services

    I have some reports templates (.rdlc) having only business objects as data sources (no direct SQL connection). They are working well with Windows Report Viewer. Now I am think to make the reports available via web services to multiple apps. Is there
    a way to do that? Any sample?
    Thanks,
    Jason

    Hello,
    SQL Server Reporting Services provides access to the full functionality of the report server through the Report Server Web service. In order to meet your requirement, you
    can try to converting an .rdlc file to an .rdl file
    and then deploy the report to report server.
    If you want to rendering the report in your application, you can try to use the ReportViewer controls in remote processing mode.
    Reference:
    Adding and Configuring the ReportViewer Controls
    Regards,
    Fanny Liu
    If you have any feedback on our support, please click here. 
    Fanny Liu
    TechNet Community Support

  • Report Viewer Configuration Error

    Hi,
    I manage a TFS 2010 Server that makes heavy use of Reporting Services, and I have a user that reported the following error
    when attempting to open a report in the Microsoft Visual Studio Report Viewer:
    Report Viewer Configuration Error
    The Report Viewer Web Control HTTP Handler has not been registered in the application's web.config file. Add <add verb="*" path="Resevred.ReportViewerWebControl.xsd" type = "Microsoft.Reporting.WebForms.HttpHandler, ReportingServicesWebServer,
    Version=10.0.0.0, Culture=neutral, PublicKeyToken=################" /> to the system.web/httpHandlers section of the web.config file, or add <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*"
    path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, ReportingServicesWebServer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=################" /> to the system.webServer/handlers section for
    Internet Information Services 7 or later.
    Has anyone seen this error before, or have any advice on finding a solution?
    Thank you.

    Hi HealthServices3300,
    You can try to install "Microsoft Report Viewer 2010 Redistributable Package" on your server to check if it works for you.
    For the web.config info, it's for web application. And I'd like to know how did you create the report, and whether the report is for a web app or reporting service. From the error message and report, seems it's not a TFS issue. If it's SSRS project
    issue, please post this issue to
    this forum. If it's a report viewer control issue, you can post this issue in
    this forum for a professional response. After that, please update this thread with the new thread link. Thanks for your understanding.
    Best regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Error With Export/Print from Crystal Report Viewer

    Hello there,
    I've searched through the web and SAP discussion boards with not much luck with this issue.
    After working through this for some days now I've decided to look here for help.
    Environment:
    I have created a web Crystal Report viewer application(Developed with SBOP BI Platform 4.0 SP06 .NET SDK Runtime) that communicates with a managed Cyrstal Server 2011 SP4 (Product 14.0)
    I am able to connect and authenticate with the server, retrieve a token for communication and display reports in the Crystal report Viewer successfully.
    Problem:
    When I attempt to export, I receive the prompt to select format and pages.
    When I click export after selections most times I receive an error with the text
    Unable to cast COM object of type 'System.__ComObject' to interface type 'CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{74EEBC42-6C5D-11D3-9172-00902741EE7C}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
    Other times the page simply refreshes on export.
    When I click to print, no print dialog is displayed the page always refreshes and no error is displayed.
    No Print or Export document is ever created.
    As many print/export issues seems to be related, I'm guessing this two issues are as well.
    Notes:
    I am utilizing the ReportClientDocument model
    I am storing this in session to use as the crystal report viewer report source on postbacks
    I am assigning a subset of export formats to the crystal report viewer
    I am setting particular parameters as well on the report source
    At this point I would appreciate every assistance I may receive on this issue
    Thanks in advance,
    Below is the pertinent code
    Code:
    <aspx>
       <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
       AutoDataBind="true" EnableDatabaseLogonPrompt="False"
       BestFitPage="False" ReuseParameterValuesOnRefresh="True"
      CssClass="reportFrame" Height="1000px" Width="1100px" EnableDrillDown="False"
      ToolPanelView="None" PrintMode="Pdf"/>
    <Codebehind>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using CrystalDecisions.Enterprise;
    using CrystalDecisions.ReportAppServer.ClientDoc;
    using CrystalDecisions.ReportAppServer.CommonObjectModel;
    using CrystalDecisions.ReportAppServer.Controllers;
    using CrystalDecisions.ReportAppServer.DataDefModel;
    using CrystalDecisions.ReportAppServer.ReportDefModel;
    using CrystalDecisions.Shared;
    namespace ClassicInternalReportPage
        public partial class Reports : System.Web.UI.Page
            protected override void OnInit(EventArgs e)
                base.OnInit(e);
                if (!String.IsNullOrEmpty(Convert.ToString(Session["LogonToken"])) && !IsPostBack)
                    SessionMgr sessionMgr = new SessionMgr();
                    EnterpriseSession enterpriseSession = sessionMgr.LogonWithToken(Session["LogonToken"].ToString());
                    EnterpriseService reportService = enterpriseSession.GetService("RASReportFactory");
                    InfoStore infoStore = new InfoStore(enterpriseSession.GetService("InfoStore"));
                    if (reportService != null)
                        string queryString = String.Format("Select SI_ID, SI_NAME, SI_PARENTID From CI_INFOOBJECTS "
                           + "Where SI_PROGID='CrystalEnterprise.Report' "
                           + "And SI_ID = {0} "
                           + "And SI_INSTANCE = 0", Request.QueryString["rId"]);
                        InfoObjects infoObjects = infoStore.Query(queryString);
                        ReportAppFactory reportFactory = (ReportAppFactory)reportService.Interface;
                        if (infoObjects != null && infoObjects.Count > 0)
                            ISCDReportClientDocument reportSource = reportFactory.OpenDocument(infoObjects[1].ID, 0);
                            Session["ReportClDocument"] = AssignReportParameters(reportSource) ? reportSource : null;
                            CrystalReportViewer1.ReportSource = Session["ReportClDocument"];
                            CrystalReportViewer1.DataBind();
                //Viewer options
                // Don't enable prompting for Live and Custom
                CrystalReportViewer1.EnableParameterPrompt = !(Request.QueryString["t"] == "1" || Request.QueryString["t"] == "4");
                CrystalReportViewer1.HasToggleParameterPanelButton = CrystalReportViewer1.EnableParameterPrompt;
                CrystalReportViewer1.AllowedExportFormats = (int)(ViewerExportFormats.PdfFormat | ViewerExportFormats.ExcelFormat | ViewerExportFormats.XLSXFormat | ViewerExportFormats.CsvFormat);
            protected void Page_Load(object sender, EventArgs e)
                if (IsPostBack && CrystalReportViewer1.ReportSource == null)
                    CrystalReportViewer1.ReportSource = Session["ReportClDocument"];
                    CrystalReportViewer1.DataBind();
            private bool AssignReportParameters(ISCDReportClientDocument reportSource)
                bool success = true;
                if (Request.QueryString["t"] == "1" || Request.QueryString["t"] == "2" || Request.QueryString["t"] == "4" )
                    reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "STORE", Session["storeParam"]);
                    if (Request.QueryString["t"] == "2")
                        reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "FromDate", Request.QueryString["fromdate"]);
                        reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "ToDate", Request.QueryString["todate"]);
                else if (Request.QueryString["t"] == "3")
                    reportSource.DataDefController.ParameterFieldController.SetCurrentValue("", "SKU", Request.QueryString["sku"]);
                else
                    //Unknown report type alert
                    success = false;
                return success;

    Thanks Don for your response,
    I'm new to the SCN spaces and my content has been moved a couple of times already.
    In response to your questions
    The runtime is installed on the web application server, if by that you mean the machine hosting the created .NET SDK application.
    My question was whether it was also required on the Crystal Server 2011 (I.E. the main enterprise server with CMS and Report management and I guess RAS and all that). I figured this would remain untouched and queries would simply be made against it to retrieve/view reports e.t.c
    If install of the SDK on Crystal Server 2011 is indeed required should I expect any interruption to any of the core services after a restart. I.E. I'm hoping that none of the SDK objects would interfere with the existing server objects (in SAP Business Objects)Reason I ask is I note that much of the SDK install directories are similar to the existing Crystal Enterprise Server 2011 (Product 14.0.0)
    Is this temp folder to be manually created/configured or is it created by the application automatically to perform tasks. Or are you referring to the default C:\Windows\Temp directory and so saying that the application would try to use this for print and export tasks?Once I'm sure which I'd give the app pool user permission
    Printing is to be client side but I figured by default (with the Crystal Report Viewer) it would simply pool and print from the user's printer. This is how it works with the previously used URL reporting approach (viewrpt.cwr). Therefore a user can print the document from wherever they are with their own printer.We don't intend on printing from the server machine, but are you suggesting that a printer must be installed on server (which one web or enterprise server) for any client side printing to work.
    App pool is running in 32 bit mode
    Initially didn't get anything useful from fiddler but I'd try and look closer on your suggestion.
    It's also possible that some of my questions are a misunderstanding of APP vs RAS vs WEB, so please feel free to clarify. Currently I see the Web server as simply the created .NET SDK Application and RAS (Crystal Server 2011 e.t.c) as the existing fully established Application server which I simply pool for information.
    Thank you for your patience and advice,

  • Logon Error for Crystal Report Viewed by User When Not Included In App

    I have a Visual Basic 2008 SP1 application and I'm using Crystal Reports 2008 SP0 (with FP1 + 2).  I have about 50 reports using integrated security that are all "embeded resources" in the application.  When I want to print one of these reports I use code like this:
    PrintReports(New MyEmbededReport)
    And in my PrintReports routine it just creates a new instance of a form that has the report viewer control on it and passes the report over to it.  This works GREAT and I can embed all my reports right into the app and call them when I need them.
    Recently however I've had the need to add some custom reports that may change more often then the app changes so I need a way for users to access their reports without a new version of the app being pushed out.  So I made a routine that lets me store the actual Report.rpt file into SQL and when a user goes to run it the report is pulled out of the database and saved into their temporary files and then passes it back to my PrintReports routine as a ReportDocument.  This also works fine but only on my machine.  On the client machines it asks for the login information and no combination will work.  I've tried multiple ways of getting around it and have spent hours trying examples found on the internet including assigning the login information before preview, running through and assigning the login information to each table, I've gone through the "Using Integrated and SQL Autentication in .Net Applications" guide, turning on and off integrated security.  Nothing seems to work.
    What else is there to try?  As a very last resort I will have to store the reports into the app like the other ones but I'm really trying not to do this.
    -Allan

    Just trying to get this working.  My PrintReport routine used to just have the single line to assign the passed report to the report viewer.report source property.  I've changed it to this:
                Dim crtableLogoninfos As New TableLogOnInfos()
                Dim crtableLogoninfo As New TableLogOnInfo()
                Dim crConnectionInfo As New ConnectionInfo()
                Dim CrDatabase As Database
                Dim CrTables As Tables
                Dim CrTable As Table
                'Set the ConnectionInfo properties for logging on tothe Database
                With crConnectionInfo
                    .ServerName = My.Settings.SQLServerName
                    .DatabaseName = My.Settings.MainDatabaseName
                    .IntegratedSecurity = True
                End With
                'This code works for both user tables and stored procedures.
                'Set the CrTables to the Tables collection of the report
                CrDatabase = myReportFileName.Database
                CrTables = CrDatabase.Tables
                'Loop through each table in the report and apply the LogonInfo information
                For Each CrTable In CrTables
                    crtableLogoninfo = CrTable.LogOnInfo
                    crtableLogoninfo.ConnectionInfo = crConnectionInfo
                    CrTable.ApplyLogOnInfo(crtableLogoninfo)
                Next
                'Set the viewer to the report object to be previewed.
                PrintPreview.CrystalReportViewer.ReportSource = myReportFileName
    And I have the exact same issue....my internal reports stored within the app still work fine for everyone but the custom reports made in CR2008 and added as files still do not. 
    So out of fustration I added one of the "external" reports into VB 2008 and opened it in there, did a verify database, saved it, and then added it to my SQL server but again same issue....it's like when its off of my computer it "loses" the connection information even though it still shows its there.  Not sure why the reports that are embedded into the app don't have this issue. 
    So that gave me another idea.  I took one of the reports that was originally created in VB2008 and took that and put it into the SQL then ran that like the others and IT WORKS.  It creates the temp file on the client PC and runs it from there with no login issues.  Now I'm more confused....any ideas?  I guess I'm going to start recreating the reports I created in CR 2008 and remake them in VS 2008 since those seem to work fine but why should I have to....what would be the difference?
    -Allan

  • Infoview - problem viewing report

    In Infoview, in Document List, I highlight a Web Intelligence Report.
    I select Actions > Modify.
    I get a Warning - Security popup saying that Java_Report_Panel has potentially unsafe components.
    The popup asks if I want to block. I click Yes.
    The report opens in edit report > view report.
    All I see is a horizontal blue strip over an orange block.
    I should see a table.
    How can I fix this?
    Bill

    This happened from Java 16 I think. Fixed in SP4.
    To fix (pre-SP4) go to the Java control panel (in XP, it's in Control Panel. In Vista/7 hit start and type 'Java'). Go to the Advanced tab, expand the 'Security' node, then 'Mixed Code', and select 'Disable Verification' or 'Hide and run with protections'.

  • How to set printersettings for the crystal report viewer in SAP BI dynamically

    Hello
    I have set the URL method for my crystal report and with parameter passing as shown below, it was displaying the crystal report viewer by connecting to the SAP BI 4.0 server with this method.
    http://cr:port/businessobjects/enterprise115/desktoplaunch/opendoc/openDocument.jsp?sDocName=CRLabelParam&sType=rpt&lsSnPrinted=0&lsSsTestProjectNr=1
    This URL will be called from Web application by different users, i would like to set the printer settings differently for different users for this crystal report viewer how shall i need to set the printer options?
    shall i need to set the printer settings programatically for each user. Please advise me how do i need to proceed.
    Thanks & Regards,
    Rajeswari.

    There are no BI / CR APIs that would do this for you. The way I see it, you'll have to have your own print button and populate it with the correct printer information for each user as they request the report. Of course, alternatively, use the viewer printer button and get the users to choose the correct printer.
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • Unable to view Dynamic Prompts in Crystal Reports through JSP

    Hi,
    We are using Crystal Reports, SQL Server and Java in our application. We are using JSP to access Crystal Reports from another machine, get them as "ReportClientDocument" objects and then display them using "CrystalReportInteractiveViewer" object. We are able to view reports with Static Paramter values, but when we try to access reports with Dynamic Parameter values the parameter fields are not visible. It doesn't show any error but we can't see the parameter values.
    Any help in this regard will be great. Thanks in advance.

    Hi Ted,
    We are using the JAVA SDK to fetch the report. These are the steps we do using java.
    - Log in to the Crystal Enterprise
    - Get the Report Application Factory from Crystal Enterprise
    - Get the InfoStore service from Crystal Enterprise
    - Retrieve the report by name from Crystal Enterprise
    - Open the report in a ReportClientDocument
    - Instantiate a CrystalReportInteractiveViewer
    - Get the report source from the ReportClientDocument and set it as source for the CrystalReportInteractiveViewer
    - Process the HTTP request to view the report
    Please let me know if you need any further info.

  • Crystal Report Viewer Credential Prompt for Report with Dynamic Parameters

    The .NET Crystal Report Viewer is prompting for database credentials when launching a report containing dynamic parameters. This only occurs for reports created with SAP Crystal Reports 2011 designer. Reports created with Crystal Reports XI designer (where dynamic parameters were first introduced) work correctly.
    The credential prompt window contains the following fields:
    - Server Name: <server name> (disabled)
    - Database Name: <database name> (disabled)
    - User Name: <empty> (enabled)
    - Password: <empty> (enabled)
    - Use Single Signon Key: false (disabled)
    The values in the prompt window which are disabled are the database connection values used during the design of the report in the SAP Crystal Reports 2011 designer.
    Expected Result:
    - No prompt for database credentials.
    - Values read from the database should be populated in a drop down for the dynamic parameters.
    Environment:
    - Visual Studio 2010 (C#)
    - Windows 7 Enterprise
    - SAP Crystal Reports runtime engine for .NET Framework 4
    - SAP Crystal Reports, version for Visual Studio 2010
    - SAP Crystal Reports 2011
    The database connection is being set to use a DSN. It must be a DSN as the calling application is only aware of the DSN/Username/Password values. These values are being passed to the Crystal Report Viewer contained in a Windows form.
    The database connection for the report is being set as follows:
    foreach (InternalConnectionInfo internalConnectionInfo in this.report.DataSourceConnections)
        // Must set the UseDSNProperties flag to True before setting the database connection otherwise the connection does not work
        if (internalConnectionInfo.LogonProperties.ContainsKey("UseDSNProperties"))
            internalConnectionInfo.LogonProperties.Set("UseDSNProperties", true);
        // Supposed to set the database connection for all objects in the report (ie. main report, tables, sub reports)
        internalConnectionInfo.SetConnection(this.DSN, string.Empty, this.LoginName, this.Password);
    The SetConnection method's signature is as follows:
       SetConnection(string server, string database, string name, string password)
    As you can see from the code snippet above I am setting the DSN name as the server parameter, blank for the database parameter (a database connection using DSN should only require DSN name/Username/Password) and the database username and password respectively.
    Is this a SAP bug?
    Is this the correct way of setting the database connection to use a DSN?
    Is there some other properties that need to be set somewhere else in the report through code?
    Any help would be greatly appreciated.

    Thanks for the pointer to the database connection code generator. After taking a look at the output from the tool I was able to finally get the dynamic parameters to load and populate properly without prompting for credentials. I needed to tweak the outputted code a bit to match my requirements of using a DSN only connection.
    Instead of updating the database connection properties contained within the Report.Database.Tables collection from the CrystalReports.Engine namespace, I changed it to replace the database connection properties in the Report.ReportClientDocument.DatabaseController.Database.Tables collection from the CrystalDecisions.ReportAppServer.DataDefModel namespace. For one reason or another, using the RAS namespace solved the problem.
    Below is the updated code with the change made:
    using RAPTable = CrystalDecisions.ReportAppServer.DataDefModel.Table;
    foreach (InternalConnectionInfo internalConnectionInfo in this.report.DataSourceConnections)
        // Must set the UseDSNProperties flag to True before setting the database connection
        if (internalConnectionInfo.LogonProperties.ContainsKey("UseDSNProperties"))
            internalConnectionInfo.LogonProperties.Set("UseDSNProperties", true);
        // Sets the database connection for all objects in the report (ie. main report, tables, sub reports)
        internalConnectionInfo.SetConnection(this.DSN, string.Empty, this.LoginName, this.Password);
    // The attributes for the QE_LogonProperties which is part of the main property bag
    PropertyBag innerPropertyBag = new PropertyBag();
    innerPropertyBag.Add("DSN", this.DSN);
    innerPropertyBag.Add("UserID", this.LoginName);
    innerPropertyBag.Add("Password", this.Password);
    innerPropertyBag.Add("UseDSNProperties", "true");
    // The attributes collection of the tables ConnectionInfo object
    PropertyBag mainPropertyBag = new PropertyBag();
    mainPropertyBag.Add("Database DLL", "crdb_ado.dll");
    mainPropertyBag.Add("QE_DatabaseType", "OLE DB (ADO)");
    mainPropertyBag.Add("QE_LogonProperties", innerPropertyBag);
    // Pass the database properties to a connection info object
    ConnectionInfo connectionInfo = new ConnectionInfo();
    connectionInfo.Attributes = mainPropertyBag;
    connectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE;
    connectionInfo.UserName = this.LoginName;
    connectionInfo.Password = this.Password;
    // Replace the database connection properties of each table in the report
    foreach (RAPTable oldTable in this.report.ReportClientDocument.DatabaseController.Database.Tables)
        RAPTable table = new RAPTable();
        table.ConnectionInfo = connectionInfo;
        table.Name = oldTable.Name;
        table.QualifiedName = oldTable.QualifiedName;
        table.Alias = oldTable.Alias;
        this.report.ReportClientDocument.DatabaseController.SetTableLocation(oldTable, table);
    this.report.VerifyDatabase();
    Thanks again Ludek for the help.

  • Dynamically Set Subreport Background Color to the Same Value as Main Report Background Color

    I have a report that contains a subreport.  The main report has groupings in it.  I am dynamically setting the background color of the group rows based on an expression.  That part is working fine.  The problem that I am having is that
    I don't know how to get the subreport to "inherit" the background color of the grouping that holds it.
    Basically, I have different row shadings on my report differentiating the groupings except for the rows where the subreport shows.
    How do I go about setting the subreport background color to equal it's contaiing grouping's background color?  Thanks in advance for any and all assistance provided.

    The parameter method given by gpshukla will send the info to the subreport, but you don't need the color parameter in the main report, only the subreport. The trick is in setting the value of that parameter.
    Right-click the cell with the embedded subreport, you can select subreport properties.
    Select Parameters and add a parameter.
    The name column is the name of the parameter in the subreport (color) and value is the value to set it to.
    Set name to "color" (no quotes).
    Set Value to the same expression used to set the background color for the row.
    In the subreport, click the design surface to select the report (not header or footer).
    In the properties pane, select background color and choose expression from the dropdown.
    Type =Parameters!color.Value into the expression builder.
    This will work assuming that background color in the main report row will not change without also refreshing the subreport.
    "You will find a fortune, though it will not be the one you seek." -
    Blind Seer, O Brother Where Art Thou
    Please Mark posts as answers or helpful so that others may find the fortune they seek.

  • Crystal report viewer does not observe the PaperSize and PageOrientation setting

    Hi:
    My application is a 3 tier application, where the WinForm client is connected to the WCF Services hosted in IIS server.
    The report is generated on server side using WCF service, and export as.rpt with data, the .rpt file is then sent to the WinForm client, the Crystal Report viewer is used to load the .rpt file for preview and print.
    On server side I've Microsoft XPS Document Writer installed and set as default printer. On the client side if the default printer is XPS or Nitro PDF creator, the report can be view and print correctly, report design in landscape will be able to show in the landscape in CR viewer, report design using custom paper size (e.g. Half Letter), CR viewer able to show it in Half Letter.
    The problem that I'm facing is when the default printer is set to HP LaserJet P1120 or others (I've tried Epson ESC/P Standard driver), the report is always shown in the portrait, and it will not be able to show in custom paper size either. Here is my code:
         Dim settings As New System.Drawing.Printing.PrinterSettings
         Dim rep as New ReportDocument
         rep.Load(sOutputFileName)     'The report is download from server and save in sOutputFileName
         SetReportPaperSize(rep, sPaperSizeName, False, settings) ' sPaperSizeName store the name of the custom paper used in the report
         CrViewer.ReportSource = rep
       Public Shared Sub SetReportPaperSize(rep As ReportDocument, paperSizeName As String, isHardCopy As Boolean, settings As Printing.PrinterSettings)
          Dim installedPrinters As Printing.PrinterSettings.StringCollection = Printing.PrinterSettings.InstalledPrinters
          Dim printers As New List(Of String)
          Dim sPrinter As String
          If installedPrinters.Count = 0 Then
             Return
          End If
          SetPrinterDefaultPaperSize(rep.PrintOptions, paperSizeName, settings)
          With rep.PrintOptions
             .PrinterName = settings.PrinterName
             .PaperSource = PaperSource.Auto
             If paperSizeName.Trim.Length > 0 Then
                .PaperSize = DirectCast(GetPapersizeId(paperSizeName, settings, rep.PrintOptions.PaperSize), CrystalDecisions.Shared.PaperSize)
             End If
          End With
       End Sub
       Public Shared Sub SetPrinterDefaultPaperSize(printOptions As PrintOptions, paperSizeName As String, settings As Printing.PrinterSettings)
          With settings.DefaultPageSettings
             If paperSizeName.Trim.Length = 0 Then
                . PaperSize = GetPaperSize (printOptions.PaperSize, settings)
             Else
                For Each size As Printing.PaperSize In settings.PaperSizes
                   If size.PaperName.EqualsTo(paperSizeName) Then
                      .PaperSize = size
                      Exit For
                   End If
                Next
             End If
             .Landscape = printOptions.PaperOrientation = PaperOrientation.Landscape
             .Margins.Top = printOptions.PageMargins.topMargin
             .Margins.Left = printOptions.PageMargins.leftMargin
             .Margins.Bottom = printOptions.PageMargins.bottomMargin
             .Margins.Right = printOptions.PageMargins.rightMargin
          End With
       End Sub
       Public Shared Function GetPaperSize(paperSizeId As Integer, defaultPrinterSettings As Printing.PrinterSettings) As Printing.PaperSize
          Dim settings As Printing.PrinterSettings = defaultPrinterSettings
          Dim result As Printing.PaperSize
          If settings Is Nothing Then
             settings = New Printing.PrinterSettings
          End If
          ' Default paper Size defined in the printer
          result = settings.DefaultPageSettings.PaperSize
          For Each size As Printing.PaperSize In settings.PaperSizes
             If size.RawKind = paperSizeId Then
                result = size
                Exit For
             End If
          Next
          Return result
       End Function
       Public Shared Function GetPapersizeId(paperSizeName As String, defaultPrinterSettings As Printing.PrinterSettings Optional defaultpaperSizeId As CrystalDecisions.Shared.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize) As Integer
          Dim settings As Printing.PrinterSettings = defaultPrinterSettings
          Dim result As Integer = defaultpaperSizeId
          If settings Is Nothing Then
             settings = New Printing.PrinterSettings
          End If
          If Not String.IsNullOrEmpty(paperSizeName) Then
             For Each size As Printing.PaperSize In settings.PaperSizes
                ' Height and Width in Printing.PaperSize is measure in hundredths of an inch
                If size.PaperName.EqualsTo(paperSizeName) Then
                   result = size.RawKind
                   Exit For
                End If
             Next
          End If
          Return result
       End Function
    Setting the PrintOptions.PaperSize and PageOrientation seem like no effect on the viewer. My code to load the report to CR viewer is much more complicated than the code I show above, I've a background worker thread to download the report, and when the worker thread finished download the report from the server, it will assign the report to CRViewer. Do the changes in report PrintOption before assign to CRViewe and after assigning to CRViewer make any different?
    I'm using VS2010, CR XI R2 (Version 11.5.3700.0). Please Help. Thanks
    Regards
    JC Voon

    Hi JC,
    CRXI R2 is a no go with VS 2010, these two are not compatible.
    With CR 11.5 use VS 2005.
    Or Use VS 2010 and CR for VS 2010 (13.0)
    Once you have the supported / compatible conbination of CR and VS, use the In Proc RAS .NET code from below KBA.
    http://search.sap.com/notes?id=0001561333&boj=/sap/bc/bsp/spn/scn_bosap/notes.do?access=69765F6D6F64653D3939382669765F7361706E6F7465735F6E756D6265723D30303031353631333333
    Also, see the KBAs returned by below search. The top right corner search box on this page is quite helpful.
    http://search.sap.com/ui/scn#query=crystal%252C+paper%252C+orientation%252C+.net%252C+sdk&startindex=1&filter=scm_a_site(scm_v_Site11)&filter=scm_a_modDate(*)&timeScope=all
    - Bhushan
    Senior Engineer
    SAP Active Global Support
    Follow us on Twitter
    Got Enhancement ideas? Try the SAP Idea Place
    Getting started and moving ahead with Crystal Reports .NET applications.

  • How do you set the Crystal Report Viewer Printer to Duplex

    Using the code below I can print in duplex mode, but this does not let me view a report before printing
    How do I set the Printer in the Viewer Control Bar of the Crystal Report Viewer to Duplex Printing programmatically rather than having to manually select Duplex through the preferences option?
    I have searched but the only example code I found produces errors in the code and will not run
    Private myReport As ReportDocument
    myReport = New ReportDocument()
    myReport.PrintOptions.PaperSize = PaperSize.PaperA4
    myReport.PrintOptions.PaperOrientation = PaperOrientation.Portrait
    myReport.PrintOptions.PrinterDuplex = PrinterDuplex. Vertical
    myReport.PrintToPrinter(3, False, 0, 0)
    In my VB6 Project that I am converting to VB.NET when I added Report.PrinterDuplex = crPRDPVertical, this allowed me to view the report and then print with Duplex without having to set the Print Preferences manualy
    I found 1386475 - How to set printer name and print job title at runtime using Report Application Server SDK for Visual Studio .NET
    But this causes errors
    Imports CrystalDecisions.ReportAppServer.ClientDoc
    Imports CrystalDecisions.ReportAppServer.Controllers
    Dim boReportClientDocument As ISCDReportClientDocument
    Dim boPrintOutputController As PrintOutputController
    Dim boPrintReportOptions As New PrintReportOptions
    Edited by: DavidMills on Feb 18, 2011 11:58 AM

    Hi David,
    You can mix both engines, just declare them both with different report object names. Here's all of my references:
    using System;
    using System.IO;
    using System.Xml;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;
    using CrystalDecisions.ReportAppServer.ClientDoc;
    using CrystalDecisions.ReportAppServer.Controllers;
    using CrystalDecisions.ReportAppServer.ReportDefModel;
    using CrystalDecisions.ReportAppServer.CommonControls;
    using CrystalDecisions.ReportAppServer.CommLayer;
    using CrystalDecisions.ReportAppServer.CommonObjectModel;
    using CrystalDecisions.ReportAppServer.ObjectFactory;
    using System.Data.OleDb;
    using CrystalDecisions.ReportAppServer.DataSetConversion;
    using CrystalDecisions.ReportAppServer.DataDefModel;
    using CrystalDecisions.ReportSource;
    using CrystalDecisions.Windows.Forms;
    using System.Data.SqlClient;
    using System.Runtime.InteropServices;
        public class frmMain : System.Windows.Forms.Form
            CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument rptClientDoc;
    My file open dialog:
            private void btnOpenReport_Click(object sender, System.EventArgs e)
                rptClientDoc = new CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocument();
                openFileDialog.Filter = "Crystal Reports (*.rpt)|*.rpt|Crystal Reports Secure (*.rptr)|*.rptr";
                openFileDialog.FilterIndex = 1;
                 if (openFileDialog.ShowDialog() == DialogResult.OK)
                      btnOpenReport.Enabled = false;
                      btnSaveRptAs.Enabled = false;
                      object rptName = openFileDialog.FileName;
                    try
                        rpt.Load(rptName.ToString());
                        rptClientDoc = rpt.ReportClientDocument;
                    catch (Exception ex)
                        MessageBox.Show("ERROR: " + ex.Message);
                        return;
                    MessageBox.Show(rptClientDoc.MajorVersion.ToString() + "." + rptClientDoc.MinorVersion.ToString());
                        MessageBox.Show("Report opened.","RAS",MessageBoxButtons.OK,MessageBoxIcon.Information );
                        btnOpenReport.Enabled = true;
                        btnSaveRptAs.Enabled = true;
                    //MessageBox.Show(rpt.RecordSelectionFormula, "my record: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    MessageBox.Show(rpt.ReportRequestStatus.NumberOfPages.ToString(), "Number of Pages: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
    As for the page number I use it off the Engine report object:
    MessageBox.Show(rpt.ReportRequestStatus.NumberOfPages.ToString(), "Number of Pages: ", MessageBoxButtons.OK, MessageBoxIcon.Information);
    And it works for me...
    Thank you
    Don

  • Report Viewer Dynamic Parameter List not showing a complete list of values

    Hi, I have installed the crystal report runtime 13.0.1.220 for framework 4.0 in a 64-bit windows 7 professional server.
    I have an aplication that opens crystal reports using the crystal report viewer control for visual studio 2010, also version 13.0.1.220.
    ISSUE: The report opens fine, but it does not shows all the available values in the dynamic parameter list.
    I have tried setting the MaxRowsetRecords registry key to diferent values but it does not work.
    I do not have any crystal report stand alone version installed in my server.
    Please help me?

    Hi Ludek,
    yes i followed the instructions of the KBase you are mentioning, but it isn't working for me.
    I modified the following keys:
    HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework4.0\Crystal Reports\DatabaseOptions\LOV
    and
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework4.0\Crystal Reports\DatabaseOptions\LOV
    1) I had to create the LOV key under the DatabaseOptions in both keys.
    2) Inside the LOV keys I created the new string value MaxRowsetRecords and set the value to different values. (Ex: 5000, 10000 and 1000000)
    3) I restarted my server. Still not working.
    4) Then after that i modified the following registry keys: (leaving the first 2 keys modified)
    HKEY_CURRENT_USER\Software\SAP BusinessObjects\Crystal Reports for .NET Framework4.0\Crystal Reports\DatabaseOptions\LOV
    and
    HKEY_CURRENT_USER\Software\SAP BusinessObjects\Crystal Reports for .NET Framework4.0\Crystal Reports Designer Component\DatabaseOptions\LOV
    5) Also had to create the LOV key under the DatabaseOptions in both keys.
    6) Inside the LOV keys I created the new string value MaxRowsetRecords and set the value to different values. (Ex: 5000, 10000 and 1000000)
    7) Restarted my server. still not working
    8)  Then after that i modified the following registry key: (leaving the first 4 keys modified)
    HKEY_CURRENT_USER\Software\SAP BusinessObjects\Crystal Reports for .NET Framework4.0\Crystal Reports Designer Component\ReportView
    Inside this key I created the DWORD PromptingLOVBatchSize and gave it a decimal value of 1000000
    9) Restarted the server. Still not working. For crying out LOUD!!

  • XSL-FO Report Query / Named Layout - Dynamically set the output filename

    Does anyone know if it is possible to dynamically set the name of the PDF file which is created via FOP?
    Thanks
    Paul

    John
    Thanks for the quick reply, apologies, I should have been more explicit.
    I am calling apache FOP via a report query and a named column layout using xsl-fo to format the PDF report.
    The call is done via a javascript function which determines which report to print and then submits the approproate REQUEST. The request is picked up by conditional branches and calls the PRINT_REPORT
    The PRINT_REPORT names the PDF file as same as the report query name.
    BTW the long term goal is to store the resultant output as a blob back in the database but I can put that off to phase II of the project as I'm not sure that this is possible. Would be nice though!
    Thanks
    Paul

Maybe you are looking for

  • Error while invoking Rule dictionary from MDS

    Hi, I have an ADF application, which contains an OBR rule dictionary. While testing in development environment, this rule file is invoked from the file based MDS repository on local. To run the application on a standalone weblogic server, the rule di

  • Where do I find the option to "save as web receipts"

    Where do I find the option "save as web receipts" on my Mac Book Pro?

  • Combining various PDF files with forms fields: How To?

    Hi people. I have a problem with my Adobe Acrobat 9 Pro and some PDFs. Each file has a lot of form fields and they has the same name. When I try to combine allowed files in acrobat, the "combinator" throw a message adverting me that the fields are th

  • Where is the Plug in Folder?

    Hi. I'm trying to install the flickr plug in, but I don't see a plug in folder. Where is it? Thx, Scott

  • Mountain Lion is causing havoc with Safari ...

    I am at my wits end! After many Apple tech calls, tons of advice, you name it we've done it! BUT still Safari keeps crashing, pages will not load, iTunes and App Store also playing up. Every few moments my MacBook Pro keeps telling me "I'm not connec