Здесь снова с другим (скорее) «маленьким» запросом.Это связано с тем, которые были представлены в моих предыдущих темах:
XSLT получает вычисленное значение узла по значению узла следующей строки (часть I)
XSLT pagedотображать некоторые вычисленные значения узлов вместе со значениями предыдущих строк, полученными в следующей строке (II) (часть II)
. Существует файл XML, который можно проверить, а также связанный файл .xsl черезкоторые все эти счета за содержание правильно отображаются.Этот файл .xml показан там через предоставленную вторую ссылку.Кроме того, связанный .xsl, я положу его здесь еще ниже ... Пока все хорошо.
Но если внимательно проверить, что .xml заметит, что каждая запись поддержки содержит один, два или дажетри квитанции, через которые были сделаны некоторые платежи.Скажем, к примеру, O займёт первую строку, вы узнаете, что для month_year = 11_16-12_16 ежемесячная сумма для выплаты составляет 77, и эта сумма была частично выплачена по двум квитанциям: квитанция dte = "01-26-17 "нет = 5725 сумма = 22 и квитанция dte =" 01-26-17 "нет = 5726 сумма = 41 (конечно, осталось 36 балансов .. но здесь это не так важно.) То же самое относится и к остальнымтакже ежемесячная доля.
Суть в том, что между этой ежемесячной долей поддержки (upkShare) и количеством поступлений, по которым был произведен этот конкретный платеж, была бы связь 1: n.Для этого теперь мне нужно отобразить (через другую процедуру xslt) все эти записи, поскольку они уже отображаются, но вместе с небольшим крестиком, помещенным (где-то) над крайней левой стороной этой строки;и при щелчке по нему откроется еще одна небольшая таблица с квитанциями, связанными с этой записью общего доступа.Эта операция напоминает поведение аккордеона.При нажатии на знак плюс расширилась еще одна таблица квитанций, связанная с html;и так что знак плюс он превратится в знак минус.И если щелкнуть по этому знаку минус, вся таблица, относящаяся к получателям (html), в конечном итоге рухнет;снова показывая только то, что линии Upkeep Share сжались.
В любом случае я только что сделал некоторый подобный пример через какое-то маленькое приложение jqGrid, которое я поместил поверх скрипки.Это можно проверить здесь:
https://jsfiddle.net/MrcaS48/6Ljv0xoh/164
И, проверив эту строку, нужно действительно получить именно то, о чем идет речь.В двух словах: .xslt должен сделать три основных вещи:
- отображение моих счетов по акциям поддержки - делает ли это уже
- , что отображает сделать его страничным - делает это уже
- выполнение этого отношения 1 к n между основной линией записи (ежемесячная доля обслуживания) и второй, которая является квитанциями, через которые производятся все платежи;этот эффект, подобный аккордеону, при дальнейшем открытии квитанций линий, если щелкнуть знак «плюс», расположенный над левой дальней стороной каждой записи основной строки, - сделать !!Далее я покажу файл .xsl, который уже выполняет задания, упомянутые ранее в пунктах 1 и 2. Точка 3 должна быть настроена.
.xsl код
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl">
<xsl:strip-space elements="*"/> <xsl:decimal-format name="coerce" NaN="0"/>
<xsl:variable name="upkshr"> <!-- upkshr -->
<xsl:for-each select="*/upkShare">
<upkp pstdte="{@post_dte}" rltedmnthyr = "{@month_year}" ob = "{format-number(OpngBlnce, '#', 'coerce')}"
mcamnt = "{format-number(mnthCrrntAmnt, '#','coerce')}" term = "{@due}" rcptsum = "{format-number(sum(Rcpt/amnt), '#','coerce')}" /> <!-- missing ob node's value forced to zero -->
</xsl:for-each>
</xsl:variable>
<xsl:param name="size" select="4"/>
<xsl:template match="upkeepList">
<xsl:variable name="upkp-set" select="exsl:node-set($upkshr)/upkp"/>
<html>
<head>
<script type="text/javascript" src="js/scrpt_pagn.js"></script>
<h3 style="margin-left:320">Upkeep share bills list</h3>
</head>
<body onload="onInit()">
<xsl:apply-templates select="$upkp-set[position() mod $size = 1]">
<xsl:with-param name="pages" select="ceiling(count($upkp-set) div $size)"/>
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="upkp"> <xsl:param name="pages"/>
<xsl:variable name="page" select="position()"/>
<table border="1" id='content{$page}' display:none">
<tr bgcolor="#9acd32">
<th>UpkpShare_Prd</th> <th>PostDate</th> <th>InitBalance</th>
<th>UpkpShare_Amnt</th> <th>DueDate</th> <th>FullAmnt</th>
<th>FullAmntPayed</th> <th>AmntDue</th>
</tr>
<xsl:for-each select=". | following-sibling::upkp[position()<$size]">
<xsl:variable name="initblnc" select="sum(preceding-sibling::upkp/@ob) + sum(preceding-sibling::upkp/@mcamnt) - sum(preceding-sibling::upkp/@rcptsum) + @ob" />
<tr>
<td><xsl:value-of select="@rltedmnthyr"/></td>
<td><xsl:value-of select="@pstdte"/></td>
<td><xsl:value-of select="$initblnc"/></td>
<td><xsl:value-of select="@mcamnt"/></td>
<td><xsl:value-of select="@term"/></td>
<td><xsl:value-of select="$initblnc + @mcamnt"/></td>
<td><xsl:value-of select="@rcptsum"/></td>
<td><xsl:value-of select="$initblnc + @mcamnt - @rcptsum"/> </td>
</tr>
</xsl:for-each>
<tr>
<td colspan="8">
<xsl:choose>
<xsl:when test="$page = 1">
<xsl:text>pag</xsl:text> <xsl:text> </xsl:text>
<xsl:value-of select="$page"/>
<xsl:value-of select="'/'"/>
<xsl:value-of select="$pages"/>
<xsl:value-of select="' '"/>
<a href="#{$page+1}" onclick="nextPage({$page+1})">></a>
</xsl:when>
<xsl:when test="$page = $pages">
<xsl:value-of select="' '"/>
<a href="#{$page - 1}" onclick="prevPage({$page - 1})"><</a>
<xsl:text> </xsl:text> <xsl:text>pag</xsl:text>
<xsl:value-of select="' '"/>
<xsl:value-of select="$page"/>
<xsl:value-of select="'/'"/>
<xsl:value-of select="$pages"/>
</xsl:when>
<xsl:otherwise>
<a href="#{$page - 1}" onclick="prevPage({$page - 1})"><</a>
<xsl:text> </xsl:text> <xsl:text>pag</xsl:text>
<xsl:value-of select="' '"/>
<xsl:value-of select="$page"/>
<xsl:value-of select="'/'"/>
<xsl:value-of select="$pages"/>
<xsl:value-of select="' '"/>
<a href="#{$page+1}" onclick="nextPage({$page+1})">></a>
</xsl:otherwise>
</xsl:choose>
</td> </tr>
</table>
</xsl:template>
</xsl:stylesheet>
И есть тот файл .js, который также представлен по предыдущей ссылке.Это было бы все.Ребята, пожалуйста, помогите мне с этим.Я очень ценю это.Заранее спасибо.