我有一个带有单个参数的简单 Crystal 报表,它应该在报表上生成单个项目。我在下面列出了代码,以及报告中的参数设置。当我尝试将报告打印到打印机时(代码片段中的最后一行),我收到以下异常;
CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException 未处理 消息=缺少参数值。
我还尝试使用 ParameterFieldDefinitions 和 ParameterFieldDefinition 对象生成报告,但最终得到相同的结果。
任何帮助将不胜感激。
ReportDocument loReport = new ReportDocument();
loReport.Load(path+"InventoryItemsBarCodeLabel.rpt");
SqlConnectionStringBuilder loConnectionString = new SqlConnectionStringBuilder(ConnectionUtilities.getConnectionString());
ParameterValues currentParameterValues = new ParameterValues();
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
parameterDiscreteValue.Value = Convert.ToInt32(psMasterId);
loReport.SetParameterValue("pnMasterId", parameterDiscreteValue.Value);
loReport.SetDatabaseLogon(loConnectionString.UserID,
loConnectionString.Password,
loConnectionString.DataSource,
loConnectionString.InitialCatalog);
loReport.Refresh();
loReport.PrintToPrinter(1, false, 1, 1);
报告参数:名称:pmMasterId,类型:数字,值列表:动态,值 = MasterId,描述 = MasterId,参数 = ?pnMasterId
报告选择记录:{Inventory_Items.MasterId} = {?pnMasterId}
最佳答案
尝试将SetDatabaseLogon()方法移到之前设置参数;我相信它会重置报告文档和之前传递的任何参数。
关于c# - 无法将 int 参数传递给 Crystal Report,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625956/