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

Как изменить валюту в summaToString
http://forum.bitel.ru/viewtopic.php?f=14&t=5655
Страница 1 из 1

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

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

Автор:  romaniozi [ 30 июн 2011, 12:29 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Подскажите хотя бы где лежит этот скрипт

Автор:  romaniozi [ 30 июн 2011, 13:09 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Вот у меня есть скрипт

Код:
/*
 *  Класс 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" />



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

Автор:  Феанор [ 30 июн 2011, 14:40 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

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

Автор:  romaniozi [ 30 июн 2011, 14:58 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

спасибо, что подсказали направление поисков буду разбираться

Автор:  romaniozi [ 04 июл 2011, 15:37 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

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" />



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

Автор:  Администратор [ 17 авг 2011, 15:34 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Вы зачем пишите в куче мест один пост? Ответил в другой теме. Дальше пишите сюда.

Автор:  romaniozi [ 05 сен 2011, 14:20 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Спасибо за ответ!

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)" />



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

Автор:  Феанор [ 06 сен 2011, 12:44 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

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

Автор:  romaniozi [ 06 сен 2011, 13:08 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Код:
/*
*  Класс 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 биллинг перестал работать, вернул все обратно...

Автор:  Феанор [ 06 сен 2011, 13:27 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

У вас пакет никак не обозван - просто класс какой-то, система не знает где его искать.
Добавьте package romaniozi.money2str; В xslt там где было srс=xalan... вставьте romaniozi.money2str, вместо просто money2str

Автор:  romaniozi [ 06 сен 2011, 13:45 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Феанор писал(а):
У вас пакет никак не обозван - просто класс какой-то, система не знает где его искать.
Добавьте 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)" />


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

Автор:  Феанор [ 06 сен 2011, 15:29 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

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


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

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

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

Автор:  romaniozi [ 06 сен 2011, 17:01 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

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

Автор:  romaniozi [ 06 сен 2011, 19:44 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

сделал 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()"/>


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

Автор:  Феанор [ 07 сен 2011, 12:02 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Сервер рестартите когда джарку кидаете? Он при старте подхватывает библиотеки.

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

Автор:  romaniozi [ 07 сен 2011, 13:56 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Рестартили, ошибок нет

Автор:  romaniozi [ 07 ноя 2011, 19:54 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

Решил свою проблему так

Код:
                <!--Сумма-->
                <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

Автор:  Администратор [ 29 дек 2011, 13:11 ]
Заголовок сообщения:  Re: Как изменить валюту в summaToString

В WiKi выложите, если не трудно. Где про XSLT шаблоны..

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