[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: limit number of row return by xslt

Subject: Re: limit number of row return by xslt
From: "Anton Triest" <anton@xxxxxxxx>
Date: Wed, 22 Sep 2004 09:47:42 +0200
xslt record count
Tuesday, September 14, 2004 8:20 PM, Tham Tinh wrote:
>
> For short example, I would like to display 2 rows
> return per page and I will be able to click next or go
> back to see next or previouse 2 rows.

Hi Tham,

Your example already groups the WMSReport elements by ReportUnitTitle,
generating a table for each (in your files there's 3 tables: Sail, Training and
Personnel) so suppose there are 11 WMSReport elements with a certain
ReportUnitTitle then you want them to output 6 html files (2 rows each)?

Here's a stylesheet using <xsl:document> to generate multiple output files.
It's version="1.1" because xsl:document is not supported in XSLT 1.0.

- $rows-per-page is provided as stylesheet param, it defaults to "2" but
  you can pass another value if you want

- The input file is preprocessed into 2 global variables: $units and $files.
  Both variables' result tree fragments (RTF) are automatically converted
  to a node-set so you can use select="$files/t:file" instead of
  "xx:node-set($files)/t:file". It works in Saxon:
  http://saxon.sourceforge.net/saxon6.5.3/conformance.html

- The stylesheet generates an index.html and one html file for every
  "$files/t:file" (with 'previous' and 'next' links). Also a styles.css and
  a log.xml (dump of the global variables).

- The output files are generated inside a "output" subdirectory,
  which you'll have to create before running the transform.

- I added a key "by-id", assuming that your PositionNumber elements
  hold a unique ID - if they don't, and if there's no other element with
  unique contents to use as an ID, you can use="generate-id()" instead.

- <xsl:for-each select="$root"> is used to set the context to
  the source input document, when you want to use a key
  to the WMSReport elements (without the for-each, the
  key doesn't work if you're in the context of a RTF).


<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.1"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="http://www.w3.org/1999/xhtml"
 xmlns:t="t-for-temporary" exclude-result-prefixes="t">

 <xsl:param name="rows-per-page" select="2"/>
 <xsl:param name="encoding" select="'utf-8'"/>

 <!-- default output properties, will be inherited by xsl:document -->
 <xsl:output method="xml" indent="yes" encoding="{$encoding}"/>

 <xsl:key name="by-unit" match="WMSReport" use="ReportUnitTitle"/>
 <xsl:key name="by-id" match="WMSReport" use="PositionNumber"/>

 <xsl:variable name="root" select="/"/>
 <xsl:variable name="records" select="/dsWMSRpt/WMSReport"/>

 <xsl:variable name="units">
  <!-- collection of t:unit elements, one for every ReportUnitTitle -->
  <xsl:apply-templates select="$records[generate-id(.) = generate-id(key('by-unit', ReportUnitTitle))]" mode="units">
   <xsl:sort select="ApptStatusCode" order="ascending"/>
  </xsl:apply-templates>
 </xsl:variable>
 <xsl:template match="WMSReport" mode="units" xmlns="">
  <t:unit name="{ReportUnitTitle}">
   <xsl:apply-templates select="key('by-unit', ReportUnitTitle)" mode="row">
    <xsl:sort select="Person_x0020_Name" order="ascending"/>
   </xsl:apply-templates>
  </t:unit>
 </xsl:template>
 <xsl:template match="WMSReport" mode="row" xmlns="">
  <!-- add one t:row for every table row, store position in @pos (current sort order) -->
  <t:row id="{PositionNumber}" pos="{position()}"/>
 </xsl:template>

 <xsl:variable name="files">
  <!-- collection of t:file elements, one for every output file -->
  <xsl:apply-templates select="$units/t:unit/t:row[number(@pos) mod $rows-per-page = 1]" mode="files"/>
 </xsl:variable>
 <xsl:template match="t:row" mode="files" xmlns="">
  <xsl:variable name="unit" select="parent::t:unit/@name"/>
  <xsl:variable name="nr" select="ceiling(count(preceding-sibling::t:row) div $rows-per-page + 1)"/>
  <xsl:variable name="name" select="concat($unit, '-', $nr)"/>
  <t:file unit="{$unit}" name="{$name}">
   <!-- copy the correct number of t:row elements from $units -->
   <xsl:copy-of select=".|following-sibling::t:row[position() &lt; $rows-per-page]"/>
  </t:file>
 </xsl:template>

 <xsl:template match="/">
  <!-- input root node: start generating output files -->
  <xsl:call-template name="log"/>
  <xsl:call-template name="styles"/>
  <xsl:call-template name="index"/>
  <xsl:apply-templates select="$files/t:file" mode="page"/>
 </xsl:template>

 <xsl:template name="log" xmlns="">
  <!-- generate log.xml (dump global variables) -->
  <xsl:document href="output/log.xml">
   <t:log rows-per-page="{$rows-per-page}" record-count="{count($records)}">
    <t:units count="{count($units/*)}">
     <xsl:copy-of select="$units"/>
    </t:units>
    <t:files count="{count($files/*)}">
     <xsl:copy-of select="$files"/>
    </t:files>
   </t:log>
  </xsl:document>
 </xsl:template>

 <xsl:template name="styles">
  <!-- generate styles.css -->
  <xsl:document href="output/styles.css" method="text">
   body { background: #ddd; }
   h1, h2, h3 { text-align: center; }
   a:hover { background: #6ee; }
   table { width: 100%; }
   th { font-size: 75%; }
   tr.odd td { background: #fff; }
   tr.evn td { background: #bbb; }
   #nav { padding-top: 2em; text-align: center; }
   #nav tr td { width: 33%; }
  </xsl:document>
 </xsl:template>

 <xsl:template name="index">
  <!-- generate index.html -->
  <xsl:document href="output/index.html"
   doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
   <html>
    <xsl:call-template name="html-head">
     <xsl:with-param name="title" select="'index'"/>
    </xsl:call-template>
    <body>
     <h1>index</h1>
     <ul>
      <xsl:apply-templates select="$units/t:unit" mode="index"/>
     </ul>
    </body>
   </html>
  </xsl:document>
 </xsl:template>
 <xsl:template match="t:unit" mode="index">
  <li>
   <a href="{@name}-1.html"><xsl:value-of select="@name"/></a>
   <xsl:text/> (<xsl:value-of select="count(t:row)"/> records)<xsl:text/>
  </li>
 </xsl:template>

 <xsl:template name="html-head">
  <xsl:param name="title" select="''"/>
  <head>
   <title><xsl:value-of select="$title"/></title>
   <meta http-equiv="content-type" content="text/html;charset={$encoding}"/>
   <link rel="stylesheet" type="text/css" href="styles.css"/>
  </head>
 </xsl:template>

 <xsl:template match="t:file" mode="page">
  <!-- generate html file for every t:file -->
  <xsl:document href="output/{@name}.html"
   doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
   <html>
    <xsl:call-template name="html-head">
     <xsl:with-param name="title" select="@name"/>
    </xsl:call-template>
    <body>
     <xsl:variable name="unit" select="@unit"/>
     <xsl:for-each select="$root">
      <xsl:apply-templates select="key('by-unit', $unit)[1]" mode="page"/>
     </xsl:for-each>
     <table border="1">
      <xsl:call-template name="table-header"/>
      <xsl:apply-templates select="t:row" mode="table-row"/>
     </table>
     <xsl:call-template name="nav"/>
    </body>
   </html>
  </xsl:document>
 </xsl:template>
 <xsl:template match="WMSReport" mode="page">
  <h2><xsl:value-of select="Administration"/></h2>
  <h3><xsl:value-of select="ReportUnitTitle"/></h3>
 </xsl:template>

 <xsl:template name="table-header">
  <tr>
   <th>WMS Working Title</th>
   <th>Position Number</th>
   <th>Person Name</th>
   <th>Annual Salary</th>
   <th>Job Cls</th>
   <th>Band</th>
   <th>JVA Code</th>
   <th>Salary Standard</th>
   <th>Peer Group</th>
   <th>Employee Status</th>
   <th>Occ CD</th>
  </tr>
 </xsl:template>

 <xsl:template match="t:row" mode="table-row">
  <xsl:variable name="id" select="@id"/>
  <xsl:variable name="pos" select="position()"/>
  <xsl:for-each select="$root">
   <xsl:apply-templates select="key('by-id', $id)" mode="table-row">
    <xsl:with-param name="pos" select="$pos"/>
   </xsl:apply-templates>
  </xsl:for-each>
 </xsl:template>
 <xsl:template match="WMSReport" mode="table-row">
  <xsl:param name="pos"/>
  <xsl:variable name="class">
   <xsl:choose>
    <xsl:when test="($pos mod 2 = 1)">odd</xsl:when>
    <xsl:otherwise>evn</xsl:otherwise>
   </xsl:choose>
  </xsl:variable>
  <tr class="{$class}">
   <td><xsl:value-of select="WMS_x0020_Working_x0020_Title"/></td>
   <td><xsl:value-of select="PositionNumber"/></td>
   <td><xsl:value-of select="Person_x0020_Name"/></td>
   <td><xsl:apply-templates select="AnnualSalary" mode="format-salary"/></td>
   <td><xsl:value-of select="JobClassCode"/></td>
   <td><xsl:value-of select="Band"/></td>
   <td><xsl:value-of select="JVACode"/></td>
   <td><xsl:apply-templates select="Salary_x0020_Standard" mode="format-salary"/></td>
   <td><xsl:value-of select="Peer_x0020_Group"/></td>
   <td><xsl:value-of select="concat(ApptStatusCode, ' ', AppointmentStatusTitle)"/></td>
   <td><xsl:value-of select="OccupationCode"/></td>
  </tr>
 </xsl:template>
 <xsl:template match="*" mode="format-salary">
  <xsl:choose>
   <xsl:when test="number(.) &gt; 0">
    <xsl:value-of select="format-number(., '$###,###.00')"/>
   </xsl:when>
   <xsl:otherwise>0</xsl:otherwise>
  </xsl:choose>
 </xsl:template>

 <xsl:template name="nav">
  <!-- add "previous" and "next" links -->
  <table id="nav" border="0">
   <tr>
    <td><a href="index.html">index</a></td>
    <td><xsl:apply-templates select="preceding-sibling::t:file[1]" mode="prev"/></td>
    <td><xsl:apply-templates select="following-sibling::t:file[1]" mode="next"/></td>
   </tr>
  </table>
 </xsl:template>
 <xsl:template match="t:file" mode="prev">
  <a href="{@name}.html">previous</a>
 </xsl:template>
 <xsl:template match="t:file" mode="next">
  <a href="{@name}.html">next</a>
 </xsl:template>

</xsl:stylesheet>


If you have any questions don't hesitate to ask!

Cheers,
Anton


> This may be hairy codes, but please help me.
> XSLT code:
>
> <?xml version='1.0' encoding='utf-8' ?>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:output method="html"/>
>
> <!--
> Step 1: Define the primary key to be used in the
> Muenchian grouping. The
> beautiful thing about the xsl:key  element in our
> example is that once we
> know the "Administration", we can easily find all of
> the WMSReport that match that Administration.
> The xsl:key element (different from the key()
> function) is defined as follows:-->
>
> <xsl:key name="dsWMSRpt" match="WMSReport"
> use="ReportUnitTitle"/>
>
>
> <!-- Template for our root rule -->
> <xsl:template match="/">
> <xsl:apply-templates/>
> </xsl:template>
>
>
> <!-- Template for our "dsWMSRpt" rule -->
> <xsl:template match="dsWMSRpt">
>
> <!--Step 2: Loop through the unique regions (the
> primary key) in our document.  -->
> <xsl:for-each
> select="//WMSReport[generate-id(.)=generate-id(key('dsWMSRpt',ReportUnitTitle))]">
>
> <!-- Sort Primary key by ApptStatusCode in
> ascending order -->
>     <xsl:sort select="ApptStatusCode"
> order="ascending"/>
>
>     <!-- Display the region as our table header -->
>     <h2 align="Center"><xsl:value-of
> select="Administration"/></h2>
>    <h3 align="Center"><xsl:value-of
> select="ReportUnitTitle"/></h3>
>
>   <!--Display all nodes for a given Administration
> in a table-->
>   <table border="0">
>       <tr>
> <th>WMS Working Title</th>
> <th>Position Number</th>
> <th>Person Name</th>
> <th>Annual Salary</th>
> <th>Job Cls</th>
> <th>Band</th>
> <th>JVA Code</th>
> <th>Salary Standard</th>
> <th>Peer Group</th>
> <th>Employee Status</th>
> <th>Occ CD</th>
> </tr>
>
>
> <!-- For each value in our key collection for the
> given Administration display values -->
>      <xsl:for-each
> select="key('dsWMSRpt',ReportUnitTitle)">
> <!--
> The expression "key('dsWMSRpt',Administration)"
> will return all of the "WMSReport"
> elements from the key table whose "use="
> expression defined in xsl:key
> (see xsl:key at top)  evaluated to the same value
> as the "Administration" child
> of the current element.  In the the example, we
> specified use="Admnistration".
> If Administration has a value of ".EXEC", then
> all of the WMSReport elements from
> the key table that contain a child element with a
> value of ".EXEC" will
> be returned.
> -->
>
> <!--Sort our secondary key, product nodes,  by
> ApptStatusCode-->
> <xsl:sort select="ApptStatusCode"/>
>       <tr>
>           <xsl:if test="(position() mod 2 = 1)">
> <xsl:attribute
> name="bgcolor">#ccffff</xsl:attribute>
> </xsl:if>
> <td><xsl:value-of
> select="WMS_x0020_Working_x0020_Title"/></td>
> <td><xsl:value-of
> select="PositionNumber"/></td>
> <td><xsl:value-of
> select="Person_x0020_Name"/></td>
> <td>
> <xsl:choose>
> <xsl:when test="AnnualSalary&gt;0">
> <!--format number function has been used
> in the next line-->
> <xsl:value-of
> select='format-number(AnnualSalary, "$###,###.00")' />
> </xsl:when>
> <xsl:otherwise>
> 0
> </xsl:otherwise>
>     </xsl:choose>
> </td>
>
> <td><xsl:value-of
> select="JobClassCode"/></td>
> <td><xsl:value-of select="Band"/></td>
> <td><xsl:value-of select="JVACode"/></td>
> <td>
> <xsl:choose>
> <xsl:when
> test="Salary_x0020_Standard&gt;0">
> <!--format number function has been used
> in the next line-->
> <xsl:value-of
> select='format-number(Salary_x0020_Standard,
> "$###,###.00")' />
> </xsl:when>
> <xsl:otherwise>
> 0
> </xsl:otherwise>
>     </xsl:choose>
> </td>
> <td><xsl:value-of
> select="Peer_x0020_Group"/></td>
> <!--concat function has been used in the next
> line-->
> <td><xsl:value-of
> select='concat(ApptStatusCode, " ",
> AppointmentStatusTitle)' /></td>
> <td><xsl:value-of
> select="OccupationCode"/></td>
> <!--/xsl:when-->
> <!--/xsl:choose-->
> </tr>
>
>     </xsl:for-each>
>
>   </table>
> <br>
> Employee Count: <xsl:value-of
> select="count(key('dsWMSRpt',ReportUnitTitle)[Person_x0020_Name!='Vacancy'
> and Person_x0020_Name!=''])"/>
> </br>
>    <br>
> Vacant Position Count: <xsl:value-of
> select="count(key('dsWMSRpt',ReportUnitTitle)[Person_x0020_Name='Vacancy'])"/>
> </br>
> <br>
> Total Position Count: <xsl:value-of
> select="count(key('dsWMSRpt',ReportUnitTitle))"/>
> </br>
> </xsl:for-each>
>
> </xsl:template>
>
> </xsl:stylesheet>
>
> XML data:
> <?xml version="1.0" standalone="yes"?>
>
> <dsWMSRpt>
> <WMSReport>
> <AdministrationCode>HRS</AdministrationCode>
> <DivisionSort>HRS/Finacial</DivisionSort>
> <Status_x0020_Order>1</Status_x0020_Order>
> <Administration>Finacial</Administration>
> <DivisionTitle>Sale</DivisionTitle>
> <ReportUnitTitle>Sail</ReportUnitTitle>
> <WMS_x0020_Working_x0020_Title>Sale
> Rep.</WMS_x0020_Working_x0020_Title>
> <PositionNumber> JP17</PositionNumber>
> <Person_x0020_Name>Green, Cloud
> </Person_x0020_Name>
> <ApptSalaryUnitCode>M</ApptSalaryUnitCode>
> <SalaryUnitAmount>6050.0000</SalaryUnitAmount>
> <AnnualSalary>72600</AnnualSalary>
> <Band>1</Band>
> <JVACode>000</JVACode>
>
> <Salary_x0020_Standard>74760.0000</Salary_x0020_Standard>
> <Peer_x0020_Group>Q</Peer_x0020_Group>
> <ApptStatusCode>0</ApptStatusCode>
>
> <AppointmentStatusTitle>Temporary</AppointmentStatusTitle>
> <ApptJobClassCode>SR</ApptJobClassCode>
> <JobClassCode>SR</JobClassCode>
> <ApptPartTimePct>100</ApptPartTimePct>
> <PositionCountyCode>27</PositionCountyCode>
> <PersonID>111111111</PersonID>
> <PositionOrgCode>000</PositionOrgCode>
>
> <SeniorityDate>2003-11-20T00:00:00.0000000-08:00</SeniorityDate>
> <OccupationCode>183</OccupationCode>
>
> <SnapshotDate>2004-08-08T00:00:00.0000000-07:00</SnapshotDate>
> <ReportingUnitID>38</ReportingUnitID>
> <SupervisorInd>Y</SupervisorInd>
> </WMSReport>
> <WMSReport>
> <AdministrationCode>HRS</AdministrationCode>
> <DivisionSort>HRS/Finacial</DivisionSort>
> <Status_x0020_Order>1</Status_x0020_Order>
> <Administration>Finacial</Administration>
> <DivisionTitle>Sale</DivisionTitle>
> <ReportUnitTitle>Sail</ReportUnitTitle>
> <WMS_x0020_Working_x0020_Title>Sale
> Rep.</WMS_x0020_Working_x0020_Title>
> <PositionNumber> SDSS</PositionNumber>
> <Person_x0020_Name>Shine, Sun  </Person_x0020_Name>
> <ApptSalaryUnitCode>M</ApptSalaryUnitCode>
> <SalaryUnitAmount>6050.0000</SalaryUnitAmount>
> <AnnualSalary>72600</AnnualSalary>
> <Band>1</Band>
> <JVACode>000</JVACode>
>
> <Salary_x0020_Standard>74760.0000</Salary_x0020_Standard>
> <Peer_x0020_Group>Q</Peer_x0020_Group>
> <ApptStatusCode>0</ApptStatusCode>
>
> <AppointmentStatusTitle>Temporary</AppointmentStatusTitle>
> <ApptJobClassCode>SR</ApptJobClassCode>
> <JobClassCode>SR</JobClassCode>
> <ApptPartTimePct>100</ApptPartTimePct>
> <PositionCountyCode>27</PositionCountyCode>
> <PersonID>44444444444</PersonID>
> <PositionOrgCode>000</PositionOrgCode>
>
> <SeniorityDate>2003-11-20T00:00:00.0000000-08:00</SeniorityDate>
> <OccupationCode>183</OccupationCode>
>
> <SnapshotDate>2004-08-08T00:00:00.0000000-07:00</SnapshotDate>
> <ReportingUnitID>38</ReportingUnitID>
> <SupervisorInd>Y</SupervisorInd>
> </WMSReport>
> <WMSReport>
> <AdministrationCode>HRS</AdministrationCode>
> <DivisionSort>HRS/Personnel</DivisionSort>
> <Status_x0020_Order>Z</Status_x0020_Order>
> <Administration>Personnel</Administration>
> <DivisionTitle>Some Thing</DivisionTitle>
> <ReportUnitTitle>Personnel</ReportUnitTitle>
>
> <WMS_x0020_Working_x0020_Title>IT</WMS_x0020_Working_x0020_Title>
> <PositionNumber>SDFG</PositionNumber>
> <Person_x0020_Name>Red, Brow</Person_x0020_Name>
> <ApptSalaryUnitCode>M</ApptSalaryUnitCode>
> <SalaryUnitAmount>2984.0000</SalaryUnitAmount>
> <AnnualSalary>35808</AnnualSalary>
> <Band>1</Band>
> <JVACode>456</JVACode>
>
> <Salary_x0020_Standard>53112.0000</Salary_x0020_Standard>
> <Peer_x0020_Group>B</Peer_x0020_Group>
> <ApptStatusCode>K</ApptStatusCode>
>
> <AppointmentStatusTitle>Manager-ACTING</AppointmentStatusTitle>
> <ApptJobClassCode>WMS</ApptJobClassCode>
> <JobClassCode>WMS</JobClassCode>
> <ApptPartTimePct>100</ApptPartTimePct>
> <PositionCountyCode>34</PositionCountyCode>
> <PersonID>222222222</PersonID>
> <PositionOrgCode>G70   </PositionOrgCode>
>
> <SeniorityDate>2003-10-01T00:00:00.0000000-07:00</SeniorityDate>
> <OccupationCode>180</OccupationCode>
>
> <SnapshotDate>2004-08-08T00:00:00.0000000-07:00</SnapshotDate>
> <ReportingUnitID>34</ReportingUnitID>
> <SupervisorInd>Y</SupervisorInd>
> </WMSReport>
> <WMSReport>
> <AdministrationCode>HRS</AdministrationCode>
> <DivisionSort>HRS/Traninig</DivisionSort>
> <Status_x0020_Order>1</Status_x0020_Order>
> <Administration>Personnel</Administration>
> <DivisionTitle>Training</DivisionTitle>
> <ReportUnitTitle>Training</ReportUnitTitle>
> <WMS_x0020_Working_x0020_Title>Training
> Specialist</WMS_x0020_Working_x0020_Title>
> <PositionNumber>DREW</PositionNumber>
> <Person_x0020_Name>White, Golden
> </Person_x0020_Name>
> <ApptSalaryUnitCode>M</ApptSalaryUnitCode>
> <SalaryUnitAmount>5043.0000</SalaryUnitAmount>
> <AnnualSalary>60516</AnnualSalary>
> <Band>2</Band>
> <JVACode>456</JVACode>
>
> <Salary_x0020_Standard>60516.0000</Salary_x0020_Standard>
> <Peer_x0020_Group>C1</Peer_x0020_Group>
> <ApptStatusCode>3</ApptStatusCode>
> <AppointmentStatusTitle>TRIAL
> SERVICE</AppointmentStatusTitle>
> <ApptJobClassCode>WMS</ApptJobClassCode>
> <JobClassCode>WMS</JobClassCode>
> <ApptPartTimePct>100</ApptPartTimePct>
> <PositionCountyCode>34</PositionCountyCode>
> <PersonID>333333333</PersonID>
> <PositionOrgCode>DSF</PositionOrgCode>
>
> <SeniorityDate>2004-01-02T00:00:00.0000000-08:00</SeniorityDate>
> <OccupationCode>600</OccupationCode>
>
> <SnapshotDate>2004-08-08T00:00:00.0000000-07:00</SnapshotDate>
> <ReportingUnitID>19</ReportingUnitID>
> <SupervisorInd>N</SupervisorInd>
> </WMSReport>
> <WMSReport>
> <AdministrationCode>HRS</AdministrationCode>
> <DivisionSort>HRS/Traninig</DivisionSort>
> <Status_x0020_Order>1</Status_x0020_Order>
> <Administration>Personnel</Administration>
> <DivisionTitle>Training</DivisionTitle>
> <ReportUnitTitle>Training</ReportUnitTitle>
> <WMS_x0020_Working_x0020_Title>Training
> Specialist</WMS_x0020_Working_x0020_Title>
> <PositionNumber>EWQS</PositionNumber>
> <Person_x0020_Name>Gate, Golden
> </Person_x0020_Name>
> <ApptSalaryUnitCode>M</ApptSalaryUnitCode>
> <SalaryUnitAmount>5043.0000</SalaryUnitAmount>
> <AnnualSalary>60516</AnnualSalary>
> <Band>2</Band>
> <JVACode>456</JVACode>
>
> <Salary_x0020_Standard>60516.0000</Salary_x0020_Standard>
> <Peer_x0020_Group>C1</Peer_x0020_Group>
> <ApptStatusCode>3</ApptStatusCode>
> <AppointmentStatusTitle>TRIAL
> SERVICE</AppointmentStatusTitle>
> <ApptJobClassCode>WMS</ApptJobClassCode>
> <JobClassCode>WMS</JobClassCode>
> <ApptPartTimePct>100</ApptPartTimePct>
> <PositionCountyCode>34</PositionCountyCode>
> <PersonID>333333333</PersonID>
> <PositionOrgCode>FET</PositionOrgCode>
>
> <SeniorityDate>2004-01-02T00:00:00.0000000-08:00</SeniorityDate>
> <OccupationCode>600</OccupationCode>
>
> <SnapshotDate>2004-08-08T00:00:00.0000000-07:00</SnapshotDate>
> <ReportingUnitID>19</ReportingUnitID>
> <SupervisorInd>N</SupervisorInd>
> </WMSReport>
> </dsWMSRpt>
>
>
> =====
> "It is essential to know that to be a happy person, a happy family, a happy society, it is very crucial to have a good heart, that
is very crucial,"
> Dalai Lama

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.