Microsoft Word doc

Similar documents
3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

投稿類別:電子工程類

VB控件教程大全

穨文件1

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

ThreeDtunnel.doc

穨ac3-4.PDF

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

Microsoft Word - 小心翼翼的二十一點N.doc

2

TC35短信发送程序设计

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

ebook42-13

多層次傳銷與獎金系統

VB程序设计教程

Visual Basic D 3D

Excel VBA Excel Visual Basic for Application

前言

四川省普通高等学校

WQ.s92

REPORT ID: SS-220D COMPILED BY: HONG KONG HOUSING SOCIETY 香港房屋協會 PROJECT:THS2018 HONG KONG HOUSING SOCIETY 香港房屋協會 T-HOME TRANSITIONAL RENTAL HOUSING S

92 (When) (Where) (What) (Productivity) (Efficiency) () (2) (3) (4) (5) (6) (7) em-plant( SiMPLE++) Scheduling When Where Productivity Efficiency [5]

Post-Secondary Student Summer Internship Programme 2016_Chi


Microsoft Word - 文档1

MVB-1001.DOC

Sub 使用 msgbox 函数退出系统 () Dim inreturn As Integer inreturn = MsgBox(" 真的退出系统吗?", vbyesno + vbquestion, " 提示 ") If inreturn = vbyes Then Application.Quit

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

河 北 省 深 化 中 小 学 教 师 职 称 制 度 改 革 工 作 方 案 根 据 人 力 资 源 和 社 会 保 障 部 教 育 部 关 于 印 发 深 化 中 小 学 教 师 职 称 制 度 改 革 的 指 导 意 见 的 通 知 ( 人 社 部 发 号 ) 要 求, 结 合

PowerPoint Presentation

untitled

RUN_PC連載_12_.doc

穨ac3-3.PDF

<4D F736F F D20BAD5D5DCD7E5B4ABCDB3CEC4BBAFB4ABB3D0CFD6D7B4B5F7B2E92E646F63>

2010年3月计算机等级考试四级网络工程师笔试

ebook46-23

目 录 卷首语 认真学习贯彻习总书记重要讲话精神 推动教育实践活动深入开展 特别关注 04 美丽为审计而绽放 要全省野巾帼文明岗冶无锡市审计局青年创新小组侧记 要要 解薇薇 06 炼就野火眼金睛冶 要建湖县审计局坚持创新提升审计能力纪实 要要 严国庆 陈东成 徐洪冰 重点课题 08 地方党政主要领导

Microsoft PowerPoint - OPVB1基本VB.ppt

(HMI) IO A

3. 流 程 管 理 ( 系 统 管 理 员 或 者 教 务 处 管 理 员 主 要 操 作 功 能 部 分 ) 系 统 管 理 员 发 布 的 供 学 校 登 录 人 员 查 看 校 内 公 告 信 息 ; 系 统 管 理 员 审 核 提 前 实 习 的 学 生 申 请 ; 系 统 管 理 员 审

科学计算的语言-FORTRAN95

Microsoft Word - 学字〔2015〕16号

epub 61-2

IsPostBack 2

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

Name of Government Department

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

untitled

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF








1

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持



RUN_PC連載_10_.doc


epub83-1

基于UML建模的管理管理信息系统项目案例导航——VB篇

1.5招募说明书(草案)

2 3. 1,,,.,., CAD,,,. : 1) :, 1,,. ; 2) :,, ; 3) :,; 4) : Fig. 1 Flowchart of generation and application of 3D2digital2building 2 :.. 3 : 1) :,

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

概述

( CIP) /. - :, ( 21 ) ISBN H ( CIP) ( 2004) ( ) ( : ) /

概述

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

自动化接口

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Microsoft Word - A doc

目錄

彩圖 6 彩圖 7 彩圖 8 3

Microsoft Word tb 赵宏宇s-高校教改纵横.doc

中国人民大学公共管理大专业考研必读信息(公共管理学院部分)

三、育明考博总结中共中央党校考博复习策略(育明教育考博课程中心)

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

untitled

高尔夫赌博现金棋牌,能赚现金的棋牌游戏 街机赌博游戏 真钱的棋牌游戏,30

幻灯片 1

目 录 一 相 关 政 策... 1 河 南 财 经 政 法 大 学 实 验 室 建 设 与 管 理 办 法... 1 河 南 财 经 政 法 大 学 实 验 教 学 管 理 规 定... 4 河 南 财 经 政 法 大 学 政 府 采 购 管 理 办 法... 9 二 规 章 制 度... 15

AL-M200 Series

Oracle高级复制配置手册_业务广告_.doc

全国计算机技术与软件专业技术资格(水平)考试

indd

Microsoft Word - ch04三校.doc

1 Internet [1]P Web Service Web Service Web XML HTTP URL 1..NET Framework.NET Framework Web Service HTTP 80.NET Framework 2

目 录 第 一 部 分 毕 业 设 计 / 毕 业 实 习 工 作 计 划 总 则 成 立 毕 业 设 计 毕 业 实 习 工 作 领 导 小 组 毕 业 设 计 时 间 安 排...4 第 二 部 分 毕 业 设 计 任 务 书 毕


