MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)

前文回顾

MultiRow发现之旅(一)- 高效模板设计器

MultiRow发现之旅(二)- 详解属性管理器

MultiRow发现之旅(三)- 模板管理器和Table

MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)

MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码)

 

本文将使用MultiRow实现票据开发功能,模拟大家都很熟悉的“中国移动通讯公司”的展示发票。效果图如下:

打印为xps格式并用XPS Viewer打开,效果如下:

 

发票模板设计

现在就动手设计发票模板吧。在工程中心添加一个windows窗体,命名为“发票窗体”,在设计器中拖放一个MultiRow和一个按钮。

然后添加新模板并且进入新模板的编辑界面。(如果你对如何添加新模板以及编辑模板不熟悉,建议参考之前的几篇MultiRow系列文章。)如图所示:

下面开始编辑发票模板。在模板设计器点右键:添加->ColumnFooter, 添加一个ColumnFooterSection,稍后会用来做发票的底部。

1. 选中ColumnHeaderSection1,在属性窗口中把BackColor属性设为白色,这是为了在打印的时候和纸的颜色保持一致。同样的处理RowSection和ColumnfooteSection.

2. 选中ColumnHeaderSection1, 在属性窗口中展开DefaultCellStyle属性,并把ForeColor设为下图所示的颜色:

这样就能使其上面的Cell的ForeColor默认变成橙色了,就不用每个cell都去设一次ForeColor了。 同样处理RowSection和ColomnFooterSection。

3. 先拖放一个ImagCell到columnHeaderSection上,作为logo。

4. 然后拖放Label来摆成这个样子:(其中图中红色的两个cell需要在属性窗口中将Forecolor改为红色)

5. 拖放一个PrintInfoCell到图中“缴费日期”的后面:

并在属性窗口中,设置FormatString:

这表示在打印的时候,打印出当前的日期。我们再手动编辑一下这个字符串,把其中的斜杠替换成“年”,和“月”,并在最后加上“日”:

展开Style将ForeColor设为蓝色。

设置之后是这个样子:

6. 在拖放一个Labelcell到下图的位置,作为剪裁线:

在属性窗口中,Value属性设置为“剪裁线”,并展开Style。

设置TextVertical属性为True。

设置UseCompatibleTextRendering属性为True。

点开Border属性后面的编辑器。在弹出的边框对话框中选择普通边框,然后选择蓝色,并选择一种虚线设值给左边框:

然后确定,关闭对话框。设置后的效果:

7. 拖放一个ImageCell,作为Value设为收费专用章的图片。

这个发票头基本完成了。最后一步去掉所有这些Cell的边框。点击ColumnHeaderSecion的空白地方(不要点击到Cell上)选中ColumnHeaderSecion. 然后在属性窗口中展开DefaultCellStyle属性,点开Border属性的编辑器,选择普通边框,点击“无”,然后点击确定,关闭对话框。至此发票的抬头就完全做好了。

8. 现在来编辑发票的主体。

从工具箱中选中Table,然后在模板上拖放一个较大的Table:

选择相应的Cell,然后鼠标右键选择“合并”,把table的Cell合并成下面的样子:

输入相应的文字:

其中蓝色的Cell都需要把Style中的Forecolor改为蓝色。用红框标明的cell,其中的文字都是设置的它们的DesignTimeValue属性。其余的都是设置的Value属性。

图中的2号Cell还设置了Font的大小,并把Style中的TextVertical和UseCompatibleTextRendering属性都设为了true。

把图中的3,4,5号Cell分别命名为”姓名”,“电话”,”日期”。

再把途中3号框中的Cell从上到下,Name属性依次设值为:”市话费”,“来电显示费”,“短信息费”,“GPRS费”,“长途费”。效果如下:

图中的1号Cell需要先替换成一个SummaryCell(选中这个Cell,鼠标右键,选择置换->标准Cell->SummaryCell)。SummaryCell的Calculation属性设置为Expression, ExpressionString设置为:“市话费+来电显示费+短信息费+GPRS费+长途费”:

在RowSection上的空白地方按下鼠标左键,拖拽到table中,松开鼠标,此时整个Table被选中了,

在table上点鼠标右键,选择边框. 在弹出的边框编辑器中选择“圆角边框”,并选择如下图所示的颜色和线条样式,点击外边框:

然后点击确定关闭对话框。完成之后是这个样子:

再次选中整个table,然后点右键选择“拆分成自由Cell”:

现在在依次调整每个Cell的边框和位置为下面的样子:

(拖拽的过程中,细心的笔者发现自己写了一个错别字,于是改正之^_^,亲爱的读者你能看出来吗。)

接下来在把右面的剪裁线和发票存根做出来吧:(详细步骤就不多说了,跟上面的类似.)

将“本次缴费”后面的Cell命名为“缴费”,把“积分”后面的Cell命名为“积分”:

