Trying to manage and intuitively display a large amount of data, which breaks down like this:
2 main lists: Package List, Steps List
Each package had a Planned, Forecast and Actual (P/F/A) date associated with each Step, which is stored in a third list (Dates) and linked to the 2 other lists.
There are many steps in the Steps list, but only a dozen or so are of interest in the view I'm building, and are numbered sequentially in a specific column.
I've created a joined datasource in SPD2007, and managed to:
- for-each Step*, create a <th> entry in the first row
- for-each Package, create a new <tr> and a first cell which carries the package name and rowspan=3, then
- for each of the Planned, Forecast and Actual, continue/create a <tr>, then call a template (in the CODE section below) to fill in the data, by matching the package at the beginning of the row, and the column
The questions are these:
- Is there anything to be gained by replacing this structure with <apply-templates> rather than with <call-templates> and <for-each>
- Is it possible to lookup 'vertically' or pass a param somehow (or a sequence thereof) to obtain the steps (IDs) list for filtering the dates?
> Currently, my template relies on each date being created in order (within the Dates table), for correct display, and also doesn't account for missing values (i.e. a date for step 5 being entered without having a date for step 4) so mis-alignments w.r.t the column headers occur.
> I've tried using a nested for-each (selecting the relevant steps then the relevant dates) but the resulting processing causes my SPD to eat up 100's of MBs and slow to a halt.
<td class="style1" style="width: 13px">
<xsl:for-each select="$Dates[@Package = $Pkg and @DateType = $PFA]">
<td class="style1" nowrap="nowrap">
<xsl:value-of select="ddwrt:FormatDateTime(string(@DateValue) ,1033 ,'dd-MMM-yy ')"/>