pb分组数据窗口内容选择打印

pb分组数据窗口内容选择打印

ID:6653045

大小:172.00 KB

页数:5页

时间:2018-01-21

pb分组数据窗口内容选择打印_第1页
pb分组数据窗口内容选择打印_第2页
pb分组数据窗口内容选择打印_第3页
pb分组数据窗口内容选择打印_第4页
pb分组数据窗口内容选择打印_第5页
资源描述:

《pb分组数据窗口内容选择打印》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、POWERBUILDER分组数据窗口内容的选择打印叶枫工作室HBSHIJIANGUO2012-9-8前言我所在的单位是一家县级医院,我主要的工作就是维护与开发单位正在使用的一套HIS。众所周知,现在医院HIS涉及的面相当广,几乎医院业务处理的各个环节都能管到,快相当于一个ERP了。今天,我要探讨的问题是一个相当具体的应用-护理站患者输液单打印。正文2011年医院护理部为提高护理工作的透明度,加强护理的管理与监督,要求开发打印患者输液单功能。程序开发完成交付使用一段时间后,病区护士长提出一个问题:患者输液单能不能选择打印,

2、即每次选择打印一个患者。这个问题的提出,是有原因的。正常情况下,长期医嘱执行成功后,一次性将所有患者输液单打印出来是没有问题的。但由于护士对打印机不太了解,或者说根本不想去了解,导致打印机出现这样那样的小问题。例,装纸不到位,导致卡纸,前面就白打印了,重新再打。为了解决科室抱怨打印机性能不好,提高打印效率,节约纸张浪费,我对这一问题进行了深入的研究与分析。首先,轮流单是分组数据窗口,内容根据数据量动态变化,打印页数可多可少;最为重要的是PB的这种数据窗口能不能从中取得分组数据。其次,怎样取出数据?一般的数据复制技术如:r

3、owscopy()不能满足这一要求。要想打印单人的输液单,必须把其所有相关数据全部取出,并且保证格式不变。针对上述要求,我采取了各种方法,也查阅了很多资料,但没有一个相当有效的手段。经过一段时间的探索,我偶尔发现了一个函数:GetObjectAtPointer(),这个函数不简单,它能取得HEADER区的对象及行号,这就为我获取数据窗口内容打下了基础。下面,详细介绍分组数据窗口内容的提取。下图1-1是原始的输液单,我要做的就是从数据窗口取得单个人的输液单。图1-1从图1-1可以看到,患者关键信息都在header区中,一但

4、得到了病案号,我就可以取得所有数据。因为病案号是患者的唯一标识。我先阐述一下本文总的实现思路:取得病案号,根据病案号过滤获取的数据,只用需要的数据,再新建一数据窗口,格式与原始的完全相同,用于存放过滤得到的数据,最后输出这个数据窗口就完成了目标要求。有了这个思路,我想大家都会明白了,其实很简单。但就是这个简单的问题,煎熬了我很长时间。所以我才总结了一下,供大家参考。下面说明第一步,取得病案号。这个要求对header及band有个基本了解。主要用到Describe(),GetObjectAtPointer()函数,Desc

5、ribe()用于获取对象名称描述,GetObjectAtPointer()用于得到包含列名及行号的字符串,通过对这两个函数返回值的处理,我就得到了列名,对应等号,通过GetItemString(row,’zd’)可以获得病案号。特别说明一下,为什么要用GetObjectAtPointer()得到行号呢?因为在header区取得的row为0。第二步,设置过滤条件,过滤数据到新的数据窗口。Dw.setFiler(expresion)Dw.Filter()Dw.retrieve(parameter)第三步,操作时只需用鼠标在h

6、eader区点击病案号或姓名即可得到图1-2所示。可修改病案号字体或光标着重提示,然后根据提示打印即可。图1-2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。