导出时Crystal报表缺少参数值

时间:2014-09-24 01:33:19

标签: vb.net crystal-reports

当我运行我的水晶报告时,我遇到一个错误,其中显示缺少参数值

以下是我的代码

_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

我不确定出了什么问题,但我很确定我的代码中缺少某些东西,所以无论如何都不胜感激

1 个答案:

答案 0 :(得分:1)

解决方法是重新排序Crystal参数以匹配Query Prompts

1)在Crystal Designer中打开问题报告 2)右键单击“参数”部分,然后选择重新排序参数 3)设置参数顺序以匹配查询中的提示 4)保存报告并重新测试

“数据库”菜单上的“验证数据库”命令检查存储在报告文件中的别名指针,以验证预期的数据库文件是否位于指示的目录中。如果在指定位置找不到数据库,程序会通知您差异。

使用验证数据库流程

从“数据库”菜单中选择“验证数据库”时,程序将检查活动数据库和报告。如果检测到更改,则必须调整报告以防止出现错误。当程序检测到对数据库的这些类型的更改时,程序将显示“映射字段”对话框: - 报告中使用的数据库字段的名称已更改 - 数据库已从PC数据源升级到SQL数据源。

如果Crystal Reports检测到以下任何更改,它将自动调整报告(并且不显示“映射字段”对话框): - 已将字段添加到数据库中 - 已从数据库中删除未在报告中使用的字段 - 数据库中的字段位置已更改 - 数据库中的字段已更改数据类型。

在每个打印过程中使用验证

每次打印时验证都会在每次打印报告时触发“验证数据库”命令。 - 如果每次打印上的验证旁边都有复选标记,则该选项处于活动状态。每次打印时都会触发验证数据库。 - 如果旁边没有复选标记,则该选项处于非活动状态。该选项默认为非活动状态。

Link