BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 18:01

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




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 18 янв 2013, 14:25 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
можете полный текст xsl выложить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 18 янв 2013, 14:41 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Код:
<!-- Так объявляем для себя переменную, куда будет сохраняться значения cid -->
 <xsl:variable name="mycid" select="/data/contract/@id" />
<!-- Так передаем это значение в SQL запрос  -->
 <xsl:variable name="query">select val from contract_parameter_type_7 where cid=<xsl:value-of select="$mycid"/> and pid=30</xsl:variable>
 <xsl:variable name="pod" select="sql:select( $query )"/>
<!-- Перебираем ответ -->
 <xsl:for-each select="$pod/row">
 <fo:block><xsl:value-of select="@val"/></fo:block>
 </xsl:for-each> 


все это вставляю в <xsl:template name="Contract">


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 21 янв 2013, 11:37 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Вот что хочу сделать
Код:
<tr>
<td class="td2"><b>Анкета</b></td>
<td class="td2">
<!-- Так объявляем для себя переменную, куда будет сохраняться значения cid -->
<xsl:variable name="mycid" select="/data/contract/@id" />
<!-- Так передаем это значение в SQL запрос -->
<xsl:variable name="query">SELECT val FROM contract_parameter_type_7 WHERE cid=<xsl:value-of select="$mycid"/> AND pid=30</xsl:variable>
<xsl:variable name="pod" select="sql:select( $query )"/>
<!-- Перебираем ответ -->
<xsl:for-each select="$pod/row">
<fo:block><xsl:value-of select="@val"/></fo:block>
</xsl:for-each>
<td class="td2">
<xsl:choose>
<xsl:when test="$pod = 53">
<td class="td2">Анкета заполнена</td>
</xsl:when>
<xsl:when test="$pod = 54">
<td class="td2">Анкета не заполнена</td>
</xsl:when>
</xsl:choose>
</td>
</td>
</tr>


Одна проблема. вытащить значение val из базы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 21 янв 2013, 14:22 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Код:
...
<xsl:for-each select="$pod/row">
<fo:block><xsl:value-of select="@val"/></fo:block>
</xsl:for-each>
...

Смешали и XSL-FO и HTML
<fo:block> замените на тэг из HTML <p> или <a>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 21 янв 2013, 16:12 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Попробовал. Не помогло. </fo:block> копировал с твоего примера
Да и перебор здесь не особо вляет.

Тормозится на
Код:
<xsl:variable name="pod" select="sql:select( $query )"/>

Убирать перебор и эту строчку, то все оживает.

Может тут проблема?
Код:
<xsl:stylesheet   
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:fo="http://www.w3.org/1999/XSL/Format"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns:xalan="http://xml.apache.org/xalan"
   xmlns:sql="bitel.billing.server.util.exslt.SQLQuery">
  <xsl:output encoding="windows-1251" method="html" indent="yes"/>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 21 янв 2013, 17:31 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Код:
<tr>
<td class="td2"><b>Анкета</b></td>
<td class="td2">
<!-- Так объявляем для себя переменную, куда будет сохраняться значения cid -->
<xsl:variable name="mycid" select="/data/contract/@id" />
<!-- Так передаем это значение в SQL запрос -->
<xsl:variable name="query">SELECT val FROM contract_parameter_type_7 WHERE cid=<xsl:value-of select="$mycid"/> AND pid=30</xsl:variable>
<xsl:variable name="rs" select="sql:select( $query )"/>
<!-- Перебираем ответ -->
<xsl:for-each select="$rs/row">
<xsl:variable name="pod" select="@val" />
</xsl:for-each>
<td class="td2">
<xsl:choose>
<xsl:when test="$pod = 53">
<td class="td2">Анкета заполнена</td>
</xsl:when>
<xsl:when test="$pod = 54">
<td class="td2">Анкета не заполнена</td>
</xsl:when>
</xsl:choose>
</td>
</td>
</tr>


