BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 17:26

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
 Заголовок сообщения: Как изменить валюту в summaToString
СообщениеДобавлено: 29 июн 2011, 16:00 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
1.При помощи <xsl:value-of select="st:summaToString(@total_sum)" /> у т.ч. ПДВ: <xsl:value-of select="st:summaToString(counter:get( 'total_nds'))" /> выводится сумма и НДС.
Изображение
Изображение
Как изменить валюту с рублей на гривни?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 30 июн 2011, 12:29 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Подскажите хотя бы где лежит этот скрипт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 30 июн 2011, 13:09 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Вот у меня есть скрипт

Код:
/*
 *  Класс money2str - Приведение денежного выражения к строковому
 *  25/06/2003 Алексей Федоров
 *
 *  Разрешается использование без всех известных мне ограничений
 *  Выражаю благодарность неизвестному программисту
 *  описавшему алгоритм этой задачи
 */
 
public class money2str {
   static String RubOneUnit, RubTwoUnit, RubFiveUnit, RubSex,
                      KopOneUnit, KopTwoUnit, KopFiveUnit, KopSex;
        StringBuffer money2str = new StringBuffer();
 
   public money2str(Double theMoney, String theISOstr) {
 
      FillSuffix(theISOstr);
      moneytostr(theMoney);
   }
 
   public void FillSuffix(String theISOstr) {
      org.w3c.dom.Document xmlDoc = null;
 
      javax.xml.parsers.DocumentBuilderFactory DocFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
 
      try {
         javax.xml.parsers.DocumentBuilder xmlDocBuilder = DocFactory.newDocumentBuilder();
         xmlDoc = xmlDocBuilder.parse( new java.io.File("currlist.xml") );
      } catch (org.xml.sax.SAXException sxe) {
         Exception  x = sxe;
         if (sxe.getException() != null)
            x = sxe.getException();
         x.printStackTrace();
      } catch (javax.xml.parsers.ParserConfigurationException pce) {
         pce.printStackTrace();
      } catch (java.io.IOException ioe) {
         ioe.printStackTrace();
      }
      org.w3c.dom.Element theISOElement = (org.w3c.dom.Element) (xmlDoc.getElementsByTagName(theISOstr)).item(0);
 
      RubOneUnit  = theISOElement.getAttribute("RubOneUnit");
      RubTwoUnit  = theISOElement.getAttribute("RubTwoUnit");
      RubFiveUnit = theISOElement.getAttribute("RubFiveUnit");
      KopOneUnit  = theISOElement.getAttribute("KopOneUnit");
      KopTwoUnit  = theISOElement.getAttribute("KopTwoUnit");
      KopFiveUnit = theISOElement.getAttribute("KopFiveUnit");
      RubSex      = theISOElement.getAttribute("RubSex");
      KopSex      = theISOElement.getAttribute("KopSex");
   }
 
   public void moneytostr(Double theMoney) {
      int triadNum = 0;
      int theTriad;
 
      int intPart = theMoney.intValue();
      int fractPart = (int) Math.round((theMoney.doubleValue() - intPart)*100);
      if (intPart == 0) money2str.append("Ноль ");
      do {
         theTriad = intPart % 1000;
         money2str.insert(0, triad2Word(theTriad, triadNum, RubSex));
         if (triadNum == 0) {
            int range10 = (theTriad % 100) / 10;
            int range = theTriad % 10;
            if (range10 == 1) {
               money2str = money2str.append(RubFiveUnit);
            } else {
               switch (range) {
                  case 1: money2str = money2str.append(RubOneUnit); break;
                  case 2:
                  case 3:
                  case 4: money2str = money2str.append(RubTwoUnit); break;
                  default: money2str = money2str.append(RubFiveUnit); break;
               }
            }
         }
         intPart = intPart/1000;
         triadNum++;
      } while(theTriad !=0);
 
      money2str = money2str.append(" ").append(triad2Word(fractPart, 0, KopSex));
      if ((fractPart % 10) == 1) {
         money2str = money2str.append(KopOneUnit);
      } else {
         switch (fractPart % 10) {
            case 1: money2str = money2str.append(KopOneUnit); break;
            case 2:
            case 3:
            case 4: money2str = money2str.append(KopTwoUnit); break;
            default:  money2str = money2str.append(KopFiveUnit); break;
         }
      }
      money2str.setCharAt(0, Character.toUpperCase(money2str.charAt (0)));
   }
 
