BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 13:32

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Web-кабинет и 21-й век
СообщениеДобавлено: 07 дек 2009, 20:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Доброго времени суток!

Сразу скажу, BGBilling я очень уважаю, особенно после того как я помучился с другими... стабильность/прогнозируемость и восстанавливаемость этого биллинга на очень хорошем уровне. Приятно видеть его развитие и появление важных, нужных и ожидаемых нововведений. К чему я это? К тому, что я не отношусь к людям, которым очень нравится срать в комменты, хая все, что попадется под руку. Плюсы этого биллинга я знаю и ценю.
Теперь по теме (о минусах):
Разве ж можно существовать на изобилующем конкурентами рынке с таким динозаврским, доисторическим домашним кабинетом?!!!

1) В статистике по dialup подключениям - для выбора диапазона времени нужно числа месяца вписывать с клавиатуры в квадратненькие окошечки. НОНСЕНС! Джаваскриптовые календарики уже давно де-факто стандарт для таких вещей!

2) В статистике по трафику.. вообще слов нет. Типы трафика в заголовке перечисляются через символ разделитель, а затем в самом отчете показываются ввиде: 124574215/12475147/789879/78894857/487841578/48787
в байтах, через тот-же самый символ-разделитель, без точек или запятых показывающих сотни, тысячи и т.д.
Неужели нельзя для каждого типа трафика сделать отдельный столбец с адекватным описанием в заголовке и поставить переключатель: показывать в килобайтах/мегабайтах/гигабайтах... и между сотнями и тысячами поставить точки или запятые...

Это все конечно мишура, об этом не заводят тем на форуме, но эти мелочи придают биллингу этакий оттенок:... что-то вроде хорошей иномарки ручными стеклоподъемниками :-) ну вы меня понимаете.

И вообще - начиная с версии 4.4 и до 4.6 (последний build) никаких изменений в домашнем кабинете, а так многого там бы хотелось увидеть. Получается, что биллинг совершенствуется и кабинет нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 12:30 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
Или вы живете на слишком старой версии, или я чего-то не понимаю...
См. скрины
Вложение:
Комментарий к файлу: скрин абонотдела
scr1.PNG
scr1.PNG [ 70.08 КБ | Просмотров: 7194 ]


Вложение:
Комментарий к файлу: скрин с клиента биллинга
scr2.PNG
scr2.PNG [ 128.75 КБ | Просмотров: 7194 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 13:26 
Не в сети

Зарегистрирован: 25 янв 2009, 17:36
Сообщения: 221
Карма: 0
4.6 последний билд.
Согласен с топикастером. Теже проблемы.
Отчет по диалап сессиям в БАЙТАХ просто убивает... :(

2Victor у Вас 5.0, "белая кость"...
Простые смертные работают на 4.6 :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 13:33 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
в 4.6 было тоже самое... 5.0 на данный момент просто копия 4.6.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 14:50 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
survivor писал(а):
Сразу скажу, BGBilling я очень уважаю, особенно после того как я помучился с другими... стабильность/прогнозируемость и восстанавливаемость этого биллинга на очень хорошем уровне. Приятно видеть его развитие и появление важных, нужных и ожидаемых нововведений. К чему я это? К тому, что я не отношусь к людям, которым очень нравится срать в комменты, хая все, что попадется под руку. Плюсы этого биллинга я знаю и ценю.
Теперь по теме (о минусах):
Разве ж можно существовать на изобилующем конкурентами рынке с таким динозаврским, доисторическим домашним кабинетом?!!!
... и т.д.

:lol: сначала ложка мёда затем ведро дегтя, написал так написал :|

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 15:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
:-) Похоже я отстал немного...
Теперь смысл покупки лицензии на 5.0 стал более-менее понятен.
Victor уточните пожалуйста в какой версии 4.6 вы видели такое же? Это точно "заводская" фича? У вас кабинет хорошенько причесан дизайнером - может и над xslt поработали и доработали так сказать ;-) до соответствующего функционала?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 15:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Хм...
Документация от 5.0 - страничка "web-интерфейс dialup модуля":
http://www.bgbilling.ru/v5.0/doc/ch03s17.html

Как я говорил - трафик в байтах через "/".

Victor, или у вас какая-то эксклюзивная версия или в документации скриншот от старой версии... или все-таки поработали ваши программеры над xslt :-) поделитесь кодом, пожалуйста :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 18:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
Конечно программеры поработали над xslt...

