做了几张水晶报表,先从拉模式再到简单的推模式,然后到多表的推模式~~,但在多表推模式时就开始困惑了~~
1、先做了Master.xsd的DataSet(拖了两张表,没任何关联)
2、利用向导做了masterSlave.rpt水晶报表(两表有关联)
3、建立MasterSlave.aspx,并添加一个水晶报表查看器
MasterSlave.aspx的cs代码如下
using System.Data.SqlClient;
using CrystalDecisions.Shared;//负责解释TableLogOnInfo类 类
using CrystalDecisions.CrystalReports.Engine;//负责解释ReportDocument类public partial class MasterSlave : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ReportDocument repDoc = new ReportDocument();
        repDoc.Load(Server.MapPath("masterSlave.rpt"));
        string connString = "server=(local);DataBase=Northwind;Uid=test;PWD=test";
        SqlConnection Conn = new SqlConnection(connString);
        Conn.Open();
        string selectOrder = "select OrderID,CustomerID,EmployeeID,OrderDate from Orders";
        string selectOrderDetail = "select ProductID,UnitPrice,Discount from [Order Details]";
        SqlDataAdapter sdaOrder = new SqlDataAdapter(selectOrder, Conn);
        SqlDataAdapter sdaOrderDetail = new SqlDataAdapter(selectOrderDetail, Conn);
        // DataSet ds = new DataSet();//使用DataSet出现在输入登陆界面
        Master ds = new Master();  // 使用Master(为DataSet实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航  
        sdaOrder.Fill(ds, "Orders");
        sdaOrderDetail.Fill(ds, "OrdersDetail");
        repDoc.SetDataSource(ds);
        ReportViewer.ReportSource = repDoc;
        
    }
}
  // DataSet ds = new DataSet();//使用DataSet出现在输入登陆界面
        Master ds = new Master();  // 使用Master(为DataSet实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航  
???我怎样使用?这两个有什么区别??

解决方案 »

  1.   

    6371515  为学asp.net而创建的qq群
      

  2.   

    还有下面我用DataSet可以显示,而用LinkReport(LinkReport.xds)就出错~~~我操作如下
    1、先做了Master.xsd的DataSet(拖了两张表,没任何关联)
    2、利用向导做了masterSlave.rpt水晶报表(两表有关联)
    3、建立MasterSlave.aspx,并添加一个水晶报表查看器
    代码如下
    using System.Data.SqlClient;
    using CrystalDecisions.Shared;//负责解释TableLogOnInfo类 类
    using CrystalDecisions.CrystalReports.Engine;//负责解释ReportDocument类public partial class PushLinkCry : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ReportDocument reportDOC = new ReportDocument();//必须事先声明reportDocument对像,用于加载数据表
            reportDOC.Load(Server.MapPath("myLinkReport.rpt"));
            string connString="server=(local);DataBase=Northwind;Uid=test;PWD=test";
            SqlConnection myConn = new SqlConnection(connString);
            myConn.Open();
            string selectOders = "select ShipAddress,ShippedDate,ShipCity,RequiredDate from Orders";
            string selectEmployees = "select FirstName,BirthDate from Employees where BirthDate='1948-12-08'";
            SqlDataAdapter sdaOders = new SqlDataAdapter(selectOders, myConn);
            SqlDataAdapter sdaEmployees = new SqlDataAdapter(selectEmployees,myConn);
            DataSet linkRPT = new DataSet();//正确显示我要的数据
            // LinkReport linkRPT=new LinkReport ();//出现错误==>异常详细信息: System.Data.ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。        sdaOders.Fill(linkRPT,"Orders");
            sdaEmployees.Fill(linkRPT, "Employees");
            reportDOC.SetDataSource(linkRPT);
            myReportView.ReportSource = reportDOC;    }
    }
    上面是我的几个疑问~~~~更奇的是我在视图做些报表,如果不用Dataset数据集就可以正常显示(拉模式),但是用了就不行~~(推模式不能显示),那些视图在水晶报表.rpt文件出现奇怪的数据,而数据库根本没有这样的数据~~,比如我用Northwind库中的视图orderandEmploy,字段FirstName;内容全是颜色的:有什么黄色/白色/青色等,而ShipAddress;字段在报表是OLAP/套用信函/交叉表等怪内容,还有用向导做的也有些怪内容,其内容不是Northwind库的啊~~~???这是什么怪现像?是不是我的VS2005有问题??