使用Ifix的图表组(原创)
2017-04-17 19:58阅读:
目的:使用ifix的图表组功能,在窗口打开时自动加载某一指定的图表组,在窗口关闭时,自动保存设定。实现方法:
一、窗口加载时自动加载图表组文件
在CFixPicture_Initialize()里加入代码
CGW_ApplyFileToChart 'ChartGroup1.csv', 'Chart1'
二、窗口关闭时,自动保存设定
由于ifix的图表组功能比较复杂,内部关联较多,使用内置的保存函数使问题变得复杂了。本例通过直接写图表组定义文件达到保存目的,代码如下:
在CFixPicture_Close()调用过程saveChartGroup
Sub saveChartGroup()
Dim strFileToSave As String, objStrMgr as
Object
Set objStrMgr =
CreateObject('iFix_CGW.ResMgr')
strFileToSave =System.FixPath(Htc_Path)
& '\ChartGroup1.csv'
Dim intFileHandle As Long
intFileHandle = FreeFile
If strFileToSave = '' Then Exit Sub
Open strFileToSave For Output As
#intFileHandle
Write
#intFileHandle, objStrMgr.GetNLSStr(CLng(NLS_EXC)),
objStrMgr.GetNLSStr(CLng(NLS_APPLYALL)
), objStrMgr.GetNLSStr(CLng(NLS_DAYSBEFORENOW)),
objStrMgr.GetNLSStr(CLng(NLS_DURATION)),
objStrMgr.GetNLSStr(CLng(NLS_FETCHPENLIMITS)),
objStrMgr.GetNLSStr(CLng(NLS_FIXEDDATE)),
objStrMgr.GetNLSStr(CLng(NLS_FIXEDTIME)),
objStrMgr.GetNLSStr(CLng(NLS_HILIMIT)),
objStrMgr.GetNLSStr(CLng(NLS_HISTORICALSAMPLETYPE)),
objStrMgr.GetNLSStr(CLng(NLS_LOLIMIT)),
objStrMgr.GetNLSStr(CLng(NLS_MARKERCHAR)),
objStrMgr.GetNLSStr(CLng(NLS_MARKERSTYLE)),
objStrMgr.GetNLSStr(CLng(NLS_PENLINECOLOR)),
objStrMgr.GetNLSStr(CLng(NLS_PENLINESTYLE)),
objStrMgr.GetNLSStr(CLng(NLS_PENLINEWIDTH)),
objStrMgr.GetNLSStr(CLng(NLS_SOURCE)),
objStrMgr.GetNLSStr(CLng(NLS_STARTDATETYPE)),
objStrMgr.GetNLSStr(CLng(NLS_STARTTIMETYPE)),
objStrMgr.GetNLSStr(CLng(NLS_TIMEBEFORENOW)),
objStrMgr.GetNLSStr(CLng(NLS_INTERVAL)),
objStrMgr.GetNLSStr(CLng(NLS_DISPLAYMS)),
objStrMgr.GetNLSStr(CLng(NLS_DST_HEAD)),
objStrMgr.GetNLSStr(CLng(NLS_TIMEZONE_HEAD))
Dim objPen
As Object
For Each
objPen In Chart1.pens
Write #intFileHandle, '&&', True,
objPen.DaysBeforeNow, objPen.duration, objPen.FetchPenLimits,
CDate(Format(objPen.FixedDate, 'Short Date')),
Format(objPen.FixedTime, 'Short Time'), objPen.hilimit,
objPen.HistoricalSampleType, objPen.lolimit, '',
objPen.MarkerStyle, objPen.penlinecolor, objPen.PenLineStyle,
objPen.PenLineWidth, objPen.Source, objPen.StartDateType,
objPen.StartTimeType, objPen.TimeBeforeNow, _
objPen.interval / 1000, False, True,
0
Next
Close #intFileHandle
End Sub
PS:使用CGW_ApplyFileToChart加载图表组,速度比较快