Код:
<!-- сессии логина -->
<xsl:template name="ShowSessions">
        <form method='post' action='{$WEBEXECUTER}#idDivReport' name="sessions">
                <xsl:variable name="module" select="/data/@module"/>
                <xsl:call-template name="action"/>
                <xsl:call-template name="error"/>
                <xsl:call-template name="sessionFilter"/>
        </form>
        <xsl:if test="count(sessions/traffic)=0">
           <script language="JavaScript">
           <![CDATA[
                document.sessions.submit();
             ]]>
           </script>
        </xsl:if>
        <form method='post' action='{$WEBEXECUTER}'>
                <xsl:call-template name="action"/>
                <input type="hidden" name="createDetail" id="createDetailId" value="0"/>
                <div style="display:none">
                        <xsl:call-template name="sessionFilter"/>
                </div>
                <xsl:call-template name="AddReportReferences"/>
                <xsl:call-template name="report">
                        <xsl:with-param name="node" select="sessions"/>
                        <xsl:with-param name="data">
                                <table class="price" cellspacing='1' id="idTableDialUpSessions">
                                        <col class="col1"/>
                                        <col class="col2"/>
                                        <col class="col3"/>
                                        <col class="col4"/>
                                        <col class="col5"/>
                                        <col class="col6"/>
                                        <col class="col7"/>
                                        <thead>
                                                <tr>
                                                        <td>Время входа</td>
                                                        <td>Время выхода</td>
                                                        <td>Длительность<br/>чч:мм:сс</td>
                                                        <td>Стоимость<br/>руб.</td>
                                                        <td>Вх.инт.<br/>Мб</td>
                                                        <td>Исх.инт.<br/>Мб</td>
                                                        <td>Лок.<br/>Мб</td>
                                                        <td>Лок.льг.<br/>Мб</td>
                                                        <td>Лок.беспл.<br/>Мб</td>
                                                        <td>&#160;</td>
                                                </tr>
                                        </thead>
                                        <tbody>
                                                <xsl:for-each select="sessions/row">
                                                <tr><xsl:if test="(position() mod 2)=0"><xsl:attribute name="style">background-color: #eeeeee</xsl:attribute></xsl:if>
                                                        <td><xsl:value-of select="@f0"/></td>
                                                        <td><xsl:value-of select="@f1"/></td>
                                                        <td><xsl:value-of select="@f2"/></td>
                                                        <td><xsl:value-of select="@f3"/></td>
                                                        <xsl:for-each select="traffic">
                                                        <td>
                                                        <xsl:choose>
                                                          <xsl:when test="position()=1">
                                                             <xsl:attribute name="title">Входящий, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=2">
                                                             <xsl:attribute name="title">Исходящий, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=3">
                                                             <xsl:attribute name="title">Локальный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=4">
                                                             <xsl:attribute name="title">Локальный льготный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=5">
                                                             <xsl:attribute name="title">Локальный бесплатный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                        </xsl:choose>
                                                        <xsl:value-of select="format-number( . div 1048576, '###&#160;##0,00', 'traff')"/>
                                                        </td>
                                                        </xsl:for-each>
                                                        <td><input type="radio" name="session_id" value="{@id}" style="margin:0px; padding:0px;"/></td>
                                                </tr>
                                                </xsl:for-each>
                                        </tbody>
                                        <tfoot>
                                           <tr>
                                                        <td colspan="2">Итого сессий:&#160;<xsl:value-of select="sessions/@count_amount"/></td>
                                                        <td><xsl:value-of select="sessions/@time_amount"/></td>
                                                        <td><xsl:value-of select="sessions/@money_amount"/></td>
                                                        <xsl:for-each select="sessions/traffic">
                                                        <td>
                                                        <xsl:choose>
                                                          <xsl:when test="position()=1">
                                                             <xsl:attribute name="title">Входящий, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=2">
                                                             <xsl:attribute name="title">Исходящий, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=3">
                                                             <xsl:attribute name="title">Локальный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=4">
                                                             <xsl:attribute name="title">Локальный льготный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                          <xsl:when test="position()=5">
                                                             <xsl:attribute name="title">Локальный бесплатный, Мб</xsl:attribute>
                                                          </xsl:when>
                                                        </xsl:choose>
                                                        <xsl:value-of select="format-number( . div 1048576, '###&#160;##0,00', 'traff')"/>
                                                        </td>
                                                        </xsl:for-each>
                                                        <td>&#160;</td>
                                                </tr>
                                        </tfoot>
                                </table>
                        </xsl:with-param>
                </xsl:call-template>
               
                <br/>
               
                <xsl:choose>
                        <xsl:when test="not(sessions/row)"></xsl:when>
                        <xsl:when test="createDetail/@created='1'">
                                <table cellspacing="0" class="filter">
                                        <tr>
                                                <th>Отправка детализации поставлена в очередь.
                                                </th>
                                        </tr>
                                </table>
                        </xsl:when>
                        <xsl:otherwise>
                                <table cellspacing="0" class="filter" id="idTableDialupCreateDetail">
                                <tr>
                                        <th>
                                        Выслать детализацию для выбранной сессии на email:
                                                <input type="text" name="mail" size="30"></input>
                                        </th>
                                        <th>
                                           
                                                <xsl:call-template name="button">
                                                        <xsl:with-param name="title">Выслать</xsl:with-param>
                                                       
                                                        <xsl:with-param name="onclick"> document.getElementById("createDetailId").value=1; setPage(<xsl:value-of  select="sessions/@pageIndex"/>, this);</xsl:with-param>
                                                       
                                                </xsl:call-template>
                                        </th>
                                </tr>
                                </table>
                        </xsl:otherwise>
                </xsl:choose>
        </form>
