zoukankan      html  css  js  c++  java
  • 使用VSTO写的一个工作证打印软件

    转行做HR近2年。最近公司要做工牌,工牌上要打印照片,姓名,工号和部门等信息。一共1000多人,如果手工排版手工打印的话,估计要死人。

    于是coding的老毛病又犯了,想写个程序来打印工牌。还是拿最近比较常用vsto来做office插件程序吧。毕竟这个用起来也顺手,因为没有一个hr不会用excel。

    一,工牌的大体样子

    《图1》

    基本元素:企业名称,照片,姓名,工号,部门,企业理念。当然程序并没有限制工卡的内容,这里只是个例子。实际使用时,你可以根据自己的需要来定义格式,定义要打印的内容。

    二,实现

    想用vsto来做,自然离不开excel。

    1,员工花名册和员工照片是有的。那么就有下面的表了:

    《图2》

    2,报表组件

    想到格式可能要变,因此想找一款比较好用的报表工具来设计格式,展示 并且来打印。

    正好以前项目上用过一款报表软件,也买过授权,锐浪报表。是个小公司出的产品,但是比较好用,并且免费版也能用,设计和显示的时候有水印,打印出来没有水印。足矣满足要求。

    (1)设计下格式(上图,顺便给锐浪做个广告)

    《图3》

    用的是他的自由格式报表,很好使。设计完后保存为一个文本文件。

    这个工具提供了多种开发环境的开发组件,比如 .net下的,我喜欢,很好用。

    3,打印窗口

    先面试打印窗口的ui设计,很简单,就是一个锐浪的打印控件,拖过来就OK。右边属性窗口。

    《图4》

    加载报表的代码,很简单,不解释,看锐浪的文档或离职即可。

    在显示报表的时候,吧数据喂给控件即可,支持xml格式,json格式,直接访问数据库,等等。我是采用的第一种方式,因为数据就在excel中,我只要按照他的格式组织数据给即可。

    4,字段对应

    一个实现的细节,说下。

    在报表格式里,一个数据项,甚至是图片,都是一个字段,field。在上面提到的xml报表数据中,字段的名字就是数据的节点。在组织数据的时候,是从图2的表中读取,因此要定义下报表字段和excel列的对应关系。

    这个对应也是放在excel中的一个sheet中,如下图:

     《图5》

    数据映射配置:eno=A;ename=B;dept=C;epicfile=D;bkground=%background_img%;org=%org_name%;org_statement=%org_statement%

    解释如下:eno(工号)对应A列,ename(姓名)对应B列,。。。。。。。很简单。

    报表格式见第8行,是引用的报表格式文件。其实也可以吧报表格式的内容(文本的)直接放在这里。见第5行。我没有用,直接用的文件。因为excel的单元格容量是32767,报表太大放不大。不过一般不嵌入图片的报表都很小。

    5,打印窗口跑起来的效果

    《图6》

    三,最终的效果

    《图7》

    细心的你可能注意到右边的另外一个奥巴马。这是用office 的 document action panel 实现的一个工卡预览。

    《图8》

    四,赞助

    现在免费程序求打赏比较时髦,我也做了个。

     《图9》

    特别指出,赞助窗口左侧的水粉画,是女儿的涂鸦之作。还不错?打赏一下吧 :>)

    本程序免费使用,欢迎来信索取。rgener@sina.com。

  • 相关阅读:
    Matrix
    Color the ball
    Coupons
    密码箱
    Milking Grid
    Substrings
    亲和串
    Jzzhu and Cities
    transition多个属性同时渐变(left/top)
    CSS3提供的transition动画
  • 原文地址:https://www.cnblogs.com/senline/p/7067506.html
Copyright © 2011-2022 走看看