если не сработает, давайте ошибки из логов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 21 янв 2013, 22:53 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
skn писал(а):
если не сработает, давайте ошибки из логов

server.error.log пустой
В server.out выходит только вот это
Код:
21.01.2013 22:35:37 org.apache.tomcat.util.http.Parameters processParameters
WARNING: Parameters: Invalid chunk ignored.


код просто скопировал и вставил в <xsl:template name="Contract"> после
Код:
<tr>
<td class="td3"><b>Комментарий</b></td>
<td class="td3">
<textarea name="comment" style="width:100%" rows="5"/></td>
</tr>

Никаких других ошибок нет :(

Мож весь xsl выложить лучше? чтобы так сказать полную картину разом увидеть? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 00:27 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Sputnik писал(а):
Мож весь xsl выложить лучше? чтобы так сказать полную картину разом увидеть? :)


давайте


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 07:07 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Sputnik писал(а):
Мож весь xsl выложить лучше? чтобы так сказать полную картину разом увидеть? :)

focus писал(а):
можете полный текст xsl выложить?

Давайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 09:25 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Вот файл


Вложения:
idealer.txt [19.03 КБ]
Скачиваний: 481
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 12:39 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
В данном случае
Код:
<!-- Перебираем ответ -->
<xsl:for-each select="$rs/row">
<xsl:variable name="pod" select="@val" />
</xsl:for-each>

область видимости у переменной pod ограничивается тэгом <xsl:for-each>

попробуйте вот так
Код:
<xsl:variable name="pod">
<xsl:for-each select="$rs/row">
    <xsl:value-of select="@val" />
</xsl:for-each>
</xsl:variable>

У меня подобная конструкция сработала в другом XSL.
Но тут нужно быть аккуратным вот в чем, в value переменной pod будут добавлены значения val всех записей. Если в нашем случае это должна быть 1 запись - то вроде, как нормально.
В других случаях, может быть неожиданный результат.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 15:09 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Нет. не сработала конструкция.
Тут похоже больше проблема в том что сама переменная rs в строке
Код:
<xsl:variable name="rs" select="sql:select( $query )"/>
не получает результаты запроса, хотя сам запрос в query передается. Получает правильный запрос
Код:
SELECT val FROM contract_parameter_type_7 WHERE cid=10 AND pid=30

Соответсвенно вопрос: почему эта переменная не получает результаты запроса? :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 16:55 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Я вот так сделал в шаблоне card_inet.xsl
Код:
<xsl:variable name="mycid" select="/card/contract/@cid" />
<xsl:variable name="query">SELECT title FROM contract WHERE id=<xsl:value-of select="$mycid"/></xsl:variable>
<xsl:variable name="rs" select="sql:select( $query )"/>
<xsl:variable name="my_module_id">
   <xsl:for-each select="$rs/row">
      <xsl:value-of select="@title" />
   </xsl:for-each>
</xsl:variable>
<fo:block> = <xsl:value-of select="$my_module_id" /></fo:block>


