[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Dynamically generating table


Subject: [xsl] Dynamically generating table
From: Gurnandan Kaur <teclioness@xxxxxxxxxxx>
Date: Wed, 12 Sep 2001 14:46:43 +0100 (BST)

Hi 

I have a requirement to build tables dynamically. So,
I am using a msxsl:script function to create a table,
but when when I call another function to get back the
string of prepared table, what is sdisplayed is just a
string of values(where as it is supposed to be
displayed as HTML). I am pasting the code...Any
Suggestion??

the .xsl file is :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"          
 xmlns:user="http://mycompany.com/mynamespace">
<xsl:output method="html" version="1.0"
encoding="UTF-8" indent="yes"/>
<msxsl:script language="vbscript"
implements-prefix="user">
<![CDATA[
arrDay =
array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
dim tab1, tab2, tab3, intCnt
intCnt = 1
tab1 = "<table class='TableFullWidth' cellspacing='0'
cellpadding='0' border='0' width='100%'>"
tab2 = "<table class='TableFullWidth' cellspacing='0'
cellpadding='0' border='0' width='100%'>"
tab3 = "<table class='TableFullWidth' cellspacing='0'
cellpadding='0' border='0' width='100%'>"
function createTable(sBlockName,sBlockID, strType)
	If strType="Hrs" Then
		tab1= tab1 & "<tr><td width='60%'><b>" & sBlockName
& "</b><input type='hidden' name='txtBlockID"& i & "'
value=" & sBlockID &"></td>"
		tab1 = tab1 & "<td><input type='text' name='txtSDA"
& intCnt & "' size='4' maxlength='5'> Hrs</td></tr>"
	ElseIf strType="%" Then
		tab2 = tab2 & "<tr><td width='60%'><b>" & sBlockName
& "</b><input type='hidden' name='txtBlockID"& i & "'
value=" & sBlockID &"></td>"
		If sBlockID =
"{05A1DA18-2912-11D5-A15F-000347240DC9}" Then
			tab2 = tab2 & "<td>&nbsp;</td></tr>"
		Else
			tab2 = tab2 & "<td><input type='text' name='txtSDA"
& intCnt & "' size='4' maxlength='5'> %</td></tr>"
		End If
	ElseIf strType="" Then
		tab3 = tab3 & "<tr><td width='60%'><b>" & sBlockName
& "</b><input type='hidden' name='txtBlockID"& i & "'
value="&sBlockID &"></td>"
		tab3 = tab3 & "<td><input type='text' name='txtSDA"
& intCnt & "' size='4' maxlength='5'></td></tr>"
	End If
	createTable = true
	intCnt = intCnt + 1
end function

function returnTable(sTableNo)
	if sTableNo="1" Then
		returnTable = tab1 &"</table>"
	elseif sTableNo = "2" Then
		returnTable = tab2 &"</table>"
	else
		returnTable = tab3 &"</table>"
	end if
end function
]]>
</msxsl:script>
<xsl:template match="/">
		<table border="1" cellspacing="0" align="center"
class="TableFullWidth" width="100%">
			<tr class="HeadRow" bgcolor="silver">
				<td width="21%">Start Date</td>
				<td width="21%">End Date</td>
				<td width="16%">SDA Type</td>
				<td width="42%" colspan="3">On Call Type
Availability</td>
		    </tr>
		    <tr valign="middle" align="center">
				<td valign="middle" align="center">
					<input type="text" name="txtStDt" size="2"
maxlength="2" value="=strStDt"/>
					<select size="1" name="cboStMn">
						<option value=""></option>
						<option value="Jan">Jan</option>
						<option value="Feb">Feb</option>
						<option value="Mar">Mar</option>
						<option value="Apr">Apr</option>
						<option value="May">May</option>
						<option value="Jun">Jun</option>
						<option value="Jul">Jul</option>
						<option value="Aug">Aug</option>
						<option value="Sep">Sep</option>
						<option value="Oct">Oct</option>
						<option value="Nov">Nov</option>
						<option value="Dec">Dec</option>
					</select>
					<input type="text" name="txtStYy" size="4"
maxlength="4" value="=strStYy"/>
				</td>
				<td>
					<input type="text" name="txtEdDt" size="2"
maxlength="2" value="=strEdDt"/>
					<select size="1" name="cboEdMn">
						<option value=""></option>
						<option value="Jan">Jan</option>
						<option value="Feb">Feb</option>
						<option value="Mar">Mar</option>
						<option value="Apr">Apr</option>
						<option value="May">May</option>
						<option value="Jun">Jun</option>
						<option value="Jul">Jul</option>
						<option value="Aug">Aug</option>
						<option value="Sep">Sep</option>
						<option value="Oct">Oct</option>
						<option value="Nov">Nov</option>
						<option value="Dec">Dec</option>
					</select>
					<input type="text" name="txtEdYy" size="4"
maxlength="4" value="=strEdYy"/>
				</td>
				<td>
					<select size="1" name="cboSDA">
						<xsl:for-each
select="/Picklists/SDAType/Picklist/ListEntry">
						<option value="{./Key}"><xsl:value-of
select="./Item"/><!--If trim(GetNodeValue(oOption,
"Key"))= trim(strSDA) Then Response.write "selected"
End If-->
						</option>
						</xsl:for-each>
					</select></td>
				<td width="13%">
					<input type="checkbox" name="chkOnCall"
value="True" /><!--If strOnCall="True" Then
Response.Write "checked" End If-->							On Call
				</td>
				<!--
				If strJobBand = "9" Then
				-->
					<td width="13%">
						<input type="checkbox" name="chkPace"
value="true"/><!--If strPace="True" Then
Response.Write "checked" End If-->PCEA</td>
				<!--
				Else
				-->
					<td width="13%">&#160;</td>
				<!--
				End If
				-->
		      <td width="16%">
				<input type="checkbox" name="chkAPace"
value="True" /><!--If strAPace="True" Then
Response.Write "checked" End If-->AdaptedPCEA
			</td>
		    </tr>
		    <tr>
		      <td width="100%" colspan="6"
height="20">&#160;</td>
		    </tr>
		    <tr>
		      <td valign="middle" align="center"
class="AHWTD">
				<b>Standard Target Hours</b>
			</td>
		      <td valign="middle" align="center"
class="AHWTD">
				<b>Bank Hours</b>
			</td>
		      <td valign="middle" align="center"
class="AHWTD">
				<b>Total Annual Hours</b>
			</td>
		       <td valign="middle" align="center"
class="AHWTD">
				<b>Mini Acc. Period</b>
			</td>
		       <td valign="middle" align="center"
colspan="2" class="AHWTD">
				<b>Standard Day Length</b>
			</td>
		    </tr>
		    <tr>
				<td valign="middle" align="center"><input
type="text" name="txtStdHrs" size="4" maxlength="4"
value="=strStdHrs"/></td>
				<td valign="middle" align="center"><input
type="text" name="txtBHrs" size="4" maxlength="4"
value="=strBHrs"/></td>
				<td valign="middle" align="center">
					<!--If SaveMode Then Response.Write strStdHrs +
strBHrs Else Response.Write "&nbsp;" End If-->
				</td>
				<!--
				Dim sMiniAcc
				Set oPicklists =
Server.CreateObject("AHWManagers.PicklistManager")
				sMiniAcc = oPicklists.MiniAccountingPeriods
				oDoc.loadXml(sMiniAcc)
				Set oLists =
oDoc.getElementsByTagName("ListEntry")
				-->
				<td valign="middle" align="center">
				<select size="1" name="cboMiniAcc">
					<option value=" "
selected="true">-Select-</option>
					<xsl:for-each
select="/Picklists/MiniAcc/Picklist/ListEntry">
						<option value="{./Key}"><xsl:value-of
select="./Item"/> <!--If trim(strMiniAcc) =
GetNodeValue(oOption, "Key") Then Response.Write
"selected" End If--></option>
					</xsl:for-each>
				</select>
				</td>
				<td valign="middle" align="center" colspan="2">
				<select size="1" name="cboStdDayLen">
					<option value=" "
selected="true">-Select-</option>
					<xsl:for-each
select="/Picklists/StdDay/Picklist/ListEntry">
						<option value="{./Key}"><xsl:value-of
select="./Item"/> <!--If trim(strStdDayLen) =
GetNodeValue(oOption, "Key") Then Response.Write
"selected" End If--></option>
					</xsl:for-each>
				</select>
				</td>
		    </tr>
		</table>
		select="/Picklists/AHWAgreementBlocks/AHWBlockType">
				<xsl:choose>
					<xsl:when test="./UOM='1'"><xsl:variable
name="tab1"
select="user:createTable(string(./BlockName),string(./BlockTypeUID),'Hrs')"/></xsl:when>
					<xsl:when test="./UOM='2'"><xsl:variable
name="tab2"
select="user:createTable(string(./BlockName),string(./BlockTypeUID),'%')"/></xsl:when>
					<xsl:when test="./UOM='3'"><xsl:variable
name="tab3"
select="user:createTable(string(./BlockName),string(./BlockTypeUID),'')"/></xsl:when>
				</xsl:choose>
			</xsl:for-each>
			<table border="1" cellspacing="0" cellpadding="5"
align="left" class="TableFullWidth">
			<tr  class="HeadRow" bgcolor="silver">
				<td colspan="3" height="25">The AAA Building
Blocks</td>
			</tr>
			<tr>
				<td width="30%" valign="top"><xsl:value-of
select="user:returnTable('1')"/></td>
				<td width="30%" valign="top"><xsl:value-of
select="user:returnTable('2')"/></td>
				<td width="30%" valign="top"><xsl:value-of
select="user:returnTable('3')"/></td>
			</tr>
	</table>
</xsl:template>
</xsl:stylesheet>



the .xml file is :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XML Spy v3.5 NT
(http://www.xmlspy.com) by  () -->
<?xml-stylesheet type="text/xsl"
href="D:\Inetpub\wwwroot\AHWRework\AHW
Agreement\EmpTargetSet.xslt"?>
<Picklists>
	<SDAType>
		<Picklist>
			<ListEntry>
				<Key>{534E9D58-195E-11D5-AA1B-00D0B7DE2A2C}</Key>
				<Item>Traditional</Item>
			</ListEntry>
			<ListEntry>
				<Key>{534E9D59-195E-11D5-AA1B-00D0B7DE2A2C}</Key>
				<Item>Dartboard</Item>
			</ListEntry>
		</Picklist>
	</SDAType>
	<MiniAcc>
		<Picklist>
			<ListEntry>
				<Key>{0B955145-4914-11D5-A171-000347240DC9}</Key>
				<Item>Monthly</Item>
			</ListEntry>
			<ListEntry>
				<Key>{0B955146-4914-11D5-A171-000347240DC9}</Key>
				<Item>Quartely</Item>
			</ListEntry>
			<ListEntry>
				<Key>{0B955147-4914-11D5-A171-000347240DC9}</Key>
				<Item>Tri-Annually</Item>
			</ListEntry>
		</Picklist>
	</MiniAcc>
	<StdDay>
		<Picklist>
			<ListEntry>
				<Key>{B850535E-494D-11D5-A173-000347240DC9}</Key>
				<Item>8.4/4.2</Item>
			</ListEntry>
			<ListEntry>
				<Key>{B850535F-494D-11D5-A173-000347240DC9}</Key>
				<Item>8.2/4.1</Item>
			</ListEntry>
		</Picklist>
	</StdDay>
	<AHWAgreementBlocks>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D4C-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Saturday Hours</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>1</UOM>
			<UsageCountRequired>Y</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D4D-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Sunday Hours</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>1</UOM>
			<UsageCountRequired>Y</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D4F-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Public Holiday Hours</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>1</UOM>
			<UsageCountRequired>Y</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D4A-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>SDA</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D4B-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Premium Hours</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc>PREMIUM</RuleDesc>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{F9FF0A66-1EA6-11D5-AF34-000347240D6E}</BlockTypeUID>
			<BlockName>On Call</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>Y</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D55-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Bank</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{C2623A55-408E-11D5-A16A-000347240DC9}</BlockTypeUID>
			<BlockName>THPA</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D47-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Liability</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D48-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Contactability</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc>CONTACTABILITY</RuleDesc>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D56-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Incident</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc/>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{05A1DA18-2912-11D5-A15F-000347240DC9}</BlockTypeUID>
			<BlockName>Total Flexibility</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>2</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
		
<RuleDesc>+534E9D47-195E-11D5-AA1B-00D0B7DE2A2C+534E9D48-195E-11D5-AA1B-00D0B7DE2A2C+534E9D56-195E-11D5-AA1B-00D0B7DE2A2C</RuleDesc>
		</AHWBlockType>
		<AHWBlockType>
		
<BlockTypeUID>{534E9D49-195E-11D5-AA1B-00D0B7DE2A2C}</BlockTypeUID>
			<BlockName>Incidents</BlockName>
		
<SDATypeUID>{534E9D5A-195E-11D5-AA1B-00D0B7DE2A2C}</SDATypeUID>
			<UOM>3</UOM>
			<UsageCountRequired>N</UsageCountRequired>
			<AHWScreenPopulate>Y</AHWScreenPopulate>
			<RuleDesc>INCIDENTS</RuleDesc>
		</AHWBlockType>
	</AHWAgreementBlocks>
</Picklists>

Thanks!!

Guru


____________________________________________________________
Do You Yahoo!?
Get your free @... address at http://mail.yahoo.co.uk
or your free @... address at http://mail.yahoo.ie

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords
xml