forum.bitel.ru
http://forum.bitel.ru/

Не печатаются данные из дефолтной bill_pdf.xsl
http://forum.bitel.ru/viewtopic.php?f=14&t=10028
Страница 1 из 1

Автор:  Galkov [ 17 дек 2014, 12:57 ]
Заголовок сообщения:  Не печатаются данные из дефолтной bill_pdf.xsl

например -
Телефон: <xsl:value-of select="/data/bill/contract_data/contract_params/parameter[@pid='1']/@value"/>
--
По всей видимости потому что нет у меня никакакого /data/bill/contract_data/contract_params/parameter в системе(элементарно через find в системе слов таких нет).
Где его взять-то?

Автор:  vkulakov [ 17 дек 2014, 14:20 ]
Заголовок сообщения:  Re: Не печатаются данные из дефолтной bill_pdf.xsl

А если так попробовать:
Код:
/data/bill/contract_params/parameter[@pid=1]/@value

Автор:  vkulakov [ 17 дек 2014, 14:23 ]
Заголовок сообщения:  Re: Не печатаются данные из дефолтной bill_pdf.xsl

Я себе сделал такой шаблон, чтобы смотреть, какие узлы и атрибуты есть в xml:
Код:
    <!-- Вывод содержимого узла -->
    <xsl:template name="print">
                    <fo:block xsl:use-attribute-sets="text" margin-top="12pt">
                        <fo:block>Orig:</fo:block>
                        <xsl:for-each select=".">
                            <fo:block margin-left="15pt">
                                <xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
                            </fo:block>
                        </xsl:for-each>

                        <fo:block>Children:</fo:block>
                        <xsl:for-each select="./*">
                            <fo:block margin-left="15pt">
                                <xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
                            </fo:block>
                        </xsl:for-each>

                        <fo:block>Attrs:</fo:block>
                        <xsl:for-each select="./@*">
                            <fo:block margin-left="15pt">
                                <xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
                            </fo:block>
                        </xsl:for-each>

                        <xsl:for-each select="./*">
                            <xsl:call-template name="print"/>
                        </xsl:for-each>
                    </fo:block>
    </xsl:template>


Вызывать вот так:
Код:
<xsl:for-each select="./*">
    <xsl:call-template name="print"/>
</xsl:for-each>

В результате в pdf будет всё дерево выведено.

Не идеал, конечно, но работает.

Автор:  Galkov [ 17 дек 2014, 15:09 ]
Заголовок сообщения:  Re: Не печатаются данные из дефолтной bill_pdf.xsl

vkulakov писал(а):
А если так попробовать:
Код:
/data/bill/contract_params/parameter[@pid=1]/@value


о, так работает... а почему тогда старый bill_pdf.xsl поставляется?
в инструкции же написано, что его апдейты переписывают..
---

ещё есть вопрос - подскажите куда посмотреть - мне надо выводить по условию - скажем

если /data/bill/contract_params/parameter[@pid=1]/@value = NULL, то вывести /data/bill/contract_params/parameter[@pid=2]/@value

можно такое реализовать?

Автор:  Galkov [ 17 дек 2014, 15:11 ]
Заголовок сообщения:  Re: Не печатаются данные из дефолтной bill_pdf.xsl

vkulakov писал(а):
Я себе сделал такой шаблон, чтобы смотреть, какие узлы и атрибуты есть в xml:

Вызывать вот так:
Код:
<xsl:for-each select="./*">
    <xsl:call-template name="print"/>
</xsl:for-each>

В результате в pdf будет всё дерево выведено.

Не идеал, конечно, но работает.


идеал-не идеал - это отличная штука, спасибо!

Автор:  vkulakov [ 17 дек 2014, 18:34 ]
Заголовок сообщения:  Re: Не печатаются данные из дефолтной bill_pdf.xsl

Galkov писал(а):
ещё есть вопрос - подскажите куда посмотреть - мне надо выводить по условию - скажем

если /data/bill/contract_params/parameter[@pid=1]/@value = NULL, то вывести /data/bill/contract_params/parameter[@pid=2]/@value

можно такое реализовать?


Так тут ничего сложного нет. Здесь про if написано, как с null сравнивать - тоже можно найти. У меня готового решения нет.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/