У меня код работает, который указан выше в этом посте.
Если не получает результат - проверь, а если выполнить этот запрос к MySQL из какого-нибудь клиента, результат будет?
Может у Вас для cid=10 параметра с pid=30 и нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 21:12 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Запрос работает (см. скрин)
Это мой тестовый договор. там я разные значения могу ставить и 53 и 54 и NULL
Что может мешать? Проблема версии сервера?
Ведь все делаю как предлагалось, но на этапе выбора договора кнопка выбрать просто перестает реагировать и все :(


Вложения:
запрос.png
запрос.png [ 20.19 КБ | Просмотров: 14938 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 22 янв 2013, 21:50 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
попробуйте методом исключение найти кусок кода на котором падает
удаляйте из xsl блоки и смотрите что выходит
попробуйте rs распечатать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 23 янв 2013, 09:00 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
skn писал(а):
попробуйте методом исключение найти кусок кода на котором падает
удаляйте из xsl блоки и смотрите что выходит
попробуйте rs распечатать


Писал об этом выше

Sputnik писал(а):
Тут похоже больше проблема в том что сама переменная rs в строке
Код:
<xsl:variable name="rs" select="sql:select( $query )"/>
не получает результаты запроса, хотя сам запрос в query передается. Получает правильный запрос
Код:
SELECT val FROM contract_parameter_type_7 WHERE cid=10 AND pid=30


rs уже не выводит


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 23 янв 2013, 12:32 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
а так

Код:
<xsl:variable name="rs" select="sql:select( select 1 )"/>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 23 янв 2013, 14:16 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Тоже самое. На кнопке выбрать нет результатов.

Вот что получил с помощью Firebug
Выдало в первый раз
Код:
Метод Document.load() является устаревшим. Для его замены используйте объект DOM XMLHttpRequest. Более подробная информация доступна на https://developer.mozilla.org/en/XMLHttpRequest

xml.load(src);

потом больше не выводилось

другой раз вышло вот это
Код:
Метод Document.load() является устаревшим. Для его замены используйте объект DOM XMLHttpRequest. Более подробная информация доступна на https://developer.mozilla.org/en/XMLHttpRequest
path = new String(window.location);


А вообще тормозит запрос при нажатии на кнопку Выбрать на engine.js (строка 253)
Это чем то поможет :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 23 янв 2013, 18:26 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
попробуйте так
Код:
<xsl:variable name="rs" select="sql:select( '$query' )"/>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 24 янв 2013, 09:38 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
нет :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 25 янв 2013, 15:50 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Идей больше ни у кого нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 25 янв 2013, 18:51 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
с sql запросом тут не получиться, так как в отличие от ЛК преобразование xml+xsl=html делается не на стороне сервере, а в браузере клиента. А он ни про яву, sql, базы данных ни чего не знает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 08:57 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
skn писал(а):
с sql запросом тут не получиться, так как в отличие от ЛК преобразование xml+xsl=html делается не на стороне сервере, а в браузере клиента. А он ни про яву, sql, базы данных ни чего не знает.

А как тогда это можно сделать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 09:50 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Sputnik писал(а):
skn писал(а):
с sql запросом тут не получиться, так как в отличие от ЛК преобразование xml+xsl=html делается не на стороне сервере, а в браузере клиента. А он ни про яву, sql, базы данных ни чего не знает.

А как тогда это можно сделать?

Версия БГ какая?
Если 5.2, то можно попробовать модифицировать (дополнить) xml
Недавно в 5.2 появился функционал для создания Action через динамический код. Там можно и переопределить определенный action на свой, где модифицировать XML
На wiki доп. инфа.

skn, так можно будет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 10:46 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
не факт, дилер работает через специальный сервлет и сделана ли в нем поддержка динам. акшенов с ходу не скажу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 11:40 
Не в сети
Аватара пользователя

Зарегистрирован: 14 окт 2011, 14:38
Сообщения: 122
Карма: 0
Моя версия БГ
Код:
Сервер: вер. 5.1 сборка 761 от 13.02.2012 20:36:09
os: Linux; java: Java HotSpot(TM) Server VM, v.1.6.0_26

card вер. 5.1 сборка 172 от 21.01.2012 01:57:32


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 12:16 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
не, для сервлета idealer это не будет работать, он там сам по себе обрабатывает свои экшены

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 12:35 
Не в сети
Клиент

Зарегистрирован: 27 окт 2009, 16:17
Сообщения: 319
Откуда: Иркутск
Карма: 18
Тогда Servlet Filter, который модифицирует ответ сервлета.
Вариант?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 15:23 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
focus писал(а):
Тогда Servlet Filter, который модифицирует ответ сервлета.
Вариант?


да или новый отдельный акшен для возврата этого параметра


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xsl шаблон дилеров
СообщениеДобавлено: 28 янв 2013, 17:18 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Уже который можно написать кстати на дин.коде

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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