   static private String triad2Word(int triad, int triadNum, String Sex) {
      StringBuffer triadWord = new StringBuffer(28); // девятьсот восемьдесят четыре - 28 достаточно ?
 
      if (triad == 0) {
         return triadWord.toString();
      }
      
      int range = triad / 100;
      switch (range) {
         default: break;
         case 1:  triadWord = triadWord.append("сто ");       break;
         case 2:  triadWord = triadWord.append("двести ");    break;
         case 3:  triadWord = triadWord.append("триста ");    break;
         case 4:  triadWord = triadWord.append("четыреста "); break;
         case 5:  triadWord = triadWord.append("пятьсот ");   break;
         case 6:  triadWord = triadWord.append("шестьсот ");  break;
         case 7:  triadWord = triadWord.append("семьсот ");   break;
         case 8:  triadWord = triadWord.append("восемьсот "); break;
         case 9:  triadWord = triadWord.append("девятьсот "); break;
      }
      
      range = (triad % 100) / 10;
      switch (range) {
         default: break;
         case 2:  triadWord = triadWord.append("двадцать ");    break;
         case 3:  triadWord = triadWord.append("тридцать ");    break;
         case 4:  triadWord = triadWord.append("сорок ");       break;
         case 5:  triadWord = triadWord.append("пятьдесят ");   break;
         case 6:  triadWord = triadWord.append("шестьдесят ");  break;
         case 7:  triadWord = triadWord.append("семьдесят ");   break;
         case 8:  triadWord = triadWord.append("восемьдесят "); break;
         case 9:  triadWord = triadWord.append("девяносто ");   break;
      }
      
      int range10 = range;
      range = triad % 10;
      if (range10 == 1) {
         switch (range) {
            case 0: triadWord = triadWord.append("десять ");       break;
            case 1: triadWord = triadWord.append("одиннадцать ");  break;
            case 2: triadWord = triadWord.append("двенадцать ");   break;
            case 3: triadWord = triadWord.append("тринадцать ");   break;
            case 4: triadWord = triadWord.append("четырнадцать "); break;
            case 5: triadWord = triadWord.append("пятнадцать ");   break;
            case 6: triadWord = triadWord.append("шестнадцать ");  break;
            case 7: triadWord = triadWord.append("семнадцать ");   break;
            case 8: triadWord = triadWord.append("восемнадцать "); break;
            case 9: triadWord = triadWord.append("девятнадцать "); break;
         }
      } else {
         switch (range) {
            default: break;
                 case 1:   if (triadNum == 1)
                  triadWord = triadWord.append("одна ");
               else
                  if (Sex.equals("M")) triadWord = triadWord.append("один ");
                  if (Sex.equals("F")) triadWord = triadWord.append("одна ");
               break;
            case 2: if (triadNum == 1)
                  triadWord = triadWord.append("две ");
               else
                  if (Sex.equals("M")) triadWord = triadWord.append("два ");
                  if (Sex.equals("F")) triadWord = triadWord.append("две ");
               break;
            case 3: triadWord = triadWord.append("три ");    break;
            case 4: triadWord = triadWord.append("четыре "); break;
            case 5: triadWord = triadWord.append("пять ");   break;
            case 6: triadWord = triadWord.append("шесть ");  break;
            case 7: triadWord = triadWord.append("семь ");   break;
            case 8: triadWord = triadWord.append("восемь "); break;
            case 9: triadWord = triadWord.append("девять "); break;
         }
      }
   
   switch (triadNum) {
      default: break;
      case 1:   if (range10 == 1)
            triadWord = triadWord.append("тысяч ");
              else {
            switch (range) {
               default: triadWord = triadWord.append("тысяч ");  break;
               case 1:  triadWord = triadWord.append("тысяча "); break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("тысячи "); break;
            }
         }
         break;
      case 2: if (range10 == 1)
            triadWord = triadWord.append("миллионов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("миллионов "); break;
               case 1:  triadWord = triadWord.append("миллион ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("миллиона ");  break;
            }
         }
         break;
      case 3: if (range10 == 1)
            triadWord = triadWord.append("миллиардов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("миллиардов "); break;
               case 1:  triadWord = triadWord.append("миллиард ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("миллиарда ");  break;
            }
         }
         break;
      case 4: if (range10 == 1)
            triadWord = triadWord.append("триллионов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("триллионов "); break;
               case 1:  triadWord = triadWord.append("триллион ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("триллиона ");  break;
            }
         }
         break;
      }
   return triadWord.toString();
   }
}
 




как мне его вставить в код хсл?


