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

Указание групп в xml веб-статистики
http://forum.bitel.ru/viewtopic.php?f=22&t=3916
Страница 1 из 1

Автор:  Cromeshnic [ 19 апр 2010, 13:41 ]
Заголовок сообщения:  Указание групп в xml веб-статистики

Сейчас в параметре /data/contract_data/contract/@gr хранится long число - битовая маска групп договора. Но использовать её средствами одного только xsl нельзя, т.к. в нем отсутствуют побитовые операции.

Может быть есть смысл добавить параметр, скажем bingr, содержащий маску в бинарном представлении, чтобы можно было проверить наличие группы через substring(@bingr,20,1)=1
?

Автор:  dimOn [ 19 апр 2010, 15:24 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

почему отсутствуют то?

Автор:  snark [ 19 апр 2010, 15:27 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

тут
Код:
<xsl:template name="power">
    <xsl:param name="x"/>
    <xsl:param name="n"/>

    <xsl:choose>
        <xsl:when test="$n = 0">1</xsl:when>
        <xsl:when test="$n = 1">
            <xsl:value-of select="$x"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:variable name="pow-1">
                <xsl:call-template name="power">
                    <xsl:with-param name="x" select="$x"/>
                    <xsl:with-param name="n" select="$n - 1"/>
                </xsl:call-template>
            </xsl:variable>
            <xsl:value-of select="$x * $pow-1"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

Автор:  dimOn [ 19 апр 2010, 15:29 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

а причём тут степень?))

я немного затупил с сутью вопроса, да, напрямую побитово нельзя....

Автор:  Cromeshnic [ 19 апр 2010, 15:37 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

Так может добавить? :)

2snark
Ну, возведу я в степень, а "bitwise and" всё равно не сделаешь.
Можно конечно через xmlns:sql="bitel.billing.server.util.exslt.SQLQuery дергать запросом, но некрасиво ведь.

Автор:  snark [ 19 апр 2010, 16:04 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

Цитата:
(xslt) support the arithmetic operations "div" and "mod" that you can use to simulate bitwise calculations. For example, to extract the low-order bit from x you could use "x mod 2", and to extract the bit to the left of that you could use "floor(x div 2) mod 2" and like that.

первая ссылка в гугле
Код:
http://google.com/search?q=xsl+bitwise+operations

тут еще есть немного инфы

Автор:  Cromeshnic [ 20 апр 2010, 09:16 ]
Заголовок сообщения:  Re: Указание групп в xml веб-статистики

Упс, плохо искал.

Бтв, решение:
Код:
<xsl:if test="floor(/data/contract_data/contract/@gr div 4194304) mod 2 = 1">

- для проверки наличия группы 22
(2^22 = 4194304)

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