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