На данный момент у меня прописано так

Код:
<xsl:stylesheet
   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:java="http://xml.apache.org/xalan/java"   
   exclude-result-prefixes="java"
   xmlns:st="bitel.billing.server.bill.bean.SummaToString"
   xmlns:counter="bitel.billing.server.util.exslt.Counter"   
   version="1.0">

   <xalan:component prefix="st" functions="summaToString">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.bill.bean.SummaToString"/>
     </xalan:component>
   <xalan:component prefix="counter" functions="add set get">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Counter"/>
     </xalan:component>

   <xsl:output encoding="windows-1251" method='xml' indent='yes' />



выводиться скрипт так

Код:
<xsl:variable name="sumStr"  select="java:java.lang.String.new(st:summaToString(@total_sum))"/>
  <xsl:variable name="sumStr2" select="java:concat(java:toUpperCase(java:substring($sumStr,0,1)),java:substring($sumStr,1))"/>
  <xsl:value-of select="$sumStr2" /><xsl:variable name="sumStr"  select="java:java.lang.String.new(st:summaToString(counter:get( 'total_nds')))"/>
  <xsl:variable name="sumStr2" select="java:concat(java:toUpperCase(java:substring($sumStr,0,1)),java:substring($sumStr,1))"/>
  в т.ч. НДС: <xsl:value-of select="$sumStr2" />



Куда мне надо поместить скрипт? Что мне сделать чтобы он заработал?


Последний раз редактировалось romaniozi 04 июл 2011, 14:11, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 30 июн 2011, 14:40 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
в заголовке xslt указывается пространство имен xmlns:st и тд - это импортируются классы библиотек. по сути вам надо надо импортировать туда свой класс. для этого его надо написать на чистой яве, скомпилировать и положить в папку либ сервера. поищите на форуме темы по "свой action в личном кабинете"


Последний раз редактировалось Феанор 30 июн 2011, 15:14, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 30 июн 2011, 14:58 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
спасибо, что подсказали направление поисков буду разбираться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 04 июл 2011, 15:37 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
1.Нашел нужный скрипт
2.Скомпилил его MoneyToString.java ---->MoneyToString.class
3.Создал userjars.jar c файлом в нем MoneyToString.class
4.Закинул файл usersjars.jar в local/BGBillingServer/lib


Теперь как мне его включить XSL?
На данный момент сумма прописью пишется скриптом SummaToString

Код:
<xsl:stylesheet
   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:java="http://xml.apache.org/xalan/java"   
   exclude-result-prefixes="java"
   xmlns:st="bitel.billing.server.bill.bean.SummaToString"
   xmlns:counter="bitel.billing.server.util.exslt.Counter"   
   version="1.0">

   <xalan:component prefix="st" functions="summaToString">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.bill.bean.SummaToString"/>
     </xalan:component>
   <xalan:component prefix="counter" functions="add set get">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Counter"/>
     </xalan:component>

   <xsl:output encoding="windows-1251" method='xml' indent='yes' />


Выводится так:

Код:
  <xsl:variable name="sumStr"  select="java:java.lang.String.new(st:summaToString(@total_sum))"/>
  <xsl:variable name="sumStr2" select="java:concat(java:toUpperCase(java:substring($sumStr,0,1)),java:substring($sumStr,1))"/>
  <xsl:value-of select="$sumStr2" /><xsl:variable name="sumStr"  select="java:java.lang.String.new(st:summaToString(counter:get( 'total_nds')))"/>
  <xsl:variable name="sumStr2" select="java:concat(java:toUpperCase(java:substring($sumStr,0,1)),java:substring($sumStr,1))"/>
  в т.ч. НДС: <xsl:value-of select="$sumStr2" />



Подскажите что необходимо прописать мне чтобы выводился мой скрипт?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 17 авг 2011, 15:34 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Вы зачем пишите в куче мест один пост? Ответил в другой теме. Дальше пишите сюда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 05 сен 2011, 14:20 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Спасибо за ответ!

1.Нашел нужный скрипт
2.Скомпилил его money2str.java ---->money2str.class
3.Создал userjars.jar c файлом в нем money2str.class
4.Закинул файл usersjars.jar в local/BGBillingServer/lib
5.По аналогии с SummaToString в xsl прописал
Код:
xmlns:mst="money2str"

<xalan:component prefix="mst" functions="summaToString">
<xalan:script lang="javaclass" src="xalan://money2str"/>
</xalan:component>


 <xsl:value-of select="mst:summaToString(@total_sum)" />



