近日帮一位朋友做一个打印银行支票的小程序,从网上查了一下资料,发现这类的程序还真不少,下载下来试用了一下,发现能够对打印内容进行单独调整位置和大小的并不多,故打算自己做一个可以直观地动态调整打印内容的支票打印程序。 拿到朋友提供的支票样本后,参考网上现有的通用支票打印程序,就开始做了,原本以为挺简单顺利的,但实际做起来,却发现问题多多,首先是打印支票的宽度超出了A4纸的宽度,所以用LQ630K横着打印的话,小写金额的后三位数字都打印不出来,参考了网友提供的一些解决办法,最终支票做成竖向打印,这样就不受宽度影响了。但把报表放大了看看,发现小写金额竖着打的话,数字字符都被上下截了一部分,数字看不清了,就这样一个问题,折腾了三天,后来把Memo的AutoWidth设为False,问题解决了。 把大概的设计思路说一下,具体的代码实现参考源码就可以。
1、参考人家现有的程序,设计界面和数据库;
2、考虑到要做成所见即所得的效果,对支票收款人、金额大写、支票用途等打印内容进行动态位置调整 和字号大小调整。首先,用cfg文件(实际是ini文件)把打印内容的各项的坐标和字号大小保存起来,需要调整各项时,直接对cfg文件里对应的坐标进行修改;然后在预览支票的时候,读取调整过的cfg文件里的坐标值,赋给Fr报表里对应的Memo项,即可在预览报表中看到打印项目移动的效果。
3、考虑到要把支票打印做成竖向的,于是另外做了一个竖向的Fr报表,Memo的Rotation都设为270,文字都竖向了,然后再点击“竖向支票”的时候,读取横向时的坐标,经过X和Y的对换换算,得到竖向时Fr报表里各个Memo的坐标,相应的在动态调整时修改坐标,在预览报表前重新读取和换算坐标,这样就实现的竖向的支票打印了。
该程序是做来给朋友用的,没有什么商用目的,呵,有时间了再改改,把它改成可以替换不同银行的 支票样本,估计更适合日常所用。现把代码共享出来,部分功能尚未完善,看哪位有兴趣的指正一下, 或交流修改,其他要求也没什么,希望转载的话注明一下出处就可以了。 |