![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
水晶报表内功心法
阿泰
不在留言和私信中回答技术问题,有问题请在论坛发帖,然后在留言或私信中提供帖子地址即可。
展开
-
【水晶报表内功心法】--完美Excel(下)
前文《【水晶报表内功心法】--完美Excel(上)》中, 主要讲解了如何做一个基础的到处样式, 本文在上文的基础上,实现类Excel的一个操作,就是单元格横向和纵向合并。以及加底色的效果,如下图 以前文的基础进行改造 1:横向单元格合并 删除掉后表头最后一个文本项 然后把前一个项目拉到与最后一个字段等宽,注意右边要对齐 预览一下 导出效果 很简单吧,呵呵 2:纵向合并 我们仅以第一列为原创 2009-07-26 20:57:00 · 3325 阅读 · 10 评论 -
水晶报表钻取(深化)之子报表法
(严格意义上,钻取和深化不是一个概念,不过单纯对水晶报表的普通应用是差不多的,所以捏在一起)简单地举例来说。有一个主从表。报表上只显示主表信息,点击主表数据后,显示出该数据对应的从表数据信息。下面,我以水晶报表自带的xtreme.mdb中的雇员表和代码表来做一下示例。本文主要讲解思路,未涉及代码(其实,此方法仅需在你现有程序上稍加改动即可,不必设计编码部分) 1:表是这样数据间的对原创 2009-04-29 00:58:00 · 2681 阅读 · 4 评论 -
水晶报表钻取(深化)之分组法
(严格意义上,钻取和深化不是一个概念,不过单纯对水晶报表的普通应用是差不多的,所以捏在一起)简单地举例来说。有一个主从表。报表上只显示主表信息,点击主表数据后,显示出该数据对应的从表数据信息。下面,我以水晶报表自带的xtreme.mdb中的雇员表和代码表来做一下示例。本文主要讲解思路,未涉及代码(其实,此方法仅需在你现有程序上稍加改动即可,不必设计编码部分) 1:表是这样数据间的对原创 2009-04-29 00:58:00 · 1953 阅读 · 3 评论 -
【报表SQL】多值传入,Like 模拟 In 语法
场景(oracle):我们有一个表 a,有一个列 现在要求 传入一个参数 x,x的值为id1,id2,id3 最终实现 select * from a where id in (id1,id2,id3)这个在程序代码里比较容易实现,直接用 SQL 也可以。如 Select * from a where id in (&a)但是在报表上直接实现就有些困难。解决方法:构原创 2009-04-16 17:58:00 · 2776 阅读 · 1 评论 -
动态水晶报表:任意表,任意列,以及动态格线
有很多很多次被问到:为什么水晶报表那么麻烦,每做一张报表都要选表,画线画格子,有没有一种方法可以一劳永逸?做一个模板,然后用不同的表都能用?还有就是能不能动态选择列,而且选择列后能报表能自动适用这个变化?甚至有些人也因为放弃了水晶报表,实际上这些都是水晶报表可以做到的。我之前曾零散地写过几篇,在论坛和博客中都曾反复讲解过思路,但是并没有系统地去解决这个问题,在这里,我来讲解一下原理和实原创 2009-04-08 02:58:00 · 1809 阅读 · 1 评论 -
样式篇之如何实现合并单元格效果
水晶报表并没有单元格的概念,此处的合并,说的是下面这种效果。如果我们用线和框来做表格,那么虽然我们可以用下图的方法抑制重复显示,但每行的线还是在的,达不到“合并”的效果。此时我们可以这样操作步骤1:先在字段外围画个大框,注意 框的上边沿在表头上面,页眉上。下边沿在详细资料节里面,紧贴下边沿。 步骤2:按住Ctrl,点选详细资料节中的字段,然后在某个原创 2009-03-11 01:59:00 · 2552 阅读 · 1 评论 -
样式篇之如何画格线
水晶报表中常见的格式就是表格列表。通常情况下我们会纯使用框+线来实现。 需要实现的样式如下图所示。步骤1:先在字段外围画个大框,注意 框的上边沿在表头上面,页眉上。下边沿在详细资料节里面,紧贴下边沿。步骤2:在详细资料节的上边沿,画一条横线,仅贴上边沿。拉动字段,使其高度撑满详细资料节。在字段间画上竖线,拉动字段,使其左右靠到竖线和边框上。这样,原创 2009-03-11 01:59:00 · 2670 阅读 · 0 评论 -
【教程系列】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例
总有事情打断,断断续续做了好几次,加上第一次正经做视频,所以有点乱。 而且为了便于压缩,没有出声,大家看着会有点费力,不过好在整个过程比较简单。 本示例包含: 单表模板演示 多表模板演示 子报表演示 基本涵盖了日常需求,按照此方式,也基本可满足基于水晶报表的日常开发,代码基本上可以不用操心了 视频+代码下载地址: http://www.f原创 2008-11-19 10:00:00 · 2432 阅读 · 3 评论 -
【水晶报表内功心法】--信手拈来,掌控对象 之 多值参数传入
在前文【水晶报表内功心法】--信手拈来,掌控对象 中,讲解了参数的输入方法。myReport.SetParameterValue(参数名称,参数值,[子报表名称]);比如我们这样传参数值:myReport.SetParameterValue("x1","我是参数值");但是如何传入多值参数,或者是区域值参数呢。实质上我们再来看一下SetParameterValue方法,Titlep原创 2009-10-09 15:35:00 · 4110 阅读 · 8 评论 -
动态水晶报表:任意表,任意列 之 动态格线实现
在前文《动态水晶报表:任意表,任意列,以及动态格线》中,有一个地方还没有完全实现。就是根据内容自动调整表头的列,跟内容表格相对应。我们也注意到了,在前文中,后面的列之所以不显示,不是因为它们没有了,它们是存在的,只是内容是空(),注意是空,不是空格。依此延伸开来,表头也可以用此原理来实现。本文接上文,稍加改动把原来的表头删除,放上6个参数字段,p1,p2...p原创 2009-05-20 00:58:00 · 1719 阅读 · 0 评论 -
【水晶报表内功心法】--序言
这是一篇序言,并没有技术性内容,如果你有时间,可以看一下。 最近的一年多,因为生活比较平稳,我开始恢复我在博客、论坛和邮件的答疑。 回答问题,本身也是个开拓眼界和成长的过程。 有时候回答一个问题,需要几天时间,去构造数据,模拟环境,和测试 但是累积下来,我发现很多问题是重复的,大部分人开始都会遇到的。 而且我注意到个情况,就是有些文章,存在典型的误导。 并不说一定是错的,而是绕了很远的路去原创 2009-07-26 20:57:00 · 1929 阅读 · 3 评论 -
【水晶报表内功心法】--完美Excel(上)
本来这一篇要放到很后面去写,不过论坛里有人问到,就提前了。 很多人说水晶报表导出的Excel太难看,或者导出的Excel根本没法用,其实水晶报表是可以完整导出到Excel的 当然,水晶报表与其他基于CELL的报表工具相比,对Excel的支持是很弱的。而所谓的完美,是相对的。 我抓了大量的操作图来进行解说,或许大家会体会到为什么我会说水晶报表是一个操作性很强的工具的原因了。 一般我们画格线的时候,导原创 2009-07-26 20:57:00 · 4380 阅读 · 11 评论 -
【水晶报表内功心法】--公式、函数与运行时总计
本文的主题是:函数与公式、运行时总计。 本文还是以基础讲解为主,后面的一些实际场景中会有具体的使用 1:公式 公式可以说是水晶报表里精髓,其重要性有点像Excel的宏一样。 公式基本上可以分为两类,一是格式化类。一是运算类。当然,格式化的公式也是需要运算的。 水晶报表的一些内置的功能,本身也是依赖于公式的,只是做了封装。 公式有两种语法:crystal语法和Basic语法,没有根本性差异。 如果你原创 2009-07-26 20:57:00 · 4715 阅读 · 16 评论 -
【水晶报表内功心法】--第一阶段小结
本文是第一阶段的小结,第一阶段主要讲解了推拉模式,以及基本操作,和数据的过滤。它的主要目的就是解决怎么把数据与报表的交互问题。 前后历时近一月,反响一如我当初所料,不会很强烈。而且很多人,也是因为推荐到首页后,习惯性的顶一下。并没有认真的去看内容。 毕竟水晶报表的应用范围比较小。不过我也很高兴能看到几位朋友,能真正的去看了,还参与了讨论。 我本来的目的,就是为了系统地介绍水晶报表的应用,一原创 2009-07-26 20:57:00 · 2648 阅读 · 11 评论 -
【水晶报表内功心法】--数据过滤
周末比上班忙,好不容易等老婆和孩子都睡下了,才终于能静下心来写点东西,不知不觉地都是后半夜了。 在讲解了PULL和PUSH模式后,有一个问题随着而来。 两篇文章中,都从数据表中取了完整的数据,而实际应用中,我们一般只会用到其中的一部分数据,也就是要对数据进行过滤。 数据过滤的操作,在这里我归并为两个要点:一是要实现数据过滤,二是要把过滤条件显示在报表上。 1:PUSH模式下的数据过滤方法 这两个要原创 2009-07-26 20:57:00 · 2169 阅读 · 12 评论 -
【水晶报表内功心法】--信手拈来,掌控对象
月初一如既往地忙碌,竟然一点时间也没抽出来。 周末也是一如既往地加班了,好在事情进展地还算顺利,终于有时间写这一篇。 本来的计划是《掌控于股掌之间-代码中传参数、传公式、操作水晶报表里的所有对象》 考虑到公式的重要性,会单独写一篇,于是本篇的内容就是参数与对象的控制 而参数的部分,在本篇也是基本操作,后续的进阶操作会结合其他环节进一步说明 1.对象的操作 开始之前 先说一下,操作对象,是依原创 2009-07-26 20:57:00 · 2392 阅读 · 9 评论 -
【水晶报表内功心法】--PUSH模式样板招式
前篇讲解了PULL模式下的操作方法,比较简单。 本文进一步详细讲解一下PUSH模式下的样板操作。 仍以Web为例 新建一个 Asp.Net CrystalReports的网站 弹出下面这个界面后,选第2项-作为空白报表,然后点确认,进入一个空白界面。 新建一个数据集合 出现此提示时,点“是” 然后还会出来连接数据库的提示,一律点否,直至界面上什么提示也没有 在这个界面上,点右键,添加一个da原创 2009-07-26 20:57:00 · 3472 阅读 · 11 评论 -
【水晶报表内功心法】--PULL模式样板招式
在前一篇中,讲解了PULL和PUSH模式的区别。 本节中主要是从无到有地讲解一下如何使用PULL模式来做一个报表。 因本文主要针对初学者,所以每个步骤都抓了图。 以 Web应用为例 首先,新建一个Asp.net CrystalReports站点 稍等一会后会出来一个默认的水晶报表向导 确定后,选择“创建新连接” 这里我用的是Oracle数据库,填写数据库参数 连接成功会,会显示数据库中的表原创 2009-07-26 20:57:00 · 4045 阅读 · 21 评论 -
【水晶报表内功心法】--推拉之间
水晶报表程序控制上有两种模式,也就是传说中的PULL模式和PUSH模式。口语化点就是拉模式和推模式。 把这个放在最开始讲,是因为模式的选择,会影响到后续的开发。 特别是看到一些使用者,把两种模式的代码里捏在一个过程里,出了错误,都不知道怎么去调试。 本文将讲解两种模式的基本原理,区别,以及各自的优缺点,还有部分开发报表的基本原则。 同样,本文是没有代码的,代码将从下一篇文章开始。 1.1 拉(PU原创 2009-07-26 20:57:00 · 2658 阅读 · 3 评论 -
动态水晶报表扩展:任意无关联多表,任意列,任意数据源
【原创】水晶报表动态表扩展 之 任意无关联表,任意列,任意数据源本文是在http://www.cnblogs.com/babyt/archive/2009/04/08/1431328.html原理基础上的一个扩展。如果你之前没有看过此文,请务必仔细研读。否则本文你可能不能较快地理解。本文适用场景:出于显示效果或者打印节约纸张等的需要,将多个不同结构(设置来源于不同数据源原创 2009-04-23 01:58:00 · 2328 阅读 · 7 评论