Оставляет пустую строку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 12:44 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
А пакет действительно идет money2str? Т.е. в первой строчке java файлика у вас "package money2str;" написано? Если да, то код срикпта сюда, будем его смотреть, если нет, то в срц надо писать то как пакет называется, они обычно как то так называются - bitel.billing.server.util.exslt.Counter, или там ru.blabla.money2str.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 13:08 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Код:
/*
*  Класс money2str - Приведение денежного выражения к строковому
*  25/06/2003 Алексей Федоров
*
*  Разрешается использование без всех известных мне ограничений
*  Выражаю благодарность неизвестному программисту
*  описавшему алгоритм этой задачи
*/

public class money2str {
   static String RubOneUnit, RubTwoUnit, RubFiveUnit, RubSex,
                      KopOneUnit, KopTwoUnit, KopFiveUnit, KopSex;
        StringBuffer money2str = new StringBuffer();

   public money2str(Double theMoney, String theISOstr) {

      FillSuffix(theISOstr);
      moneytostr(theMoney);
   }

   public void FillSuffix(String theISOstr) {
      org.w3c.dom.Document xmlDoc = null;

      javax.xml.parsers.DocumentBuilderFactory DocFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();

      try {
         javax.xml.parsers.DocumentBuilder xmlDocBuilder = DocFactory.newDocumentBuilder();
         xmlDoc = xmlDocBuilder.parse( new java.io.File("currlist.xml") );
      } catch (org.xml.sax.SAXException sxe) {
         Exception  x = sxe;
         if (sxe.getException() != null)
            x = sxe.getException();
         x.printStackTrace();
      } catch (javax.xml.parsers.ParserConfigurationException pce) {
         pce.printStackTrace();
      } catch (java.io.IOException ioe) {
         ioe.printStackTrace();
      }
      org.w3c.dom.Element theISOElement = (org.w3c.dom.Element) (xmlDoc.getElementsByTagName(theISOstr)).item(0);

      RubOneUnit  = theISOElement.getAttribute("RubOneUnit");
      RubTwoUnit  = theISOElement.getAttribute("RubTwoUnit");
      RubFiveUnit = theISOElement.getAttribute("RubFiveUnit");
      KopOneUnit  = theISOElement.getAttribute("KopOneUnit");
      KopTwoUnit  = theISOElement.getAttribute("KopTwoUnit");
      KopFiveUnit = theISOElement.getAttribute("KopFiveUnit");
      RubSex      = theISOElement.getAttribute("RubSex");
      KopSex      = theISOElement.getAttribute("KopSex");
   }

   public void moneytostr(Double theMoney) {
      int triadNum = 0;
      int theTriad;

      int intPart = theMoney.intValue();
      int fractPart = (int) Math.round((theMoney.doubleValue() - intPart)*100);
      if (intPart == 0) money2str.append("Ноль ");
      do {
         theTriad = intPart % 1000;
         money2str.insert(0, triad2Word(theTriad, triadNum, RubSex));
         if (triadNum == 0) {
            int range10 = (theTriad % 100) / 10;
            int range = theTriad % 10;
            if (range10 == 1) {
               money2str = money2str.append(RubFiveUnit);
            } else {
               switch (range) {
                  case 1: money2str = money2str.append(RubOneUnit); break;
                  case 2:
                  case 3:
                  case 4: money2str = money2str.append(RubTwoUnit); break;
                  default: money2str = money2str.append(RubFiveUnit); break;
               }
            }
         }
         intPart = intPart/1000;
         triadNum++;
      } while(theTriad !=0);

      money2str = money2str.append(" ").append(triad2Word(fractPart, 0, KopSex));
      if ((fractPart % 10) == 1) {
         money2str = money2str.append(KopOneUnit);
      } else {
         switch (fractPart % 10) {
            case 1: money2str = money2str.append(KopOneUnit); break;
            case 2:
            case 3:
            case 4: money2str = money2str.append(KopTwoUnit); break;
            default:  money2str = money2str.append(KopFiveUnit); break;
         }
      }
      money2str.setCharAt(0, Character.toUpperCase(money2str.charAt (0)));
   }