</xsl:template>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 19:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Большое Вам спасибо!!!
Прикрутил - сейчас все красиво... :-)

Но... Моя тема была адресована по большей части к разработчикам - почему не сделать идущий по-умолчанию кабинет более... современным что-ли... более доработанным... то что можно под себя его как угодно крутить - это клево и это одна из хороших особенностей bgbilling'а. Вряд ли мои замечания у кого-нибудь вызовут возражения, вот даже есть конкретный пример как ЭТО бывает нужно и не одному мне и есть конкретные реализации на местах так сказать :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 19:43 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Какие возражения. ты же такой политкорректный, весь такой правильный, и не срущий критикой в комментах :lol: :|

По теме - толково! Не по теме, вступление темы было "нетолковое"

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 20:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Akhmat писал(а):
Какие возражения. ты же такой политкорректный, весь такой правильный, и не срущий критикой в комментах :lol: :|

По теме - толково! Не по теме, вступление темы было "нетолковое"


Да я сам - немного разработчик :-) по жизни. И очень бывает неприятно когда работаешь, стараешься, внедряешь, а потом приходит какой-нибудь ... и начинается "критика"... без адекватной оценки задачи/ресурсов/исполнения/целесообразности.

Поэтому и с другими предпочитаю общаться соответствующе. Но это уже - оффтоп и тема для другого форума.

Разработчики - отзовитесь! освежите кабинет, людям понравится ;) Да... и извините за политкорректность :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 08 дек 2009, 20:19 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
я тоже малость самую разработчик, и критика или пожелания в форме критики, это часть нашей работы. ок, мы поняли друг друга, закончил :)

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 09 дек 2009, 02:57 
Не в сети

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
никому не нужен дефолтный веб, будь он хоть золотой и с искуственным интелектом, не нужен потому что точно такой же будет еще у 10000 компаний
так что не важно что там в комплекте, imho


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 09 дек 2009, 12:18 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Задумывается, что вид кабинета при желании и умении можно переделать как угодно - всё на шаблонах, причём не просто на темплейтах каких-нибудь, а xslt, что подразумевает серьёзное изменение не только вида, а даже логики в мелочах. Менять можно почти всё - для ввода дат тех же делаете хоть окошечки, хоть списки.

Ну и второе - когда определимся с механизмом web-части биллинга, например, перейдём на jsp/jstl - надеюсь, всё перепишем подчистую там. По предположениям, это будет примерно в следующей версии 5.2.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 09 дек 2009, 13:27 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Доработка В веб статистике в просмотре сессий и наработок разделены столбцы трафиков и сделан выбор единиц измерения реализована в разрабатываемой ветки и будет доступна в 5.1 релизе.
По поводу календариков.. Мы стараемся сделать штатный Web интерфейс простым и лёгким.
С нашей точки зрения, ввод дат в окошко удобнее нежели тыканье календарей. Тем более, что там в большинстве случаев смотрят месяц целиком на мой взгляд.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Web-кабинет и 21-й век
СообщениеДобавлено: 09 дек 2009, 19:06 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
я сделал несколько иначе чем ув. Victor, а именно - я отошел от хардкодед наименований трафиков в пользу парсинга XML

в начало dialup.xsl добавляем
Код:
<xsl:import href="dialup_split.xsl" />

