当前位置:编程学习 > C#/ASP.NET >>

水晶报表push模式和dataset的建立

我已经建立好了水晶报表的模版在crystal reports9下面
此时用的是pull模式,直接通过crystal reports本身连接数据库(oracle),可以做出来一
张完整的报表。
---------------------------------------------------
我的需求是要web上,形成一个交互的报表形式。
所以要用到push模式。通过asp.net中的ado.net获取数据库连接并且得到数据
然后在塞给已经做好的crystal reports模版。动态的显示数据。
------------------------------------------------------------
此时开发表不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表。
我的问题也就出来了:(因为我本身不太会asp.net和c#)
如何组装DataSet,并如何传给报表。
我在网上找了些例子代码如下:

SqlConnection   conn   =   new   SqlConnection( 
            "server=(local)\\dongwei;database=northwind;Trusted_Connection=yes 
            "); 
            conn.Open(); 
            SqlCommand   com   =   new   SqlCommand( "select   *   from   
            products ",conn); 
            SqlDataAdapter   ada   =   new   SqlDataAdapter(com); 
            myDataset1   m=   new   myDataset1();//强类型化数据集 
    //这也是问题。。咋定义这个myDataset1呀;
            ada.Fill(m, "products "); 
            myReport2   m2   =   new   myReport2(); //问题在这网上的例子是自己定义的
               crystal reports模版。而我的工程里边 这么定义类就报错,说没这个包。
            m2.SetDataSource(m.Tables[0]); 
            this.crystalReportViewer1.ReportSource=m2; 
            this.crystalReportViewer1.RefreshReport();
下面是我写的请仔细看一下
string connStr = "Data Source=XY;User ID=system;Password=xiaoye";
        //查询语句
        string sqlStr = "select * from jsl";

        OracleConnection oc = new OracleConnection(connStr);
        OracleDataAdapter oda = new OracleDataAdapter(sqlStr, oc);
        DataSet ds = new DataSet();//这个跟例子中的强烈类型有什么区别吗?这个是DataSet类
        //把查询的数据放到ds里.
        oda.Fill(ds);
        //返回DataTable
        CrystalReport mycr = new CrystalReport();//不能在这里这么用,不知道为什么 ,错误为CS0246: 找不到类型或命名空间名称“CrystalReport”(是否缺少 using 指令或程序集引用?)

        mycr.SetDataSource(ds.Tables[0]);
        this.CrystalReportViewer1.ReportSource = mycr;
        this.CrystalReportViewer1.RefreshReport();
------------------------------------------------------------------------------
小弟很急,望大家给予多多帮忙,分不够 在加 谢谢!!
--------------------编程问答-------------------- 没有帮忙的吗?没人会呀.
我自己顶 顶 --------------------编程问答-------------------- 我的例子你参考下!!!!
要是可以就给分吧!!
我就差你这50分升星...到时候散多点给你 !!呵呵 !!
我给你贴代码:
 protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection myConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
        myConnection.Open();
        ////DataSet ds = new DataSet();
        ////DataSource oCR = new MyReport();
        ////SqlConnection MyConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString1"]);
        ////MyConn.Open();
        //////使用存储过程
        ////SqlCommand cmd = new SqlCommand("scm_sup", MyConn);
        ////cmd.CommandType = CommandType.StoredProcedure;
        ////SqlDataAdapter MyAdapter = new SqlDataAdapter(cmd);
        ////MyAdapter.Fill(ds, "tbtree");
        ////oCR.SetDataSource(ds);
        ////this.CrystalReportViewer1.ReportSource = oCR;
        ////this.CrystalReportViewer1.DataBind();
        ////string sql = "select top 10 * from bi_t_item_info";

        SqlDataAdapter da = new SqlDataAdapter("scm_sup", myConnection);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        da.SelectCommand.Parameters.Add("@supcust_no", SqlDbType.NVarChar, 10);
        da.SelectCommand.Parameters["@supcust_no"].Value = "%";

        DataSet ds = new DataSet();
        //SqlCommand sqlCmd = new SqlCommand(sql, myConnection);

        //sqlAd.SelectCommand = sqlCmd;
        da.Fill(ds,"bi");
        CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport2.rpt"));
        //注意此处必需指明Dataset中的表的名称,否则会提示“您请求的报表需要更多信息.”
        CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables["bi"]);
        //{?}中的参数可以不用赋值,即使赋了值也不起作用。
        // CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValues.AddValue("1234567");
        CrystalReportSource1.DataBind();
    } --------------------编程问答-------------------- 等着啊,我晚上回家研究一下.要是成了..小弟 给你加100
如果还有那个哥们..按照我的套路给我分析一下..
我还加分.. --------------------编程问答-------------------- 还是没搞顶啊,希望大家继续顶!!! --------------------编程问答-------------------- --------------------编程问答-------------------- 先mark再看。。。。 --------------------编程问答-------------------- 帮你顶下哈 --------------------编程问答-------------------- 自己已经解决了了 --------------------编程问答-------------------- 楼主公布下是怎么解决的,感谢 --------------------编程问答-------------------- oooooooo
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,