浅谈信息系统中打印控制窗口的开发

来源 :硅谷 | 被引量 : 0次 | 上传用户:gyf1978
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: 从实际工作需要出发,针对日常工作中打印控制窗口调用过多,影响工作效率的情况,而明确提出在一个窗口中实现所有常见打印控制的思路,并通过自己的辛勤开发而最终实现了该功能。
  关键词: 打印控制;信息系统;医院
  中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2011)0520090-01
  
  屈指算来,本人正式接触电脑也有近15年了,打印作为日常办公的一项功能,估计每个电脑操作人员也都是要经常使用的了,不知大家在日常使用中会不会觉得其中的有些操作还是比较繁琐呢。
  一般在打印功能使用中比较常用的就是选择打印机、改变送纸方式、选择适合的纸张大小、改变页边距、指定打印份数等一些,还有如打印页指定、纸张方向、改变打印质量、打印到文件等一些较为常见的功能,以上所列举的一些控制功能在百分之九十以上的软件中都不是在一个窗口页面中实现完成,如果打印量较大而且相对内容类型较复杂的话,对操作者而言,将不得不频繁切换改变,无疑将极大地降低工作效率。
  上述问题在我们医院信息管理系统的使用中就很明顯的凸现出来了,举个简单的例子来说,象住院收费室,有发票、收据、各种大小报表等一些,纸张大小不一样,格式也不同、有时还需要用到不同打印机,其它少数科室在这个方面的要求相对还要复杂一些,为此,经常有医院工作人员向我提出,能否根据不同的需要自动选择打印机、送纸方式、纸张大小及其它功能。由于以前已经安装的管理系统原开发公司早已解散,实现该功能自然无从谈起,为此,我下定决心,一定要在新的医院管理系统中实现该功能。
  由于我们医院新的管理系统开发商使用的是Powerbuilder(以下简称PB)开发语言,加上本人对该语言也较为熟悉,于是,我决定自己开发一个通用打印窗口嵌入其中来供全院使用。
  使用过PB开发语言的程序员都知道,PB本身作为一门强大的数据库前台开发语言,其打印控制功能还是很全面的,要说不足之处也就是前面所说的调用起来有些复杂罢了,因此我所需要做的工作就是把所有的常用打印控制功能集中在一个窗口实现并且有针对性的存储起来,然后再调用就达到目的了。
  虽然说起来也是很简单的事情,但是真正去做的时候也还是颇费了一番心思,就拿选择打印机而言,PB本身提供的函数就是弹出窗口再返回结果的方式,显然不能满足这个要求,因此,本人还不得不打起了Windows注册表和API函数的主意。
  通过多年来积累的经验,对于Windows系统在注册表中有关打印机设置的一些内容也算是轻车熟路了,它的一些有关打印机的主要参数都存储在HKEY_LOCAL_MACHINE╲SYSTEM╲CurrentControlSet╲Control╲Print╲Printers这个键值下面,操作注册表对于PB也还算是很轻松的事情了,所以在读取系统所安装的打印机和送纸方式这两个环节上基本没有遇到什么问题,只有在读取打印机并选择对应的送纸方式之后,如何调用相应的纸张的时候,才稍微遇到了一些麻烦。
  终于轮到API函数出手了,经过一些资料的查阅之后,发现DeviceCap
  Abilities这个API函数能够实现我所需要的相关功能,首先通过DeviceCapabilities函数把所有有关纸张的信息存储到所定义的数组当中,再通过代码循环折解得到所需要的结果,然后存储到程序中的下拉列表内面供操作人员进行选择。至此,几个较为关键的问题得到解决。
  接下来就是一些锦上添花的过程了,象设置页边距、纸张方向、是否显示标尺、以及打印页码和份数的等都是PB本身提供的操作起来相对很简单的功能了,设置几个属性或参数就能很快搞定的事,几乎是三下五除二便完成了。
  初战告捷,在一个窗口中把所有的常用打印控制功能都基本实现了,考虑到有时还需要添加自定义纸张,于是还做了一个添加纸张功能,其实也就是调用Windows系统自身的那个功能,就一句代码的事情——run
  “Rundll32.exe printui.dll,PrintUIEntry/s”,第一次运用自己完成的打印预览窗口来预览相关数据时心中真别提有多爽了(附效果图如下)。
  也许细心的你会从图中发现怎么没有缩放设定功能呀,就是么,这么重要的功能怎么能够不要呢?只是因为下面那一块实在放不下了,再扩充一些主预览窗口又变小了,似乎也有些不妥,思来想去,有了一个比较理想的解决方案,利用键盘加鼠标滚轮的操作方式很好的解决了这个问题。按下ALT键时前滚滚轮查看放大,后滚滚轮查看缩小。按下CTRL键时前滚滚轮打印放大,后滚滚轮打印缩小。
  至此,所有需要实现的常见打印控制功能都实现了,唯一美中不足的地方是窗口关闭后又要重新设定。一款好程序没有不精益求精的理由,于是在PB独有的数据窗口方面又做起了文章,根据不同的操作者和不同的数据窗口在改变打印参数设定时分别予以存储,在后面调用同一打印服务时再自动调用相关参数,这样,便做到了最大程度的方便操作者,对其以后的操作应用可以节约很多宝贵的时间。
  以上一些为本人利用PB开发医院信息管理系统打印预览窗口的一些经验之谈,在使用不同的开发工具完成类似功能时,具体操作方法也许有所差异,但倘能写出来对于同行们有些许抛砖引玉作用的话,便也是笔者很欣慰的事情了。
  
  参考文献:
  [1]马贵安、李明武、牛永生,PowerBuilder Win32 Api程序设计[M].清华大学出版社,2004.
  [2]杨劲,轻松玩转Windows注册表(新版)[M].重庆出版社.
  [3]华师傅资讯,Windows注册表24小时轻松掌握[M].中国铁道出版社.