вот его часть с сессиями и наработкой:
Код:
<!-- сессии логина -->
<xsl:template name="ShowSessions">
    <form method="post" action="webexecuter#idDivReport" name="sessions">
        <xsl:variable name="module" select="/data/@module" />
        <xsl:call-template name="action" />
        <xsl:call-template name="error" />
        <xsl:call-template name="sessionFilter" />
    </form>
    <form method="post" action="webexecuter">
        <xsl:call-template name="action" />
        <input type="hidden" name="createDetail" value="1" />
        <div style="display:none">
            <xsl:call-template name="sessionFilter" />
        </div>
        <xsl:call-template name="report">
            <xsl:with-param name="node" select="sessions" />
            <xsl:with-param name="data">
                <table cellspacing="1" id="idTableDialUpSessions">
                    <col class="col1" />
                    <col class="col2" />
                    <col class="col3" />
                    <col class="col4" />
                    <col class="col5" />

                    <xsl:call-template name="split_col">
                        <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param>
                        <xsl:with-param name="delimiter">/</xsl:with-param>
                    </xsl:call-template>

                    <col class="col7" />
                    <thead>
                        <tr>
                            <td>Логин</td>
                            <td>Время входа</td>
                            <td>Время выхода</td>
                            <td>Длительность<br /> сеанса, мин. [сек.]</td>
                            <td>Сумма, руб.</td>

                            <xsl:call-template name="split_td">
                                <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param>
                                <xsl:with-param name="delimiter">/</xsl:with-param>
                                <xsl:with-param name="text">, MB</xsl:with-param>
                            </xsl:call-template>

                            <td style="background-color: #ffffff; border-top-color: #ffffff; border-right-color: #ffffff;">&#x0A;</td>
                        </tr>
                    </thead>
                    <tbody>
                        <xsl:for-each select="sessions/row">
                            <tr>
                                <td><xsl:value-of select="@login" /></td>
                                <td><xsl:value-of select="@f0" /></td>
                                <td><xsl:value-of select="@f1" /></td>
                                <td><xsl:value-of select="@f2" /></td>
                                <td align="right">
                                    <xsl:value-of select="format-number(translate(@f3, ' ', ''), '#0.00')" /> <!-- 1 602.78748 -->
                                </td>
                                <xsl:for-each select="traffic">
                                    <td align="right">
                                        <xsl:value-of select="format-number((. div 1048576), '#0.000')" />
                                    </td>
                                </xsl:for-each>
                                <td><input type="radio" name="session_id" value="{@id}" style="margin:0px; padding:0px;" /></td>
                            </tr>
                        </xsl:for-each>
                    </tbody>
                    <tfoot>
                        <tr>
                            <td colspan="3">Итого сессий:&#160;<xsl:value-of select="sessions/@count_amount" /></td>
                            <td><xsl:value-of select="sessions/@time_amount" /></td>
                            <td align="right">
                                <xsl:value-of select="format-number(sessions/@money_amount, '#0.00')" />
                            </td>
                                <xsl:for-each select="sessions/traffic">
                                    <td align="right">
                                        <xsl:value-of select="format-number((. div 1048576), '#0.000')" />
                                    </td>
                                </xsl:for-each>
                            <td style="border-right-color: #ffffff; border-bottom-color: #ffffff;">&#x0A;</td>
                        </tr>
                    </tfoot>
                </table>
            </xsl:with-param>
        </xsl:call-template>

        <br />

        <xsl:choose>
            <xsl:when test="not(sessions/row)"></xsl:when>
            <xsl:when test="createDetail/@created='1'">
                <table cellspacing="0" class="filter">
                    <tr>
                        <th>Отправка детализации поставлена в очередь.</th>
                    </tr>
                </table>
            </xsl:when>
            <xsl:otherwise>
                <table cellspacing="0" class="filter" id="idTableDialupCreateDetail">
                    <tr>
                        <th>Выслать детализацию для выбранной сессии на e-mail:&#160;<input type="text" name="mail" size="30" class="filter"></input></th>
                        <th>
                            <xsl:call-template name="submit">
                                <xsl:with-param name="title">Выслать</xsl:with-param>
                            </xsl:call-template>
                        </th>
                    </tr>
                </table>
            </xsl:otherwise>
        </xsl:choose>
    </form>
</xsl:template>

