【问题标题】:Birt Report convert numbers to Persian numbersBirt Report 将数字转换为波斯数字
【发布时间】:2012-06-02 12:10:26
【问题描述】:

我正在使用 Birt 和 Eclipse Indigo。

我在报告中使用了一个表格。该表将从数据集中获取值。我想将数字转换为波斯数字。我尝试使用 java 脚本,但它不起作用。

var number = dataSetRow["invoice-number"];
var farsiNumber=new Array();
farsiNumber[0]='\u06f0';
farsiNumber[1]='\u06f1';
farsiNumber[2]='\u06f2';
farsiNumber[3]='\u06f3';
farsiNumber[4]='\u06f4';
farsiNumber[5]='\u06f5';
farsiNumber[6]='\u06f6';
farsiNumber[7]='\u06f7';
farsiNumber[8]='\u06f8';
farsiNumber[9]='\u06f9';
var outputNumber = "";
for(var i=0;i<number.length;i++) {
var ch = number.charAt(i);
var index = farsiNumber[ch];
if(ch >= 0 && ch <= 9)
outputNumber = outputNumber+index;
else
outputNumber = outputNumber+ch;
}
this.data = outputNumber;

有没有其他方法可以做到这一点,或者我应该为 Birt Functions 插件创建一个插件来做到这一点。

【问题讨论】:

    标签: birt persian


    【解决方案1】:

    使用此JavaScript 函数将数字转换为波斯语:

    function toPersianNumber(num){
      var persianNumberArray = new Array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹')
      var res = ''
      while(num/10 > 0){
        n = num%10
        num = parseInt(num/10)
        res = persianNumberArray[n] + res
      }
      return res
    }
    

    【讨论】:

      【解决方案2】:

      我正在使用此功能以获得更好的性能:)

      函数 toPersianChar(str) { var map = ["\u0660","\u0661","\u0662","\u0663","\u0664","\u0665","\u0666","\u0667","\u0668"," \u0669"] var replaceDigits = str.replace(/\d(?=[^]*(

      return(replaceDigits);
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多