如何解决"参数字段和参数字段当前值的类型不兼容"在Crystal参数中

时间:2014-06-13 13:06:16

标签: c# crystal-reports

将参数传递给VS 2008中的Crystal Reports时出现上述错误

我就是这样做的:

reportPath = GetReportPath(ReportType);
CRReport.Load(reportPath);
CrystalReportViewer1.ReportSource = CRReport;
AddParameterToReport("DocumentID", DocumentID);

ConnectionInfo connectionInfo = ConnInfo();
SetDBLogonForReport(connectionInfo, CRReport);
SetDataSetForMultipleSubReport(connectionInfo, CRReport);

AddParameter()

ParameterFields parameterFields = CrystalReportViewer1.ParameterFieldInfo;
ParameterValues currentParameterValues = new ParameterValues();
ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();

parameterDiscreteValue.Value = CRParamValue;
currentParameterValues.Add(parameterDiscreteValue);

ParameterField parameterField = parameterFields[CRParamName];
parameterField.CurrentValues = currentParameterValues;

ApplyingCurrentValues()

ParameterFields crParameterFields = CRReport.ParameterFields;
ParameterField crParameterField = new ParameterField();

try
{
    // loop through all the sections to find all the report objects 
    foreach (ParameterField crParameterField1 in crParameterFields)
    {
        for (int i = 0; i < CRReport.ParameterFields.Count; i++)
        {
            ParameterValues CrParaVals = new ParameterValues();
            DataDefinition CrDataDef = CRReport.DataDefinition;
            ParameterFieldDefinitions PFDefs = CrDataDef.ParameterFields;
            crParameterFields = CrystalReportViewer1.ParameterFieldInfo;
            crParameterField = crParameterFields[i];
            CrParaVals = crParameterField.CurrentValues;

            CRReport.DataDefinition.ParameterFields[i].ApplyCurrentValues(CrParaVals);
        }
    }
}
catch (Exception ex)
{
    ex = null;
}

在突出显示的行中获得上述错误。

有谁可以帮我解决这个问题?

我的Crystal Report中只有参数字段,如下所示。

3 个答案:

答案 0 :(得分:2)

我们将Crystal Reports用于所有报告,我们绝不会像您尝试的那样向报告发送参数。我们只需设置参数值,您似乎是在添加参数而不是引用现有参数。

CRReport.SetParameterValue("DocumentID", DocumentID);

答案 1 :(得分:2)

上述错误是由于水晶报告中的值类型错误匹配而发生的,一旦我改变,它就完美地工作了。

我做的是 例如: 在水晶报告中,我已经将值类型作为数字。但是在传递i时,传递了文本框值,这是字符串类型。所以我在Crystal报告中将值类型更改为字符串,并将字符串作为参数发送,从而产生预期的解决方案。

答案 2 :(得分:-1)

检查您的参数输入报告.. 并与您通过的表格相匹配。 我遇到了同样的问题。并通过比较两端来解决这个问题。