开发篇--设计小票打印机报表
今天笔者就带大家看一下,如何使用泛普培训学校管理软件,设计出符合小票打印机的票据格式。泛普培训学校管理软件里,默认采用的是剪切型大小收据联打格式,应当是为喷墨或激光打印机准备的。但是培训管理软件平台支持修改打印格式,并且有专门的语法,所以我们完全可以自己动手,设计自己个性化的样式。
登录培训管理软件,分析>打印模板,我们可以看到系统内置的模板,编辑这些模板即可以达到修改报表的目的。首先我们了解一下泛普报表的简单语法,在head标签之间有一段控制打印机的标签。
<pagesetting>
<landscape>false</landscape>
<paperkind>Custom</paperkind>
<paperwidth>5.5cm</paperwidth>
<paperheight>11cm</paperheight>
<pageleft>1mm</pageleft>
<pageright>5mm</pageright>
<pagetop>8mm</pagetop>
<pagebottom>5mm</pagebottom>
<fontname>宋体</fontname>
<fontsize>7</fontsize>
<doctype>1</doctype>
<resolutionkind>3</resolutionkind>
</pagesetting>
Landscape 标签用于设置打印机纸张是横向还是纵向走纸。True 表示横向,False表示纵向。
Paperkind 标签用于设置打印机纸张类型,取值范围见(附录1)当取值为Custom时,控件将按paperwidth,paperheight标签设置的纸张名称创建自定义纸张。
Paperwidth 标签用于设置自定义纸张的宽度,最小及默认单位为mm。
Paperheight标签用于设置自定义纸张的高度,最小及默认单位为mm。
Pageleft 表示左边距,最小及默认单位为mm。
Pageright 表示右边距,最小及默认单位为mm。
Pagertop 表示顶部边距,最小及默认单位为mm。
Pagerbottom 表示底部边距,最小及默认单位为mm。
Doctype 表示选择打印机类型,1为票据打印(如:针式打印机),2为卡证打印,3为普通打印。
ResolutionKind 表示打印的清晰度,值越小分辨率越高,同时也很耗材。
因为小票打印机支持的纸张宽度,通常只有5.5cm,所以我们把Paperwidth的值设置为5.5cm,高度我们可以设置为11cm。这个时候我们可以想象,现在有一张5.5cm X 11cm的白纸,我们将在上面描绘我们的小票了 :P,在body标签之间将设计报表的正文。
首先我们设计标题,语法如下:
<span x="0" y="0cm" style="width:4.5cm; height:1cm;text-align:center;font-size:18;font-family:黑体;">消费单</span>
x表示这段文本出现的水平方向位置,默认单位mm,y表示垂直方向的位置。style标签里定义了这段文件的宽、高、对齐方式、字号、字体样式。语法看上去是不是很像HTML与CSS。
然后我们设计一些学员信息与单号信息,代码如下:
<p x="0cm" y="0.8cm" style="width:5cm;height:1.5cm;font-width:100%; line-height:120%;text-align:left">
姓名:<xsl:value-of select="ds/Bill/StudentName" /><br />
学号:<xsl:value-of select="ds/Bill/StudentID" /><br />
日期:<xsl:value-of select="String:FormatDate('{0:D}',ds/Bill/DateAndTime)" /><br />
流水号:<xsl:value-of select="ds/Bill/BillID" />
</p>
这是一个段落标签P,x,y,style属性意义同上,P标签里支持<br />换行标签,泛普报表里采用了XSL语言来处理数据。后台数据源XML在泛普说明书里有提供。关于XSL语言用法大家可以上网查查,比较简单。
接着我们将设计报表最关键的内容,数据列表,代码如下:
<table x="0cm" y="2.3cm" style="border:0.2mm" minlines="6">
<thead class="thead">
<tr height="0.5cm">
<td width="2.5cm">收费项</td>
<td width="1.2cm">单价</td>
<td width="0.8cm">数量</td>
</tr>
</thead>
<tbody>
<xsl:for-each select="ds/BillItem">
<tr height="0.5cm" style="border-top-width:0mm;border-bottom-width:0mm;">
<td width="2.5cm" style="border-left-width:0.5mm;">
<xsl:value-of select="ProductName" />
</td>
<td width="1.2cm">
<xsl:value-of select="String:FormatNumber('{0:c}',UnitPrice)" />
</td>
<td width="0.8cm" align="center" style="border-right-width:0.5mm;">
<xsl:value-of select="Amount" />
<xsl:value-of select="UnitName" />
</td>
</tr>
</xsl:for-each>
<filltr height="0.5cm" style="border-top-width:0mm;border-bottom-width:0mm;">
<td width="2.5cm" style="border-left-width:0.5mm;">
</td>
<td width="1.2cm">
</td>
<td width="0.8cm" style="border-right-width:0.5mm;">
</td>
</filltr>
</tbody>
<tfoot class="bottom" style="border-top-width:0.5mm">
<tr height="1cm">
<td width="4.5cm" style="text-align:left">
优惠:<xsl:value-of select="String:FormatNumber('{0:c}',ds/Bill/Favourable)" /><br />
实收:<xsl:value-of select="String:FormatNumber('{0:c}',ds/Bill/Payed)"/><br />
单位盖章:______________
</td>
</tr>
</tfoot>
</table>
这一段笔者是从泛普默认的报表直接修改过来的,修改方法,主要是通过修改Table标签的行,列,宽度高度实现的。
Maxlines 表示每页显示数据项行数。Thead 表示表格头部,Tbody 表示数据项,Tfoot 表示表格底部,同时此报表还支持通过class属性来引用样式表,这一点同html+css中是相同的。
通过上面的简单修改,笔者的小票打印格式就实现了,贴几张图让大家看看效果:
本文章参考相关资料:
泛普培训管理软件SWT 2.0 使用说明书
泛普报表语法 v1.0
报表下载(下载后把templet文件夹内的文件复制到系统的Report/templet目录中,代替原文件)
- 1如何向上司提建议并受器重?
- 2培训管理系统4.0[2006-6-22]补丁包
- 3企业职业培训的实施方略
- 4企业培训如何保持效果
- 5培训管理软件成功为新加坡定制开发培训管理系统!
- 6培训“潜”规则你知道多少
- 7应用篇--托管用户无法访问服务器的原因
- 8SWT2数据库开发手册发布了!
- 9培训管理游戏:懂得“找茬”也是一种工作能力
- 10有的放矢做好新职工上岗前的培训工作
- 11用测评工具帮助员工职业发展
- 12杭州市9年培训9万企业经营管理人才
- 1325至34岁职场女性亚历山大
- 14HR:防止陷入新员工培训的期大误区
- 15名企企业培训工作经验
- 16应用篇-如何让收据上显示班级信息
- 17新员工值得培训吗
- 18培育创新人才的必要方法
- 19教师培训信息管理软件?
- 20定方向,树目标是成功的基础
- 21警惕职场中最幼稚的10种心理
- 22商业成功的秘诀:打造良好的合作关系
- 23西门子的团队建设如何炼成
- 24培训管理系统 2007 新特性
- 25企业培训人才需要好的环境
- 26OA软件艺术培训管理软件的主要功能有:
- 27企业培训管理需要注意哪些问题
- 28奖励无效,惩罚有效
- 29怎样更好地实现企业培训的效果
- 30如何将自己“培训”成为负责任的培训经理
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