• PUSH PULL model


    拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息(具体方法,后面介绍)。推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像。

    使用PUSH模式    
        我们采用下面的几步使用Push模式执行水晶报表:  
        1.   设计一个DataSet  
        2.   创建一个.rpt文件同时将其指定给上一步建立的DataSet。  
        3.   在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。  
        4.   在代码中访问数据库并把数据存入DataSet  
        5.   调用DataBind方法。  

     设计一个DataSet  
        1)   右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”  
        2)   从“服务器资源管理器”中的“SQL   Server”中拖放“ProjectStage”表(位于dbname数据库中)。           
        3)   此时在数据集中就会有一个ProjectStage表的结构图。       
        -   .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。  
        创建   .rpt   文件   :  
        4)   使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。  
        5)建立.rpt文件之后,右击“详细资料”-->"添加/删除数据库“  
        6)   在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“ADO.Net数据集”--"DataSet1“,选择”ProjectStage“表。  
        7)   将”ProjectStage"表添加到“选定的表”中,点击“OK”  
       
           Code   Behind   代码:  

    PUSH model FORM
                string strProvider = "Server=.;DataBase=dbname;UID=sa;PWD=sa";
                CrystalReport1 oCR = new CrystalReport1();
                DataSet1 ds = new DataSet1();
                SqlConnection MyConn = new SqlConnection(strProvider);
                MyConn.Open();
                string strSel = "Select   *   from   ProjectStage";
                SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel, MyConn);
                MyAdapter.Fill(ds, "ProjectStage");
                oCR.SetDataSource(ds);
                this.crystalReportViewer1.ReportSource = oCR;  

    PULL model  FORM

                CrystalReport1.Load(Application.StartupPath + "CrystalReport1.rpt");
                CrystalReport1.SetDatabaseLogon("sa", "sa", "servername", "dbname");         
                crystalReportViewer1.ReportSource = CrystalReport1;

    PUSH model WEB

             string sql = "Select * FROM ProjectStage";
            string DBConfig_sql ="Data Source=.;Initial Catalog=dbname;User ID=sa;Password=sa";
            DataSet1 ds = new DataSet1();
                SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
                SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
                SqlDataAdapter sqlAd = new SqlDataAdapter();
                sqlAd.SelectCommand = sqlCmd;
                sqlAd.Fill(ds, "ProjectStage");
            CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));  
            CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["ProjectStage"]);
            CrystalReportSource1.DataBind();
            CrystalReportViewer1.ReportSource = CrystalReportSource1;
            CrystalReportViewer1.DataBind();

    PULL model WEB

            CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
            CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "sa", "servername", "aa");

            CrystalReportSource1.DataBind();
            CrystalReportViewer1.ReportSource = CrystalReportSource1;
            CrystalReportViewer1.DataBind();

  • 相关阅读:
    CentOS7.0下Zabbix3.4至Zabbix4.0的升级步骤(Proxy)
    CentOS6.5下Zabbix3.0升级到4.0
    kubernetes相关概念
    更新OpenSSL
    fish 常用主题推荐
    [转] Adobe acrobat 破解教程
    [转]latex符号
    bank conflct 一句话总结
    Ubuntu 安装boost 库
    ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程
  • 原文地址:https://www.cnblogs.com/greencolor/p/1726082.html
Copyright © 2020-2023  润新知