当我运行我的水晶报告时,我遇到一个错误,其中显示缺少参数值
以下是我的代码
_crAdviceRpt.Load("C:\Users\whatever\AD_AdviceTemplate.rpt")
Dim ds As ADDataset = New ADDataset
Dim dt As DataTable = ds.Tables.Add("ADDatatable")
dt.Columns.Add(New DataColumn("strLinesList", Type.GetType("System.String")))
Dim dr As DataRow
dr = dt.NewRow
dr("strLinesList") = strLine
dt.Rows.Add(dr)
_crAdviceRpt.SetDataSource(ds.Tables(1))
CrDiskFileDestinationOptions.DiskFileName = "location.pdf"
CrExportOptions = _crAdviceRpt.ExportOptions
With CrExportOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
.DestinationOptions = CrDiskFileDestinationOptions
.FormatOptions = CrFormatTypeOptions
End With
_crAdviceRpt.Export()
If Not _crAdviceRpt Is Nothing Then
_crAdviceRpt.Close()
_crAdviceRpt.Dispose()
_crAdviceRpt = Nothing
End If
在我的数据集中,它确实如下: ADDDataset.xsd-> ADDatatable - > strLinesList strLinesList是我在这里的专栏
在水晶报表设计器中,我将strLinesList拖到我的.rpt
我不确定出了什么问题,但我很确定我的代码中缺少某些东西,所以无论如何都不胜感激
答案 0 :(得分:1)
解决方法是重新排序Crystal参数以匹配Query Prompts
1)在Crystal Designer中打开问题报告 2)右键单击“参数”部分,然后选择重新排序参数 3)设置参数顺序以匹配查询中的提示 4)保存报告并重新测试
“数据库”菜单上的“验证数据库”命令检查存储在报告文件中的别名指针,以验证预期的数据库文件是否位于指示的目录中。如果在指定位置找不到数据库,程序会通知您差异。
使用验证数据库流程
从“数据库”菜单中选择“验证数据库”时,程序将检查活动数据库和报告。如果检测到更改,则必须调整报告以防止出现错误。当程序检测到对数据库的这些类型的更改时,程序将显示“映射字段”对话框: - 报告中使用的数据库字段的名称已更改 - 数据库已从PC数据源升级到SQL数据源。
如果Crystal Reports检测到以下任何更改,它将自动调整报告(并且不显示“映射字段”对话框): - 已将字段添加到数据库中 - 已从数据库中删除未在报告中使用的字段 - 数据库中的字段位置已更改 - 数据库中的字段已更改数据类型。
在每个打印过程中使用验证
每次打印时验证都会在每次打印报告时触发“验证数据库”命令。 - 如果每次打印上的验证旁边都有复选标记,则该选项处于活动状态。每次打印时都会触发验证数据库。 - 如果旁边没有复选标记,则该选项处于非活动状态。该选项默认为非活动状态。