简体   繁体   English

在Crystal Reports中添加变量

[英]Add variables in Crystal Reports

How to add variables in Crystal Reports from C#. 如何在C#中添加Crystal Reports中的变量。 For example I need to add department name and start/finish dates into header of report. 例如,我需要将部门名称和开始/结束日期添加到报告的标题中。

Pass one or more parameters of any datatype from C# to Crystal Report...One can write the code in the page load event. 将任何数据类型的一个或多个参数从C#传递到Crystal Report ...可以在页面加载事件中编写代码。

  if (Session["RPT_NAME"] != null)
    {

        ReportDocument rpt = new ReportDocument();
        rpt.Load(Server.MapPath((string)Session["RPT_NAME"]));


        int cnt = rpt.DataDefinition.ParameterFields.Count;
        for (int i = 0; i < cnt; i++)
        {
            ParameterValues myvals = new ParameterValues();
            ParameterDiscreteValue myDiscrete = new ParameterDiscreteValue();

            switch (rpt.DataDefinition.ParameterFields[i].ParameterValueKind)
            {
                case CrystalDecisions.Shared.ParameterValueKind.DateTim eParameter:
                    myDiscrete.Value = Convert.ToDateTime(Request.QueryString[i]);
                    break;

                case CrystalDecisions.Shared.ParameterValueKind.Boolean Parameter:
                    myDiscrete.Value = bool.Parse(Request.QueryString[i]);
                    break;
                case CrystalDecisions.Shared.ParameterValueKind.DatePar ameter:
                    myDiscrete.Value = Convert.ToDateTime(Request.QueryString[i]);
                    break;
                case CrystalDecisions.Shared.ParameterValueKind.NumberP arameter:
                    myDiscrete.Value = int.Parse(Request.QueryString[i]);
                    break;
                case CrystalDecisions.Shared.ParameterValueKind.StringP arameter:
                    myDiscrete.Value = Convert.ToString((Request.QueryString[i]));
                    break;
            }
            myvals.Add(myDiscrete);
            rpt.DataDefinition.ParameterFields[i].ApplyCurrentValues(myvals);
        }
        CrystalReportViewer1.ReportSource = rpt;
        CrystalReportViewer1.DataBind();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM