开发篇--设计小票打印机报表
今天笔者就带大家看一下,如何使用泛普培训学校管理软件,设计出符合小票打印机的票据格式。泛普培训学校管理软件里,默认采用的是剪切型大小收据联打格式,应当是为喷墨或激光打印机准备的。但是培训管理软件平台支持修改打印格式,并且有专门的语法,所以我们完全可以自己动手,设计自己个性化的样式。
登录培训管理软件,分析>打印模板,我们可以看到系统内置的模板,编辑这些模板即可以达到修改报表的目的。首先我们了解一下泛普报表的简单语法,在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销售——最好也是最坏的行业
- 3如何将实战培训进行到底
- 4应用篇-串口读卡器硬件的安装
- 5泛普培训管理系统系列专用主机空间正式推出
- 6人才培训现状堪忧 多数成“赔训”
- 7企业如何避免员工“翅膀硬了就飞”
- 8好消息,泛普迎新年优惠活动开始了!
- 9培训学习管理系统功能说明
- 10培训管理系统4.0[2006-8-4]补丁包
- 11中小企业渠道管理面临的难题
- 12泛普私立院校版提供测试版了~~
- 13成为优秀销售人员方法:让销售化于无形字号
- 14实现通信企业发展与员工成长的新方法
- 15企业员工的人性化管理
- 162.0893网上报名更新解读!
- 17酒店员工培训设计思路
- 18茶水间的“生产力”
- 19“中国式培训”的相关争议
- 20培训管理软件Access与SQL server版数据库的区别
- 21员工心态培训,比技能培训更重要
- 22培训管理系统4.0.6版本说明
- 23如何激发创造力
- 24企业培训之“重病”
- 25培训课程设计应注意“三性”
- 26春节假期安排
- 27走出企业培训的“十月围城”
- 28管理培训的迷茫和纠结
- 29企业培训论人才之重要性
- 30培训管理系统V5.0.6升级说明(重要)
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼


