ifix报表制作文档教学内容Word文档格式.docx

上传人:b****7 文档编号:21818129 上传时间:2023-02-01 格式:DOCX 页数:14 大小:461.96KB
下载 相关 举报
ifix报表制作文档教学内容Word文档格式.docx_第1页
第1页 / 共14页
ifix报表制作文档教学内容Word文档格式.docx_第2页
第2页 / 共14页
ifix报表制作文档教学内容Word文档格式.docx_第3页
第3页 / 共14页
ifix报表制作文档教学内容Word文档格式.docx_第4页
第4页 / 共14页
ifix报表制作文档教学内容Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ifix报表制作文档教学内容Word文档格式.docx

《ifix报表制作文档教学内容Word文档格式.docx》由会员分享,可在线阅读,更多相关《ifix报表制作文档教学内容Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

ifix报表制作文档教学内容Word文档格式.docx

DimcnAsADODB.Connection'

定义一个ADO方式的数据库连接

DimresAsADODB.Recordset'

定义一个ADO方式的数据库记录集

DimStrSQLAsString

Setcn=NewADODB.Connection'

定义cn为新的ADO数据库连接

Setres=NewADODB.Recordset'

定义res为新的ADO数据库连接集

'

OnErrorResumeNext

cn.ConnectionString="

DSN=ReportSource;

UID=;

PWD=;

"

定义cn的连接数据源为ReportSource即ODBC中建立的ACCESS的数据源名

cn.Open

StrSQL="

select*fromReportDataWhere日期=#"

&

Date&

"

#"

使用SQL语句查找ReportData表中日期为Date的数据

res.OpenStrSQL,cn,adOpenKeyset,adLockOptimistic

res.AddNew'

添加一个新的记录

res.Fields(0)=Date'

在0列加入日期

res.Fields

(1)=Hour(Time)'

在1列加入时间

res.Fields

(2)=Fix32.RW2.RW_Y0GBN11AP001_ZS.f_cv'

在2列加入标签1

res.Fields(3)=Fix32.RW2.RW_Y0GBN11AP002_ZS.f_cv'

在3列加入标签2

res.Update'

保存记录Update(当Edit或AddNew方法完成后保存记录集)

res.Close'

关闭记录集

cn.Close

Setres=Nothing

Setcn=Nothing

EndSub

在vb的菜单栏点击工具→引用,添加一下控件:

2.2添加到FixBackgroundServer任务

打开SCU,点击configure→Task如图所示:

在文件名内查找FixBackgroundServer.exe文件添加后保存SCU文件。

2.3在后台任务启动列表中添加调度

点击settings→userpreferences进入如下图界面,添加后台启动项

3同时在Report画面里,添加WEB控件:

4报表生成

在IFIX画面上插入一个按钮。

按钮名称:

CommandButton1

报表生成按钮代码如下:

PrivateSubCommandButton1_Click()

'

DimcnAsADODB.Connection

DimresAsADODB.Recordset

DimxlAppAsExcel.Application

DimxlBookAsExcel.Workbook

Dimxlsheet1AsExcel.Worksheet

Dimxlsheet2AsExcel.Worksheet

DimstrFileNameAsString

DimStrSQLAsString

DimiAsInteger

DimrowAsInteger

DimCreatDayReportAsBoolean

WebBrowser.Navigate"

E:

\空报表.htm"

strFileName="

\ReportView.htm"

预先设计的报表显示模板文件,存放路径C:

\DocumentsandSettings\Administrator\桌面实际看工程存放路径这里是测试

StrSQL="

select*fromReportDatawhere日期=#"

Calendar.Value&

使用SQL语句查询Calendar日历上日期的数据

IfDir(strFileName)="

Then'

判断文件是否存在,不存在则退出

MsgBox"

报表模版文件不存在"

ExitSub

EndIf

Setcn=NewADODB.Connection'

新建连接

连接到ReportSource数据源

cn.Open'

打开连接

Setres=NewADODB.Recordset'

新建记录集

res.OpenStrSQL,cn,adOpenKeyset,adLockOptimistic

Ifres.RecordCount<

=0Then'

RecordCount记录集中记录的数量。

若无法判断记录条数则返回-1

你要查询的数据不存在,可能已被删除"

vbInformation+vbOKOnly,"

系统提示"

res.Close

cn.Close

Else

res.MoveFirst'

将记录指针移动到第一行

SetxlApp=NewExcel.Application'

新建Excel

