高分悬赏.....水晶报表子报表问题??? 在线等

LarkGirl 2007-10-08 05:02:48
请教下各位来客大虾:
我的水晶报表带有子报表的在自己的机器上可以正常显示,移植到客户数据库里时却不能显示.
(其他只有主报表的可以正常显示)
我的主,子报表SQL语句写在命令里. 而直接连接的表 却正常可以在别人那里显示.
请问这个问题 是什么回事? 怎么解决?

在线等......
...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minicat_2006 2007-10-11
  • 打赏
  • 举报
回复
我做子报表的话,都是用存储过程实现的
即主报表用一个procedure,子报表用另外一个procedure
然后在一个dataset里放两个datatable,一个是第一个procedure拖的,一个是第二个procedure拖的
LarkGirl 2007-10-11
  • 打赏
  • 举报
回复
xwdd129
好的.多谢你指点.

请问下:

private void OpenSubreport(string reportObjectName)
{
string subreportName;
SubreportObject subreportObject;
ReportDocument subreport = new ReportDocument();

// 按名称获取 ReportObject 并将其转换为
// SubreportObject。
subreportObject = Report.ReportDefinition.ReportObjects
[reportObjectName] as SubreportObject;
if (subreportObject != null)
{
// 获取子报表名称。
subreportName = subreportObject.SubreportName;
// 打开子报表作为 ReportDocument。
subreport = Report.OpenSubreport(subreportName);
// 预览子报表。
crystalReportViewer1.ReportSource = subreport;
}
}

这里面的Report 是什么?
怎么用这个函数和Dataset或datatable连接? 大致说下好吗?

linliangkunoo 的rpt我不清楚是指什么?
xwdd129 2007-10-11
  • 打赏
  • 举报
回复
这个Report 指的就是你的主报表,其实子报表就是一个报表对象而已,跟TextObject之类是一个概念!

SubreportObject oSubreport1 = oRpt.ReportDefinition.ReportObjects[0] as SubreportObject;
我记得oSubreport1 子报表是可以直接指定数据源的,不需要再OpenSubreport
LarkGirl 2007-10-11
  • 打赏
  • 举报
回复
多谢大家帮我....
现在结帖 还在实现效果.但是帖子还是要结的 呵
我还有个问题?
路过的朋友有会的 给解答一下 先谢谢各位了:

大家用SubreportObject实现子报表后,SQL语句如果写在.CS代码里
设计试图效果 是如何设计的?

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{}

ReportDocument oRpt = new ReportDocument();
CrystalReportSource1.ReportDocument.FileName = MapPath("..") + "\\Charcoal\\" + "CrystalReport.rpt";
String str = MapPath("..") + "\\Charcoal\\" + "CrystalReport.rpt";
oRpt.Load(str);
SubreportObject oSubreport1 = oRpt.ReportDefinition.ReportObjects[0] as SubreportObject;
ReportDocument oSub1 = new ReportDocument();
oSub1= oSubreport1.OpenSubreport("aabb").SetDataSource(dataset..("SELECT * from cproduce"));
//aabb子报表名

CrystalReportViewer1.ReportSource = oRpt;

}
为什么不可以呢?
xwdd129 2007-10-10
  • 打赏
  • 举报
回复
试试使用SubreportObject类来为子报表设置数据源
LarkGirl 2007-10-10
  • 打赏
  • 举报
回复
能不能把你的代码写详细些,
你的rpt是什么呀?
在线等...解决了加分相送
linliangkunoo 2007-10-10
  • 打赏
  • 举报
回复
我的子報表

DataTable tb1,tb2;

rpt.OpenSubreport("subreport.rpt").SetDataSource(tb2);
rpt.SetDataSource(tb1);
fm.crystalReportViewer1.ReportSource = rpt;
LarkGirl 2007-10-10
  • 打赏
  • 举报
回复
楼上的,我查过了不是这些问题?
有没有用过子报表的.
还想问下: 你们的SQL语句在哪写的?
怎么写的...大致的说一下哈...
每天都在线等待解答人............

大家都来说说,回复都有分
applethink 2007-10-09
  • 打赏
  • 举报
回复
考虑 1客户机子连接数据库问题,可以在别人机子上做个测试连接。2 主子报表的加载顺序问题,fill的先后有时有影响

4,816

社区成员

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

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