显示字符串标记

时间:2009-08-16 13:38:07

标签: string expression birt token

我有$$分隔的字符串标记,这些标记是用逗号分隔的详细信息列表(例如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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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;