随笔分类 -  CR报表设计

只局限与水晶报表本身,不涉及对口程序
摘要:使用交叉表时,会遇到这种情况:列非常多,行非常少,结果页面会自动分页。于是出现了一页上只显示几行,却显示成很多页的情况。既不好看,又浪费纸张(如果打印的话)问题产生了,能不能将这个换页的动作,限制在同一页上呢?===========================================================假设我有这样一个表,有两个字段: GSMC 公司名称 、 BMMC 部门... 阅读全文
posted @ 2009-04-22 00:26 阿泰 阅读(5491) 评论(3) 推荐(0) 编辑
摘要:水晶报表并没有单元格的概念,此处的合并,说的是下面这种效果。 如果我们用线和框来做表格,那么虽然我们可以用下图的方法抑制重复显示,但每行的线还是在的,达不到“合并”的效果。 此时我们可以这样操作 步骤1: 先在字段外围画个大框,注意 框的上边沿在表头上面,页眉上。下边沿在详细资料节里面,紧贴下边沿。 步骤2:按住Ctrl,点选详细资料节中的字段,然后在某个字段上点右键,选菜单中的“格... 阅读全文
posted @ 2009-03-11 01:43 阿泰 阅读(8855) 评论(14) 推荐(4) 编辑
摘要:水晶报表中常见的格式就是表格列表。通常情况下我们会纯使用框+线来实现。 需要实现的样式如下图所示。 步骤1: 先在字段外围画个大框,注意 框的上边沿在表头上面,页眉上。下边沿在详细资料节里面,紧贴下边沿。 步骤2: 在详细资料节的上边沿,画一条横线,仅贴上边沿。拉动字段,使其高度撑满详细资料节。 在字段间画上竖线,拉动字段,使其左右靠到竖线和边框上。 这样,一个好看的表格就出来了。 ... 阅读全文
posted @ 2009-03-11 01:35 阿泰 阅读(5245) 评论(10) 推荐(0) 编辑
摘要:问题的提出: 一个带格线的清单类报表,假设有6行,我们设定的页面纸型能容纳5行,那么数据会分成两页。 第1页显示5行,占满1页,而第2页则只显示1行,后面是一片空白区域。 怎么能根据数据的多少,自动填满后面的空白区域呢? 如下图(第2页): 解决方法: 清单类的报表,要填充的是最后一页的剩余区域。我们以每页显示5行数据为例。 那么对于最后一页只有五种情况。 1:最后一页刚好有5条数据,不需要填... 阅读全文
posted @ 2009-02-15 22:46 阿泰 阅读(6115) 评论(20) 推荐(1) 编辑
摘要:本文使用的水晶报表版本:VS2005 自带版本 水晶报表是依赖于纸型的,纸型可以简单的理解为报表的操作区域 当字段过多报表上摆不下时我们就需要换个大的纸型,一般情况可以使用A4横向,A3等标准纸型。 如果A3也放不下,我们也可以使用更大的纸型(一般最大宽可到91厘米,不过要看打印机是否支持) 当然,有时候在做一些票据样张的时候,会需要用到更小的纸型。 一般我们可以通过如下操作选择标准纸型。 设计模... 阅读全文
posted @ 2009-02-09 00:31 阿泰 阅读(7680) 评论(25) 推荐(0) 编辑
摘要:水晶报表有个【SQL 表达式字段】 有的朋友在使用的时候,直接在里面写了个SQL语句,结果提示报错。 其实【SQL 表达式字段】有点类似与我们 SQL 语句里的别名字段 如 Select f1,f2,f3,(f4+f5) as xx from table1 那么【SQL 表达式字段】可以是f1,f2,f3或f4+f5 【SQL 表达式字段】不是一个SQL语句,而是SQL语句的一部分。SQL表达式仅... 阅读全文
posted @ 2008-11-09 11:23 阿泰 阅读(4805) 评论(3) 推荐(0) 编辑
摘要:对于文本型的字段(或公式,或参数或文本框等等),如果内容较多,可以通过在字段上点右键,设置对象格式,勾选可以扩大即可进行分行显示。 不过有时候效果并不能令我们满意,比如对于一个字段:有一个字段内容为:xxxxxxx yyyyyyyyyyy zzzzzzzzzzzz 这个字段在水晶报中显示为: xxxxxxx yyyyyyyyyyy zzzzzzzzzzzz 而实际上要显示为: xxxx... 阅读全文
posted @ 2008-11-06 10:37 阿泰 阅读(4622) 评论(0) 推荐(0) 编辑
摘要:以前一直以为没办法去掉,前几天在CSDN论坛上看到有网友分享的,呵呵。 不是所有版本都适用,已知版本: Crystal Reports for Visual Studio 2005 设置CrystalReportsViewer的属性 EnableDrillDown=false 即可。 阅读全文
posted @ 2008-11-03 15:34 阿泰 阅读(1230) 评论(2) 推荐(0) 编辑
摘要:一般我们可以使用公式来实现一些特殊的功能,但是对于一些需要重复处理的情况 可以使用自定义函数来实现 进入公式编辑界面 ,可以看到在左上角有两个项目: 报表自定义函数和储备库自定义函数 报表自定义函数只存在于单一报表模板内,不同模板间不可以共用。 储备库自定义函数对于单独的水晶报表和.Net自带的版本是不可用的,这是水晶报表服务器版本或BOE的一个功能 将函数转换为储备库自定义函数后,该函数将... 阅读全文
posted @ 2008-10-31 10:54 阿泰 阅读(6241) 评论(0) 推荐(0) 编辑
摘要:通过设置字体实现特殊字符显示,适用于Textbox,字段,参数字段,公式等。 需要注意的是,如果使用的是特殊字体,没有该字体的机器是不能正常显示的。 像 Winddings字体,一般的windows系统都自带。但是如果web应用,使用非windows机器浏览的时候可能就不能正确显示。 仅做一个字体示例,报表就没必要做了。 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXY... 阅读全文
posted @ 2008-10-08 11:17 阿泰 阅读(1774) 评论(1) 推荐(0) 编辑
摘要:mysql的基本参数设置 建立数据库,字符集为utf-8 里面建了两张表,test1字符集为gb2312,test2utf8为utf-8 表里的数据均为中文 用Mysql建立报表的一般步骤如下 我们使用的驱动字符串为: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Co... 阅读全文
posted @ 2008-09-24 11:15 阿泰 阅读(3363) 评论(0) 推荐(0) 编辑
摘要:在常规报表设计中,有这样的需求。 基础数据表中只有某几个月的数据,但是实际显示时却要显示包含全部12个月份的报表。 同理,该方法适用于任何需要数据补全的情况。 这个依靠SQL语句可以实现,在这里我使用Access进行示例,如果你使用其他数据库可能会有更好的方法,但是思路基本上是一致的。 假设基础数据表如下: 构造一个月份表,可以通过 SQL语句构造一个虚拟表 建立一个查询,使用外连接 注意使用... 阅读全文
posted @ 2008-09-22 17:32 阿泰 阅读(1068) 评论(4) 推荐(0) 编辑
摘要:交叉表除了实现交叉汇总外,亦有计算百分比(横向、纵向)的功能。 之前的文章中已经对交叉表的制作方法做了详细的说明,以下只针对百分比的情况进一步说明一下。 假设我们有以下数据表, 建一个如下的交叉表,注意汇总字段中,点了两个相同的汇总和 选取其中的一个, 点击【更改汇总】,在弹出的小界面上勾选【以百分比显示】 下拉框中会出现要可供选择的百分比的分母。 根据显示需要,选【行】或者【... 阅读全文
posted @ 2008-08-18 15:19 阿泰 阅读(3844) 评论(17) 推荐(0) 编辑
摘要:本文来自于: http://topic.csdn.net/u/20080619/13/8eac0e2b-083b-4bb0-b559-73a8d8f42fab.html 水晶报表支持的字体格式效果有限,有时候不能满足我们的需要。 所以有时候,我们可以借助其对HTML格式的支持实现某些效果 如我们有段HTML代码是这样的 Code highlighting produced by A... 阅读全文
posted @ 2008-08-03 22:11 阿泰 编辑
摘要:因为水晶报表字段长度是固定的(编程可以控制,此处不讨论), 在字段内容较多时,我们可以使用右键里的【设置字段格式】-【公用】-【可以增大】来使其启动折行显示 为了显示的效果,一般会在详细资料节的底部画一条横线(这里我为了显示得比较明显,加了颜色) 于是,就出现了越界的问题,如下图所示(黄色色块字段压过了横线) 其实解决方法很简单,也就是,将这条线画在详细资料节的顶部即可 最终效果如下 ... 阅读全文
posted @ 2008-05-27 00:50 阿泰 阅读(3531) 评论(3) 推荐(0) 编辑
摘要:本文为CSDN图表区问题的一个解答模型,却不是最终答案 原来的帖子中已经提出了解决该问题的更好的方法,就是事先在数据库中进行数据修整 本文仅从水晶报表角度来探讨实现方法,可能在其他的地方会用得的到。 (对于数据修整的操作方法,其实在前面的交叉表实现的时候我也曾提到过,尽量在数据库中进行整形) 本问题的相关帖子为: http://topic.csdn.net/u/20080505/23/69a83... 阅读全文
posted @ 2008-05-11 23:24 阿泰 阅读(1303) 评论(1) 推荐(0) 编辑
摘要:交叉表,顾名思义,就是行和列交叉,用于将行上的数据,作为列指标来呈现。 用一个图直观的说明一下,就是将图1中的数据样式 最终呈现为如图2的效果 实际在使用中,我们可以用两种方式来实现这个效果 一是在数据库端用SQL将数据组织成交叉表,然后对这个数据以普通的报表形式呈现。 在这里,我摘录了网上一篇写的比较直白的文章,请参考此链接。 http://server.chinabyte.co... 阅读全文
posted @ 2008-05-06 00:20 阿泰 阅读(13455) 评论(25) 推荐(0) 编辑
摘要:本文转自:http://blog.csdn.net/luby/archive/2005/06/16/395860.aspx,原作者不详 具体步骤: 1, 到http://www.idautomation.com/网站下载字体DEMO和UFL(自定义函数苦)并安装。 字体:http://www.advancemeants.com/downloads/IDAutomation_C39FontA... 阅读全文
posted @ 2008-05-05 18:46 阿泰 阅读(3931) 评论(6) 推荐(1) 编辑
摘要:现有报表项目中,一般有把报表导出成Excel的要求 而对于水晶报表来说,虽然带了导出Excel的功能,但是能导出一个能用的excel表格却不容易 因为很容易就会出现跨行跨列的情况,默认导出是没有格线的,手工(或者导出时选了格线)加上格线后,会显得很难看 最主要的是没法直接在上面用,这给报表的再处理也带来了很大的不便。 很长一段时间以来,我一直是这么认为的,但是实际上,这是可以实现的。(非常感谢I... 阅读全文
posted @ 2008-04-04 13:42 阿泰 编辑
摘要:本文的相关文章: 子报表与主报表的链接 使用共享变量实现主报表及子报表之间的数据共享 在CSDN的回复贴中,rockyvan提到一个子报表数据根据主报表的条件进行进一步筛选的问题 http://topic.csdn.net/u/20080328/11/bd343c29-7351-437e-8183-d8d4a4ef1f10.html 我在回复中,想当然地采用了主子报表链接结合一个主、子报表共... 阅读全文
posted @ 2008-03-30 01:02 阿泰 阅读(1364) 评论(2) 推荐(0) 编辑