   static private String triad2Word(int triad, int triadNum, String Sex) {
      StringBuffer triadWord = new StringBuffer(28); // девятьсот восемьдесят четыре - 28 достаточно ?

      if (triad == 0) {
         return triadWord.toString();
      }
     
      int range = triad / 100;
      switch (range) {
         default: break;
         case 1:  triadWord = triadWord.append("сто ");       break;
         case 2:  triadWord = triadWord.append("двести ");    break;
         case 3:  triadWord = triadWord.append("триста ");    break;
         case 4:  triadWord = triadWord.append("четыреста "); break;
         case 5:  triadWord = triadWord.append("пятьсот ");   break;
         case 6:  triadWord = triadWord.append("шестьсот ");  break;
         case 7:  triadWord = triadWord.append("семьсот ");   break;
         case 8:  triadWord = triadWord.append("восемьсот "); break;
         case 9:  triadWord = triadWord.append("девятьсот "); break;
      }
     
      range = (triad % 100) / 10;
      switch (range) {
         default: break;
         case 2:  triadWord = triadWord.append("двадцать ");    break;
         case 3:  triadWord = triadWord.append("тридцать ");    break;
         case 4:  triadWord = triadWord.append("сорок ");       break;
         case 5:  triadWord = triadWord.append("пятьдесят ");   break;
         case 6:  triadWord = triadWord.append("шестьдесят ");  break;
         case 7:  triadWord = triadWord.append("семьдесят ");   break;
         case 8:  triadWord = triadWord.append("восемьдесят "); break;
         case 9:  triadWord = triadWord.append("девяносто ");   break;
      }
     
      int range10 = range;
      range = triad % 10;
      if (range10 == 1) {
         switch (range) {
            case 0: triadWord = triadWord.append("десять ");       break;
            case 1: triadWord = triadWord.append("одиннадцать ");  break;
            case 2: triadWord = triadWord.append("двенадцать ");   break;
            case 3: triadWord = triadWord.append("тринадцать ");   break;
            case 4: triadWord = triadWord.append("четырнадцать "); break;
            case 5: triadWord = triadWord.append("пятнадцать ");   break;
            case 6: triadWord = triadWord.append("шестнадцать ");  break;
            case 7: triadWord = triadWord.append("семнадцать ");   break;
            case 8: triadWord = triadWord.append("восемнадцать "); break;
            case 9: triadWord = triadWord.append("девятнадцать "); break;
         }
      } else {
         switch (range) {
            default: break;
                 case 1:   if (triadNum == 1)
                  triadWord = triadWord.append("одна ");
               else
                  if (Sex.equals("M")) triadWord = triadWord.append("один ");
                  if (Sex.equals("F")) triadWord = triadWord.append("одна ");
               break;
            case 2: if (triadNum == 1)
                  triadWord = triadWord.append("две ");
               else
                  if (Sex.equals("M")) triadWord = triadWord.append("два ");
                  if (Sex.equals("F")) triadWord = triadWord.append("две ");
               break;
            case 3: triadWord = triadWord.append("три ");    break;
            case 4: triadWord = triadWord.append("четыре "); break;
            case 5: triadWord = triadWord.append("пять ");   break;
            case 6: triadWord = triadWord.append("шесть ");  break;
            case 7: triadWord = triadWord.append("семь ");   break;
            case 8: triadWord = triadWord.append("восемь "); break;
            case 9: triadWord = triadWord.append("девять "); break;
         }
      }
   
   switch (triadNum) {
      default: break;
      case 1:   if (range10 == 1)
            triadWord = triadWord.append("тысяч ");
              else {
            switch (range) {
               default: triadWord = triadWord.append("тысяч ");  break;
               case 1:  triadWord = triadWord.append("тысяча "); break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("тысячи "); break;
            }
         }
         break;
      case 2: if (range10 == 1)
            triadWord = triadWord.append("миллионов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("миллионов "); break;
               case 1:  triadWord = triadWord.append("миллион ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("миллиона ");  break;
            }
         }
         break;
      case 3: if (range10 == 1)
            triadWord = triadWord.append("миллиардов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("миллиардов "); break;
               case 1:  triadWord = triadWord.append("миллиард ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("миллиарда ");  break;
            }
         }
         break;
      case 4: if (range10 == 1)
            triadWord = triadWord.append("триллионов ");
         else {
            switch (range) {
               default: triadWord = triadWord.append("триллионов "); break;
               case 1:  triadWord = triadWord.append("триллион ");   break;
               case 2:
               case 3:
               case 4:  triadWord = triadWord.append("триллиона ");  break;
            }
         }
         break;
      }
   return triadWord.toString();
   }
}


package тут нету, money2str.java скомпилирован в money2str.class а далее в usersjars.jar