Microsoft Word - CX1000-HMI_程序开发_PLC通讯

untitled

24 第 3 章 创 建 Access 数 据 库 和 表 3.1 创 建 Access 数 据 库 Access 2003 中 的 数 据 库 属 于 关 系 型 数 据 库, 以.mdb 为 文 件 的 后 缀, 建 立 一 个 数 据 库 的 同 时, 就 创 建 了 数 据 库 中 的 对

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

twfhsec101hpuigqegtpjnhg.doc

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

Transcription:

基于 ifix 的 Excel 报表自动生成与制作 - 1 - http://www.paper.edu.cn 孟昭晋 1 2, 张红星 1 南京河海大学电气工程学院 ( 210098) 2 扬州惠通化工技术有限公司 (225009) E-mail:mengzhaojin@163.com 摘要 : 本文基于某化工生产项目, 利用 if1x 软件自身集成的 VBA 标准脚本语言以及 ADO 技术, 控制 Excel 根据要求生成多种报表以及预览打印报表 关健词 :ifix VBA ADO Excel 报表 1. 引言 本文基于国家 863 计划 的某化工项目, 根据厂方的要求, 需要对操作员的操作记录以及采集到的工艺参数进行筛选并能直接生成并制作出符合报表要求, 可以直接打印的报表, 我们对此要求通过内嵌在 ifix 中的标准脚本语言 VBA(Visual Basic for Applications) 获取 Excel 的控制句柄, 编写直接控制 Excel 操作的程序, 制作我们熟悉的并且符合中文习惯的 Excel 报表, 避免使用操作起来麻烦, 中文处理能力也不理想的 Crystal Reports 程序输出报表 下面通过实例来介绍 Excel 报表的制作过程 2.Execl 报表生成及制作 VBA 是一种易学易用, 编程简洁的开发工具语言, 通过它, 我们可以轻松的扩展 ifix 的功能, 使用 VBA 控制 Excel 生成并制作报表 2.1 本文用到的 Excel 对象 Excel 对象模型包括了 128 个不同的对象, 这里我们用到其中的四个对象 (1) Application 对象 Application 对象处于 Excel 对象层次结构的顶层, 表示 Excel 自身的运行环境 (2) Workbook 对象 Workbook 对象直接地处于 Application 对象的下层, 表示一个 Excel 工作薄文件 (3) Worksheet 对象 Worksheet 对象包含于 Workbook 对象, 表示一个 Excel 工作表 (4) Range 对象 Range 对象包含于 Worksheet 对象, 表示 Excel 工作表中的一个或多个单元格 2.2 生成并制作 Excel 报表 生成报表的界面如图 1, 其中还包括了对 Access 数据库在系统级加密基础上的再加密功能按钮 ( 它文介绍 ) (l) 首先在 VBE 编译环境中引用 Microsoft Excel 类型库 : 从 工程 菜单中选择 引用 栏, 选择 Microsoft Excel 9.0 Object Library(Office 2000 对应 9.0 版本 ) 和 Microsoft ActiveX Data Objects 2.5 Library (2) 自动生成自命名 Excel 文件 这里通过生成报表时调用过程 CreatXls 实现

CreatXls 关键代码 : ' 首先定义我们所要使用的 Excel 对象 Public xlapp As Excel.Application ' 应用 Public xlbook As Excel.Workbook ' 工作薄 Public xlsheet As Excel.Worksheet ' 工作表 Set xlapp = CreateObject("Excel.Application") ' 定义 Xls 对象 Set xlbook=xlapp.workbooks.add' 定义工作簿对象 Set xlsheet =xlbook.worksheets(3)' 定义工作表对象 xlsheet.cells.numberformatlocal = "@"' 设置为文本格式 ' 生成文件保存路径 Dim Path As String Dim Name As String Name = Textbox2.Value Path = "E:" + "\" + text http://www.paper.edu.cn 图 1. 报表生成及制作界面 xlbook.saveas (path)' 当前程序目录 "E:\Name.xls" xlbook.close (True) ' 按内容变化关闭 xlapp.quit' 关闭创建的文件 Set xlbook = Nothing Set xlapp = Nothing Set xlsheet = Nothing - 2 -

