51CTO下载水晶报表80基本使用手册中文Word格式文档下载.docx
《51CTO下载水晶报表80基本使用手册中文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《51CTO下载水晶报表80基本使用手册中文Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
选项卡上的任何位置以帮助对齐。
它们具有对齐属性,使对象自动与其对齐。
对齐功能不仅使您能够轻松加精确地对齐报表对象,而且还可以同时对多个对象重新定位并调整大小。
(1)显示、插入、移动和删除准线
①显示准线
选择"
视图"
菜单上的"
准线"
命令。
使用"
命令可以在"
选项卡中显示或隐藏准线。
注意:
在"
选项卡上,必须选择一个对象才能看到准线。
②插入准线
或"
选项卡中,单击顶部的标尺可以插入垂直准线;
单击左侧的标尺可以插入水平准线。
每条准线均与其起始标尺位置上的一个箭头相连。
③移动准线
要将准线放置到目标位置,请将其箭头沿标尺拖至相应的位置上。
④删除准线
要删除准线,将其箭头拖出标尺。
如果选择了"
网格线对齐"
选项,则只能以网格为单位增量插入或移动准线。
要去除这个限制,右击报表的空白处,在快捷菜单取消"
与网格对齐"
(2)使对象与准线对齐
①要使对象与准线对齐,将报表对象拖至准线之上,直至对象边缘落在准线之上。
②可以将多个对象与同一条准线对齐,以同时对多个对象重新定位并调整大小。
③可以使对象的顶部或底部与水平准线对齐,也可以使对象的左侧、右侧或中垂线(垂直平分对象的不可见线条)与垂直准线对齐。
④如果是对齐多个对象,要用对象的同一侧对齐准线。
(3)使用准线定位对象
使一个或多个对象与某条准线对齐之后,通过移动该准线即可同时移动所有对象。
要移动准线,沿标尺拖动其箭头。
当移动准线时,所有与之对齐的对象也一起移动。
但如果移动的是与准线对齐的对象,该准线并不随之移动。
(4)使用准线调整对象大小
使用两条准线可以对两个或多个大小(高度或宽度)相同或不同的对象调整大小。
两种情况下使用两个准线调整大小的过程是一样的。
①创建一个准线。
②将对象的一侧与该准线对齐。
③在该对象的另一侧创建第二条准线。
此准线不应接触到该对象。
④单击对象以激活大小调整控柄。
⑤将调整大小控柄拖至第二条准线,让对象与该准线对齐。
⑥对于每一个要与这两条准线对齐的其他对象,重复执行第2步到第5步。
⑦如果对象不是所需要的大小,则拖动准线之一或全部准线直到对象大小正确为止。
2.1.2使用准线对齐表格的框线
(1)插入框
①在"
选项卡中,通过单击左侧的标尺插入两条水平准线。
一上一下,分别对应表格的上框线和下框线。
②通过单击顶部的标尺插入两条垂直准线。
一左一右,分别对应表格的左框线和右框线。
③插入框,并调整大小,使框的四边分别对齐四条准线。
(2)插入竖线
一上一下,分别对应竖框线的上下顶点。
②单击顶部的标尺插入一条垂直准线,用于在水平方向上辅助定位竖框线。
③插入竖线,并对齐垂直准线。
④调整竖线的大小,使之上下两侧分别对齐上下两条水平准线。
(3)插入横线
选项卡中,通过单击顶部的标尺插入两条垂直准线。
一左一右,分别对应横框线的左右顶点。
②单击左侧的标尺插入一条水平准线,用于在垂直方向上辅助定位横框线。
③插入横线,并对齐水平准线。
④调整横线的大小,使之左右两侧分别对齐左右两条垂直准线。
2.1.3使用准线对齐行、列
(1)对齐行
选项卡中,单击左侧的标尺插入水平准线。
②将同一行上的数据字段或者表格标题的底部与水平准线对齐。
(2)对齐列
选项卡中,单击顶部的标尺插入垂直准线。
②将同一列上的数据字段和表格标题的左侧与垂直准线对齐。
2.1.4.使用准线定位行、列
将行与水平准线对齐或者将列与垂直准线对齐后,沿标尺拖动其箭头,就可以移动行和列。
2.1.5.使用准线调整列宽和行高
(1)调整列宽
选项卡中,单击顶部的标尺插入垂直准线1,并将同一列上的数据字段和表格标题的左侧与垂直准线1对齐。
②在列的右侧,单击顶部的标尺插入垂直准线2。
此准线不应接触到数据字段和表格标题。
④按住Ctrl连续单击,以选中同一列上的数据字段和表格标题,在最后一个被选中的对象上会出现大小调整控柄。
⑤将调整大小控柄拖至垂直准线2,让列与该准线对齐。
⑥如果列不是所需要的大小,则拖动准线之一或全部准线直到列大小正确为止。
(2)调整行高
选项卡中,单击左侧的标尺插入水平准线1,并将同一行上的数据字段或者表格标题的顶部与水平准线1对齐。
②在行的底部,单击左侧的标尺插入水平准线2。
此准线不应接触到数据字段或者表格标题。
④按住Ctrl连续单击,以选中同一行上的所有数据字段,在最后一个被选中的对象上会出现大小调整控柄。
⑤将调整大小控柄拖至水平准线2,让行与该准线对齐。
⑥如果行不是所需要的大小,则拖动准线之一或全部准线直到行大小正确为止。
2.2多节框
2.2.1.绘制表格的外部框线。
(1)插入框,跨越"
页眉"
和"
详细资料"
两节。
(2)调整"
的大小,使其底部与表格的下框线对齐。
2.2.2绘制表格的内部横框线。
(1)在"
插入横线。
(2)在垂直方向上移动横线,使其与"
顶部对齐。
(3)调整横线的大小,使其左右两端与外部框线对齐。
2.2.3.绘制表格的内部竖框线
(1)根据列的多少在报表插入相应数量的竖线。
(2)在水平方向上移动竖线,使其恰好处于两列之间。
(3)调整竖线的大小,使其上下两端与外部框线对齐。
问题:
如果你在"
报表页脚"
插入了子报表,那么表格的竖框线和下框线将出现在子报表上,显示效果混乱不戡!
所以就有了下面的……
2.3节内线
2.3.1将表格的标题行和数据行分离,分别绘制表格框线
(1)将表格的标题行放在"
,框线绘制不超出"
。
(2)将表格的数据行放在"
2.3.2绘制标题行部分的表格框线
中,用线绘制表格的上框线,表格的内部横框线,表格左框线、右框线、内部竖框线的标题栏部分。
绘制横框线和竖框线请参考本文的:
二、多节框2.绘制表格的内部横框线。
3.绘制表格的内部竖框线。
(4)调整"
的大小,使其底部与表格的内部横框线对齐。
2.3.3绘制数据行部分的表格框线
中,用线绘制表格的下框线,表格左框线、右框线、内部竖框线的标题栏部分。
如果数据行的行高不固定,即数据库字段设置为"
可以扩大"
,以根据数据大小自动垂直扩展。
则数据将超出表格的下框线,而且竖线无法自动垂直扩展,显示效果非常难看!
2.4多节定位
2.4.1防止可变长度的对象相互覆盖
创建多个节,并将对象放在可变长度对象所在节的下面的节,可消除这种套印问题。
2.4.2防止数据库字段和下框线相互覆盖
创建两个节:
"
详细资料a"
、"
详细资料b"
(2)在"
中放置数据库字段。
(3)在"
中,用线绘制表格的下框线,并调整"
详细资料b"
的大小,使其底部与下框线对齐。
(4)在"
用线绘制竖框线,并跨越"
2.5对象边框
2.5.1用对象边框模拟表格的框线
(1)选择报表对象并从"
格式"
菜单或右击菜单中选择格式命令,进入"
格式设置编辑器"
对话框。
(2)选择"
边框"
选项卡。
(3)将左、右、顶部、底部框线的"
线型"
设置为"
单线"
2.5.2将表格的标题行和数据行分离,并用对象边框模拟表格框线
,用文本对象的边框模拟标题行的框线。
,用数据库字段的边框模拟数据行的框线。
2.5.3用文本对象的边框模拟标题行部分的表格框线
(1)最左侧文本对象边框的左、右、顶部、底部框线的"
(2)其它文本对象的边框的右、顶部、底部框线的"
(3)将各个文本对象从左到右紧密相连,则顶部框线就组成了表格的上框线,底部框线就组成了表格的内部横框线,左、右框线便是表格左框线、右框线、内部竖框线的标题栏部分。
2.5.4用数据库字段的边框模拟数据行部分的表格框线
(1)最左侧文本对象边框的左、右、底部框线的"
(2)其它文本对象的边框的右、底部框线的"
(3)将各个文本对象从左到右紧密相连,底部框线便组合成了表格的下框线,左、右框线便是表格左框线、右框线、内部竖框线的标题栏部分。
2.6水晶报表的分页及合计
2.6.1水晶报表分页
报表一般会出现每页显示固定的数据行数,这个分页一般是针对详细资料而言,对于已经画好样式,我们可以右键选择节专家,弹出节的设置:
图5(分页)
勾选在后面新建页,点击后面的公式(两种语法basic和crystal):
图6(分页公式)
说明:
请大家参考一下水晶报表的说明文档中的函数里的打印状态,在分页或者编程中会常用到。
2.6.2水晶报表合计
在字段资源管理器里选在运行总计字段,会弹出如图7所示的运行总计对话框,在左侧选择要合计的字段,其余默认即可。
但是这样汇总出来的数据是对所有数据的累加,如果涉及分页的话,数据的累加是前面所有数据的和,这往往不能满足对当前页的合计。
图7(合计字段添加)
对于当前页的合计:
1.定义一个公式用来放当前也得合计:
2.一个公式用来计算所有数据的和:
3.最后需要一个公式来重置没有的其实量:
这样就可以完成对当页数据的合计,但是请注意:
1.需要将第二个公式放到详细节中,可以抑制显示,但是如果不放讲不能完成合计。
2.将第一个公式放在需要合计的地方,比如页尾。
3.需要将第三个公式放在页脚,并选在抑制显示。
2.6.3合计的另外一种处理
因为水晶报表可以接受一个DataTable大家也可以在datatable中预先写入合计行,直接在加载的时候就会自动完成,也可以节省上面的公式
2.7水晶报表的自定义纸张
水晶报表的大多数票据打印都不是常用的纸型,这需要预先在打印机中添加纸张类型。
然后在在添加完报表文件后设置打印机,选在对应的打印机和纸型。
图8(打印机和纸型匹配)
因为web为客户端打印,往往不能保持客户端和服务器断的纸型匹配(设置默认打印纸型都无效,主要原因是不是同一台机子,所认识的打印机纸型id不同),在调用报表的页面加入一句代码,固定纸型:
ReportDoc.PrintOptions.PaperSize=(PaperSize)126;
然后在客户端读出纸型和对应的id,并将客户端的纸型和id与服务器保持一致,这样既可完成直接打印。
2.8子报表
因为数据表中大量的主子表关系,所以在报表的设计过程中会涉及很多子报表。
注意两个问题:
1、数据库字段中sql的名字不能与主报表重复。
2.子报表的与主报表的参数连接问题,保持参数的一致性。
3、常见的问题及解决方法
3.1水晶报表周期性打开失败
3.1.1未进行注册
Vs2005默认绑定的水晶报表如果不进行注册的话,会导致周期性打开失败,vs2005(注册号:
6707437608)
3.1.2临时文件
每次打开水晶报表都会产生一个临时的报表文件,如果每次关闭报表的时候不释放临时文件,将造成水晶报表的周期性打开失败。
具体的解决办法如下:
privateReportDocumentReportDoc=newReportDocument();
//ReportDoc声明为全局变量
protectedvoidPage_Init(objectsender,EventArgse)
//Page_Init初始页面
{
ConfigureCrystalReports();
}
//报表关闭的时候释放
privatevoidPage_Unload(objectsender,EventArgse)
ReportDoc.Dispose();
3.1.3最大打印限制
异常详细信息:
System.Runtime.InteropServices.COMException:
已达到系统管理员配置的最大报表处理作业数限制。
以上是提示的错误信息
解决办法:
具体为修改下面两个键的值。
HKEY_LOCAL_MACHINE;
SOFTWARE;
CrystalDecisions;
10.0;
ReportApplication
Server;
InprocServer;
PrintJobLimit
修改为1000
还有一个HKEY_LOCAL_MACHINE;
PrintJobLimit也修改为1000
3.2直接打印
在web上直接打印有pdf和activex两种方式,当采用activex打印的时候,需要注册服务PrintControl.cab,因为ie安全级别的显示,一般需要将ie的安全级别中对activex的限制取消,等到组件注册完成之后,点击修复安全ie安全设置即可。
在webconfig中配置如下:
(url下载的地址应该正确)
<
businessObjects>
<
crystalReports>
printControl>
addkey="
urlvalue="
http:
//localhost/hl/PrintControl.cab"
/>
/printControl>
/crystalReports>
/businessObjects>