VB报表打印.docx
- 文档编号:2607932
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:14
- 大小:544.98KB
VB报表打印.docx
《VB报表打印.docx》由会员分享,可在线阅读,更多相关《VB报表打印.docx(14页珍藏版)》请在冰点文库上搜索。
VB报表打印
VB在打印中的应用
我是个80后,当时接触的编程语音,第一个是basic,第二个是C语音,第三个是VB,当初看VB的时候,很清晰的记得BillGates介绍VB的一句话,使用VB,你可以最快的达到你想要的效果,学着学着,一眨眼,就十多年过去啦。
VB&SQL基本上,可以满足基本的要求,当然了,如果,你想要什么换皮肤,很大工作量,多线程之类功能,VB是很难做到的,而且插件是VB最痛的地方。
好了,说到这里,我介绍一下,我使用VB在打印上面的一些经验吧。
VB本身是带了一个设计器功能的,但里面的功能不敢恭维,不方便,功能小。
在网上找了一段时间,测试了很多插件,终于找到了一个叫ACReport的控件,有一个插件和一个注册文件,ACRptEngineX.ocx,注册ACReport引擎.bat。
这个插件可以利用SQL数据库内容打印操作,或者自定义打印的内容。
下面介绍一下控件的安装:
首先双击ACRptEngineX.ocx,进行安装,
,注意这两个文件,必须放在和程序开发的文件一齐,安装完ACRptEngineX.ocx,然后双击,注册ACReport引擎.bat进行注册,见到*.bat结尾的文件,大家都知道,会弹出command窗口,类似DOS环境的界面,
看到这个界面,就知道,为什么两个文件都要和开发的程序放在一齐了。
安装成功后,打开程序主体软件,添加部件,选择ACRptEngineXLibrary,
会出现ACRptEngineX这个插件
好了,在窗体上一划,就出现。
现在介绍一下属性:
属性里面没有什么好修改的地方,一般我会将visible设置为flase,隐藏控件。
好了,可以进入里面去慢慢设计啦!
在VB里面调用ACRptEngineX,必须写命令,好吧,我来介绍以下命令的语法吧。
DimUserNameSAsString‘定义字符串变量UserNames
UserNameS="fadsfa"’赋值
ACRptEngine1.AddSysVariable"Userns",UserNameS‘这个是在打印文件中添加一个字符串变量Userns,内容是变量UserNameS的内容
ACRptEngine1.AddSysVariable"开票日期",Format(Date,"yyyy")&"年"&Format(Date,"mm")&"月"&Format(Date,"dd")&"日"‘也可以直接写内容
ACRptEngine1.Init‘初始化
sql1="select*from发票打印where用户编号='"&userp&"'orderby卡号"
DimmrcAsADODB.Recordset’在使用这句语句的时候,必须在工程->引用,添加MicrosoftActiveXDataobjectsRecordset2.8library
Setmrc=ExecuteSQL(sql1)’这个函数,是我自己写的,后面补上代码,大家可以自己写,就是一般的SQL操作,add,delete,rename之类的。
ACRptEngine1.AddDataSet"发票报表",mrc’调用
ReportPath=App.Path&"\"
whereRe="发票报表.apt"’这个是打印格式文件存放的路径
ACRptEngine1.SetReportFileReportPath+whereRe’设置路径,头一次使用,什么格式都没有,不影响,点击保存,文件就会以发票报表.apt保存,apt是该控件的格式文件。
ACRptEngine1.ShowDesigner’打开设计界面,设计完毕后就可以关闭该功能
ACRptEngine1.Preview‘打开预览,设置完毕后,直接进入打印预览
在按钮里面添加以上代码,然后点解运行,点击按钮,就可以进入设计界面
这里介绍一下设计界面的使用:
界面和功能基本上和Excle差不多的!
操作前,一定要先选取单元格哦!
这里要说一下子报表,这里,可以在表里面再插入报表。
具体用法,日后再介绍。
(大家可以自己研究)
关于插入数据字段:
ACRptEngine1.AddDataSet"发票报表",mrc就是这句的效果!
这里mrc是数据库查询的结果。
是不是很方便!
插入变量,这个Userns就是之前设定的变量啦!
就是这句ACRptEngine1.AddSysVariable"Userns",UserNameS
插入函数,该控件里面提供的控件有很多,也很方便,表达式也很好用!
功能都跟excel差不多,大家很容易把握!
现在介绍一下打印样式,制表十分有用。
文件->报表样式,选择清单报表
在明细数据里下拉选择之前添加的数据库变量,点击明细右边的选择按钮
,跳到行选择界面,
看到没有表头下面多了明细标签行。
预览一下
这里基本上符合了大部分设计者的要求啦!
这里顺便提一下关于通用发票的打印问题,现在的机打通用发票,尺寸一般不是固定的,电费,水费,餐饮,油票等都不一样,所以在设计之前,你必须拿到要打印的发票的准确尺寸,然后在控制面板->打印机和传真->文件->服务器属性里,添加发票的尺寸
好了,基本的功能都讲到七七八八啦!
现在我介绍一下表中表的设计方法。
简单举个例子吧,你手头上有两个移动电话号码,同一个用户名,你想将清单按号码分开打,那怎么办?
哈哈,这时候,表中表就派上用场了!
首先当然是写代码啦
DimmrcAsADODB.Recordset
Dimmrc1AsADODB.Recordset
ReportPath=App.Path&"\"
whereRe="查询话费.apt"
Setmrc=ExecuteSQL("select*from用户信息表")’这里查询的结果是用户的几个电话号码
Setmrc1=ExecuteSQL("select*from打印查询话费where电话号码=’”&mrc.field(“电话号码”)&’”")’这里查询的结果是单个号码的清单,打印的时候也只能一个号码挨着一个号码打印,因为只能在进入表打印,或者表设计前进行变动,所以,打印完一个号码后,退出控件,在程序里,再调用下一个号码的清单,继续打印。
ACRptEngine1.AddDataSet"主表",mrc
ACRptEngine1.AddDataSet"子表",mrc1
ACRptEngine1.SetReportFileReportPath+whereRe
ACRptEngine1.ShowDesigner
ACRptEngine1.Preview
然后到报表设计了,首先新增一页做子表,
然后在相应的单元格(合并单元格,一正行)内,设置其属性如下:
选择子表为刚才的新建的一页。
子表的设计就更之前的一样。
因为只能在进入表打印,或者表设计后,内容是不能变动的,所以,打印完一个号码后,退出控件,在程序里,再调用下一个号码的清单,继续打印。
能知道的都说了,很高兴与大家一齐分享。
控件的分享地址是:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 报表 打印