其他文献
Unit2Ben’s Birthday(A)教学案例与评析《牛津小学英语》(译林版)6A一、教材分析本节课的教学内容为《牛津小学英语》(译林版)6A Unit2Ben’s Birthday(A),对话围绕“Ben的
摘要: 随着电子技术的升级,计算机、通讯设备、自动化设备等都采用集成电路等电子器件来实现其功能。这种技术发展使得静电对电子设备的影响更加的突出,因为静电的放电具有隐蔽性和随机性,因此其对电子设备造成的影响范围最广。所以在电子设备的使用过程中应从静电的形成和放电原理出发,采用合理的防护技术对其进行控制。  关键词: 静电;静电放電;危害;防护原理;防护措施  中图分类号:TN305 文献标识码:A
时态和语态是各地英语高考的必考知识点。在单项选择中至少有一道题,甚至有的省市还有两到三题,完形填空也常考到这样的知识点。考生从学英语的时候就不断地涉及到时态和语态
房室传导障碍可由于病理性传导阻滞引起;也可因生理性干扰所致;但有时还可能在病理性阻滞的基础上,由于合并有干扰而引起阻滞程度加重的伪象。此种现象的识别对临床病情及预
摘要: 在Excel中对图像信息的处理,根据需要可以将图像信息存储在Excel文件内,也可以将图像信息存储在外存储器中的其它位置,从而独立于Excel文件存在。这样可以使不同类型的信息存取在结构上更加清晰,方便信息的组织管理,同时也减少文件本身太大而引起的维护不便等一系列问题。  关键词: 定义名称;函数嵌套;VBA  中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2011
摘要: 在硫酸的介质中,以硫酸铜为催化剂,硫脲为还原剂,硫氰酸钾显色,结合流动注射技术,在460nm的波长下用分光光度法能快速、便捷的在线检测出Na2WO4溶液中钼离子的浓度。  关键词: 钼;钨酸钠;流动注射;分光光度  中图分类号:TF841.1 文献标识码:A 文章编号:1671-7597(2011)0520084-01    0 引言  目前传统上的手工检测钨酸钠溶液中钼的方法是:在样品中
摘要: 中学英语书面表达作业的批改是一项很艰巨的工作,对于如何做好这项工作,有效地提高学生的表达能力,本文从几种批改策略方面作了探讨。  关键词: 英语书面表达作业批改批改策略    在教学过程中,布置作业是教师检查教学效果和获得信息反馈的一个重要环节,而批改作业则是教师在课后与作为个体的学生进行信息交流的有效手段,通过作业批改,能够了解学生存在的问题所在,有效地采取各种措施,有的放矢地与学生进行
两组同性恋的男性患者,胸片证明有纵隔和/或肺门淋巴腺增大。30例弥漫性淋巴腺病综合征胸片上未发现胸内淋巴腺增大,45例获得性免疫缺陷综合征中其中9例有胸内淋巴腺增大。
一、教学内容本节课的教学内容是《新标准英语》(一年级起点)Book 9 Module 3 Today Is Halloween。二、学情分析万圣节是许多中国小学生有所了解的一个西方节日,这为本节课
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