0

我有字符串标记,$$其中是由逗号进一步分隔的详细信息列表(例如Peter Adams,255 Jhonson Street, NY,74322 $$ Mary Luther,54 Eglinton Ave.,Mississauga,ON L5A1W6

我想通过以下方式显示在上面

Name : Peter Adams
Addr :255 Jhonson Street
City : NY
Pincode :74322

Name : Mary Luther
Addr :54 Eglinton Ave.
City :Mississauga
Pincode :ON L5A1W6

在 BIRT 输出

我尝试使用以下代码

var myexp =/[$$]/;
var match = myexp.exec(dataSetRow["SDR"]);
if(match !=null)
{
array=dataSetRow["SDR"].split("$$");
//dataSetRow["SDR"] ="x";
var string=null;
for(var i=0; i<array.length; i++)
{
string+=array[i]+"\n\n";

}
dataSetRow["SDR"]=string.substring(4,string.length);
}
else
{
dataSetRow["SDR"]=dataSetRow["SDR"];
}

显示字符串标记如下

Peter Adams,255 Jhonson Street, NY,74322 

Mary Luther,54 Eglinton Ave.,Mississauga,ON L5A1W6

任何人都可以提出一些建议吗?

4

2 回答 2

0

所以你有一个填充了令牌的“数组”。好的!再用逗号 (array[index].split(",") ) 拆分为另一个数组(比如 array1),并使用 array1 的各个元素以您想要的格式输出值。

于 2009-08-17T02:00:56.737 回答
0

您是否考虑过使用文本控件而不是实际覆盖数据绑定本身?在文本控件中,您可以进行所有格式设置并按照您的意愿获得输出,并且仍然保持数据绑定的完整性完好无损。

为此,只需将一个文本字段拖到您的表格上(而不是数据元素本身)。随着表格的构建,您的文本项将可以访问每一行的数据。然后使用“动态文本”类型为 HTML 输出配置文本元素(两者都通过“文本项”对话框中的下拉菜单设置)。然后将其添加为生成文本项的表达式:

var myexp =/[$$]/; 
var match = myexp.exec(dataSetRow["SDR"]); 
var outString = "";

if(match != null) {
    var splitResult = dataSetRow["SDR"].split(" $$ ");
    for(i = 0; i < splitResult.length; i++){
       outString = outString + splitResult[i].replace(",", ":");        
    } 
}
else
    outString = dataSetRow["SDR"];

"Name:  " + outString;
于 2009-08-17T13:27:04.320 回答