WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

OLE with XML

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

uses XML DOM and DHTML to Create a DSO-like editable HTML display


This uses XML DOM and DHTML to produce a DSO-like editable HTML display.

Winbatch 2004F, MSXML 4.0 SDK must be installed...

#definesubroutine startMSIE()
	Browser = ObjectOpen("InternetExplorer.Application")
	Browser.addressbar = @false
	Browser.statusbar = @false
	Browser.menubar = @false
	Browser.toolbar = @false
	browser.visible = @true
	url = "c:\RiftsPC-URL.html"
	browser.navigate(url)
   WaitForPageLoad()

	;	setup the document object...
	browserDoc = Browser.Document
	all = browserdoc.all
	return(browser)
#endsubroutine

#DefineSubroutine WaitForPageLoad()  ; assume Browser
   While browser.busy || browser.readystate == 1
      TimeDelay(0.5)
   EndWhile
   While browser.Document.ReadyState != "complete"
      TimeDelay(0.5)
   EndWhile
   return
#EndSubroutine


#DefineFunction GetNodeSetAttributes(xfile, str, namespacestr)
	retstr = ""
	Doc = ObjectOpen("Msxml2.DOMDocument.4.0")
	Doc.async = @False		
	Doc.load(xfile)
	if namespacestr <> "" then Doc.setProperty("SelectionNamespaces", namespacestr)
	nodepath = strcat("//", str)
	dNode = Doc.selectSingleNode(nodepath)
	attlist = dNode.Attributes
	for x = 0 to attlist.length-1
		thisatt = attlist.item(x)
		retstr = iteminsert(thisatt.name, -1, retstr, "|")
		objectclose(thisatt)
	next
	objectclose(attlist)
	objectclose(dNode)
	objectclose(Doc)
	return(retstr)
#EndFunction

#DefineFunction GetRecordsetData(xfile, str, namespacestr)
	Doc = ObjectOpen("Msxml2.DOMDocument.4.0")
	Doc.async = @False		
	Doc.load(xfile)
	if namespacestr <> "" then Doc.setProperty("SelectionNamespaces", namespacestr)
	nodepath = strcat("//", str)
	retstr = ""
	dNode = Doc.selectNodes(nodepath)
	for y = 0 to dNode.length-1
		thisnode = dNode.item(y)
		data = thisnode.attributes
		rowstr = ""
		for x = 0 to data.length-1
			thisdata = data.item(x)
			rowstr = iteminsert(thisdata.value, -1, rowstr, "|")
			objectclose(thisdata)
		next
		retstr = iteminsert(rowstr, -1, retstr, @tab)
		objectclose(data)
		objectclose(thisnode)
	next
	objectclose(dNode)
	objectclose(Doc)
	return(retstr)
#EndFunction

#DefineFunction WriteRecordsetData(xfile, chain, rsdata, namespacestr)
	Doc = ObjectOpen("Msxml2.DOMDocument.4.0")
	Doc.async = @False		
	Doc.load(xfile)
	if namespacestr <> "" then Doc.setProperty("SelectionNamespaces", namespacestr)
	nodepath = strcat("//", chain)
	for y = 1 to itemcount(rsdata, @tab)
		data = itemextract(y, rsdata, @tab)
		dNode = Doc.selectNodes(nodepath)
		thisnode = dNode.item(y-1)
		attnode = thisnode.attributes
			for x = 0 to attnode.length-1
				thisdata = itemextract(x+1, data, "|")
				thisatt = attnode.item(x)
				thisatt.value = thisdata
				objectclose(thisatt)
			next
		objectclose(attnode)
		objectclose(thisnode)
		objectclose(dNode)
	next
	Doc.save(xfile)
	objectclose(Doc)
	return
#EndFunction

namespacestr = "xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'"
str = "rs:data/z:row"
xfile = "c:\test\stan\chgcode.xml"

titlestr = "XML Edit Recordset Test"