Пробовал изменить стандартный SummaToString код, нашел его, там вместо букв unicode, попытался переделать, вроде все хорошо. Переделал, заархивировал обратно в .jar с помощью jdk1.7.0 биллинг перестал работать, вернул все обратно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 13:27 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
У вас пакет никак не обозван - просто класс какой-то, система не знает где его искать.
Добавьте package romaniozi.money2str; В xslt там где было srс=xalan... вставьте romaniozi.money2str, вместо просто money2str


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 13:45 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Феанор писал(а):
У вас пакет никак не обозван - просто класс какой-то, система не знает где его искать.
Добавьте package romaniozi.money2str; В xslt там где было srс=xalan... вставьте romaniozi.money2str, вместо просто money2str

Прописал в money2str.java
Код:
package romaniozi.money2str
скомпилирован в money2str.class а далее в usersjars.jar

В XSL написал следующее
Код:
xmlns:mst="romaniozi.money2str"

<xalan:component prefix="mst" functions="summaToString">
<xalan:script lang="javaclass" src="xalan://romaniozi.money2str"/>
</xalan:component>


<xsl:value-of select="mst:summaToString(@total_sum)" />


пустая строка


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 15:29 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Извиняюсь, путь до этого класса будет romaniozi.money2str.money2str. название_пакета.Название_класса.
Или уберите из названия пакета в java файле monet2str, или добавьте в хслт название класса.
Как вариант еще проверить - добавьте фукнцию суммаТуСтрингТест, а в нее - вывод фиксированной строки. Ну и тут сделать так <xalan:component prefix="mst" functions="summaToString summaToStringTest">


Код:
public String summaToStringTest(){
 Sting out="test";
 return outl
}

Сделайте вызов откуда нибудь в шаблоне, посмотрите что вообще идет обращение к методу класса нормально.

ps Кстати, название public классов принято писать с большой буквы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 17:01 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Не помогло, буду пробовать сделать класс с одним методом и обращаться к нему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 06 сен 2011, 19:44 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
сделал Testit.java
Код:
package romaniozi.Testit;

public class Testit
{
    public String Testit()
    {
        String temp="ssss";
   return temp; 
    }   
}

скомпилил Testit.class
закинул в userjar.jar cкинул в \lib



Прописал

Код:
xmlns:mst="romaniozi.Testit.Testit"   


Код:
<xalan:component prefix="mst" functions="Testit">
    <xalan:script lang="javaclass" src="xalan://romaniozi.Testit.Testit"/>
  </xalan:component>


Код:
<xsl:value-of select="mst:Testit()"/>


В итоге ничего.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 07 сен 2011, 12:02 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Сервер рестартите когда джарку кидаете? Он при старте подхватывает библиотеки.

А в логах сервера ошибок нет? По идее-то вроде все верно сделано =/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 07 сен 2011, 13:56 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Рестартили, ошибок нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 07 ноя 2011, 19:54 
Не в сети

Зарегистрирован: 15 июн 2011, 13:33
Сообщения: 29
Карма: 0
Решил свою проблему так

