Subreport displays "..Missing parameter values" when published
I would like some expert knowledge on the issue i'm currently having with a transaction report that I've developed. I have one main report with all the db tables linked.
I have two parameters field defined, one is part id, the other is date issue.
I have 3 report footers defined: 1=issues subreport, 2=adjustments subreport, 3=cycle counts
The subreports has a subreport link for Part id and one for the date issue, date adjustment, and date cycle counted. I've also created in each of the subreports a date parameter field or else these data will not display on the primary report correctly.
When i run this report in my Crystal Reports XI pro software, it works fine, all transactions are captured and everything is great.
When i publish this report onto the Crystal reports enterprise server, after entering the two values on the main report, the report errors with [COMException: Missing paramter values].
I know that there is a subreport linkage problem that i have or I'm doing something backwards but any suggestions would be greatly appreciated.
Regards,
Linda
Thank you for the response Sharon but it is still not working for me. Here is more details if anyone has any feedbacks to give.
Main report:
Has 5 db tables linked, a counts table, a parts table, a detail table, a receipts table, and a adjustment table.
Parameter fields on the Main report:
1 for part id
1 for date issue range <this range should match to the other 3 sub-reports>
Sub-Reports: <example>
Receipts sub
Adjustment sub
Count sub
Example: The report footers where these subreports reside, all their subreport links are:
partid --> ?Pm-<tablename>partid with check in the select data in subreport based on field <tablename>partid
receivedate --> ?Pm<tablename>receive date with no checkbox
same for other 3 = this is the only way the data displays correctly.
All sub-reports have the following parameter fields:
Pm-<tablename.Part>
Receiptdate
Pm-<tablename.receipt date>
Pm<tablename.part>
adjustmentdate
Pm<tablename.adjustment date>
Pm<tablemname.part>
countdate
Pm<tablename.count date>
When i press the refresh on the main report, all of the date ranges comes up, i enter the value in all of the ranges, and the data displays accurately and correctly.
Because the 3 prompts in the sub-reports are not on the main report, i think this is where the problem when i publish the report on the server it errors with missing parameters.
Thank you
Similar Messages
-
"Missing parameter values " when passing parameter to subreport
i have a subreport embedded in main report.
sub report take a procedure with parameter.the main report does nothing but only holds many sub report.now i have to pass parameter from code to sub report.ive used the following code but it gives "missing parameter values" error
Any help??
ParameterField paramField = new ParameterField();
ParameterFields paramFields = new ParameterFields();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@LabNo";
paramDiscreteValue.Value = "1034";
paramFields.Add(paramField);
ParameterValues paramvalues = new ParameterValues();
paramvalues.Add(paramDiscreteValue);
paramField.CurrentValues.Add(paramDiscreteValue);
rptDocument.ParameterFields[0].CurrentValues = paramvalues;does the sub report have parameters in it as well?
if the sp used for the sub report has parameters you need to pass them to the sub. i would probably remove the parameters from the sub and join the sub to the main by the parameter from the main to the field in the sub. -
Missing parameter values when trying to export to pdf in C#
HI all,</BR>
</BR>
I'm having a problem passing a parameter from my c#.NET code through Crystal Reports 2008...</BR>
</BR>
Crystal Reports Developer version 12.1.0.892</BR>
using a WinXP machine</BR>
The parameter I've setted up in Crystal Reports Design is one to dynamically change the query that will run on the report:</BR>
"SELECT * FROM REPORTS.{?Protocolname}_FC_QUERY"</BR>
</BR>
</BR>
The code I use calling one of the reports I must provide:</BR>
</BR>
using System;</BR>
using System.Collections.Generic;</BR>
using CrystalDecisions.CrystalReports.Engine;</BR>
using CrystalDecisions.Shared;</BR>
using System.Data;</BR>
using System.Data.OracleClient;</BR>
using System.Collections;</BR>
namespace CrystalReportsRapportjes</BR>
{</BR>
class MainClass</BR>
{</BR>
public static void Main(string[] args)</BR>
{</BR>
Console.WriteLine("Start of program!");</BR>
string connString = "server=CT_PRD;user id=report;password=report";</BR>
OracleConnection conn = new OracleConnection(connString);</BR>
try</BR>
{</BR>
conn.Open();</BR>
Console.WriteLine("Connection opened.");</BR>
</BR>
Console.WriteLine("Connection Properties:");</BR>
Console.WriteLine("\tConnection String: {0}", conn.ConnectionString);</BR>
Console.WriteLine("\tServerVersion: {0}", conn.ServerVersion);</BR>
Console.WriteLine("\tState: {0}", conn.State);</BR>
QL_ExportReport("C:\\Data\\converted2crystal\\PLANNING_REPORT_params.rpt");</BR>
</BR>
} catch (OracleException e) {</BR>
Console.WriteLine("Error: " + e);</BR>
} finally {</BR>
conn.Close();</BR>
Console.WriteLine("Connection closed.");</BR>
}</BR>
Console.WriteLine("End of program!");</BR>
Console.ReadKey();</BR>
}</BR>
private static void QL_ExportReport(string reportName)</BR>
{</BR>
ReportDocument CR_reportDocument = new ReportDocument();</BR>
DataSet ds = new DataSet();</BR>
CR_reportDocument.Load(reportName);</BR>
CR_reportDocument.SetDatabaseLogon("Reports", "Reports");</BR>
for(int i=0;i<CR_reportDocument.DataDefinition.ParameterFields.Count; i++)</BR>
{</BR>
Console.WriteLine("Reading parameters");</BR>
Console.WriteLine(CR_reportDocument.DataDefinition.ParameterFields<i>.ParameterFieldName);</BR>
if(CR_reportDocument.DataDefinition.ParameterFields<i>.ParameterFieldName==
"Protocolname")</BR>
Console.WriteLine("Correct parameter found, now assigning value");</BR>
ParameterValues ThisPV = new ParameterValues();</BR>
ThisPV.AddValue("TMC999C999");</BR>
CR_reportDocument.DataDefinition.ParameterFields<i>.CurrentValues.Clear();</BR>
CR_reportDocument.DataDefinition.ParameterFields<i>.DefaultValues.Clear();</BR>
</BR>
CR_reportDocument.DataDefinition.ParameterFields<i>.ApplyCurrentValues(ThisPV) ;</BR>
//CR_reportDocument.SetParameterValue("Protocolname","TMC999C999");</BR>
//CR_reportDocument.DataDefinition.ParameterFields<i>.CurrentValues.AddValue(ThisPV);</BR>
}</BR>
CR_reportDocument.Refresh();</BR>
CR_reportDocument.ExportToDisk</BR>(ExportFormatType.PortableDocFormat,"C:\\Data\\converted2crystal\\EDC_PLANNING_RPT_params.pdf");</BR>
CR_reportDocument.Close();</BR>
}</BR>
}</BR>
}</BR>
</BR>
The exceptions he throws using this code is = CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException: </BR>Missing parameter values. ---> System.Runtime.InteropServices.COMException: Missing parameter values.</BR>
at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException</BR>
at CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream</BR>
at CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream</BR>
at CrystalDecisions.CrystalReports.Engine.FormatEngine.Export</BR>
at CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToDisk</BR>
at CrystalReportsRapportjes.MainClass.QL_ExportReport in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 72</BR>
at CrystalReportsRapportjes.MainClass.Main in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 33</BR>
</BR>
When I use the code</BR>
CR_reportDocument.DataDefinition.ParameterFields<i>.CurrentValues.AddValue(ThisPV);</BR>
instead of</BR>
CR_reportDocument.DataDefinition.ParameterFields<i>.ApplyCurrentValues(ThisPV) ;</BR>
</BR>
the error I get there is:</BR>
System.ArgumentException: Value does not fall within the expected range.</BR>
at CrystalDecisions.Shared.SharedUtils.ConvertToDecimal</BR>
at CrystalDecisions.Shared.ParameterDiscreteValue.set_Value</BR>
at CrystalDecisions.Shared.ParameterValues.AddValue</BR>
at CrystalReportsRapportjes.MainClass.QL_ExportReport in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 69</BR>
at CrystalReportsRapportjes.MainClass.Main in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 33
</BR>
</BR>
</BR>
Can someone please tell me what's the right way passing a parameter to a report?</BR>
</BR>
Thanks in advance.</BR>You should use the
ReportDocument.SetParameterValue("ParameterName", "ParamValue");
>
Els Cochez wrote:
> When I use the code</BR>
> CR_reportDocument.DataDefinition.ParameterFields<i>.CurrentValues.AddValue(ThisPV);</BR>
> instead of</BR>
> CR_reportDocument.DataDefinition.ParameterFields<i>.ApplyCurrentValues(ThisPV) ;</BR>
> </BR>
> the error I get there is:</BR>
> System.ArgumentException: Value does not fall within the expected range.</BR>
> at CrystalDecisions.Shared.SharedUtils.ConvertToDecimal</BR>
> at CrystalDecisions.Shared.ParameterDiscreteValue.set_Value</BR>
> at CrystalDecisions.Shared.ParameterValues.AddValue</BR>
> at CrystalReportsRapportjes.MainClass.QL_ExportReport in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 69</BR>
> at CrystalReportsRapportjes.MainClass.Main in </BR>c:\Data\sharpdevelopfolder\CrystalReportsRapportjes\CrystalReportsRapportjes\Program.cs:line 33</BR>
> </BR>
> </BR>
> Can someone please tell me what's the right way passing a parameter to a report?</BR>
> </BR>
Try parsing the parameter value to a decimal value before setting it as parameter value.
Hope this will help -
CRVS2010 Beta - Missing parameter values
I want to export my report to pdf file and I want to set some parameters in report in runtime.
But when I try to do it I have exception "Missing parameter values".
Productversion: Visual Studio 2010 + Crystal Report 2008 + service pack v3.
I read that problem was resolved in service pack v2.
But now I don't have any idea how to fix my problem.
I create report and add parameters ("MyParameter") as string.
My test project:
//Load report
//Set db connection
try
ParameterValues crParameterValues = report.DataDefinition.ParameterFields["MyParameter"].CurrentValues;
ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue {Value = "SBSUrl"};
crParameterValues.Clear();
crParameterValues.Add(crParameterDiscreteValue);
report.DataDefinition.ParameterFields["MyParameter"].ApplyCurrentValues(crParameterValues);
report.VerifyDatabase();
report.Refresh();
string reportFileName = string.Format(@"D:\CrystalReport\CRResult-{0}.pdf", DateTime.Now.Ticks);
ExportOptions rptExportOption;
var rptFileDestOption = new DiskFileDestinationOptions();
var rptFormatOption = new PdfRtfWordFormatOptions();
rptFileDestOption.DiskFileName = reportFileName;
rptExportOption = report.ExportOptions;
rptExportOption.ExportDestinationType = ExportDestinationType.DiskFile;
rptExportOption.ExportFormatType = ExportFormatType.PortableDocFormat;
rptExportOption.ExportDestinationOptions = rptFileDestOption;
rptExportOption.ExportFormatOptions = rptFormatOption;
report.Export(); // I have exception here ("Missing parameter values.")
catch (Exception e)
Console.WriteLine(e);
private void SetCurrentValuesForParameterField(ReportDocument reportDocument, ArrayList arrayList)
ParameterValues currentParameterValues = new ParameterValues();
foreach (object submittedValue in arrayList)
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
parameterDiscreteValue.Value = submittedValue.ToString();
currentParameterValues.Add(parameterDiscreteValue);
ParameterFieldDefinitions parameterFieldDefinitions = reportDocument.DataDefinition.ParameterFields;
ParameterFieldDefinition parameterFieldDefinition = parameterFieldDefinitions["MyParameter"];
parameterFieldDefinition.CurrentValues.IsNoValue = true;
parameterFieldDefinition.ApplyCurrentValues(currentParameterValues);
Could anybody help me with this exception?Make sure you log on to the database, set the parameter, then export.
See the following KBases:
[1244475 - Error: Missing parameter value when exporting a Crystal Report with optional parameters using the CR .NET SDK|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_dev/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do]
[1215426 - Err Msg: Missing parameter value when printing or exporting in VS .NET|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_dev/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do]
[1215536 - Err Msg: Missing parameter field current value when exporting/printing in .NET|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do]
[1216546 - Err Msg: Missing Parameter Field Current Value when viewing a report in VS.NET|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do]
Also, see the following forum thread for possible solutions:
Passing Parameters CR 2008 VS 2008 ASP.net
Ludek -
Missing Parameter Values while using Change SubReport links
Hi,
I am using Change SubReport Links to pass data from Main Report to the SubReport. The report works fine at design time when I preview it, but at runtime I get "Missing Parameter Values" error.
As I have used Chanage SubReport Links do I still need to pass the parameter to the SubReport from the code.
cr.Export gives this error.
Below is the code
ExportOptions crExportOptions;
DiskFileDestinationOptions crDiskFileDestinationOptions;
string Fname = string.Empty;
string strReportName = string.Empty;
ReportDocument cr = new ReportDocument();
string strReportPath = Request.PhysicalApplicationPath.ToString() + @"Members\Reports\UnPaidReceipt.rpt";
if (!System.IO.File.Exists(strReportPath))
throw (new Exception("Unable to locate report file:\n" + strReportPath));
cr.Load(strReportPath);
MtollBLL Unpaid = new MtollBLL();
cr.SetDataSource(Unpaid.GetUnpaidPayments().DefaultView.Table);
// Set the Crytal Report Viewer control's source to the report document.
CrystalReportViewer1.ReportSource = cr;
MtollBLL Violation= new MtollBLL();
cr.Subreports[0].SetDataSource(Violation.GetReportViolation().DefaultView.Table);
// cr.PrintToPrinter(1, False, 0, 0)
Response.Write( cr.Subreports[0].DataDefinition.ParameterFields.Count);
Fname = Request.PhysicalApplicationPath.ToString() + Session.SessionID.ToString() + ".pdf";
crDiskFileDestinationOptions = new DiskFileDestinationOptions();
crDiskFileDestinationOptions.DiskFileName = Fname;
crExportOptions = cr.ExportOptions;
crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
cr.VerifyDatabase();
cr.Subreports[0].VerifyDatabase();
cr.Export();//' The following code writes the pdf file to the Clientu2019s browser
Please Advise.Please post your SDK development questions to the Developers forum
-
Use of layout when more than one parameter - Error Missing Parameter Values
Hi,
Is it possible to use a crystal report which has more than one parameter as the layout for the bill of materials report.
I have 3 parameters
1. DocKey@ The Bill of Materials to be printed
2. Number of levels to be printed
3. type of levels to print.
When I try to print it gives me the error Missing Parameter Values.
I have tried changing the DocKey@ to CodeKey@ but the same error.
Does anyone now where to find a list of these tokens?
Thanks
ChrisI looked at the crystal report conversion to try to find what parameters it used and found none.
I have managed to create and use a crystal report to replace the production order using DocKey@ as the parameter. This works within SAP. However I have converted the system production order to crystal reports and from the converted report I cannot see any parameters at all.
How and where can you find out what paramters you need to use to replace any PLD report? Several reports have multiple selection criteria before the report prints. How can you find out what their tokens are called? I am starting to pull my hair out. I am getting great help from this forum, but do you know any documentation which actually explains this area.
Thanks
Chris -
"Missing parameter values." Error when setting record selection formula
Setup - VS 2008, CR 2008 (v12.0), Win XP & C#.Net
I have a form which loops through all parameters (non-linked to sub reports, so only off the main report) and allows users to enter the values for each parameter. When hitting the preview button, I loop through all of the saved values, set the parameter field values and then add any additional filters into the recordselection formula as below. The problem i'm having is that the ReportDocument.HasRecords returns true if the ReportDocument.RecordSelectionFormula doesn't filter out every result.
For example, I have a list of customers and if I set the selection formula to filter out a specific customer, ReportDocument.HasRecors returns true, if I set the selection formula to filter something that doesn't exist i.e. customer "xk39df", the moment this line of code runs "ReportDocument.RecordSelectionFormula = rsFormula;" - ReportDocument.HasRecors returns the following exception as opposed to "False".
Message: Missing parameter values.
Source: CrystalDecisions.ReportAppServer.DataSetConversion
StackTrace: at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.hasRecords()
at CrystalDecisions.CrystalReports.Engine.ReportDocument.get_HasRecords()
ErrorID: MissingParameterFieldCurrentValue
The strange thing is, it works fine if the recordselectionformula selects a record which exists in the results - all parameters have a current value except for the linked parameters.
This one has got me stumped!
foreach (ParameterFieldDefinition parameterField in ReportDocument.DataDefinition.ParameterFields)
var query = ReportObjects.Values.Cast<Filters>().Where(objects => objects.ParameterName == parameterField.Name.ToUpper().Trim());
foreach (var item in query)
parameterField.CurrentValues.Clear();
parameterField.CurrentValues.Add(item.ParameterValue);
parameterField.ApplyMinMaxValues(item.MinLength, item.MaxLengh);
parameterField.ApplyCurrentValues(parameterField.CurrentValues);
var records = ReportObjects.Values.Cast<Filters>().Where(recordSelection => recordSelection.RecordSelectionFormula.Trim().Length != 0);
foreach (var item in records)
rsFormula += item.RecordSelectionFormula;
if (rsFormula.EndsWith(" AND "))
rsFormula = rsFormula.RTrim(5);
ReportDocument.RecordSelectionFormula = rsFormula;Hi,
The report has it's own ADO Datasource set in crystal reports, so I just pass the log on information to the report object before doing anything else.
this.DataSourceConnections[0].SetConnection("ServerName", "Database", "sa", "Password");
I then do a refresh before applying the parameter values (I do this because the user can preview the report more than one time by using a preview button on the parameter form without re-loading the report object)
this.Refresh();
Then I set all parameter values followed by setting the recordselection formula. -
Missing parameter values message when exporting report
Post Author: Gr_Pr
CA Forum: .NET
Using .NET 2005, CR XI R2, and the Crystal SDK for .NET 2005 to generate reports. Basically CR is my application's reporting tool. So, we create a report in CR XI R2, then distribute that report to our users loading it into the .NET application using the Report Document class.
We have a small problem.
Our user's have the ability to use pre-defined 'prompts' that will pass parameters to the reports. Let's say that the prompt will pass in (5) pre-defined parameter values, but the customer wants to run their own 'custom' report using our prompt, but their 'custom' report contains (6) parameters.
If I let the Report Viewer load the report, the user will be prompted for the missing parameter value that was not supplied by the 'prompt'.
If I run the report without loading it into the Viewer and try to export the report directly to PDF I receive an error message from CR stating I have 'Missing Parameter Values' then the report errors out.
Has anyone come across this? Is there something I missed?
I am not real sure as to why you would be prompted by the Viewer and not by the Export Class. This worked fine when using the RDC component, I was prompted for the missing parameter value by both options.
Any help would be greatly appreciated.Hi,
The report has it's own ADO Datasource set in crystal reports, so I just pass the log on information to the report object before doing anything else.
this.DataSourceConnections[0].SetConnection("ServerName", "Database", "sa", "Password");
I then do a refresh before applying the parameter values (I do this because the user can preview the report more than one time by using a preview button on the parameter form without re-loading the report object)
this.Refresh();
Then I set all parameter values followed by setting the recordselection formula. -
ReportDocument.ExportToStream raises "Missing Parameter Values" exception
Hi,
I have a web app built using VS 2008 which runs many reports developed in CR 2008. Most of these reports take parameters and many have embedded subreports. Many of the reports can either be viewed directly or e-mailed. For the latter, I use ReportDocument.ExportToStream(ExportFormatType.PortableDocFormat) to export a PDF file which then gets attached to the e-mail.
One set of reports works fine when viewed directly, but raises a "Missing Parameter Values" exception when I try to generate the PDF. All the other reports, seemingly similar in most respects, including the number and type of parameters, work fine when calling ExportToStream.
Here is the really strange part: the exception is spurious. I wrapped the whole thing in a try/catch block to better examine the exception, hoping to find which parameter value is actually missing. I could not identify the missing parameter value, but once I handled the exception, the report runs fine and converts to PDF.
Any hints as to what could be causing this problem? It seems like a really bad hack to solve the problem using a try/catch in this way.
Thanks.
DanThanks for the quick response. Your code was very instructive, but did not help yet. Here is what I have:
(This response is too long for a single post, so I will split it and finish in the next post.)
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(strReportSourceFolder + strReportName + ".rpt");
rptDoc.SetParameterValue("ClientID", lngKeyFieldID);
rptDoc.SetParameterValue("Role", "Client");
This is followed by an amazing chunk of code, provided to me by a guy at SAP Tech Support, who said it was necessary to pass database credentials programatically. It iterates the tables in the ReportDocument and individually sets the LogonInfo. (I say "amazing" because it astounds me you have to jump through such hoops for something that should be routine and easy.) The commented lines are just to help in debugging.
ConnectionInfo conn = new ConnectionInfo();
conn.ServerName = "myServer";
conn.DatabaseName = "myDB";
conn.UserID = "myUserID";
conn.Password = "myPassword";
Tables tables = rptDoc.Database.Tables;
foreach (Table table in tables)
//string str= table.TestConnectivity().ToString());
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = conn;
table.ApplyLogOnInfo(tableLogonInfo);
//table.Location = table.Location;
This is followed by the viewer stuff:
CrystalReportViewer1.DisplayGroupTree = false;
CrystalReportViewer1.DisplayToolbar = true;
CrystalReportViewer1.HasToggleGroupTreeButton = false;
CrystalReportViewer1.HasToggleParameterPanelButton = false;
CrystalReportViewer1.Page.Title = strReportName;
CrystalReportViewer1.ReportSource = rptDoc;
Up to here, it works fine, displaying the report. If the report is also to be e-mailed, the following is executed:
if (bEmail)
// export to PDF, then mail that
SmtpClient client = new SmtpClient();
MailAddress from = new MailAddress(ConfigurationManager.AppSettings["ReportMailFrom"].ToString());
MailMessage message = new MailMessage();
message.From = from;
message.SubjectEncoding = System.Text.Encoding.UTF8;
message.Subject = "E-mail BackOffice report: " + strReportName;
try
foreach(ParameterField field in rptDoc.ParameterFields)
Logger.LogEvent("test", "", field.ToString(), "Trace", null, true, true);
Logger.LogEvent("test", "", "Name: " + field.Name, "Trace", null, false, false);
Logger.LogEvent("test", "", "PromptText: " + field.PromptText, "Trace", null, false, false);
Logger.LogEvent("test", "", "IsOptionalPrompt: " + field.IsOptionalPrompt, "Trace", null, false, false);
MemoryStream memStream = (MemoryStream)rptDoc.ExportToStream(ExportFormatType.PortableDocFormat);
Attachment data = new Attachment(memStream, MediaTypeNames.Application.Pdf);
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = DateTime.Now;
disposition.ModificationDate = DateTime.Now;
disposition.FileName = strReportName + ".pdf";
disposition.DispositionType = DispositionTypeNames.Attachment;
message.Attachments.Add(data);
catch (Exception ex)
Logger.LogEvent("error", "Page_Load", strReportName + " Exception: " + ex.Message, "Trace", null, true, true);
// ... do the rest of the stuff to create & send the e-mail
(The rest of this message will be in the following post. Sorry it is so long.) -
Why do I get Missing Parameter Values error from CrystalReportViewer in VS2005
Post Author: eseidel
CA Forum: .NET
Hi everyone,
I have spent way to much time trying to figure this problem out and am getting no where now. I was hoping someone with more experience in CR for VS2005(I think v.9) and VS2005 may be able to help. I have a report with 10 parameters that Im setting in code. I have another 3 parameters in a subreport(with same names as 3 in main report) that are being pushed in(I hope) through my ApplyParams() method. I have checked the output of each parameter before and after it is assigned in ApplyParams. All values are being set....So why do I keep getting an error when I run it for Missing Parameter Values no matter what I do? The error comes after SetDBLogonForReport(myConnectionInfo). I have been struggling with this problem for almost 3 days now and have tried numerous approaches. If I remove the subreport it works ok. Why is subreport not getting parameters(I think this is where the problem stems from)? Please any advice would be greatly appreciated. Thank you. If need be I can e-mail the report but I don't know how much that will help without being able to access the datasources.
Eric
Code Snippet
Private _Parameters As New System.Collections.Specialized.StringDictionary
Public Property Parameters() As System.Collections.Specialized.StringDictionary
Get
Return (_Parameters)
End Get
Set(ByVal Value As System.Collections.Specialized.StringDictionary)
If (Value Is Nothing Or _Parameters Is Nothing) Then Exit Property
For Each entry As DictionaryEntry In Value
_Parameters.Add(entry.Key, entry.Value)
Next
End Set
End Property
Private Sub SetParameters()
Parameters("kiPerformance") = rptKi.ToString
Parameters("PreparedBy") = rptPreparedBy
Parameters("SupplierName") = rptSupplierName
Parameters("Supplier") = rptSupplier 'Param in subreport too
Parameters("ApprovedBy") = rptApprovedBy
Parameters("kiPerformanceGoal") = rptKiThisGoal.ToString
Parameters("kiForecastGoal") = rptKiForecast.ToString
Parameters("kiNextGoal") = rptKiNextGoal.ToString
Parameters("kiBegRange") = rptBegDate.ToString("d") 'Param in subreport too
Parameters("kiEndRange") = rptEndDate.ToString("d") 'Param in subreport too
End Sub
Public Function ApplyParams()
Me.SuspendLayout()
Dim rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument = _
crv.ReportSource
If (rpt Is Nothing OrElse _Parameters Is Nothing) Then Return False
Dim crParameterFieldDefinitions As ParameterFieldDefinitions = rpt.DataDefinition.ParameterFields
If (crParameterFieldDefinitions Is Nothing) Then Return False
For Each crParameterFieldDefinition As ParameterFieldDefinition In crParameterFieldDefinitions
If ((Not crParameterFieldDefinition.IsLinked) And _
_Parameters.ContainsKey(crParameterFieldDefinition.Name)) Then
Dim crParameterValues As ParameterValues = _
crParameterFieldDefinition.CurrentValues
If Not (crParameterValues Is Nothing) Then
Dim crParameterDiscreteValue As New ParameterDiscreteValue
crParameterDiscreteValue.Value = _Parameters.Item(crParameterFieldDefinition.Name)
crParameterValues.Add(crParameterDiscreteValue)
'Console.WriteLine(crParameterFieldDefinition.Name & ": " & crParameterDiscreteValue.Value)
crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
End If
End If
Next
crv.ReportSource = rpt
Me.ResumeLayout()
Return Nothing
End Function
Private Sub ConfigureCrystalReports()
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo
Dim pFields As New ParameterFields()
Dim pField As New ParameterField()
Dim disVal As New ParameterDiscreteValue()
'Connection stuff,sorry I can't show you this part
'Bind report
rptCard = New ReportCard
LoadDataSource()
rptCard.SetDataSource(dsOcc)
rptCard.Subreports("FailOcc").SetDataSource(dsOcc) 'Ive tried without this line as well
rptCard.PrintOptions.PaperSize = PaperSize.Paper11x17
rptCard.PrintOptions.PaperOrientation = PaperOrientation.Landscape
crv.ReportSource = rptCard
'Load parameters for report
SetParameters()
crv.RefreshReport()
SetDBLogonForReport(myConnectionInfo)
End sub
Private Sub SetDBLogonForReport(ByVal conn As ConnectionInfo)
Dim tableLogOnInfos As TableLogOnInfos = crv.LogOnInfo
For Each myTableLogOnInfo As TableLogOnInfo In tableLogOnInfos
myTableLogOnInfo.ConnectionInfo = conn
Next
End Sub
Private Sub crv_Error(ByVal source As Object, ByVal e As CrystalDecisions.Windows.Forms.ExceptionEventArgs) Handles crv.Error
MsgBox(e.Exception.Message)
e.Handled = True
End Sub
Private Sub crv_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Windows.Forms.ViewerEventArgs) Handles crv.ReportRefresh
ApplyParams()
End SubPost Author: mewdied
CA Forum: .NET
By any chance are the parameters in your subreport stored procedure parameters?
There was a specific fix for stored procedure parameters available from:ftp://ftp1.businessobjects.com/outgoing/CHF/crnet20win32x86_en_chf.zip
The specific fix is described in the readme under Problem ID # ADAPT00532856 -
Error Missing Parameter Values
I am very inexperinced in VB and ASP.Net.
That being said I have used forums and tutorials to develop the code below.
In the code I have hard coded some values to be passed to the report for testing...see num_inv and ser_inv.
When I run the code I get an error "Missing Parameter Values".
If I remove the lines that setparamervalues and turn on the enableparamaterpromt the report works fine and I can manually enter the values and see my completed report.
More Details...
The Crystal Report uses an ODBC connection to a SQL Server. I am only using one view to feed the report and there are no subreports. I am buidling the web app in VS2010 with the crystal reports version for VS2010 installed.
Dorry if I didn't give enough information...I don't know what else is relavant.
Any help would be greatly appreciated!
Private Const PARAMETER_FIELD_NAME_1 As String = "Invoice"
Private Const PARAMETER_FIELD_NAME_2 As String = "Serial"
Private Sub WebForm2_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
ConfigureCrystalReports()
End Sub
Private InvoiceReport As ReportDocument
Private Sub ConfigureCrystalReports()
Dim num_inv As Integer
Dim num_ser As Integer
num_inv = 880822
'Request.QueryString("inv")
num_ser = 1
'Request.QueryString("ser")
InvoiceReport = New ReportDocument()
Dim reportPath As String = Server.MapPath("S36 Invoice.rpt")
InvoiceReport.Load(reportPath)
InvoiceReport.SetParameterValue(PARAMETER_FIELD_NAME_1, num_inv)
InvoiceReport.SetParameterValue(PARAMETER_FIELD_NAME_2, num_ser)
CrystalReportViewer1.ReportSource = reportPath
End SubI would start by enabling the parameter prompt and passing the parameters in code. You will only be prompted for the parameters that did not receive an acceptable value. This will let you see if your code to set the values is working for one or neither of your parameters. Calling the setparametervalues method will not return an error if the value isn't accepted.
Also, make sure your datatype is the same as defined in the report, and make sure you have no differences in the parameter names. Note, if the parameters are automatically created in the report because they came from a stored procedure, you need to include the @ symbol in the name as you see in the designer. -
Error: Missing Parameter Values on
I've started experiencing the "Missing Parameter Values" error on a report containing a subreport. All of my other reports can export just fine, but just not the one with the subreport. The report (and the subreport) both use a stored procedure to retrieve their data, with 4 parameters. The first three parameters are linked directly from the report to the subreport. The 4th parameter is optional, and is linked to the subreport with a Formula Field.
When I delete the subreport, the report exports just fine, so the issue is definitely with the subreport ?configuration?
I'm using Visual Studio 2005, with Crystal Reports for VS 2005. I've been searching the forums, and I downloaded and installed a package: crnet20win32x86_en_chf.zip, but it didn't solve my problem. Just to be sure, I restarted and installed it with nothing running, in case that could be a factor.
Is there anything I can do to work through this? Any other fix I'm missing?
Thanks
AlexThanks for the tip. I did that just now, and I found the [Hot Fix|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bi/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333233313339333533393334%7D.do]
That particular Hot Fix describes my situation exactly, in that a report Stored Procedure parameter is "supposed" to be passed on to the Subreport. However, the Hot Fix describes prompting, which isn't occurring in my case, since I'm exporting the report entirely in code. My situation is just the error, Missing Parameter Values.
In any case, I've already run that entire Hot Fix package (twice), and I've found that I have 2 of the crpe32.dlls. Neither one is the version specified in the Hot Fix, (Version 10.2.0.1256). The second dll listed below seems to be of a version prior to the Hot Fix, I don't know if it could be the reason why it still doesn't work after applying the Hot Fix.
C:Program FilesCommon FilesBusiness Objects2.7Bin (Date 1/11/2007, version: 10.2.0.1624) and
C:Program FilesCommon FilesCrystal Decisions2.5Bin (Date 10/5/2005, version: 10.0.5.1177).
I've checked all the versions of references in my projects, and they all reference the 2.7 dlls, but I'd like to know if there is a way to replace the 2.5 version, just in case.
As far as the other search results, they hinted at things I've already tried. What else can I try?
Thanks,
Alex -
ReportDocument.Export() raises "Missing Parameter Values" exception
Hi
Recently I encountered a question about SAP Crystal Report that I have a rpt file with several sub reports and I am required to make the data source to be XML with http/https URLs. I created different .NET pages which returns XML stream as data source for both main report and sub reports in my rpt file, and also created a sub report links which pass dynamic parameters from main report to the sub reports, everything worked fine when I entered the necessary parameters only for the main report in the design tool, both the main report and sub reports displayed perfectly.
But it did not work in my .NET application which export the reports to PDFs, I referenced “CrystalDecisions.CrystalReports.Engine” and some other necessary DLLs into my project, and then I created an instance of ReportDocument, loaded the rpt file, set parameters which used in the main report, set connection info, and at last when I export the report it throw out an exception with “Missing Parameter Values” error message, even though I removed the sub report links which pass parameters from main report, the exception still occurred, but when I removed all the sub reports, and only export the main report it worked!!
Here is a result of my attempts:
Main Report
Sub Report
Result
1
With XML data source
No report
Works fine with dynamic parameters set to the http/https url which returns an xml results
2
With XML data source
Pass a static value and print it on the report
Works fine.
3
With XML data source
Create a SQL command WITHOUT any parameters passed from main report
Works fine
4
With XML data source
Create a SQL command WITH a dynamic parameter passed from main report
Works fine
5
With XML data source
Create a xml data source WITHOUT any parameters passed from main report
Failed with "Missing Parameter Values"
6
With XML data source
Create a xml data source WITH a dynamic parameter passed from main report
Failed with "Missing Parameter Values"
I am confused about this issue for a few days, is there any ideas or helps? many thanks!OK:
We upgraded to CR 13.0.2000.0 and Visual Studio 2012 and .Net Framework 4.5.
Problem still happens.
When we display the report in the designer, the url has parameters. Here are the IIS log entries:
2014-05-01 18:24:56 192.168.251.10 GET /quotit/apps/leadspro/CrystalServiceGateway_test.aspx @IFPPSID=1899582751211388&@styleColorScheme=10511658/13343077/10511658/13343077/16777215/15720656/16777215/15720656/24831/13426687|10511658/16777215/16777215/16777215/0/0/0/0/0/0 80 - 10.16.26.44 Java/1.6.0_37 200 0 0 959
2014-05-01 18:24:56 192.168.251.10 GET /quotit/apps/leadspro/CrystalServiceGateway_test2.aspx @BrokerID=23433176 80 - 10.16.26.44 Java/1.6.0_37 200 0 0 742
When we use the crystaldecisions.crystalreports.engine, no parameters are passed. Here are the IIS log entries:
2014-05-01 18:22:28 192.168.251.10 GET /quotit/apps/leadspro/CrystalServiceGateway_test2.aspx - 80 - 10.16.26.44 Java/1.7.0_45 200 0 0 58
2014-05-01 18:22:28 192.168.251.10 GET /quotit/apps/leadspro/CrystalServiceGateway_test.aspx - 80 - 10.16.26.44 Java/1.7.0_45 200 0 0 115
I cannot attach the rpt file here. If you need it, please let me know how to get it to you. I am attaching a screenshot of the datasource location. I am pasting in the striped down .NET code. Any help or pointers would be greatly appreciated.
Thanks,
Tom
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.IO;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Collections;
namespace CrystalTest
class Program
static void Main(string[] args)
string source = Path.Combine(@"C:\Users\thomas\Desktop\reports\eProIFP\iProReports", "summaryReportByPremium_ACA_UltraColor.rpt");
string destination = Path.Combine(@"C:\Users\thomas\Desktop\testReports", "output.pdf");
if (File.Exists(destination))
File.Delete(destination);
ReportDocument rptDoc = new ReportDocument();
if (File.Exists(source))
rptDoc.Load(source);
rptDoc.SetParameterValue("@IFPPSID", "1899582751211388");
rptDoc.SetParameterValue("@styleColorScheme", "10511658/13343077/10511658/13343077/16777215/15720656/16777215/15720656/24831/13426687|10511658/16777215/16777215/16777215/0/0/0/0/0/0");
rptDoc.SetParameterValue("@testID", "1");
CrystalDecisions.Shared.TableLogOnInfo logOnInfo = new CrystalDecisions.Shared.TableLogOnInfo();
foreach (CrystalDecisions.CrystalReports.Engine.Table objTable in rptDoc.Database.Tables)
logOnInfo.ConnectionInfo.IntegratedSecurity = true;
objTable.ApplyLogOnInfo(logOnInfo);
ExportOptions CrExportOptions = new ExportOptions();
DiskFileDestinationOptions crDiskFileDestinationOptions = new DiskFileDestinationOptions();
crDiskFileDestinationOptions.DiskFileName = destination;
CrExportOptions = rptDoc.ExportOptions;
CrExportOptions.DestinationOptions = crDiskFileDestinationOptions;
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
rptDoc.Export(); -
Missing Parameter Values - C# - Pushing Datatables to feed data to Report
Hello,
I am working on a .NET project to process close to 650 "existing" reports developed in Crystal Reports 8.5. Rendering reports without subreports is working just fine. However I am getting the following error everytime I try to render a report that has multiple subreports
Missing parameter values. at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
Following is how the reports are built.
Main Report - Fed with a Datatable whose name corresponds to the name of the SQL Query configured in Crystal UI
SubReport1 - Fed with a Datatable whose name corresponds to the name of the SQL Query configured in Crystal UI. The subreport is linked to the parent report using one of the fields in the Datatable that is passed to the main report.
Example: the main report receives a datatable with the following fields
EmployeeId (integer), EmployeeName (string)
The subreport receives a datatable with the following fields : EmployeeId (Integer), EmployeeHobbies (string)
The link is established as follows:
SubReportQueryName.EmployeeId link to MainReportQueryName.EmployeeId
_I have checked the data, its correct in terms of the fields required to render the report. The report parameters are being set from the code and ApplyCurrentValues is being called to ensure that the set values are used when rendering the report.
Please note that I am not using live connections to the database
I tried saving a copy of the above mentioned report and removing the subreport and then rendering the report, all works fine. However the moment i introduce the subreport, per the above mentioned report design/architecture all hell breaks loose and i cannot render the report.
The environment is Windows Vista and I am running VS 2008.
Any help is appreciated.
Thanks
Edited by: pkumbhat on Sep 15, 2010 4:43 PMThe issue has been dealt with.
The solution is to set the datasource with a dataset even if the report or subreport expects or is configured to work with a single table. -
Missing Parameter Values - I'm not using parameters linking to sub
I'm developing reports for use in an aspx environment using Visual Studio 2010 and CR 13.
I have a main report and a subreport. Each report is linked to the database with a view that is connected to a dataset.
When I place the subreport in the main report I edit the change links option and select identical fields from each report.
When I run the code with the subreport commented out I get what I expect on the page.
When I uncomment the subreport I get "Missing parameter values"
Here's the code that I uncomment for the subreport. I've already checked to ensure that there is data in the dataset.
mySection = CaseAssignmentRpt.ReportDefinition.Sections("dsCaseOffender")
mySubObj = mySection.ReportObjects("srCaseOffender")
mySubRep = mySubObj.OpenSubreport(mySubObj.SubreportName)
mySubRep.SetDataSource(dsCaseAoffender)
Do I need to do anything special to my dataset for the two fields to get linked?Hi Chris
Nothing special needed - just making sure that the data is exactly what the report and subreport expect. It is quite typical for this issue to come up if the dataset contains date that is not as expected (e.g.; field formats (including nulls / spaces, etc, missing fields, and so on).
See if following the dataset troubleshooting wiki will help:
Troubleshooting Issues with VS .NET Datasets and Crystal Reports - Business Intelligence (BusinessObjects) - SCN Wiki
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
Maybe you are looking for
-
Valuation field not updated in Profit Center view
Good morning Gurus, I am facing a big problem in KE24 report. As I've checked here, one of my valuation fields related to Raw Materials (VVM01) is only being updated in Legal View from CO. Even I check it in CE1SA01 table (my table for CO documents),
-
I just upgraded my computer from Snow Leopard to Mountain Lion. I used to be able to have as many websites open as I wished. Now when I open a website and minimize it, it minimizes and moves to the dock just like it used to do. But now when I open
-
Backing up/transfer questions
im switching to my new macbook air, how do i back up my bookmarks and add them onto the safari on the new mac air AND is there a best way to transfer my whole iphoto library? i understand its a complicated database and want to do it properly thanks
-
Iweb wont let me publish to mobile me
Can someone help me!!? I have a website which I created in iweb and published it to MobileMe, until recently I have had no problems at all, but now It wont let me. When I try to publish the site it says its logging into mobile me but thats as far as
-
How do I transfer large files from my iPhone 4 to my PC? Does anyone have a clue?