|
Как подсчитать количество ненулевых переменных
|
|||
---|---|---|---|
#18+
Добрый день. Помогите, пожалуйста, количество ненулевых переменных, которые заполняются через функцию sum. Суть в том, чтобы подсчитать общие суммы тэгов ExchComm, ClrComm и ITSComm в разбивке по двум тэгам UserId. И затем подсчитать количество ненулевых результатов: ExchComm / UserId1 <> 0 = 1 штука ExchComm / UserId2 <> 0 = 1 штука ClrComm / UserId1 = 0 = 0 штука ClrComm / UserId2 <> 0 = 1 штука Итого: 3 ненулевых суммы. Я сделал попытку ввести отдельные переменные, каждая из которых будут равна 1, если значение какого-либо Comm > 0. И в конце сложить их все, но что-то не получается. <xsl:variable name="jrn1"> <xsl:value-of select="number('1')"/> </xsl:variable> <xsl:variable name="jrn_1" select="string($jrn1)"/> <xsl:value-of select=number(sum("jrn1", "jrn2"))/> и так тоже <xsl:value-of select=number("jrn1" + "jrn2")/> Заранее благодарю <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" xmlns:altova=" http://www.altova.com" xmlns:altovaext=" http://www.altova.com/xslt-extensions" xmlns:clitype="clitype" xmlns:fn=" http://www.w3.org/2005/xpath-functions" xmlns:iso4217=" http://www.xbrl.org/2003/iso4217" xmlns:ix=" http://www.xbrl.org/2008/inlineXBRL" xmlns:java="java" xmlns:link=" http://www.xbrl.org/2003/linkbase" xmlns:sps=" http://www.altova.com/StyleVision/user-xpath-functions" xmlns:xbrldi=" http://xbrl.org/2006/xbrldi" xmlns:xbrli=" http://www.xbrl.org/2003/instance" xmlns:xlink=" http://www.w3.org/1999/xlink" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="altova altovaext clitype fn iso4217 ix java link sps xbrldi xbrli xlink xs xsi"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:text>H|</xsl:text> <xsl:variable name="batchDate"> <xsl:value-of select="MICEX_DOC/CUX23/@ReportDate"/> </xsl:variable> <xsl:variable name="batch_Date" select="string($batchDate)"/> <xsl:value-of select="$batch_Date"/> <xsl:text> </xsl:text> <xsl:text>JOURNAL PURPOSE PRIMARY ACCOUNT PRIMARY BALANCE TYPE ENTITY PRIMARY DEBIT/CREDIT CROSS ACCOUNT CROSS BALANCE TYPE CROSS DEBIT/CREDIT PRODUCT SYNONYM PREFIX PRODUCT SYNONYM CURRENCY QUANTITY AMOUNT VALUE DATE / SETTLE DATE TRADE DATE TRAILER (SENT DOWNSTREAM) DOTE SOURCE DOTE MODE DOTE ID PRIMARY OFFICE USER ID APPROVER ID JOURNAL TYPE</xsl:text> <xsl:variable name="jrnDate"> <xsl:value-of select="format-number(number(substring(string(string($batchDate)), 6, 2)), '00')"/> <xsl:text>/</xsl:text> <xsl:value-of select="format-number(number(substring(string(string($batchDate)), 9, 2)), '00')"/> <xsl:text>/</xsl:text> <xsl:value-of select="format-number(number(substring(string(string(string($batchDate))), 1, 4)), '0000')"/> </xsl:variable> <xsl:variable name="jrn_Date" select="string($jrnDate)"/> <xsl:variable name="Ex4Com_mos"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600999' ]/@ExchComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="ex4_Com_mos" select="string($Ex4Com_mos)"/> <xsl:variable name="Ex4Com_ldn"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600000' ]/@ExchComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="ex4_Com_ldn" select="string($Ex4Com_ldn)"/> <xsl:variable name="clearCom_mos"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600999' ]/@ClrComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="clear_Com_mos" select="string($clearCom_mos)"/> <xsl:variable name="clearCom_ldn"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600000' ]/@ClrComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="clear_Com_ldn" select="string($clearCom_ldn)"/> <xsl:variable name="ITSComm_mos"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600999' ]/@ITSComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="ITS_Com_mos" select="string($ITSComm_mos)"/> <xsl:variable name="ITSComm_ldn"> <xsl:value-of select="format-number(number(sum( //*[@UserId = 'MB0996600000' ]/@ITSComm )), '#####0.0000')"/> </xsl:variable> <xsl:variable name="ITS_Com_ldn" select="string($ITSComm_ldn)"/> <xsl:if test="$ex4_Com_mos > 0"> <xsl:variable name="jrn1"> <xsl:value-of select="number('1')"/> </xsl:variable> <xsl:variable name="jrn_1" select="string($jrn1)"/> <xsl:text> </xsl:text> <xsl:text>MANUAL WORKFLOW</xsl:text> <xsl:text> </xsl:text> <xsl:text>781612544</xsl:text> <xsl:text> </xsl:text> <xsl:text>D</xsl:text> <xsl:text> </xsl:text> <xsl:text>025146044</xsl:text> <xsl:text> </xsl:text> <xsl:text>C</xsl:text> <xsl:text> </xsl:text> <xsl:text>RUB</xsl:text> <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:value-of select="$ex4_Com_mos"/> <xsl:text> </xsl:text> <xsl:value-of select="$jrn_Date"/> <xsl:text> </xsl:text> <xsl:text>SS</xsl:text> </xsl:if> <xsl:if test="$ex4_Com_ldn > 0"> <xsl:variable name="jrn2"> <xsl:value-of select="number('1')"/> </xsl:variable> <xsl:variable name="jrn_2" select="string($jrn2)"/> <xsl:text> </xsl:text> <xsl:text>MANUAL WORKFLOW</xsl:text> <xsl:text> </xsl:text> <xsl:text>781612544</xsl:text> <xsl:text> </xsl:text> <xsl:text>D</xsl:text> <xsl:text> </xsl:text> <xsl:text>025146044</xsl:text> <xsl:text> </xsl:text> <xsl:text>C</xsl:text> <xsl:text> </xsl:text> <xsl:text>RUB</xsl:text> <xsl:text> </xsl:text> <xsl:value-of select="$ex4_Com_ldn"/> <xsl:text> </xsl:text> <xsl:value-of select="$jrn_Date"/> <xsl:text> </xsl:text> <xsl:value-of select="$jrn_Date"/> <xsl:text> </xsl:text> <xsl:text>SS</xsl:text> </xsl:if> <xsl:if test="$clear_Com_mos > 0"> <xsl:variable name="jrn3"> <xsl:value-of select="number('1')"/> </xsl:variable> <xsl:variable name="jrn_3" select="string($jrn3)"/> <xsl:text> </xsl:text> <xsl:text>MANUAL WORKFLOW</xsl:text> <xsl:text> </xsl:text> <xsl:text>781612544</xsl:text> <xsl:text> </xsl:text> <xsl:text>D</xsl:text> <xsl:text> </xsl:text> <xsl:text>025146044</xsl:text> <xsl:text> </xsl:text> <xsl:text>C</xsl:text> <xsl:text> </xsl:text> <xsl:text>RUB</xsl:text> <xsl:text> </xsl:text> <xsl:value-of select="$clear_Com_mos"/> <xsl:text> </xsl:text> <xsl:value-of select="$jrn_Date"/> <xsl:text> </xsl:text> <xsl:text>SS</xsl:text> </xsl:if> <xsl:if test="$clear_Com_ldn > 0"> <xsl:variable name="jrn4"> <xsl:value-of select="number('1')"/> </xsl:variable> <xsl:variable name="jrn_4" select="string($jrn4)"/> <xsl:text> </xsl:text> <xsl:text>MANUAL WORKFLOW</xsl:text> <xsl:text> </xsl:text> <xsl:text>781612544</xsl:text> <xsl:text> </xsl:text> <xsl:text>D</xsl:text> <xsl:text> </xsl:text> <xsl:text>025146044</xsl:text> <xsl:text> </xsl:text> <xsl:text>C</xsl:text> <xsl:text> </xsl:text> <xsl:text>RUB</xsl:text> <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:text> </xsl:text> <xsl:value-of select="$clear_Com_ldn"/> <xsl:text> </xsl:text> <xsl:value-of select="$jrn_Date"/> <xsl:text> </xsl:text> <xsl:text>SS</xsl:text> </xsl:if> <xsl:text> </xsl:text> <xsl:text>T|</xsl:text> <xsl:value-of select=number(sum("jrn1", "jrn2"))/> </xsl:template> </xsl:stylesheet> ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 17:30 |
|
|
start [/forum/topic.php?fid=14&msg=38169965&tid=1332570]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 31ms |
total: | 163ms |
0 / 0 |