Код:
                <!--Сумма-->
                <xsl:variable name="summa_str" select="java:java.lang.String.new(st:summaToString(@total_sum))"/>
                <!--/Сумма-->

                <!--Копейки-->
                <xsl:variable name="kop_str" select="substring-after(@total_sum, '.')"/>
                <!--/Копейки-->

                <!--Возможные варианты спряжения рубля-->
                <!--Еденицы-->
                <xsl:variable name="odin_rub" select="substring-before($summa_str, 'один рубль')"/>
                <xsl:variable name="dva_rub" select="substring-before($summa_str, 'два рубля')"/>
                <xsl:variable name="tri_rub" select="substring-before($summa_str, 'три рубля')"/>
                <xsl:variable name="chetire_rub" select="substring-before($summa_str, 'четыре рубля')"/>
                <xsl:variable name="pyat_rub" select="substring-before($summa_str, 'пять рублей')"/>
                <xsl:variable name="shest_rub" select="substring-before($summa_str, 'шесть рублей')"/>
                <xsl:variable name="sem_rub" select="substring-before($summa_str, 'семь рублей')"/>
                <xsl:variable name="devyat_rub" select="substring-before($summa_str, 'девять рублей')"/>
                <xsl:variable name="desyat_rub" select="substring-before($summa_str, 'десять рублей')"/>
                <!--/Еденицы-->

                <!--Десятки-->
                <xsl:variable name="desyyat_rub" select="substring-before($summa_str, 'десят рублей')"/>
                <xsl:variable name="dvadcat_rub" select="substring-before($summa_str, 'двадцать рублей')"/>
                <xsl:variable name="tridcat_rub" select="substring-before($summa_str, 'тридцать рублей')"/>
                <xsl:variable name="nadcat_rub" select="substring-before($summa_str, 'надцать рублей')"/>
                <xsl:variable name="rok_rub" select="substring-before($summa_str, 'рок рублей')"/>
                <!--/Десятки-->

                <!--Сотни-->
                <xsl:variable name="sto_rub" select="substring-before($summa_str, 'то рублей')"/>
                <xsl:variable name="sti_rub" select="substring-before($summa_str, 'сти рублей')"/>
                <xsl:variable name="sta_rub" select="substring-before($summa_str, 'ста рублей')"/>
                <xsl:variable name="sot_rub" select="substring-before($summa_str, 'сот рублей')"/>
                <!--/Сотни-->

                <!--Тысячи-->
                <xsl:variable name="tisyachi_rub" select="substring-after($summa_str, 'тысячи ')"/>
                <xsl:variable name="tisyachi_rub3" select="substring-before($tisyachi_rub, ' коп')"/>
                <xsl:variable name="tisyachi_rub2" select="substring-before($summa_str, 'рублей')"/>
                <xsl:variable name="tisyacha_rub" select="substring-after($summa_str, 'тысяча ')"/>
                <xsl:variable name="tisyacha_rub3" select="substring-before($tisyacha_rub, ' коп')"/>
                <xsl:variable name="tisyacha_rub2" select="substring-before($summa_str, 'рублей')"/>
                <xsl:variable name="tisyach_rub" select="substring-after($summa_str, 'тысяч ')"/>
                <xsl:variable name="tisyach_rub3" select="substring-before($tisyach_rub, ' коп')"/>
                <xsl:variable name="tisyach_rub2" select="substring-before($summa_str, 'рублей')"/>
                <!--/Тысячи-->
                <!--/Возможные варианты спряжения рубля-->


                <!--Сравнение-->
                <!--/Еденицы-->
                <xsl:if test="$odin_rub!=''">
                  <xsl:variable name="odin_rub2" select="java:concat(java:toUpperCase(java:substring($odin_rub,0,1)),java:substring($odin_rub,1))"/>
                  <xsl:value-of  select="$odin_rub2"/>одна гривня <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$dva_rub!=''">
                  <xsl:variable name="dva_rub2" select="java:concat(java:toUpperCase(java:substring($dva_rub,0,1)),java:substring($dva_rub,1))"/>
                  <xsl:value-of  select="$dva_rub2"/>две гривни <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$tri_rub!=''">
                  <xsl:variable name="tri_rub2" select="java:concat(java:toUpperCase(java:substring($tri_rub,0,1)),java:substring($tri_rub,1))"/>
                  <xsl:value-of  select="$tri_rub2"/>три гривни <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$chetire_rub!=''">
                  <xsl:variable name="chetire_rub2" select="java:concat(java:toUpperCase(java:substring($chetire_rub,0,1)),java:substring($chetire_rub,1))"/>
                  <xsl:value-of  select="$chetire_rub2"/>четыре гривни <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$pyat_rub!=''">
                  <xsl:variable name="pyat_rub2" select="java:concat(java:toUpperCase(java:substring($pyat_rub,0,1)),java:substring($pyat_rub,1))"/>
                  <xsl:value-of  select="$pyat_rub2"/>пять гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$shest_rub!=''">
                  <xsl:variable name="shest_rub2" select="java:concat(java:toUpperCase(java:substring($shest_rub,0,1)),java:substring($shest_rub,1))"/>
                  <xsl:value-of  select="$shest_rub2"/>шесть гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$sem_rub!=''">
                  <xsl:variable name="sem_rub2" select="java:concat(java:toUpperCase(java:substring($sem_rub,0,1)),java:substring($sem_rub,1))"/>
                  <xsl:value-of  select="$sem_rub2"/>семь гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$devyat_rub!=''">
                  <xsl:variable name="devyat_rub2" select="java:concat(java:toUpperCase(java:substring($devyat_rub,0,1)),java:substring($devyat_rub,1))"/>
                  <xsl:value-of  select="$devyat_rub2"/>девять гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$desyat_rub!=''">
                  <xsl:variable name="desyat_rub2" select="java:concat(java:toUpperCase(java:substring($desyat_rub,0,1)),java:substring($desyat_rub,1))"/>
                  <xsl:value-of  select="$desyat_rub2"/>десять гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <!--/Еденицы-->

                <!--Десятки-->
                <xsl:if test="$desyyat_rub!=''">
                  <xsl:variable name="desyyat_rub2" select="java:concat(java:toUpperCase(java:substring($desyyat_rub,0,1)),java:substring($desyyat_rub,1))"/>
                  <xsl:value-of  select="$desyyat_rub2"/>десят гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$dvadcat_rub!=''">
                  <xsl:variable name="dvadcat_rub2" select="java:concat(java:toUpperCase(java:substring($dvadcat_rub,0,1)),java:substring($dvadcat_rub,1))"/>
                  <xsl:value-of  select="$dvadcat_rub2"/>двадцать гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$tridcat_rub!=''">
                  <xsl:variable name="tridcat_rub2" select="java:concat(java:toUpperCase(java:substring($tridcat_rub,0,1)),java:substring($tridcat_rub,1))"/>
                  <xsl:value-of  select="$tridcat_rub2"/>тридцать гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$rok_rub!=''">
                  <xsl:variable name="rok_rub2" select="java:concat(java:toUpperCase(java:substring($rok_rub,0,1)),java:substring($rok_rub,1))"/>
                  <xsl:value-of  select="$rok_rub2"/>рок гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$nadcat_rub!=''">
                  <xsl:variable name="nadcat_rub2" select="java:concat(java:toUpperCase(java:substring($nadcat_rub,0,1)),java:substring($nadcat_rub,1))"/>
                  <xsl:value-of  select="$nadcat_rub2"/>надцать гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <!--Десятки-->

                <!--/Сотни-->
                <xsl:if test="$sto_rub!=''">
                  <xsl:variable name="sto_rub2" select="java:concat(java:toUpperCase(java:substring($sto_rub,0,1)),java:substring($sto_rub,1))"/>
                  <xsl:value-of  select="$sto_rub2"/>то гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$sti_rub!=''">
                  <xsl:variable name="sti_rub2" select="java:concat(java:toUpperCase(java:substring($sti_rub,0,1)),java:substring($sti_rub,1))"/>
                  <xsl:value-of  select="$sti_rub2"/>сти гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$sta_rub!=''">
                  <xsl:variable name="sta_rub2" select="java:concat(java:toUpperCase(java:substring($sta_rub,0,1)),java:substring($sta_rub,1))"/>
                  <xsl:value-of  select="$sta_rub2"/>ста гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <xsl:if test="$sot_rub!=''">
                  <xsl:variable name="sot_rub2" select="java:concat(java:toUpperCase(java:substring($sot_rub,0,1)),java:substring($sot_rub,1))"/>
                  <xsl:value-of  select="$sot_rub2"/>сот гривень <xsl:value-of  select="$kop_str"/> коп.
                </xsl:if>
                <!--/Сотни-->

                <!--/Тысячи-->
                <xsl:choose>
                  <xsl:when test="$tisyachi_rub3=concat(' рублей ', $kop_str)">
                    <xsl:variable name="tisyachi_rub4" select="java:concat(java:toUpperCase(java:substring($tisyachi_rub2,0,1)),java:substring($tisyachi_rub2,1))"/>
                    <xsl:value-of select="$tisyachi_rub4"/> гривень <xsl:value-of  select="$kop_str"/> коп.
                  </xsl:when>
                  <xsl:when test="$tisyacha_rub3=concat(' рублей ', $kop_str)">
                    <xsl:variable name="tisyach_rub4" select="java:concat(java:toUpperCase(java:substring($tisyach_rub2,0,1)),java:substring($tisyach_rub2,1))"/>
                    <xsl:value-of select="$tisyach_rub4"/> гривень <xsl:value-of  select="$kop_str"/> коп.
                  </xsl:when>
                  <xsl:when test="$tisyach_rub3=concat(' рублей ', $kop_str)">
                    <xsl:variable name="tisyach_rub4" select="java:concat(java:toUpperCase(java:substring($tisyach_rub2,0,1)),java:substring($tisyach_rub2,1))"/>
                    <xsl:value-of select="$tisyach_rub4"/> гривень <xsl:value-of  select="$kop_str"/> коп.
                  </xsl:when>
                </xsl:choose>
                <!--/Тысячи-->
                <!--/Сравнение-->


С UpperCase


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как изменить валюту в summaToString
СообщениеДобавлено: 29 дек 2011, 13:11 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
В WiKi выложите, если не трудно. Где про XSLT шаблоны..


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

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


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

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


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

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