SetxlBook=xlApp.Workbooks.Open("

SetxlBook=GetObject(strFileName)'

打开模版XLS文件

Setxlsheet1=xlBook.Worksheets

(1)

Setxlsheet2=xlBook.Worksheets

(2)

xlBook.Worksheets.Application.Visible=False'

设置第一张表为可视

xlsheet1.Range("

b4"

"

g27"

)="

b4列g27行清空

xlsheet2.Range("

xlsheet1.Cells(2,"

A"

)=CDate(res.Fields(0))'

获取日期CDate转换为幼小日期

xlsheet2.Cells(2,"

i=0

Whilei<

res.RecordCount

row=res.Fields

(1)+4'

利用时间排序

xlsheet1.Cells(row,"

b"

)=res.Fields

(2)

c"

)=res.Fields(3)

i=i+1

res.MoveNext

Wend

xlApp.DisplayAlerts=False

xlBook.SaveAs"

保存以日报表.htm格式来保存报表

xlApp.DisplayAlerts=True'

将日报表显示出来

xlApp.Quit

Setxlsheet1=Nothing

Setxlsheet2=Nothing

SetxlBook=Nothing

SetxlApp=Nothing

CreatDayReport=True

IfCreatDayReport=TrueThen

e:

EndIf

EndSub

以上对于数据代码部分,添加的数据名称、数量要以本身项目所对数据库为基准。

5保存报表

在IFIX中插入一个按钮,

,命名为:

CommandButton2

保存报表按钮代码如下:

PrivateSubCommandButton2_Click()

DimFileNameAsString

OnErrorGoToerrHandler

DimstrReportAsString

DimmydateAsDate

mydate=Date

strReport="

日报表"

IfMe.DayControl=TrueThenstrReport="

IfMe.MonthControl=TrueThenstrReport="

月报表"

SetxlApp=GetObject(,"

Excel.Application"

IfErr.Number<

>

0Then

SetxlApp=CreateObject("

xlApp.ScreenUpdating=True

Err.Clear

SetxlApp=getobjece(,"

excel.application"

xlApp.ScreenUpdating=True

xlApp.Visible=False

dlgSaveAs.CancelError=True

dlgSaveAs.Flags=cdlOFNHideReadOnly

dlgSaveAs.Filter="

HTML文件(*.HTM)|*.HTM|EXCEL文件(*.xls)|*.xls"

dlgSaveAs.FileName="

C:

\DocumentsandSettings\Administrator\桌面\"

Format(Calendar.Value,"

yyyy-MM-dd"

)&

strReport&

.xls"

FileName="

\"

.xlsx"

dlgSaveAs.Filename=strReport

dlgSaveAs.FilterIndex=2

dlgSaveAs.ShowSave

xlBook.SaveAsFilename:

=dlgSaveAs.Filename,FileFormat:

=xlNormal,Password:

="

WriteResPassword:

ReadOnlyRecommended:

=False,CreateBackup:

=False

xlBook.SaveAsFileName

xlApp.DisplayAlerts=True

xlApp.Visible=True

errHandler:

保存出错!

EndSub

6报表日期查询功能添加

打开IFIX报表画面,点击工具箱TOOLBOX,单击OLE,,选择日历控件:

CalendarControl11.0;

日历控件必须初始化,初始化代码如下:

PrivateSubCFixPicture_Initialize()'

对日历控件初始化

Calendar.Value=Date

至此IFIX报表ODBC已经组态完成,若需要打印报表,则添加打印按钮:

打印按钮代码如下:

PrivateSubcmdPrint_Click()

日报页面设置

IfCalendar.Value=TrueThen

PrintSet"

0.5"

WebBrowser.ExecWB6,OLECMDEXECOPT_PROMPTUSER

打印页面设置代码如下:

PrivateSubPrintSet(sBottomAsString,strTopAsString,sLeftAsString,sMargin_rightAsString)

Dimhkey_root,hkey_path,hkey_keyAsString

DimRegWshAsObject

hkey_root="

HKEY_CURRENT_USER"

hkey_path="

\Software\Microsoft\InternetExplorer\PageSetup"

//设置网页打印的页眉页脚为空

SetRegWsh=CreateObject("

WScript.Shell"

hkey_key="

\header"

页眉

RegWsh.RegWritehkey_root+hkey_path+hkey_key,"

\footer"

页脚

\margin_bottom"

下页边距

RegWsh.RegWritehkey_root+hkey_path+hkey_key,sBottom'

\margin_top"

上页边距

RegWsh.RegWritehkey_root+hkey_path+hkey_key,strTop'

\margin_left"

左页边距

RegWsh.RegWritehkey_root+hkey_path+hkey_key,sLeft'

\margin_right"

右页边距

RegWsh.RegWritehkey_root+hkey_path+hkey_key,sMargin_right'

打印

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1