- 3 - http://www.paper.edu.cn ' 确认文件是否生成 Dim ReturnValue As Variant Dim IsOK As Boolean IsOK = True GoTo Exit_Sub' 创建 XLS 文件后退出 Exit_Sub: xlbook.close (False) ' 不按内容变化关闭 If IsOK = True Then MsgBox " 生成 Excel 成功!", vbokonly + vbinformation, " 消息 :" ReturnValue = Shell("Explorer," & App.path, vbnormalnofocus) ' 查看当前路径 (3) 报表制作 同样要首先定义我们所要使用的 Excel 对象, 这里不再赘述 关键代码如下 [1] : ' 利用 ODBC 和 ADO 技术访问要读取数据生成报表的数据库 如操作记录数据库 Record, 报警数据库 FIXALARMS 等 Dim cn As New ADODB.Connection Dim rst As New ADODB.Recordset Set cn = New ADODB.Connection Set rst = New ADODB.Recordset cn.cursorlocation = aduseclient cn.open "Provider=MSDASQL.1;Persist Security_ Info=true;Data Source= 数据库名 ",, " 密码 " rst.cursortype = adopenkeyset rst.open "select*from hist where 标签名 ='"_ & (textbox5.text) & "'", cn, adopenkeyset,_ adlockoptimistic adlockreadonly' 按标签名筛选数据 rst.open "select * from hist where 工号 ='" _ &(textbox4.text)&"'",cn,adopenkeyset,adlock_ Optimistic adlockreadonly' 按工号筛选数据 rst.open "select * from hist where 时间 ='" _ &(textbox3.text)&"'",cn,adopenkeyset,adlock_ Optimistic adlockreadonly ' 按时间筛选数据 如果数据库为 Access 则 &(textbox3.text)& 应为 #(textbox3.text)# ' 判断文件是否存在 Dim fs As New filesystemobject Path = "E:" + "\" + Name If fs.fileexists(path) Then MsgBox " 文件存在!" Exit Sub Else Call creatxls GoTo Continue

http://www.paper.edu.cn End If Continue 关键代码 : xlapp.visible = True 'Excel 可见 xlsheet.range("g1") = " 报表生成时间 : " & Now()' 在 G1 单元格生成报表时间 xlsheet.range("a1:f1").mergecells = True' 合并第一列 A1 到 F1 的单元格 xlsheet.cells(1, 1).Interior.ColorIndex = 2 ' 设置第 2 行底色为蓝色 xlsheet.cells(1, 1).Font.Name = " 黑体 " xlsheet.cells(1, 1).Value = textbox2.value ' 在 textbox2 中输入需要的表头, 表头是一份报表的关键部分 xlsheet.cells(1, 1).Font.Bold = True ' 标题字体加粗 xlsheet.cells(1, 1).HorizontalAlignment = xlcenter ' 表头在单元格中居中以下以读取 Access 数据库生成 Excel 报表为例 : Dim Line As Long ' 记录 Excel 行数 Dim Column As Long ' 记录 Excel 列数 Dim rstcount As Long ' 记录 Access 行数 Dim rstfield As Long ' 记录 Access 列数 Dim scellvalue As String ' 将筛选过的 Access 数据从读取到 Excel 中 rstcount = rst.recordcount rstfield = rst.fields.count Line = 2 ' 写列头 For Column = 0 To rstfield - 1 scellvalue = rst.fields(column).name xlsheet.cells(line, Column + 1) = scellvalue Next Column DoEvents ' 给下一个执行让 " 道 " For Line = 3 To rstcount + 1 For Column = 0 To rstfield - 1 scellvalue = rst.fields(column) xlsheet.cells(line, Column + 1) = scellvalue Next Column rst.movenext ' 下一行数据 Next Line For Column = 1 To rstfield xlsheet.columns(column).autofit' 自动调整列 xlsheet.range(cells(1,1),cells(rstcount+1,rstfield))_.borders.linestyle = xlcontinuous ' 设表格边框样式 Next ' 输出该表 xlbook.save ' 保存 - 4 -

http://www.paper.edu.cn 生成报表如图 2, 图 3 和图 4: 2.3 报表打印生成了工作表后, 就可以对 Excel 发出打印指令了 注意在执行打印操作之前应该对 Excel 临时文件执行一次保存操作 图 2. 按工号报表 图 3. 按时间报表 图 4 按标签名报表 如下语句 : xlbook.save ' 保存文件 xlsheet.printout ' 执行打印 x1app.quit ' 退出 EXCEL 语句 xlsheet.preview 可以实现打印预览 3. 结束语 到此为止我们己经利用 ifix 的脚本语言 VBA 通过 ADO 技术引用 Excel 对象实现了报表自动生成和制作 我们这里是直接通过 ADO 从 Access 取得数据写入 Excel 单元格, 当然也可以从 ifix 的过程数据库中读取标签值做成 Excel 报表 - 5 -

http://www.paper.edu.cn 总之, 取得的任何数据都可以通过以上的方法做成 Excel 报表 参考文献 [1] Visual Basic 开发指南一 ADO 篇,Mike Gunderloy 著, 电子工业出版社. Automatic Make of Report Forms With Excel Based On ifix Meng Zhaojin 1,Zhang Hongxing 2 College of Electric Engineering of Hohai University, Nanjing, (210098) HuiTong Chemical Industry Technique CO.,LTD,Yangzhou,(225009) Abstracts The paper which based on a chemical manufacture introduces the method of controlling Excel to automatically make and print report forms with VBA and the technology of ADO in ifix. Keywords: ifix VBA ADO Report Forms of Excel 作者简介 : 孟昭晋 (1982 年出生 ), 山东即墨人 现为河海大学电气工程学院在读研究生, 研究方向为工业控制 - 6 -