Intouch报表EXCEL报表制作.docx
- 文档编号:4061370
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:370.07KB
Intouch报表EXCEL报表制作.docx
《Intouch报表EXCEL报表制作.docx》由会员分享,可在线阅读,更多相关《Intouch报表EXCEL报表制作.docx(14页珍藏版)》请在冰豆网上搜索。
Intouch报表EXCEL报表制作
用EXCEL打印报表
1.原理
首先根据报表要求,用INTOUCH的附件HISTDATA软件形成一个有规定数据的.CSV文件(逗号分隔文件,可用EXCEL打开)。
这个.CSV文件是英文的,不符合一般报表的要求,只能提供数据。
所以需要另设计一个空的EXCEL报表模版,再将.CSV文件的数据复制到报表中,形成完整的报表。
通过INTOUCH可以自动产生.CSV,再通过EXCEL的宏程序打印报表,可以完成招呼打印和定时自动打印。
如果有多个报表,需要形成多个.CSV文件和设计多个EXCEL报表。
大致步骤如下:
设计报表,确定一个报表的开始时间、时间总长度、个数据之间数据采样间隔,报表参数所对应得的标记名等
(如日报表的开始时间为0点,时间长度为24小时,数据采样间隔时间为小时)
在InTouch中,按报表的需要,用脚本给一组专用的标记名赋值
(如HDWSTARTTIME规定日报表的开始时间,HDWDBDIR规定历史纪录文件的目录,HDWTAGS规定报表内涵的标记名
在InTouch脚本中,用HDWWRITEFILE=1形成一个.CSV文件
用EXCEL设计报表的模版。
在EXCEL中,用记录宏程序,将形成的.CSV文件中的数据导入EXCEL报表模版的数据区,然后打印。
最后在EXCEL中将该宏程序设置为自动执行宏程序
在生成.CSV文件的InTouch脚本中,加入StartApp函数,启动EXCEL印报表
2.生成.CSV文件
Step1:
自动生成需要的标记名
在INTOUCH开发环境中,将向导库中\趋势\历史趋势向导(HistData)放入窗口。
这将自动形成若干标记名(Tag)。
有关标记名以HDW开头加上它们的DDE的ITEM命名。
这些标记名说明如下:
HDWDATADIR消息型历史数据文件的目录的路径名,可用函数赋值
例如HDWDataDir=HTGetLogDirectory();
HDWDBDIR消息型InTouch标记名字典的目录的路径名,可用函数赋值
例如HDWDBDir=InfoInTouchAppDir();
HDWSTARTDATE消息型与$DateString相同格式的数据采样开始日期
HDWSTARTTIME消息型使用24小时时钟的HH:
MM:
SS格式的数据采样开始时间
HDWDURATION消息型数据时间长度(报表时间总长度)
可以用星期,天时,分,秒,等来表示下面是有效的字符:
w星期,d天,h小时,m分,s秒。
允许使用小数值例如扩.5s表示500毫秒若只需一个样本请将DURATION设为0零
HDWINTERVAL消息型采样间隔的时间长度
可以用星期日小时分和秒来表示例如1W表示一星期允许使用小数值例如用.25d来表示6小时
有效字符与HDDURATION相同
注意DURATION和INTERVAL允许的最大时间长度均为6周这适用于所有请求类型日秒等例如如果使用日则最大值为42,7天x6周=42
HDWTAGS消息型历史数据的标记名列表(报表中需要的标记名)
以TagA,TagB,TagZ格式输入,此外采样日期和或时间可以通过使用内部系统标记名$Date和$Time来请求
例如"$Date,TagA,TagB"或"$Time,TagA,TagB"或
"$Date,$Time,TagA,TagB"
HDWTAGS1,TAGS2,....消息型HDWTAGS字符串在WindowViewer中的长度可以为131个字符在Excel中的长度可以为255个字符字符串,可以通过迭加标记名项目Tags1Tags2等来延长以适应更长字符串的要求,如果标记名需附加额外的标记名文本请在字符串末输入一个加号(+)例如,TAGS="$Date,ProdLevel,ProdTemp,+"
TAGS1="ReactLevel,Temp,GasLevel,+"
TAGS2="MotorStatus"
注意不允许使用重复标记名,每个标记字符串的最大长度为512字节
HDWFILENAME消息型规定生成的.CSV文件的路径和名称
例如,C:
\INTOUCH\HDFILE.CSV
HDWWRITEFILE整型当设置为1时HistData会将请求数据写入由FILENAME项目名指定的文件,当文件更新完成后WRITEFILE会自动重置为0零
STATUS离散型显示最后一次操作的状态1表示成功,0零表示出错
ERROR消息型包含上次错误说明的字符串,如STATUS为1则显示无,如STATUS为0零则显示错误消息字符串
前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查状态和错误。
写脚本时应注意:
●HDWDBDir、HDWDataDir这两个标记名是规定路径的,可以用函数赋值。
可以写在应用程序脚本内。
●HDWFilename这个标记名是规定.CSV文件的路径和文件名。
如果只打一种报表,也可以写在应用程序脚本内,否则应在形成.CSV文件前指定。
●HDWTags和后续的HDWTags1、HDWTags2这些标记名是规定.CSV文件的包含的标记名。
如果只打一种报表,也可以写在应用程序脚本内,否则应在形成.CSV文件前指定。
●HDWStartDate、HDWStartTime这两标记名是规定.CSV文件数据的起始日期和起始时间的。
如果是招呼打印报表,人工输入时格式一定要正确。
如果是自动打印报表可以计算得到,一般可以在条件脚本内规定。
●HDWInterval、HDWDuratione这两标记名是规定.CSV文件的数据时间间隔和数据时间的总长度,如日报表分别为:
1H(小时)和1D(1天)。
●HDWWRITEFILE=1为生成.CSV文件,只有上述标记名义赋值后,才执行他。
●ERROR这个标记名可以显示生成.CSV文件时是否有错误,调试时非常重要。
例如:
下面脚本生成一个日期由StartDate1规定,包括两个标记名PI-101,TI-101,日报表。
可以复制在你的脚本中,修改一下就可以形成所需的.CSV文件。
HDWStartDate=StartDate1;
HDWStartTime=”00:
00:
00”;
HDWDBDir=InfoInTouchAppDir();
HDWDataDir=HTGetLogDirectory();
HDWFilename="C:
\REPORT.csv";
HDWTags="$Date,$Time,PI-101,TI-101";
HDWInterval="1H";
HDWDuration="1D";
HDWWRITEFILE=1;
HDWDataDir=HTGetLogDirectory();
HDWDBDir=InfoInTouchAppDir();
HDWStartDate=#DTPicker1.Value;时间控件名称
HDWStartTime="00:
00:
00";开始时间
HDWFilename="C:
\REPORT.csv";
HDWTags="$Date,$Time,zj_AO1,zj_AO2";
HDWInterval="1H";
HDWDuration="1D";
HDWWRITEFILE=1;
Step2:
招呼打印报表的情况
如果是招呼打印(不定期打印,人工输入打印日期和时间的报表打印),则可以在INTOUCH中开一个窗口输入HDWStartDate1,HDWStartTime,HDWInterval,HDWDuration的参数。
并做一个按钮,在动作脚本中给固定的参数赋值和最后令HDWWRITEFILE=1;
脚本的例子
形成的.CSV文件的例子
Step3:
定时自动打印的情况
如果是定时自动打印,需要在条件脚本(或数据改变脚本)中写代码完成。
这里需要特别注意起始日期和时间。
如:
日报表示在0点以后打印的,所以需要通过计算得到前一天的日期,可以用下面语句HDWStartDate=StringFromTime(($Date-1)*86400,1)。
举例:
Step4:
运行INTOUCH,检查生成的.CSV文件。
3.建立EXCEL报表
Step1:
设计一个报表格式。
例如:
先画出报头
在EXCEL导入相应.CSV文件。
找到相应.CSV文件,一步步导入
选逗号分割,
指定导入区域起点单元,
为了更直观,可以用EXCEL的功能加一个趋势图。
Step2:
做一个宏
●选菜单工具\宏\录制新宏,起一个宏名(如mr1),确认。
●由于EXCEL不允许在有数据的区域导入数据,所以先删除前面导入的数据。
选择数据区,按Del键
●在EXCEL重新导入相应.CSV文件。
重复刚才的步骤
●打印和保存(报表需要打印时)或另存(报表不需要打印时)。
●停止记录宏
写VBA脚本,让宏自动执行
●菜单工具\宏\VB编辑器
●双击ThisWorkBook
●在代码区选WorkBook
●在PrivateSub_Open()函数中,加入
Run(“宏名”)
Application.Quit
●关闭VB编辑器,返回Workbook,确定报表的路径和文件名(如c:
\report1.xls),保存报表。
这样,我们的报表就完成了。
一打开这个报表,就会执行宏,然后退出。
在调试时,可以迅速按Atrl+Break键停止宏执行。
注:
在另存的情况下,在宏中找到另存的路径和文件名,用date,tim等变量加到文件名中。
Step3:
用INTOUCH打开报表
在INTOUCH的相应脚本中加一条语句,启动EXCEL:
StartApp"C:
\ProgramFiles\MicrosoftOffice\Office\excel.exec:
\report1.xls";
这里,C:
\ProgramFiles\MicrosoftOffice\Office\excel.exe是EXCEL的路径和文件名,注意EXCEL的版本不同路径不一样。
c:
\report1.xls是报表的路径和文件名,之间有一个空格。
一个日报表的例子。
语句说明:
1)规定报表起始日期,2)规定报表起始时间,3)InTouch的路径,4)存储历史数据文件的路径,5).CSV文件的路径和文件名,6)报表包含的标记名,7)报表的采样间隔,8)报表的时间总长度,9)生成报表,10)启动相应的EXCEL文件。
4.参考应用程序的使用
●将文件REPORT.CSV和report1.xls复制到C盘根目录下。
●测试时可以用Ctrl+Brack,停止EXCEL的宏程序执行,以便观察宏程序是如何写的。
●为了顺利运行EXCEL报表,EXCEL的宏的安全级别已设的最低。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Intouch 报表 EXCEL 制作