新手对水晶报表的问题~~
做了几张水晶报表,先从拉模式再到简单的推模式,然后到多表的推模式~~,但在多表推模式时就开始困惑了~~
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实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航
???我怎样使用?这两个有什么区别??
------解决方案--------------------何不用子报表来实现?
------解决方案--------------------// DataSet ds = new DataSet();//使用DataSet出现在输入登陆界面
Master ds = new Master(); // 使用Master(为DataSet实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航
當然有區別了,前者是你自己自定義的一個DataSet 後者則是Master.xds中的數據,而報表中你是用的Master中的數據,隻能用後者。
------解决方案--------------------你是不是在VS的design time看那些数据的?那些数据不是数据库的真实数据,是水晶报表提供的假的数据...真实的数据是run这个application之后才可以看到的.