ColumnList = GetNodeSetAttributes(xfile, str, namespacestr)
MasterDataList = ""
MasterDataList = GetRecordsetData(xfile, str, namespacestr)

NumberOfRows = itemcount(MasterDataList, @tab)
DataPageSize = 10
NumberOfPages = NumberOfRows/DataPageSize
if NumberOfRows mod DataPageSize > 0 then NumberOfPages = NumberOfPages+1

Terminate (NumberOfRows == 0, "XML Recordset Editor", "No records found, exiting...")

CurrentPage = 1  ; start at Page 1...

br = startMSIE()

gosub WriteHTML
gosub BuildPageTable

gosub BuildPageControl
gosub BuildButtonControl

while @true
	yields(2000)
	if psel.innerText <> ""
		pageval = psel.innerText
		psel.innerText = ""
		select @true
			case pageval == "+"
				if CurrentPage <> NumberOfPages
					CurrentPage = CurrentPage + 1
					gosub InventoryScreen
					gosub BuildPageTable
				endif
			break
			case pageval == "-"
				if CurrentPage <> 1
					CurrentPage = CurrentPage - 1
					gosub InventoryScreen
					gosub BuildPageTable
				endif
			break
		endselect
	endif
	if bsel.innerText <> ""
		result = bsel.innerText
		if result == "Save"
			gosub InventoryScreen
			Main.innerHTML = ""
			gosub SaveRecordset
		endif
		break
	endif
endwhile

br.quit

return
exit

:BuildPageTable
endrec = CurrentPage * DataPageSize
if endrec > itemcount(MasterDataList, @tab) then endrec = itemcount(MasterDataList, @tab)
strec  = endrec - 9
;
ThisTable = `<table class="bigblue" border="1" cellpadding="3" style="border-collapse: collapse">`
ThisTable = strcat(ThisTable, `<caption><b>Page %CurrentPage% of %NumberofPages%</b></caption>`)
ThisTable = strcat(ThisTable, `<tr align="center">`)
for cl = 1 to itemcount(ColumnList, "|")
	thiscol = itemextract(cl, ColumnList, "|")
	ThisTable = strcat(ThisTable, `<td><b>`, thiscol, `</b></td>`)
next
ThisTable = strcat(ThisTable, `</tr>`, @crlf)
;
for cl = strec to endrec
	rownum = cl-strec+1
	ThisTable = strcat(ThisTable, `<tr>`)
	thisdata = itemextract(cl, MasterDataList, @tab)
	for td = 1 to itemcount(thisdata, "|")
		thisfld = itemextract(td, thisdata, "|")
		if strlen(thisfld) < 7
			colwidth = "5"
		else
			colwidth = "65"
		endif
		thisinput = strcat(`<input type="text" class="bigblue" size="`, colwidth, `" id="Col%td%Row%rownum%" value="`, thisfld, `">`)
		ThisTable = strcat(ThisTable, `<td>`, thisinput, `</td>`)
	next
	ThisTable = strcat(ThisTable, `</tr>`, @crlf)
next
ThisTable = strcat(ThisTable, `</table>`, @crlf)

Main.innerHTML = ThisTable

return

:WriteHTML
browserdoc.write(" <br>")
browserdoc.title = titlestr

browserdoc.writeln('<style> .msg {font-size: 8pt; font-weight: bold; color: blue} .hidden {font-size: 1; font-weight: bold; color: white}')
browserdoc.writeln('.hand {cursor: hand;} .blue {color: blue; font-size: 8pt} .bigblue {color: blue; font-size: 10pt} .smblue {color: blue; font-size: 7pt}')
browserdoc.writeln('.frame  {border: .25mm solid blue;} .silver  {border: .25mm solid silver;} .bignavy {color: navy; font-size: 10pt}')
browserdoc.writeln('.smallscr  {width: 845; height:215; overflow:auto;}')
browserdoc.writeln('.scr       {width: 845; height:490; overflow:auto;}</style>')
browserdoc.writeln(`<center>`)
browserdoc.write(`<div class="msg scr" id="Main"></div>`)
browserdoc.write(`<div id="PageControl"></div><br><div id="ButtonControl"></div>`)
browserdoc.write(`<div class="hidden" id="psel"></div>`)
browserdoc.write(`<div class="hidden" id="bsel"></div>`)

