请教,怎样将dataSet传给另一窗体 水晶报表的使用 谢谢

mabuchi 2005-11-08 08:24:34
问题是 就是要将查询到的结果打印到水晶报表

A窗体设置查询条件进行查询,将查询到的结果保存到数据集ds,
B窗体上放置crystalReportViewer1
然后新建一报表c, 将B窗体crystalReportViewer1.ReportSource = 报表c;

问题是 怎样将A窗体查询得到的数据集ds 传给B窗体
B newFrm=new B(ds); 这样做出错;






...全文
156 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mamoon 2005-11-08
  • 打赏
  • 举报
回复
方法很多,通过构造函数,属性封装都可以的,当然也可以用接口来做
HelloBaly 2005-11-08
  • 打赏
  • 举报
回复
B newFrm=new B(ds);
这样做应该没有问题啊!
是不是你B窗体的构造函数写的不对啊!
/// <summary>
/// 構築関数。
/// </summary>
public B( DataSet ds)
{
this.ds = ds;
}
LGame 2005-11-08
  • 打赏
  • 举报
回复
1。给B窗体一个静态的DATASET
public static DataSet ds;
然后从A窗体直接给它,不用实例化B窗体,
B.ds = DataSet

2.给B窗体一个属性
private DataSet _Ds
public DataSet DataSetB{
set{
_Ds = value;
}
}

调用:
B b = new B();
b.DataSetB= a.ds;
superljy 2005-11-08
  • 打赏
  • 举报
回复
这个click方法是在A窗体中的
superljy 2005-11-08
  • 打赏
  • 举报
回复
public ***_click(..)
{
DataSet ds1 = new DataSet();
...
bInst.ds = ds1;//这里的ds1是你在A窗体中查询出的结果
}
mabuchi 2005-11-08
  • 打赏
  • 举报
回复
bInst.ds = this.ds; 这一句通不过
superljy 2005-11-08
  • 打赏
  • 举报
回复
在B窗体中设置public DataSet ds;
B bInst = new B();
bInst.ds = this.ds;
bInst.Show();
mabuchi 2005-11-08
  • 打赏
  • 举报
回复
是winForm的
将crystalReportViewer1防在A窗体是没问题
现在要放在B
ChengKing 2005-11-08
  • 打赏
  • 举报
回复
最好让DataSet和报表显示控件在同一个页面中c.aspx.或者在报表控件页面调用获得数据方法.

比如这样设计: a.ascx中放DataSet,b.ascx中放报表控件
再把a.ascx和b.ascx同时放到页面c.aspx中。


如果硬传,用Application和Session都可以,但传递完成后要马上释放掉,否则会大量内存,因为内存中存放的不是一般的数据,是数据集.

111,117

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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