forum.bitel.ru http://forum.bitel.ru/ |
|
Интеграция штрихкода в счет http://forum.bitel.ru/viewtopic.php?f=14&t=1753 |
Страница 1 из 1 |
Автор: | MiB [ 23 дек 2008, 18:35 ] |
Заголовок сообщения: | Интеграция штрихкода в счет |
http://wiki.bgbilling.ru/index.php/Квитанция_телефонии_физ._лицам здесь описано что можно вставлять штрихкод в свою квитанцию. взять кусок кода и вставить в свой шаблон(с изменением параметров) не получилось ругается на неправильное описание конструкций xsl. может оформите какую-то доку по данному вопросу или ссылки где это можно почитать более менее доступно.? вставляю следующий код: здесь 492 строки шаблона, далее с 493 начинается кусок взятый из wiki Код: <fo:block space-before="1.05cm" margin-left="-0.1cm">
<!-- 128-тип кода, затем StartA, T, K, B, CodeC --> <xsl:variable name="code_start" select="'128a|TKBÇ'"/> <!-- номер телефона (первый) - 7 символов --> <xsl:variable name="number" select="1234567"/> <!-- период оплаты - 4 символа --> <xsl:variable name="period_opl" select="1208"/> <!-- сумма --> <xsl:variable name="rub" select="100"/> <xsl:variable name="kop" select="00"/> <xsl:variable name="rub_length" select="string-length($rub)"/> <xsl:variable name="sum_part_c" select="substring($rub, 1, $rub_length - 1)"/> <xsl:variable name="sum_part_a" select="concat(substring($rub, $rub_length, 1),'.', $kop)"/> <fo:external-graphic width="6cm" height="1cm"> <xsl:attribute name="src"><xsl:value-of select="concat('barcode:///', $code_start, $number, $period_opl, $sum_part_c, 'É', $sum_part_a, '<SOH>')"/></xsl:attribute> </fo:external-graphic> </fo:block> в итоге штрихкода нет |
Автор: | Администратор [ 24 дек 2008, 16:36 ] |
Заголовок сообщения: | |
Более подробно можно ругань? Где ругается? И точный текст.. |
Автор: | MiB [ 24 дек 2008, 17:32 ] |
Заголовок сообщения: | |
Администратор писал(а): Более подробно можно ругань? Где ругается? И точный текст..
Код: [Fatal Error] bill_bar.xsl:499:53: Element type "xsl:variable" must be followed by either attribute specifications, ">" or "/>".
org.xml.sax.SAXParseException: Element type "xsl:variable" must be followed by either attribute specifications, ">" or "/>". at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) at bitel.billing.server.bill.PDFExecuter.docl2PDF(PDFExecuter.java:177) at bitel.billing.server.bill.PDFExecuter.doPost(PDFExecuter.java:97) at bitel.billing.server.bill.PDFExecuter.doGet(PDFExecuter.java:55) at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) хотя эту ошибку я уже поборол.(в первом посте код исправил) но штрихкод пока не вижу. борюсь дальше. |
Автор: | stark [ 24 дек 2008, 17:53 ] |
Заголовок сообщения: | |
MiB писал(а): хотя эту ошибку я уже поборол.(в первом посте код исправил)
но штрихкод пока не вижу. борюсь дальше. у вас дальше ругается или просто молча не выводит ? |
Автор: | MiB [ 24 дек 2008, 18:29 ] |
Заголовок сообщения: | |
stark писал(а): MiB писал(а): хотя эту ошибку я уже поборол.(в первом посте код исправил) но штрихкод пока не вижу. борюсь дальше. у вас дальше ругается или просто молча не выводит ? просто не отображает. в логах все чисто. |
Автор: | Администратор [ 25 дек 2008, 10:46 ] |
Заголовок сообщения: | |
Биллинг 4.5? |
Автор: | MiB [ 25 дек 2008, 13:51 ] |
Заголовок сообщения: | |
Администратор писал(а): Биллинг 4.5?
4.4.234. |
Автор: | Администратор [ 25 дек 2008, 14:22 ] |
Заголовок сообщения: | |
Эта возможность добавлена только с 4.5 версии. |
Автор: | MiB [ 25 дек 2008, 21:56 ] |
Заголовок сообщения: | |
Администратор писал(а): Эта возможность добавлена только с 4.5 версии.
от ведь незадача.... чтож с вами делать.... теперь придется апгрейтится..... а так не хотелось . Спасибо. |
Автор: | MiB [ 20 янв 2009, 18:25 ] |
Заголовок сообщения: | |
Произвел апгрейт. штрихкод рисуется. теперь возникает вопрос: как считать контрольную сумму для штрихкода? у нас это просто последняя цифра есть остаток от деленя на 10 от суммы всех цифр в штрихкоде. возможно ли такое реализовать на XSLT или необходимо это делать отдельным внешним скриптом? |
Автор: | Администратор [ 21 янв 2009, 17:10 ] |
Заголовок сообщения: | |
Ну можно в XSLT вроде - просуммируйте числа и mod 10 - вот и будет вам контрольная сумма. Можете использовать расширение counter. |
Автор: | MiB [ 21 янв 2009, 22:12 ] |
Заголовок сообщения: | |
Коллеги, в XSL не силен. может кто подсказать кусок кода который в цикле будет разбирать строку на символы? заранее спасибо. |
Автор: | MiB [ 22 фев 2009, 16:09 ] |
Заголовок сообщения: | |
может кому поможет: с циклами у XSLT совсем туго оказалось, поэтому пришлось изгаляться через рекурсивные вызовы. требуется подсчитать контрольную сумму строки по определенной формуле, темплейт: Код: <xsl:template name="checksumm"> <xsl:param name="value"/> <xsl:param name="sum" select="0"/> <xsl:param name="position" select="4"/> <xsl:variable name="char" select="substring($value,$position,1)"/> <xsl:choose> <xsl:when test="$position < string-length($value)"> <xsl:call-template name="checksumm"> <xsl:with-param name="value" select="$value"/> <xsl:with-param name="position" select="$position + 1"/> <xsl:with-param name="sum" select="$sum + $position * $char"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$sum mod 10"/> </xsl:otherwise> </xsl:choose> </xsl:template> короче рекурсивно вызывает сам себя пока $position < длинный строки. сумма = (сумма+ (порядковый номер цифры * значение цифры)) MOD 10 вызов темплейта: Код: <xsl:variable name="sum">
<xsl:call-template name="checksumm"> <xsl:with-param name="value" select="concat('$code_start, $number, $period_opl, $sum_part_c, 'É', $sum_part_a, '<SOH>')""/> </xsl:call-template> </xsl:variable> в переменной sum имеем число = контрольной сумме. далее делаем concat для формирования barcode. |
Автор: | Владимир [ 29 июл 2011, 14:03 ] |
Заголовок сообщения: | Re: Интеграция штрихкода в счет |
а как интегрировать штрихкод в счет сделанный в iReport? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |