Grid++Report生成简单的条形码、Excel导出、图表控件 等
-
Grid++Report生成简单的条形码
-
条形码的特点是有文本内容、条码类型、条码宽度和条码高度,通过这几部分构成了条形码。Grid++Report自带有条形码模型,可以利用这个模型创建出不同内容和不同类型的条形码。下面利用一个实例说明创建简单的条形码,操作如下:
-
第一步,双击打开Grid++Report报表工具,查看报表设计工具元素,如下图所示:
-
第二步,在编辑窗口鼠标右键“新建--->报表节--->报表头”,创建一个新的报表头,如下图所示:
-
第三步,在工具栏找到“插入”,插入条形码,如下图所示:
-
第四步,选中条形码,设置宽度为8.00,高度为2.00,如下图所示:
-
第五步,选中条形码,在右侧下方有设置条形码属性,设置条形码类型为“Code93”,如下图所示:
-
第六步,最后设置条形码的文本内容,设置为“0123456789”,设置完毕后预览图形,如下图所示:
-
Grid++Report报表
-
Excel
-
图表控件
-
条形码
-
-
如下图,使用EFW框架开发一张报表,调用框架中GridReport对象把从后台取出的DataTable数据填充到报表中,第二步利用报表工具设计报表文件,运行程序显示报表。
-
Winform程序接收条形码
传统获取条码枪的数据必须焦点定位在文本框上,这样条码的内容才能显示在文本框上,这种做法有点类似外接键盘(其实从消息传送上它就相当于一个键盘),但是如果没有输入焦点,每次得需要鼠标点一下文本框获取焦点,比较频繁的话对使用者来说还是挺痛苦的。我想实现的是,不管什么情况,只要扫描器一工作,我的程序就能自动激活,并能获得当前输入的条形码信息。
实现思路:我用的USB口的条形码扫描器,仔细分析了一下,扫描成功后,以键盘按键消息的形式把条形码输入信息通知给系统。这样通过键盘钩子就可以方便的获得该信息了。但是,怎样区分信息是键盘还是条形码输入的哪?很简单,条形码扫描器在很短的时间内输入了至少3个字符以上信息,并且以“回车”作为结束字符,在这种思想指引下,很完美的实现了预定功能。
解决上面问题,输入条码的时候还会碰到另外一个问题,就是条码肯定不止一种类型,如:员工工号条码、单据条码等,以前的做法就是界面上多摆几个文本框控件,焦点定位哪个文本框就扫描对应的条码;而用上面窗体接收的方式,不需要焦点那就区分不了了;这时候我们需要在条码上下文章了,就是条码生成要定义出一套特定的规则,获取条码后,根据这个规则就能判断哪种类型条码;条码的规则可以是按长度、也可以特殊字符,我这建议每种条码前面带一个字段来区分条码的类型,这种方式比较简单点;
-
Excel导出(NPOI )
使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。
(一)传统操作Excel遇到的问题:
1、如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。
2、Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123。
3、导出时,如果字段内容以“-”或“=”开头,Excel会把它当成公式进行,会报错。
4、Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似1.42702E+17格式,日期列变成包含日期和数字的。
(二)使用NPOI的优势
1、您可以完全免费使用该框架
2、包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等)
3、支持处理的文件格式包括xls, xlsx, docx.
4、采用面向接口的设计架构( 可以查看 NPOI.SS 的命名空间)
5、同时支持文件的导入和导出
6、基于.net 2.0 也支持xlsx 和 docx格式(当然也支持.net 4.0)
7、大量的实例代码
8、你不需要在服务器上安装微软的Office,可以避免版权问题。
9、使用起来比Office PIA的API更加方便,更人性化。
NPOI之所以强大,并不是因为它支持导出Excel,而是因为它支持导入Excel,并能“理解”OLE2文档结构,这也是其他一些Excel读写库比较弱的方面。通常,读入并理解结构远比导出来得复杂,因为导入你必须假设一切情况都是可能的,而生成你只要保证满足你自己需求就可以了,如果把导入需求和生成需求比做两个集合,那么生成需求通常都是导入需求的子集,这一规律不仅体现在Excel读写库中,也体现在pdf读写库中,目前市面上大部分的pdf库仅支持生成,不支持导入。
-
图表控件ZedGraph
ZedGraph 是一个开源的.NET图表类库, 全部代码都是用C#开发的。它可以利用任意的数据集合创建2D的线性和柱形图表。
ZedGraph 的类库具有很高的灵活性。几乎图表的每个层面都可以被用户修改。同时,为了保证类库的易用性,所有的图表属性都提供了缺省值。类库中包含的代码可以根据被划分的数据来选择适应的比例范围和步长、尺寸。 ZedGraph 继承了Framework中的UserControl接口,所以允许用户在VS 的IDE 环境中 进行拖放操作。
-