Office中国论坛/Access中国论坛

标题: 【Access小品】护士美眉 -- 报表管理器示例 [打印本页]

作者: todaynew    时间: 2015-6-15 14:31
标题: 【Access小品】护士美眉 -- 报表管理器示例
本帖最后由 todaynew 于 2015-6-16 20:16 编辑

[attach]56606[/attach]  报表软件有很多种并各有特点,如果需要也可自行编制报表软件。用Access编制报表软件并不容易,主要的原因在于控件不够丰富。确实想用Access编写,也不是不可以,只是要因陋就简就地取材,编写出一个土豪般的报表软件也完全可行。

  要想写出报表软件的关键是要弄清楚什么是报表管理系统?简单的讲,报表管理系统就是将数据写入载体的系统,这是一个很抽象的表述。这个抽象的表述,将报表系统看成由三个部分组成,其一是数据,其二是载体,其三是一个能将数据与载体有机结合的管理器。

  也许你抽象思维的能力不强,那就给你打个比方:有一天你生病了,于是你到医院看医生。医生给你开了处方,你到注射室去打针。漂亮的护士小姐拿到你给的处方,将药剂吸入针管,然后扎进你的臀部。注意!别把目光集中在漂亮的护士小姐身上,而需要关注的是:药剂、针管和你的臀部。药剂就是数据、你的臀部就是载体,而针管和护士小姐就是报表的管理器。

  护士小姐和针管这个管理器,在你进入注射室之前是不知道数据是什么和载体是什么的。报表管理器也是一样,它并不知道用户会将什么数据输出到什么载体上去。护士小姐能准确的将你需要的药剂通过针管输出到你的体内,并治愈你的病症。那么报表管理器所要实现的功能也就是,有能力按照用户的需要将数据输出到载体上去。

  这里出现了一个你可能没有意识到的概念,这个概念叫做:注入。在讲这个概念之前,先需要提示一句你可能耳熟能详的话:“低耦合、高内聚。”这是编程过程中,时刻需要牢记的一句话,但是实现它并不容易。包括报表管理系统在内的很多系统,都是需要功能上的耦合的,没有耦合也就无法运行。问题的关键是高度的耦合会失去灵活性和通用性,导致编程和维护的困难。所以,人们都力求降低耦合,而降低耦合的方法之一就是采用注入的方法,使得需要的时候进行耦合,不需要的时候不耦合。简单的理解,就是招之即来挥之即去。

  当你进入注射室之前,护士小姐的针管与药剂之间,针管与你的臀部之间是没有耦合的。只有当你将处方交给给护士小姐时,注入发生,于是针管与药剂,针管与你的臀部进行了耦合。在这个耦合的基础上,护士小姐完成了对你的注射。注射完毕后解耦,你走你的阳关道,护士小姐依然静静的等待下一个需要注射的人。

  你可能已经有点明白了。报表管理系统就是用几条SQL语句注入,然后通过一定的配置和约定,向各种载体(Word、Excel或其他能呈现数据的载体)注入报表数据的系统。下面的示例就是这样的一个系统,而且这是这个示例极力要表现的最重要的内容。当你打开这个系统,并阅读代码时,你可能会被迷惑。因为最大量的代码解决的并非注入的问题,因为实现注入的思路明确后,代码量是非常之少的。

  最大量的代码解决的是易用性的问题,这是一个关于用户使用的便捷性的问题。也就是要解决当你将处方单递给护士后,护士能在最短的时间,最方便的用针扎你的臀部。解决这个问题,需要非常复杂的代码。不过我要强调的是这不是关键,或者说这不是第一位要解决的问题。只是在你需要学习如何设计用户界面时,这部分的内容才有价值和意义。

示例:[attach]56598[/attach]

视图:

[attach]56599[/attach]






作者: 风中漫步    时间: 2015-6-15 14:34
视图?
作者: todaynew    时间: 2015-6-15 14:36
风中漫步 发表于 2015-6-15 14:34
视图?

谁让你这么快的。
作者: 风中漫步    时间: 2015-6-15 14:48
斑竹的好文当然要先睹为快了
作者: 风中漫步    时间: 2015-6-15 15:02
不错
作者: admin    时间: 2015-6-15 15:08
好示例,赞一下
作者: yanwei82123300    时间: 2015-6-15 16:46
好示例,赞一下

作者: hunrybecky    时间: 2015-6-16 22:43
不错。。。todaynew的例子错的非常棒,而且坚持不懈。。
作者: admin    时间: 2015-6-18 09:34
很好,很强大!
作者: zhao__feng    时间: 2015-7-1 19:39
谢谢分享,学习了
作者: yangkaifu    时间: 2015-9-17 23:36
看看学习拉
作者: czzlj520    时间: 2016-1-12 22:36
学习下,初学,谢谢,分享!
作者: 冚友    时间: 2016-1-19 22:52
学习一下
作者: Power.Sir.Cz    时间: 2016-2-7 16:37
学习了
作者: owen2016    时间: 2016-8-20 11:13
已经下载学习,谢谢




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3