| 119 |
ghuddy |
1 |
<%@LANGUAGE="VBSCRIPT"%>
|
|
|
2 |
<%
|
|
|
3 |
'=====================================================
|
| 4169 |
dpurdie |
4 |
'|
|
|
|
5 |
'| Weekly Report
|
|
|
6 |
'| Suspect that this page is inaccessible
|
| 4553 |
dpurdie |
7 |
'| Jira Issue query will not work - since Jira 6.1 update and move to REST API
|
| 4169 |
dpurdie |
8 |
'|
|
| 4553 |
dpurdie |
9 |
'| ClearQuest Issue have not been tested since the CQ data was placed in the RM database
|
|
|
10 |
'|
|
| 119 |
ghuddy |
11 |
'=====================================================
|
|
|
12 |
%>
|
|
|
13 |
|
|
|
14 |
<%
|
|
|
15 |
Option explicit
|
|
|
16 |
Response.Expires = 0
|
|
|
17 |
%>
|
|
|
18 |
<%
|
|
|
19 |
'To enable the script timeout to 10 mins
|
|
|
20 |
Server.ScriptTimeout=600
|
|
|
21 |
%>
|
|
|
22 |
<!--#include file="common/conf.asp"-->
|
|
|
23 |
<!--#include file="common/globals.asp"-->
|
|
|
24 |
<!--#include file="common/formating.asp"-->
|
|
|
25 |
<!--#include file="common/qstr.asp"-->
|
|
|
26 |
<!--#include file="common/common_subs.asp"-->
|
|
|
27 |
<!--#include file="common/common_dbedit.asp"-->
|
|
|
28 |
<%
|
|
|
29 |
'------------ Variable Definition -------------
|
|
|
30 |
Dim FSO
|
|
|
31 |
Dim NewTextFile
|
|
|
32 |
Dim rsRep
|
|
|
33 |
Dim sqlstr
|
| 3975 |
dpurdie |
34 |
Dim SSsql, retVal, rsCQ, DEVIiss, outJIRASQL
|
| 119 |
ghuddy |
35 |
'------------ Variable Init -------------------
|
|
|
36 |
%>
|
|
|
37 |
<%
|
|
|
38 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
39 |
Sub Javascript()
|
|
|
40 |
NewTextFile.WriteLine("<script language=""JavaScript"" type=""text/javascript"">")
|
|
|
41 |
NewTextFile.WriteLine("function MM_findObj(n, d) { //v4.0")
|
|
|
42 |
NewTextFile.WriteLine(" var p,i,x;")
|
|
|
43 |
NewTextFile.WriteLine(" if(!d) d=document; ")
|
|
|
44 |
NewTextFile.WriteLine(" if((p=n.indexOf(""?""))>0&&parent.frames.length) {")
|
|
|
45 |
NewTextFile.WriteLine(" d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);")
|
|
|
46 |
NewTextFile.WriteLine(" }")
|
|
|
47 |
NewTextFile.WriteLine(" if(!(x=d[n])&&d.all) x=d.all[n]; ")
|
|
|
48 |
NewTextFile.WriteLine(" for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];")
|
|
|
49 |
NewTextFile.WriteLine(" for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);")
|
|
|
50 |
NewTextFile.WriteLine(" if(!x && document.getElementById) x=document.getElementById(n); ")
|
|
|
51 |
NewTextFile.WriteLine(" return x;")
|
|
|
52 |
NewTextFile.WriteLine("}")
|
|
|
53 |
NewTextFile.WriteLine("function DisplaySPAN(show, x) {")
|
|
|
54 |
NewTextFile.WriteLine(" if (show) {")
|
|
|
55 |
NewTextFile.WriteLine(" MM_findObj(""spanHideDetails"" + x).style.display = ""block"";")
|
|
|
56 |
NewTextFile.WriteLine(" MM_findObj(""spanPkgInfo"" + x).style.display = ""block"";")
|
|
|
57 |
NewTextFile.WriteLine(" MM_findObj(""spanShowDetails"" + x).style.display = ""none"";")
|
|
|
58 |
NewTextFile.WriteLine(" } else {")
|
|
|
59 |
NewTextFile.WriteLine(" MM_findObj(""spanHideDetails"" + x).style.display = ""none"";")
|
|
|
60 |
NewTextFile.WriteLine(" MM_findObj(""spanPkgInfo"" + x).style.display = ""none"";")
|
|
|
61 |
NewTextFile.WriteLine(" MM_findObj(""spanShowDetails"" + x).style.display = ""block"";")
|
|
|
62 |
NewTextFile.WriteLine(" }")
|
|
|
63 |
NewTextFile.WriteLine("}")
|
|
|
64 |
NewTextFile.WriteLine("</script>")
|
|
|
65 |
End Sub
|
|
|
66 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
67 |
Sub GetFixedIssues(pv_id)
|
|
|
68 |
|
|
|
69 |
|
|
|
70 |
Set sqlstr = OraDatabase.DbCreateDynaset("SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& pv_id &" AND iss_state = "& enumISSUES_STATE_FIXED, cint(0))
|
|
|
71 |
|
|
|
72 |
If sqlstr.RecordCount <> 0 Then
|
|
|
73 |
NewTextFile.WriteLine()
|
|
|
74 |
NewTextFile.WriteLine("<blockquote><blockquote><font size='1' face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Fixed Issues:</font></blockquote></blockquote>")
|
|
|
75 |
NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table width='80%' border='1' cellspacing='0' cellpadding='1'>")
|
|
|
76 |
NewTextFile.WriteLine("<tr>")
|
|
|
77 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Issue Id </b></font></td>")
|
|
|
78 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='55%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Summary</b></font></td>")
|
|
|
79 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b></I>Issue Type </b></font></td>")
|
|
|
80 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='15%' class='form_field'><font size='1' face='tahoma,sans-serif'><b></P>Priority</b></font></td>")
|
|
|
81 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Status</b></font></td>")
|
|
|
82 |
NewTextFile.WriteLine("</tr>")
|
|
|
83 |
|
|
|
84 |
While ((NOT sqlstr.BOF) AND (NOT sqlstr.EOF))
|
|
|
85 |
DEVIiss = "-1"
|
| 3975 |
dpurdie |
86 |
|
| 119 |
ghuddy |
87 |
If CInt(sqlstr("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
|
|
|
88 |
DEVIiss = DEVIiss &","& sqlstr("iss_id")
|
|
|
89 |
End If
|
|
|
90 |
|
|
|
91 |
SSsql = ReadFile( QUERIES_PATH & "\cq_issues.sql" )
|
|
|
92 |
SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
|
|
|
93 |
SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)
|
|
|
94 |
|
|
|
95 |
retVal = Get_CQ_Issues ( SSsql, rsCQ )
|
|
|
96 |
|
|
|
97 |
NewTextFile.WriteLine("<tr>")
|
|
|
98 |
NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("iss_num")&"</b></font></td>")
|
|
|
99 |
|
|
|
100 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</b></font></td>")
|
|
|
101 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("issue_type")&"</b></font></td>")
|
|
|
102 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("priority")&"</b></font></td>")
|
|
|
103 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("Status")&"</b></font></td>")
|
|
|
104 |
NewTextFile.WriteLine("</tr>")
|
|
|
105 |
|
|
|
106 |
sqlstr.MoveNext
|
|
|
107 |
|
|
|
108 |
Wend
|
|
|
109 |
|
|
|
110 |
NewTextFile.WriteLine( " </table></blockquote></blockquote></blockquote> ")
|
|
|
111 |
|
|
|
112 |
End If
|
|
|
113 |
|
|
|
114 |
sqlstr.Close()
|
|
|
115 |
Set sqlstr = Nothing
|
|
|
116 |
|
|
|
117 |
|
|
|
118 |
End Sub
|
|
|
119 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
120 |
Sub Get_JIRA_Package_Issues ( pv_id )
|
|
|
121 |
Dim rsTemp, JIRAiss
|
|
|
122 |
|
|
|
123 |
sqlstr = " SELECT *"&_
|
|
|
124 |
" FROM JIRA_ISSUES"&_
|
|
|
125 |
" WHERE pv_id = "& pv_id
|
|
|
126 |
|
|
|
127 |
Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
|
|
|
128 |
|
|
|
129 |
If rsTemp.RecordCount <> 0 Then
|
|
|
130 |
NewTextFile.WriteLine()
|
|
|
131 |
NewTextFile.WriteLine("<blockquote><blockquote><font size='1' face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">JIRA Issues:</font></blockquote></blockquote>")
|
|
|
132 |
NewTextFile.WriteLine("<blockquote><blockquote><blockquote><table width='80%' border='1' cellspacing='0' cellpadding='1'>")
|
|
|
133 |
NewTextFile.WriteLine("<tr>")
|
|
|
134 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Issue Id </b></font></td>")
|
|
|
135 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='55%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Summary</b></font></td>")
|
|
|
136 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b></I>Issue Type </b></font></td>")
|
|
|
137 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='15%' class='form_field'><font size='1' face='tahoma,sans-serif'><b></P>Priority</b></font></td>")
|
|
|
138 |
NewTextFile.WriteLine("<td background='#CAC5B8' width='10%' class='form_field'><font size='1' face='tahoma,sans-serif'><b>Status</b></font></td>")
|
|
|
139 |
NewTextFile.WriteLine("</tr>")
|
|
|
140 |
|
|
|
141 |
|
|
|
142 |
|
|
|
143 |
While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
|
|
|
144 |
JIRAiss = "'-1'"
|
|
|
145 |
|
|
|
146 |
JIRAiss = JIRAiss &",'"& rsTemp("iss_key")&"'"
|
|
|
147 |
|
|
|
148 |
'Construct SQL statement for JIRA database
|
|
|
149 |
outJIRASQL = "SELECT I.pkey AS iss_num, I.summary, ISS.pname AS status, IT.pname as Issue_Type, PR.pname as Priority, I.RESOLUTION "&_
|
|
|
150 |
" FROM jiraissue I, issuestatus ISS, issuetype IT, priority PR "&_
|
|
|
151 |
" WHERE I.pkey IN ("& JIRAIss &") "&_
|
|
|
152 |
" AND I.issuestatus = ISS.ID "&_
|
|
|
153 |
" AND IT.ID = I.issuetype "&_
|
|
|
154 |
" AND PR.ID = I.PRIORITY "
|
|
|
155 |
|
|
|
156 |
retVal = Get_JIRA_Issues ( outJIRASQL, rsCQ )
|
|
|
157 |
|
|
|
158 |
NewTextFile.WriteLine("<tr>")
|
|
|
159 |
NewTextFile.WriteLine("<td background='#CAC5B8' nowrap class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("iss_num")&"</b></font></td>")
|
|
|
160 |
|
|
|
161 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&NewLine_To_BR ( To_HTML ( rsCQ("summary") ) )&"</b></font></td>")
|
|
|
162 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("issue_type")&"</b></font></td>")
|
|
|
163 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("priority")&"</b></font></td>")
|
|
|
164 |
NewTextFile.WriteLine("<td background='#CAC5B8' class='form_item'><font size='1' color="&chr(34)&"red"&chr(34)&" face='tahoma,sans-serif'><b>"&rsCQ("Status")&"</b></font></td>")
|
|
|
165 |
NewTextFile.WriteLine("</tr>")
|
|
|
166 |
|
|
|
167 |
rsTemp.MoveNext
|
|
|
168 |
WEnd
|
|
|
169 |
|
|
|
170 |
NewTextFile.WriteLine( " </table></blockquote></blockquote></blockquote> ")
|
|
|
171 |
End If
|
|
|
172 |
|
|
|
173 |
|
|
|
174 |
|
|
|
175 |
|
|
|
176 |
|
|
|
177 |
rsTemp.Close()
|
|
|
178 |
Set rsTemp = nothing
|
|
|
179 |
|
|
|
180 |
|
|
|
181 |
|
|
|
182 |
End Sub
|
|
|
183 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
184 |
Sub DisplayComments(pkg_version, comments)
|
|
|
185 |
|
|
|
186 |
'NewTextFile.WriteLine("<blockquote><blockquote><font color="&chr(34)&"blue"&chr(34)&" face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Version: "&pkg_version&"</font></blockquote></blockquote>")
|
|
|
187 |
If comments <> "" Then
|
|
|
188 |
NewTextFile.WriteLine("<blockquote><blockquote><font size='1' face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Comments: </font></blockquote></blockquote>")
|
|
|
189 |
NewTextFile.WriteLine("<blockquote><blockquote><blockquote><font size='2' face='tahoma,sans-serif'>"& TextToHTML(comments) &"</font></blockquote></blockquote></blockquote>")
|
|
|
190 |
End If
|
|
|
191 |
|
|
|
192 |
End Sub
|
|
|
193 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
194 |
Sub Header()
|
|
|
195 |
NewTextFile.WriteLine("<html>")
|
|
|
196 |
End Sub
|
|
|
197 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
198 |
Sub Footer()
|
|
|
199 |
NewTextFile.WriteLine("</html>")
|
|
|
200 |
End Sub
|
|
|
201 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
202 |
Function Get_CQ_Issues ( SSsql, OOrsCQ )
|
|
|
203 |
|
| 4553 |
dpurdie |
204 |
On Error Resume Next
|
|
|
205 |
Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
|
|
|
206 |
Get_CQ_Issues = Err.Number
|
|
|
207 |
|
| 119 |
ghuddy |
208 |
End Function
|
| 4553 |
dpurdie |
209 |
|
| 119 |
ghuddy |
210 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
211 |
Function Get_JIRA_Issues ( SSsql, OOrsJIRA )
|
|
|
212 |
|
|
|
213 |
If OOrsJIRA.State = 1 Then
|
|
|
214 |
OOrsJIRA.Close()
|
|
|
215 |
End If
|
|
|
216 |
|
|
|
217 |
On Error Resume Next
|
|
|
218 |
OOrsJIRA.ActiveConnection = JIRA_conn
|
|
|
219 |
OOrsJIRA.Source = SSsql
|
|
|
220 |
OOrsJIRA.CursorType = 0
|
|
|
221 |
OOrsJIRA.CursorLocation = 2
|
|
|
222 |
OOrsJIRA.LockType = 3
|
|
|
223 |
OOrsJIRA.Open()
|
|
|
224 |
Get_JIRA_Issues = Err.Number
|
|
|
225 |
|
|
|
226 |
End Function
|
|
|
227 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
228 |
Public Function TextToHTML ( sString )
|
|
|
229 |
Dim mString
|
|
|
230 |
|
|
|
231 |
If (sString = "") OR IsNull(sString) Then Exit Function
|
|
|
232 |
|
|
|
233 |
mString = Server.HTMLEncode( sString )
|
|
|
234 |
mString = Replace(mString, VBNewLine, "<br>")
|
|
|
235 |
|
|
|
236 |
TextToHTML = mString
|
|
|
237 |
End Function
|
|
|
238 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
239 |
%>
|
|
|
240 |
<%
|
|
|
241 |
If (Request("from_date") = "") OR (Request("to_date") = "") OR (Request("user") = "") Then
|
|
|
242 |
|
|
|
243 |
If (Request("from_date") = "") Then
|
|
|
244 |
Response.write "<b>ERROR: Missing Parameter: from_date</b>"
|
|
|
245 |
ElseIf (Request("to_date") = "") Then
|
|
|
246 |
Response.write "<b>ERROR: Missing Parameter: to_date</b>"
|
|
|
247 |
ElseIf (Request("user") = "") Then
|
|
|
248 |
Response.write "<b>ERROR: Missing Parameter: user</b>"
|
|
|
249 |
End If
|
|
|
250 |
|
|
|
251 |
Else
|
|
|
252 |
|
|
|
253 |
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
|
|
|
254 |
Dim report_date
|
|
|
255 |
report_date = Replace( Request("to_date"), "/", "" )
|
|
|
256 |
|
|
|
257 |
Set NewTextFile=FSO.CreateTextFile(Server.MapPath("weekly_reports\weekly_report_"&Request("user")&"_"&report_date&".html"), true)
|
|
|
258 |
Call Header()
|
|
|
259 |
|
|
|
260 |
OraDatabase.Parameters.Add "FROM_DATE", Request("from_date"), ORAPARM_INPUT, ORATYPE_STRING
|
|
|
261 |
OraDatabase.Parameters.Add "TO_DATE", Request("to_date"), ORAPARM_INPUT, ORATYPE_STRING
|
|
|
262 |
|
|
|
263 |
Set rsRep = OraDatabase.DbCreateDynaset( GetQuery("weekly_report.sql"), cint(0) )
|
|
|
264 |
|
|
|
265 |
OraDatabase.Parameters.Remove "FROM_DATE"
|
|
|
266 |
OraDatabase.Parameters.Remove "TO_DATE"
|
|
|
267 |
|
|
|
268 |
Call Javascript()
|
|
|
269 |
|
|
|
270 |
NewTextFile.WriteLine("<title>Projects Report Between "&Request("from_date")&" and "&Request("to_date")&"</title>")
|
|
|
271 |
NewTextFile.WriteLine("<div align="&chr(34)&"center"&chr(34)&"><font color="&chr(34)&"red"&chr(34)&" size="&chr(34)&"4"&chr(34)&" face="&chr(34)&"Verdana, Arial, Helvetica, sans-serif"&chr(34)&">Projects Report Between "&Request("from_date")&" and "&Request("to_date")&"(Ripple Builds Not Displayed)</font></div><br>")
|
|
|
272 |
|
|
|
273 |
While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
|
|
|
274 |
If IsNull(rsRep("proj_name")) Then
|
|
|
275 |
NewTextFile.WriteLine("<b>"&rsRep("description")&" Package:"&rsRep("pkg_name")&" Version:"&rsRep("pkg_version")&"</b>")
|
|
|
276 |
Else
|
|
|
277 |
NewTextFile.WriteLine("<b>Location:"&rsRep("proj_name")&"/"&rsRep("rtag_name")&" Package:"&rsRep("pkg_name")&" Version:"&rsRep("pkg_version")&"</b>")
|
|
|
278 |
End If
|
|
|
279 |
NewTextFile.WriteLine("<br>")
|
|
|
280 |
NewTextFile.WriteLine("<font size='2'><b>Last Released:"&rsRep("modified_stamp")&"</b></font>")
|
|
|
281 |
Call DisplayComments(rsRep("pkg_version"), rsRep("comments"))
|
|
|
282 |
Call GetFixedIssues(rsRep("pv_id"))
|
|
|
283 |
Call Get_JIRA_Package_Issues(rsRep("pv_id"))
|
|
|
284 |
NewTextFile.WriteLine("<br>")
|
|
|
285 |
rsRep.MoveNext
|
|
|
286 |
Wend
|
|
|
287 |
%>
|
|
|
288 |
|
|
|
289 |
<%
|
|
|
290 |
|
|
|
291 |
rsRep.Close()
|
|
|
292 |
Set rsRep = Nothing
|
|
|
293 |
|
|
|
294 |
Call Footer()
|
|
|
295 |
|
|
|
296 |
NewTextFile.Close()
|
|
|
297 |
Set NewTextFile=Nothing
|
|
|
298 |
|
| 3959 |
dpurdie |
299 |
Dim LocalPath
|
| 119 |
ghuddy |
300 |
LocalPath = Server.MapPath("weekly_reports\weekly_report_"&Request("user")&"_"&report_date&".html")
|
|
|
301 |
|
| 3959 |
dpurdie |
302 |
'myMail.AddAddress Request("user")&"@erggroup.com"
|
|
|
303 |
Send_Email "Release Manager Notification",_
|
| 5357 |
dpurdie |
304 |
ADMIN_EMAIL, _
|
| 3959 |
dpurdie |
305 |
objAccessControl.UserEmail,_
|
|
|
306 |
"Projects Report" , _
|
|
|
307 |
"Your requested report...",_
|
|
|
308 |
LocalPath
|
|
|
309 |
|
| 119 |
ghuddy |
310 |
|
|
|
311 |
Response.write "<b>Report Generated Successfully and Emailed!</b>"
|
|
|
312 |
End If
|
|
|
313 |
Call Destroy_All_Objects
|
|
|
314 |
%>
|