topical media & game development
professional-xml-25-Access-Products-b-Category.xsl / xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:fx="#fx-functions" exclude-result-prefixes="msxsl fx">
<xsl:output method="html" version="4.0" indent="yes" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
<xsl:key name="GroupLevel0" match="Products_x0020_by_x0020_Category" use="string(CategoryName)" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
<xsl:template match="//dataroot" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8"/>
<title>Products by Category</title>
<style type="text/css">
.Style0 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: transparent; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 18pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style1 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: transparent; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 10pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style2 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 12pt; FONT-FAMILY: Arial; FONT-STYLE: normal; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style3 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: transparent; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 12pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style4 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: transparent; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 10pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style5 { BORDER-STYLE: solid; BORDER-WIDTH: 3pt; BORDER-COLOR: #c0c0c0; VISIBILITY: visible }
.Style6 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 400; FONT-SIZE: 9pt; FONT-FAMILY: Arial; FONT-STYLE: normal; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style7 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: right; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 400; FONT-SIZE: 9pt; FONT-FAMILY: Arial; FONT-STYLE: normal; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style8 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: transparent; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 9pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
.Style9 { BORDER-STYLE: solid; BORDER-WIDTH: 1pt; BORDER-COLOR: #c0c0c0; VISIBILITY: visible }
.Style10 { BORDER-STYLE: none; COLOR: #000000; BACKGROUND-COLOR: #ffffff; BORDER-WIDTH: 1px; BORDER-COLOR: #000000; TEXT-ALIGN: general; WRITING-MODE: lr-tb; VISIBILITY: visible; FONT-WEIGHT: 700; FONT-SIZE: 10pt; FONT-FAMILY: Arial; FONT-STYLE: italic; TEXT-DECORATION: none; PADDING-TOP: 0in; PADDING-BOTTOM: 0in; PADDING-RIGHT: 0in; PADDING-LEFT: 0in }
</style>
</head>
<body link="#0000ff" vlink="#800080">
<xsl:variable name="GlobalGroup" select="Products_x0020_by_x0020_Category"/>
<!-- Calculate expressions and running sums -->
<xsl:value-of select="fx:CalculateExpressions_Global(GlobalGroup)"/>
<div style="BORDER-STYLE: none; WIDTH: 9.5in; BACKGROUND-COLOR: #c0c0c0; VISIBILITY: visible; HEIGHT: 0.6666in; POSITION: relative">
<span class="Style0" style="LEFT: 0in; TOP: 0in; WIDTH: 2.6458in; HEIGHT: 0.3333in; OVERFLOW: hidden; POSITION: absolute">Products by Category</span>
<span class="Style1" style="LEFT: 0in; TOP: 0.427in; WIDTH: 1.4583in; HEIGHT: 0.1979in; OVERFLOW: hidden; POSITION: absolute">
<xsl:value-of select="fx:ExprFromXSL_0()"/>
</span>
</div>
<div style="BORDER-STYLE: none; WIDTH: 9.5in; BACKGROUND-COLOR: #c0c0c0; VISIBILITY: visible; HEIGHT: 0.0937in; POSITION: relative"></div>
<xsl:for-each select="Products_x0020_by_x0020_Category[count(. | key('GroupLevel0', string(CategoryName))[1]) = 1]">
<xsl:sort select="CategoryName" order="ascending" data-type="text"/>
<!-- Calculate expressions and running sums -->
<xsl:value-of select="fx:CalculateExpressions_1(., key('GroupLevel0', string(CategoryName)))"/>
<div style="BORDER-STYLE: none; WIDTH: 9.5in; BACKGROUND-COLOR: #ffffff; VISIBILITY: visible; HEIGHT: 0.75in; POSITION: relative">
<span class="Style2" style="LEFT: 0.8229in; TOP: 0.0625in; WIDTH: 1.4166in; HEIGHT: 0.2291in; OVERFLOW: hidden; POSITION: absolute">
<xsl:value-of select="CategoryName"/>
</span>
<span class="Style3" style="LEFT: 0in; TOP: 0.0625in; WIDTH: 0.8333in; HEIGHT: 0.2291in; OVERFLOW: hidden; POSITION: absolute">Category:</span>
<span class="Style4" style="LEFT: 0in; TOP: 0.427in; WIDTH: 1.0312in; HEIGHT: 0.1979in; OVERFLOW: hidden; POSITION: absolute">Product Name:</span>
<span class="Style4" style="LEFT: 1.6979in; TOP: 0.4166in; WIDTH: 1.0208in; HEIGHT: 0.1979in; OVERFLOW: hidden; POSITION: absolute">Units In Stock:</span>
<hr id="Line13" class="Style5" style="LEFT: 0in; TOP: 0.3854in; WIDTH: 2.75in; HEIGHT: 3pt; POSITION: absolute"/>
<hr id="Line14" class="Style5" style="LEFT: 0in; TOP: 0.6666in; WIDTH: 2.75in; HEIGHT: 3pt; POSITION: absolute"/>
</div>
<xsl:for-each select="key('GroupLevel0', string(CategoryName))"><xsl:sort select="ProductName" order="ascending" data-type="text"/>
<!-- Calculate expressions and running sums -->
<xsl:value-of select="fx:CalculateExpressions_Detail(., GlobalGroup[1],
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.