【问题标题】:Crystal Reports: ParamerterValue dialog appears despite of the values are set programmaticallyCrystal Reports:尽管以编程方式设置了值,但仍出现 ParametererValue 对话框
【发布时间】:2013-06-07 19:36:08
【问题描述】:

我正在使用水晶报表 2008

我有一个名为 HeaderColumn1 的参数字段,我想以编程方式传递其值。

我使用以下代码设置参数字段值:

ReportDocument reportDocument = new ReportDocument();
ParameterFields paramFields = new ParameterFields;
ParameterField paramField;
ParameterDiscreteValue paramDiscreteValue;

paramField = new ParameterField();
paramField.Name = "HeaderColumn1";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Customer Code";
paramField.CurrentValues.Add(paramDiscreteValue);


paramFields.Add(paramField);

crystalReportViewer1.ReportSource = reportDocument;
crystalReportViewer1.ParameterFieldInfo = paramFields;
crystalReportViewer1.RefreshReport();

运行此代码时,提示输入 HeaderColumn1 参数的 ParameterValue。

为什么会这样?任何解决方案或建议?非常感谢。

:))

【问题讨论】:

    标签: c# crystal-reports crystal-reports-2008


    【解决方案1】:

    解决方案:

    它最终使用以下方法工作:

    ReportDocument reportDocument = new ReportDocument();
    ParameterFields paramFields = new ParameterFields;
    ParameterField paramField;
    ParameterDiscreteValue paramDiscreteValue;
    
    
    paramField = crystalreportviewer1.ParameterFieldInfo["HeaderColumn1"];
    paramDiscreteValue = new ParameterDiscreteValue();
    paramDiscreteValue.Value = "Customer Code";
    paramField.CurrentValues.Add(paramDiscreteValue);
    
    
    paramFields.Add(paramField);
    
    
    crystalReportViewer1.ReportSource = reportDocument;
    crystalReportViewer1.ParameterFieldInfo = paramFields;
    crystalReportViewer1.RefreshReport();
    

    【讨论】:

      【解决方案2】:

      恐怕你的代码对我不起作用,但这确实(在其他地方找到)并且可能对其他人有帮助 -

      ReportDocument cryRpt = new ReportDocument();
      cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");
      
      ParameterFieldDefinitions crParameterFieldDefinitions ;
      ParameterFieldDefinition crParameterFieldDefinition ;
      ParameterValues crParameterValues = new ParameterValues();
      ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();
      
      crParameterDiscreteValue.Value = Convert.ToInt32(textBox1.Text);
      crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;
      crParameterFieldDefinition = crParameterFieldDefinitions["Price"];
      crParameterValues = crParameterFieldDefinition.CurrentValues;
      
      crParameterValues.Clear();
      crParameterValues.Add(crParameterDiscreteValue);
      crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);
      
      crystalReportViewer1.ReportSource = cryRpt;
      crystalReportViewer1.Refresh(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        • 2019-08-06
        相关资源
        最近更新 更多