Birt Report 将数字转换为波斯数字

问题描述 投票:1回答:2

$))

我在报表中使用了一个表格。该表将从数据集中获取数值。我想把这些数字转换成波斯数字。我试过使用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
2个回答
8
投票

使用这个 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
}

0
投票

我使用这个函数是为了获得更好的性能:)

function toPersianChar(str) { var map = ["\u0660","\u0661","\u0662","\u0663","\u0664","\u0665","\u0666","\u0667","\u0668","\u0669"] var replaceDigits = str. replace(d(?=[^<>]*(<g, function($0) { return map[$0]});

return(replaceDigits);
};
© www.soinside.com 2019 - 2024. All rights reserved.