<!-- наработка по логинам -->
<xsl:template name="ShowLoginsBalance">
    <form method="post" action="webexecuter#idDivReport" name="sessions">
        <xsl:variable name="module" select="/data/@module" />
        <xsl:call-template name="action" />
        <input type="hidden" name="page" value="1" />

        <xsl:call-template name="periodFilter" />

        <div class="report" id="idDivReportTable">
            <table cellspacing="1" id="idTableDialUpLoginsBalance">
                <thead>
                    <tr>
                        <td>Логин</td>
                        <td>Кол-во сессий</td>
                        <td>Время [сек.]</td>
                        <td>Стоимость</td>
                        <xsl:if test="$module='dialup'">
                            <xsl:call-template name="split_td">
                                <xsl:with-param name="list"><xsl:value-of select="amounts/@traffics_title" /></xsl:with-param>
                                <xsl:with-param name="delimiter">/</xsl:with-param>
                                <xsl:with-param name="text">, MB</xsl:with-param>
                            </xsl:call-template>
                        </xsl:if>
                    </tr>
                </thead>
                <tbody>
                    <xsl:for-each select="amounts/row">
                        <tr>
                            <td>
                                <xsl:value-of select="@f0" />
                            </td>
                            <td><xsl:value-of select="@f1" /></td>
                            <td><xsl:value-of select="@f2" /></td>
                            <td align="right">
                                <xsl:value-of select="format-number(@f3, '#0.00')" />
                            </td>
                            <xsl:if test="$module='dialup'">
                                <xsl:for-each select="traffic">
                                    <td align="right">
                                        <xsl:value-of select="format-number((. div 1048576), '#0.000')" />
                                    </td>
                                </xsl:for-each>
                            </xsl:if>
                        </tr>
                    </xsl:for-each>
                </tbody>
                <tfoot>
                    <tr>
                        <td align="right">Итого:</td>
                        <td><xsl:value-of select="amounts/@count_amount" /></td>
                        <td><xsl:value-of select="amounts/@time_amount" /></td>
                        <td align="right"><xsl:value-of select="amounts/@money_amount" /></td>
                        <xsl:if test="$module='dialup'">
                            <xsl:for-each select="amounts/traffic">
                                <td align="right">
                                    <xsl:value-of select="format-number((. div 1048576), '#0.000')" />
                                </td>
                            </xsl:for-each>
                        </xsl:if>
                    </tr>
                </tfoot>
            </table>
        </div>
    </form>
</xsl:template>

ну и собсно сам dialup_split.xsl
Код:
<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <!-- разбиение рисующее ячейку таблицы с данными, т.е. <td>данные</td> -->
    <xsl:template name="split_td">
        <xsl:param name="list" />
        <xsl:param name="delimiter" />

        <xsl:param name="text" />

        <xsl:variable name="newlist">
            <xsl:choose>
                <xsl:when test="contains($list, $delimiter)"><xsl:value-of select="normalize-space($list)" /></xsl:when>
                <xsl:otherwise><xsl:value-of select="concat(normalize-space($list), $delimiter)" /></xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="first" select="substring-before($newlist, $delimiter)" />
        <xsl:variable name="remaining" select="substring-after($newlist, $delimiter)" />

        <td>
            <xsl:value-of select="$first" />
            <xsl:if test="$text"><xsl:value-of select="$text" /></xsl:if>
        </td>

        <xsl:if test="$remaining">
            <xsl:call-template name="split_td">
                <xsl:with-param name="list" select="$remaining" />
                <xsl:with-param name="delimiter"><xsl:value-of select="$delimiter" /></xsl:with-param>
                <xsl:with-param name="text"><xsl:if test="$text"><xsl:value-of select="$text" /></xsl:if></xsl:with-param>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>

    <!-- разбиение рисующее тег <col /> -->
    <xsl:template name="split_col">
        <xsl:param name="list" />
        <xsl:param name="delimiter" />

        <xsl:variable name="newlist">
            <xsl:choose>
                <xsl:when test="contains($list, $delimiter)"><xsl:value-of select="normalize-space($list)" /></xsl:when>
                <xsl:otherwise><xsl:value-of select="concat(normalize-space($list), $delimiter)" /></xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="first" select="substring-before($newlist, $delimiter)" />
        <xsl:variable name="remaining" select="substring-after($newlist, $delimiter)" />

        <col />

        <xsl:if test="$remaining">
            <xsl:call-template name="split_col">
                <xsl:with-param name="list" select="$remaining" />
                <xsl:with-param name="delimiter"><xsl:value-of select="$delimiter" /></xsl:with-param>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>

</xsl:stylesheet>

вот что из этого получилось:


Вложения:
Комментарий к файлу: сессии
bgb_s.jpg
bgb_s.jpg [ 53.69 КБ | Просмотров: 6711 ]
Комментарий к файлу: наработка
bgb_n.jpg
bgb_n.jpg [ 28.8 КБ | Просмотров: 6711 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.057s | 49 Queries | GZIP : On ]