• Crystal Report Pull模式,参数设置


    代码
    protected void Page_Load(object sender, EventArgs e)
    {

    ReportDocument ReportDoc;
    // 在此处放置用户代码以初始化页面
    ReportDoc = new ReportDocument();
    ReportDoc.Load(Server.MapPath(
    "MyCrystalReport.rpt"));

    #region 登陆信息设置
    TableLogOnInfo logonInfo
    = new TableLogOnInfo();//
    foreach (CrystalDecisions.CrystalReports.Engine.Table tb in ReportDoc.Database.Tables)
    {
    logonInfo
    = tb.LogOnInfo;
    logonInfo.ConnectionInfo.ServerName
    = @".\sqlserver2005";
    logonInfo.ConnectionInfo.DatabaseName
    = "FSZJCM0420";//
    logonInfo.ConnectionInfo.UserID = "sa";
    logonInfo.ConnectionInfo.Password
    = "123";//
    tb.ApplyLogOnInfo(logonInfo);
    }
    #endregion

    // 声明将参数传递给
    //查看器控件所需的变量。
    ParameterFieldDefinitions paramFDefs = ReportDoc.DataDefinition.ParameterFields;

    ParameterFieldDefinition paraID
    = paramFDefs["ID"]; //参数名
    ParameterValues paraVals = paraID.CurrentValues;
    ParameterDiscreteValue paraVal
    = new ParameterDiscreteValue();
    paraVal.Value
    = 30; //设置离散值
    paraVals.Clear();
    paraVals.Add(paraVal);
    paraID.ApplyCurrentValues(paraVals);

    //第二个参数.
    paraID = paramFDefs["ID2"];
    paraVals
    = paraID.CurrentValues;
    paraVal
    = new ParameterDiscreteValue();
    paraVal.Value
    = 40; //设置离散值
    paraVals.Clear();
    paraVals.Add(paraVal);
    paraID.ApplyCurrentValues(paraVals);



    #region 此段代码设置参数有问题,翻页,或点击左边分组树回送时, 参数丢失。仅作参考。
    /*
    // 声明将参数传递给
    //查看器控件所需的变量。
    ParameterFields paramFields = new ParameterFields();
    ParameterField paramField = new ParameterField();
    ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();

    ParameterRangeValue rangeVal = new ParameterRangeValue(); //我没用到

    // 第一个参数是具有多个值的离散参数。
    // 设置参数字段的名称,它必须
    //和报表中的参数相符。
    paramField.ParameterFieldName = "ID";
    // 设置第一个离散值并将其传递给该参数。
    discreteVal.Value = 20;
    paramField.CurrentValues.Add(discreteVal);


    //(只有一个值就不需要加第二个离散值) 设置第二个离散值并将其传递给该参数。
    // discreteVal 变量被设置为新值,这样,以前的设置
    //就不会被覆盖。
    //discreteVal = new ParameterDiscreteValue();
    //discreteVal.Value = "Aruba Sport";
    //paramField.CurrentValues.Add(discreteVal);

    // 将该参数添加到参数字段集合。
    paramFields.Add(paramField);

    paramField = new ParameterField();
    paramField.ParameterFieldName = "ID2";
    discreteVal = new ParameterDiscreteValue();
    discreteVal.Value = 30;
    paramField.CurrentValues.Add(discreteVal);

    paramFields.Add(paramField);
    //// 第二个参数为区域值。paramField 变量
    ////被设置为新值,这样,以前的设置就不会被覆盖。
    //paramField = new ParameterField();
    //// 设置参数字段的名称,它必须
    ////和报表中的参数相符。
    //paramField.ParameterFieldName = "ID2";
    //// 设置范围的开始值和结束值并将该范围传递给
    ////该参数。
    //rangeVal.StartValue = 42;
    //rangeVal.EndValue = 72;
    //paramField.CurrentValues.Add(rangeVal);
    //// 将第二个参数添加到参数字段集合。
    //paramFields.Add(paramField);
    //// 将参数字段集合放入查看器控件。

    CrystalReportViewer1.ParameterFieldInfo = paramFields;

    */
    #endregion



    CrystalReportViewer1.ReportSource
    = ReportDoc; ;




    }

    PUSH 模式:

       public partial class TestPush : System.Web.UI.Page
        {
            MyCrystalReportPush crpush = new MyCrystalReportPush();
            protected void Page_Load(object sender, EventArgs e)
            {
                //DataSet1 ds1 = new DataSet1();
                DataSet1TableAdapters.Gzl_LxspTableAdapter da = new CrystalReportWebApp.push.DataSet1TableAdapters.Gzl_LxspTableAdapter();
                DataSet1.Gzl_LxspDataTable dt= da.GetData();
                crpush.SetDataSource(dt as DataTable );
                this.CrystalReportViewer1.ReportSource = crpush;
            }
        }
    代码
    public partial class TestPush : System.Web.UI.Page
    {
    MyCrystalReportPush crpush
    = new MyCrystalReportPush();
    protected void Page_Load(object sender, EventArgs e)
    {

    //DataSet1 ds1 = new DataSet1();

    DataSet1TableAdapters.Gzl_LxspTableAdapter da
    = new CrystalReportWebApp.push.DataSet1TableAdapters.Gzl_LxspTableAdapter();
    DataSet1.Gzl_LxspDataTable dt
    = da.GetData();

    crpush.SetDataSource(dt
    as DataTable );
    this.CrystalReportViewer1.ReportSource = crpush;
    }
    }
  • 相关阅读:
    第二章:WebDriver 打开Firefox浏览器 和 Chrome 浏览器
    第一章:在 java 中配置 selenium jar 包的步骤
    第一章:Chrome 43 配置 java + selenium 环境
    第一章:火狐浏览器 : 环境配置: FireFox 版本38 + jdk 7 + selenium 2.53.6 + selenum-version 2.48.2
    抛弃CSDN博客 转移到 博客园来编写博客
    第一章:eclipse 中修改字体大小和编码格式
    2. VirtualBox 虚拟机:安装
    1. 在虚拟机中 添加内容
    第一章:selenium + java 环境安装 —— eclipse 中的使用
    实验二 Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/wucg/p/1750373.html
Copyright © 2020-2023  润新知