“本次结余”后面的Cell是一个SummaryCell, 它的Calculation设为Expression, ExpressionString设置为“缴费-summaryCell1”:

到这里,发票主体就完成了。

最后在ColumnFooterSectin上做出发票的落款(详细步骤参考前面的):

好了,最后看一下整体效果图吧:

是不是很不错呢?

 

发票打印

现在来处理发票打印的动作。回到发票窗体的设计器。调整Multirow的大小到刚好能显示全部发票内容。

双击打印按钮,添加事件处理代码:

在发票窗体中给发票窗体类添加如下方法:

最后,切回主窗体的设计器,查看代码, 找到最开始的“显示打印发票界面()”函数:

加入以下代码:

好了 ,到这里整个收费系统就大功告成了,运行起来看看效果吧。

源代码

票据应用

MultiRow 6.0 中文版

时间: 2024-08-02 01:45:54

MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)的相关文章

基于spring+hibernate+JQuery开发之电子相册(附源码下载)_java

项目结构: 开发之电子相册(附源码下载)_java-spring hibernate源码"> 项目首页: 注册页面: 上传图片: 效果图一: 效果图二: 效果图三: ============================================================= 下面是代码部分 ============================================================= 需要用到的数据库SQL: 复制代码 代码如下: drop dat

mac下dashboard小控件开发实例(附源码)

1.背景          用mac的用户都应该知道,mac有一个很好的功能,就是dashboard小控件的功能,按下F12键就可以自由切换.博主最近在背GRE单词,就尝试这开发了一个背单词的dashboard小控件.效果如图 2.步骤   (1)安转dashcode          这个是开发工具,用起来有点像xcode, 下载地址:https://developer.apple.com/downloads/index.action     (2)打开dashcode,新建项目      

MultiRow发现之旅(七)- 套打和打印

前文回顾 MultiRow发现之旅(一)- 高效模板设计器 MultiRow发现之旅(二)- 详解属性管理器 MultiRow发现之旅(三)- 模板管理器和Table MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码) MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码) MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)     前面的一些文章介绍了如何使用MultiRow设计模板,以及完成一个简单的数

MultiRow发现之旅(五)- MultiRow版俄罗斯方块(exe + 源码)

前文回顾 MultiRow发现之旅(一)- 高效模板设计器 MultiRow发现之旅(二)- 详解属性管理器 MultiRow发现之旅(三)- 模板管理器和Table MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)     之前的文章讨论了不少MultiRow技术细节,相信大家都有点累了,今天轻松轻松,玩玩游戏,看你能玩到多少分.   俄罗斯方块(MultiRow版)1.0游戏界面如下:   玩法: 左右键控制方向. 上键顺时针旋转. Shift键逆时针旋

MultiRow发现之旅(三)- 模板管理器和Table

前文回顾 MultiRow发现之旅(一)- 高效模板设计器 MultiRow发现之旅(二)- 详解属性管理器   模板管理器 当模板中Cell比较多的时候,你往往会眼花缭乱,这时"模板管理器"就特别有用.请点击该工具栏中的第一个按钮,就能打开"模板管理器"工具窗口了(通过点击VisualStudio菜单的"视图"-->"其它窗口"-->"模板管理器 6.0"也能打开,"属性管理器&qu

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)

转载请说明原出处,谢谢~~           上一篇仿酷狗日志结束后,整个换肤功能就只剩下调色板功能没有做了,我本以为会很简单,但是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子:         我原本以为酷狗的主界面只是一张图片,然后通过鼠标坐标来选择颜色,简单粗暴.等我开始做这部分时发现情况不一样.         可以看到,酷狗的调色板分为两部分,上半部分是调色板的主界面,下半部分是调整亮度的工具栏,我这里分别给他们起名为Pallet和Bar方便说明.这个

仿酷狗音乐播放器开发日志二十二 动态调色板控件第二版(性能大幅提升附源码)

转载请说明原出处,谢谢~~         在上次写的博客<仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源码)>发布后,我在群里和网友讨论这个控件的性能和优 缺点,发现了他很多不足,还有很多提升空间,之后我简单的修改了代码提升了控件的响应速度.        昨天网友"风之羽翼"联系到我,他在我原来写的控件基础上,对绘图的算法进行重写,大幅提升了控件的绘制速度,算法也精准了很多,最终的控 件效果要比原酷狗更加流畅,于是今天把新的控件代码上传,供感兴趣的朋友使用.在

C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

原文:C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码 前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows Phone和Mac App. Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者--C#与·NET框架的开源.跨平台实现. (以上摘自百度百科) 那么什么是Xamarin.

一个node+express+socket.io开发的聊天室源码

首先是下载包: npm install express npm install socket.io 建立文件:   开发的聊天室源码-express socket聊天室">   服务器端代码:server.js    代码如下 复制代码 var http=require("http"); var express=require("express"); var sio=require("socket.io"); var app=ex