1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
| <%
'******************************************************
' CTemplate versie 2.1
' Nedconcepts 2001 by Marcel Vogel (DiDio)
'
' Change History:
' 20 Juni 2001 - Added ClearTags Method
' 10 Juni 2001 - Versie 2.0
'******************************************************
Class CTemplate
Private m_intSiteID
Private m_intDevice
Private m_intOutput
Private m_strFilename
Private m_blnUseLooping
Private m_strTemplate
Private m_strClearTagMessage
Private m_strTemp
Private m_strTemplateTop
Private m_strTemplateMid
Private m_strTemplateEnd
Public Property Let SiteID(ByVal varSiteID)
m_intSiteID = varSiteID
End Property
Public Property Let Device(ByVal varDevice)
m_intDevice = varDevice
End Property
Public Property Let Output(ByVal varOutput)
m_intOutput = varOutput
End Property
Public Property Let Filename(ByVal varFilename)
m_strFilename = varFilename
End Property
Public Property Let UseLooping(ByVal varUseLooping)
m_blnUseLooping = varUseLooping
End Property
Public Property Let Template(ByVal varTemplate)
m_strTemplate = varTemplate
Call ReadTemplate()
End Property
Public Property Let ClearTagMessage(ByVal varClearTagMessage)
m_strClearTagMessage = varClearTagMessage
End Property
Public Sub Class_Initialize()
m_intDevice = 1
m_intOutput = 1
m_blnUseLooping = False
m_strClearTagMessage = ""
End Sub
Public Sub Data(ByVal varTag, ByVal varData)
If m_blnUseLooping = True Then
If Instr(1, m_strTemplateMid, varTag) = 0 Then
m_strTemplateTop = Replace(m_strTemplateTop, varTag, varData)
m_strTemplateEnd = Replace(m_strTemplateEnd, varTag, varData)
Else
m_strTemp = Replace(m_strTemp, varTag, varData)
End If
Else
m_strTemplate = Replace(m_strTemplate, varTag, varData)
End If
End Sub
Public Sub StartLooping()
m_strTemp = m_strTemplateMid
End Sub
Public Sub Copy()
m_strTemp = m_strTemp & m_strTemplateMid
End Sub
Public Sub EndLooping()
m_strTemplateMid = m_strTemp
m_strTemplate = m_strTemplateTop & m_strTemplateMid & m_strTemplateEnd
End Sub
Public Function WriteTemplate()
Dim objFileSystem
Dim objFile
Select Case m_intOutput
Case 1
Response.Write m_strTemplate
Case 2
WriteTemplate = m_strTemplate
Case 3
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.CreateTextFile(m_strFilename, True)
objFile.WriteLine(m_strTemplate)
objFile.Close
Case Else
Response.Write "error!, wrong output specified."
Exit Function
End Select
End Function
Public Sub ClearTags()
Dim objRegEx
Set objRegEx = New RegExp
objRegEx.Pattern = "#[^#]*#"
objRegEx.Global = True
m_strTemplate = objRegEx.Replace(m_strTemplate, m_strClearTagMessage)
Set objRegEx = Nothing
End Sub
Private Sub ReadTemplate()
Dim objTemplate
Dim objFileSystem
Dim objConn, objCmd, objRec
Dim objHttp
Select Case m_intDevice
Case 1
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTemplate = objFileSystem.OpenTextFile(m_strTemplate, 1, False, 0)
m_strTemplate = objTemplate.ReadAll
objTemplate.Close
Set objTemplate = Nothing
Set objFileSystem = Nothing
Case 2
Set objConn = CreateObject("ADODB.Connection")
objConn.Open CONNECTION
Set objCmd = CreateObject("ADODB.Command")
objCmd.ActiveConnection = objConn
objCmd.CommandType = adCmdStoredProc
objCmd.CommandText = "spTemplate_ReadTemplate"
objCmd.Parameters.Append objCmd.CreateParameter("SiteID", adInteger, adParamInput, 4, m_intSiteID)
objCmd.Parameters.Append objCmd.CreateParameter("TemplateName", adVarchar, adParamInput, 100, m_strTemplate)
Set objRec = objCmd.Execute
Set objCmd = Nothing
If objRec("StatusID") = 0 Then
m_strTemplate = objRec("TemplateCode")
Else
m_strTemplate = objRec("StatusCode")
End If
objRec.Close
Set objRec = Nothing
objConn.Close
Set objConn = Nothing
Case 3
Set objHttp = New CHttp
objHttp.Program = "XMLHTTP"
objHttp.Method = "GET"
objHttp.Send m_strTemplate
m_strTemplate = objHttp.ResponseText
Set objHttp = Nothing
Case 4
m_strTemplate = m_strTemplate
Case Else
Response.Write "error!, wrong device specified."
Exit Sub
End Select
If m_blnUseLooping = True Then
Call SplitTemplate()
End If
End Sub
Private Sub SplitTemplate()
Dim intStart
Dim intStop
intStart = Instr(1, m_strTemplate, "[%") + 2
intStop = Instr(1, m_strTemplate, "%]") - 2
m_strTemplateTop = Left(m_strTemplate, Instr(1, m_strTemplate, "[%") - 2)
m_strTemplateMid = Mid(m_strTemplate, intStart, intStop - intStart)
m_strTemplateEnd = Right(m_strTemplate, Len(m_strTemplate) - Instr(1, m_strTemplate, "%]") - 1)
End Sub
Public Sub Class_Terminate()
End Sub
End Class
%> |