新手对水晶报表的问题~~

rockywu 2007-03-15 07:34:03
做了几张水晶报表,先从拉模式再到简单的推模式,然后到多表的推模式~~,但在多表推模式时就开始困惑了~~
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实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航
???我怎样使用?这两个有什么区别??
...全文
506 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
soul1543 2007-08-11
  • 打赏
  • 举报
回复
我还应该多多学习才是.
heyjude1983 2007-03-19
  • 打赏
  • 举报
回复
我也是新手,虚心学习中
rockywu 2007-03-19
  • 打赏
  • 举报
回复
谢谢~~~
jFresH_MaN 2007-03-17
  • 打赏
  • 举报
回复
你是不是在VS的design time看那些数据的?那些数据不是数据库的真实数据,是水晶报表提供的假的数据...真实的数据是run这个application之后才可以看到的.
rockywu 2007-03-16
  • 打赏
  • 举报
回复
上面是我的几个疑问~~~~更奇的是我在视图做些报表,如果不用Dataset数据集就可以正常显示(拉模式),但是用了就不行~~(推模式不能显示),那些视图在水晶报表.rpt文件出现奇怪的数据,而数据库根本没有这样的数据~~,比如我用Northwind库中的视图orderandEmploy,字段FirstName‎内容全是颜色的:有什么黄色/白色/青色等,而ShipAddress‎字段在报表是OLAP/套用信函/交叉表等怪内容,还有用向导做的也有些怪内容,其内容不是Northwind库的啊~~~???这是什么怪现像?是不是我的VS2005有问题??
rockywu 2007-03-16
  • 打赏
  • 举报
回复
楼上有道理,可 Master ds = new Master(); // 使用Master(为DataSet实例)没有出现在输入登陆界面??这是为什么??
还有下面我用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;

}
}
lanye_purple 2007-03-16
  • 打赏
  • 举报
回复
// DataSet ds = new DataSet();//使用DataSet出现在输入登陆界面
Master ds = new Master(); // 使用Master(为DataSet实例)没有出现在输入登陆界面 ,但没有报表数据~~只有导航

當然有區別了,前者是你自己自定義的一個DataSet 後者則是Master.xds中的數據,而報表中你是用的Master中的數據,隻能用後者。
showrock 2007-03-16
  • 打赏
  • 举报
回复
何不用子报表来实现?
rockywu 2007-03-16
  • 打赏
  • 举报
回复
欢迎加入37504062水晶报表群进行学习~

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