This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Dynamically generating table
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Dynamically generating table
- From: Gurnandan Kaur <teclioness at yahoo dot co dot uk>
- Date: Wed, 12 Sep 2001 14:46:43 +0100 (BST)
- Reply-To: xsl-list at lists dot mulberrytech dot com
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> </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%"> </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"> </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 " " 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 @yahoo.co.uk address at http://mail.yahoo.co.uk
or your free @yahoo.ie address at http://mail.yahoo.ie
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list