Main = all.Main
PageControl = all.PageControl
ButtonControl = all.ButtonControl
psel = all.psel
bsel = all.bsel

return

:BuildPageControl
ThisTable = `<table class="bigblue" border="0">`
ThisTable = strcat(ThisTable, `<tr><td><input type="submit" value="Page Up" onclick="psel.innerText='-'"></td>`, @crlf)
ThisTable = strcat(ThisTable, `<td> </td>`, @crlf)
ThisTable = strcat(ThisTable, `<td><input type="submit" value="Page Down" onclick="psel.innerText='+'"></td>`, @crlf)
ThisTable = strcat(ThisTable, `</tr></table>`, @crlf)

PageControl.innerHTML = ThisTable

return

:BuildButtonControl
ThisTable = `<table class="bigblue" border="0">`
ThisTable = strcat(ThisTable, `<tr><td><input type="submit" value="Exit & Save" onclick="bsel.innerText='Save'"></td>`, @crlf)
ThisTable = strcat(ThisTable, `<td> </td>`, @crlf)
ThisTable = strcat(ThisTable, `<td><input type="submit" value="Discard" onclick="bsel.innerText='Exit'"></td>`, @crlf)
ThisTable = strcat(ThisTable, `</tr></table>`, @crlf)

ButtonControl.innerHTML = ThisTable

return

:InventoryScreen
for rn = strec to endrec
	rownum = rn-strec+1
	thisrow = ""
	for cn = 1 to itemcount(ColumnList, "|")
		colstr = strcat("Col", cn, "Row", rownum)
		thiscol = all.item(colstr)
		thisrow = iteminsert(thiscol.value, -1, thisrow, "|")
		objectclose(thiscol)
	next
	MasterDataList = itemreplace(thisrow, rn, MasterDataList, @tab)
next
return

