用水晶报表怎样把有父子关系的三个表打印出来?

Study_Now 2005-11-03 10:21:21
WEB打印
CrystalReportViewer10.0
c#+asp.net

有三个表
表A中是各个省的信息,表B中是各个市的信息,表C中是各个县的信息
这样就形成了父子关系,B是A的子表,C是B的子表

怎样用水晶报表把它们如下的形式打印出来呢?

浙江省
杭州市
留下
西兴
……(所有杭州市的县)
义乌市
后宅
上溪
……(所有义乌市的县)
温州市
白象
……(所有温州市的县)
……(所有浙江省的市)

...全文
267 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyb_abiandbel 2005-11-29
  • 打赏
  • 举报
回复
如果确定你的代码完全正确,那看看打印机驱动是不是正确,是不是那个打印机的原来自带的。

我也遇到过,但是是驱动问题,而且装了自带的驱动以后,打印效果好多了。
ybjs 2005-11-28
  • 打赏
  • 举报
回复
HTTP://WWW.WAVE12.COM 报表打印控件 调用简单 功能强大 发布方便 建议去看看
BearRui 2005-11-08
  • 打赏
  • 举报
回复
直接在RPT设计界面右键->设计器->打印机设置->横向

你这样设置后,在窗体中预览是不是横向的???

我做的全部这样设置后都是横向预览的。

在10中是这样设置的:file—printer setup-Orientation-Landscape

在10中直接右键是没有printer setup设置的吧!
Study_Now 2005-11-08
  • 打赏
  • 举报
回复
如下设置打印方向还不是横向怎么会事?
1、直接在RPT设计界面右键->设计器->打印机设置->横向
2、在程序中
rs.PrintOptions.PaperOrientation=PaperOrientation.Landscape;

Study_Now 2005-11-08
  • 打赏
  • 举报
回复
HOHO~~~~,终于正确啦!原来在程序中要设三个表,上面的是我把它们联接起来是错的!


第一次用水晶什么也不懂,再一次谢谢
另外我还发了一个一模一样的贴,到时候你也要去领分分啊!
http://community.csdn.net/Expert/topic/4368/4368371.xml?temp=.7502863

本应该结贴了,但我做的所有打印还没有结束,我想把我的关于水晶报表的问题都集中放到这里便于学习。就当是学习笔记吧。有问题了,发短信给你。到时分不够再加!
谢谢,亲苦了!
BearRui 2005-11-08
  • 打赏
  • 举报
回复
1、看你本来的数据是不是有重复的。
2、关系建的是否正确
3、你传的应该是3个表,为什么rs.SetDataSource(dv.Table.DataSet.Tables[0]);
只设置1个表啊,应该是rs.SetDataSource(dv.Table.DataSet);吧
Study_Now 2005-11-08
  • 打赏
  • 举报
回复
首先需要说明:打印机是在别一台计算机上装着。

http://community.csdn.net/Expert/TopicView3.asp?id=3496507
这个贴子的楼主和我遇到的问题一模一样!你去看看吧

看完贴子后,我就在程序中加了:rs.PrintToPrinter(1, false, 0, 0);
报错:未安装打印机。

Study_Now 2005-11-07
  • 打赏
  • 举报
回复
现在我想用代码控制时又出现了问题
原来直接在设计界面设定数据源,显示正常
因为报表中的内容是动态的,所以要用代码在后台控制数据源用以下代码:
string path=Server.MapPath("InfoWork.rpt");
ReportDocument rs = new ReportDocument();
rs.Load (path);
rs.SetDataSource(dv.Table.DataSet.Tables[0]);
CrystalReportViewer1.ReportSource = rs;

出现了问题,每个省市都正确,但每个市中的县都重复4次,这是怎么会事啊?我的代码是少了,还是哪里错了?
BearRui 2005-11-04
  • 打赏
  • 举报
回复
1、直接在报表中设置横向打印,

菜单-文件-打印机设置


2、可以设置个参数,然后直接传参数就行了
Study_Now 2005-11-04
  • 打赏
  • 举报
回复
对于页眉中的表格与下面的表格对齐有如下设想,不知道行不行
在设计界面中,可以把表格画齐,然后在页眉的变化的单元格中放一个可以变化的东东,在后台给它传参数就行了。
这个可变化的东东,水晶报表有吗?
Study_Now 2005-11-04
  • 打赏
  • 举报
回复
谢谢
BearRui(孤熊 | 带你去看海!) 及以上各位朋友

数据可以正常显示了,但显示的格式上出现了如下问题
1、表格比较宽,所以纸要横向打印。把打印机设置为横向,但出来还是纵向,这是怎么会事?
2、页眉中是个表格,怎样动态改变表格中的内容?如果直接在后台程序中给页眉传一个表格,这样就和下面的表格对不齐,这怎么办?
BearRui 2005-11-04
  • 打赏
  • 举报
回复
如果横向打印还是不行,就试试用代码控制;

ReportDocument _rd = new ReportDocument();
_rd.Load(_strFileName);
_rd.SetDataSource(ds);
//横向
_rd.PrintOptions.PaperOrientation = PaperOrientation.Landscape;
BearRui 2005-11-04
  • 打赏
  • 举报
回复
我记的10中直接右键是找不到打印机设置的,你在报表中设置为横向后,
打印预览是不是横向的。

2、先在报表中设置1个名为title的参数,然后把参数字段拖到你要的位置;

程序
ReportDocument _rd = new ReportDocument();
_rd.Load(_strFileName);
_rd.SetDataSource(ds);
_rd.SetParameterValue("title","这里是你要显示的标题的值");
SeeSunSet 2005-11-04
  • 打赏
  • 举报
回复
三级分组不就可以了嘛.
Study_Now 2005-11-04
  • 打赏
  • 举报
回复
1、俺用的是:Crystal Reports 10
我是这样设置的:
直接在RPT设计界面右键->设计器->打印机设置->横向

打印出来的效果图如下才能看纸上的文字:(如上设置)
-----
| |
| |
| |
| |
| |
| |
-----
而我想要的是效果如下才能看纸上的文字:(这个怎么设置?)
------------------------
| |
| |
------------------------




2、参数怎么设置?你讲的这个参数是什么参数?
我现在的想法是在页眉插入多个“报表标题”然后在后台程序中通过
rs.SummaryInfo.ReportTitle[]设置或访问。我还没试呢,不知道行不行。你的方法是什么呢?
zeusvenus 2005-11-03
  • 打赏
  • 举报
回复
其实是个树
mytail001 2005-11-03
  • 打赏
  • 举报
回复
学习,帮你顶一下
BearRui 2005-11-03
  • 打赏
  • 举报
回复
在报表中为这3个表建立link关系。

然后建立2个组,1个省组,1个市组。
然后在市组的明细里面放县的明细,因为你建立了市和县的关系,
报表会自动筛选合适的县数据显示在市组里的!!!
tigerwen01 2005-11-03
  • 打赏
  • 举报
回复
先使用SQL语句把这些信息查询出来,然后在用水晶报表设置打印。
caicai_45 2005-11-03
  • 打赏
  • 举报
回复
用一个子报表,子报表中页眉中放市的名称,详细资料里放县的名字
在主报表中,按照市的ID分组,在组页眉里放入子报表
数据集最好是三张表,一张记录所有省的名称和ID
一张记录所有市的名称,记录所有市的ID和名称,还有所在省ID
一张记录所有县的名称,ID,和所在市的ID
加载更多回复(7)

4,820

社区成员

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

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