:SaveRecordset
Main.innerHTML = strcat(`<span id="msgspan" class="bigblue"></span>`)
PageControl.innerHTML = ""
objectclose(PageControl)
ButtonControl.innerHTML = ""
objectclose(ButtonControl)
msgspan = all.item("msgspan")
msgspan.innerHTML = strcat("Saving Recordset...<br><br>please wait...")
WriteRecordsetData(xfile, str, MasterDataList, namespacestr)
return
chgcode.xml
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly'>
		<s:AttributeType name='CHGCODE' rs:number='1' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' dt:maxLength='3'/>
		</s:AttributeType>
		<s:AttributeType name='DESC' rs:number='2' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' dt:maxLength='40'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row CHGCODE='1B' DESC='TEST ONLY'/>
	<z:row CHGCODE='3T' DESC='TRANSFER A BALANCE'/>
	<z:row CHGCODE='4C' DESC='CURRENT USAGE CHARGE'/>
	<z:row CHGCODE='61' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='9S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='10S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='11S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='12M' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='13I' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='14D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='15M' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='16P' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='17S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='18O' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='19N' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='238' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='25T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='30G' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='31D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='35E' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='36S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='389' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='39R' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='40C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='41C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='42F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='43M' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='44D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='45L' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='48F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='49S' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='50F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='51F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='52T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='53T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='54P' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='55D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='56D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='57U' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='58T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='59A' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='60D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='61T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='63C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='64C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='65P' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='66D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='67D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='68T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='69T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='70I' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='71P' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='72B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='74C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='75U' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='78R' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='79C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='80C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='81D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='82C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='84B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='85B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='86L' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='87B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='88F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='89F' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='90A' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='93M' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='94D' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='95B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='96B' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='97P' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='98I' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='99C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='100' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='101' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='110' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='111' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='112' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='115' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='117' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='118' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='120' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='121' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='122' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='123' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='124' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='125' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='127' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='128' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='129' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='130' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='131' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='132' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='135' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='136' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='137' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='140' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='141' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='142' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='143' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='144' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='145' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='146' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='147' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='148' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='149' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='150' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='151' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='152' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='153' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='154' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='155' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='156' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='157' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='159' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='160' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='161' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='162' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='163' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='164' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='165' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='166' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='167' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='168' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='169' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='170' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='171' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='174' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='175' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='176' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='177' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='178' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='185' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='186' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='190' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='194' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='196' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='197' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='198' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='199' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='200' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='201' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='202' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='203' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='204' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='205' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='206' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='208' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='209' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='210' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='211' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='212' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='213' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='214' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='215' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='216' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='217' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='218' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='219' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='220' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='221' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='225' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='226' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='227' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='238' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='239' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='240' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='241' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='242' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='243' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='245' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='246' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='250' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='251' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='252' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='253' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='265' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='274' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='277' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='321' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='365' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='370' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='371' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='375' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='376' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='377' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='390' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='391' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='400' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='401' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='402' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='417' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='496' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='497' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='498' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='499' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='500' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='501' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='502' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='503' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='504' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='505' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='506' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='507' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='509' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='510' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='511' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='512' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='513' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='514' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='515' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='516' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='517' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='518' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='519' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='520' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='521' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='522' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='523' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='524' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='525' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='526' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='527' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='528' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='529' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='600' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='601' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='602' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='603' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='604' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='605' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='606' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='607' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='608' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='609' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='610' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='611' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='612' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='613' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='614' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='615' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='616' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='617' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='618' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='620' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='621' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='622' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='623' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='624' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='625' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='626' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='627' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='628' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='629' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='630' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='631' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='632' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='633' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='634' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='635' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='636' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='637' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='638' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='639' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='640' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='641' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='642' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='643' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='644' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='645' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='646' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='650' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='700' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='701' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='702' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='703' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='850' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='885' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='886' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='887' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='888' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='889' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='890' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='998' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='999' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='647' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='648' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='649' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='651' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='652' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='653' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='654' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='655' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='656' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='657' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='413' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='403' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='404' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='530' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='531' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='524' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='535' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='536' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='537' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='539' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='652' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='653' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='654' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='53T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='527' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='198' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='658' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='550' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='551' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='647' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='651' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='649' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='52T' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='502' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='552' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='75U' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='322' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='323' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='477' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='478' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='659' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='508' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='172' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='300' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='636' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='521' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='523' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='522' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='658' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='102' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='103' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='104' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='900' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='902' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='904' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='906' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='908' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='920' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='905' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='196' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='910' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='912' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='660' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='635' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='105' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='405' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='554' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='532' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='533' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='540' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='541' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='542' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='543' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='106' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='107' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='108' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='661' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='494' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='494' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='495' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='495' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='880' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='875' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='207' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='554' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='911' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='704' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='705' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='538' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='662' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='92A' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='666' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='109' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='179' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='180' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='181' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='182' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='183' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='184' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='503' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='406' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='407' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='408' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='409' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='410' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='619' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='534' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='506' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='506' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='663' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='240' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='91A' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='884' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='659' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='170' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='195' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='664' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='665' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='519' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='667' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='668' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='710' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='711' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='712' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='138' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='553' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='411' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='412' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='236' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='493' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='669' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='420' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='421' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='422' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='423' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='424' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='425' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='426' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='427' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='428' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='429' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='80C' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='713' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='714' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='715' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='191' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='192' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='193' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='512' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='512' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='515' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='515' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='518' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='518' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='550' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='550' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='517' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='517' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='631' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='637' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='638' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='648' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='310' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='311' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='312' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='313' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='314' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='315' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='316' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='317' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='318' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='709' DESC='Enter ChargeCode Description'/>
	<z:row CHGCODE='709' DESC='Enter ChargeCode Description'/>
</rs:data>
</xml>

Article ID:   W16155
File Created: 2004:08:02:11:18:52
Last Updated: 2004:08:02:11:18:52