如何在 BIRT 中用另一列结果替换空列结果
How to replace a column result if null with another column result in BIRT
对于使用 Birt 中的表达式计算列的帮助,我将不胜感激。
我有两列给出结果,一列给出电子邮件地址,一列给出联系电话:电话、手机..
当电子邮件结果为空时,联系电话列显示一个数字,这些是与 sql 中的 table 不同的通信方式。
我想做的是为电子邮件地址和电话号码创建一个新的计算列,当 emailaddress 为 null 时替换为 contactnumber = contact,当 contactnumber 为 null 时替换为 emailaddress。
我在网上看了几个类似的问题,发现当你点击验证时,将下面的脚本输入到 birt 表达式生成器中是被接受的,但它没有在我使用的 erp 软件中加载报告。
表达式本身是否正确?
if(row["destination"] == null){
row["contact"];
}
else if(row["contactnumber"] == null){
row["contact"];
}
else{
return true;
}
亲切的问候,
斯图尔特
不,这是不正确的(尽管在句法上有效)。
首先我们得到的是一个表达式,而不是一个函数。
所以不应该有 return
语句。
显然 true
不可能是对的。其他值(可能)是字符串,因此这也应该是字符串。
我不太确定你到底想达到什么目的。
也许您正在寻找类似 SQL 中的 COALESCE 或 Oracle SQL 中的 NVL 之类的东西?
我想你创建了一个 JS 函数,用 JSfiddle 左右测试它,然后把它放在初始化脚本中并在表达式中调用它。
通过使用以下 Javascript 作为 Birt 中的计算列,这会将一列(如果为空)替换为另一列值。
if(row["destination"] == null){
row["contactnumber"];
}
else {
row["destination"]; }
对于使用 Birt 中的表达式计算列的帮助,我将不胜感激。
我有两列给出结果,一列给出电子邮件地址,一列给出联系电话:电话、手机..
当电子邮件结果为空时,联系电话列显示一个数字,这些是与 sql 中的 table 不同的通信方式。
我想做的是为电子邮件地址和电话号码创建一个新的计算列,当 emailaddress 为 null 时替换为 contactnumber = contact,当 contactnumber 为 null 时替换为 emailaddress。
我在网上看了几个类似的问题,发现当你点击验证时,将下面的脚本输入到 birt 表达式生成器中是被接受的,但它没有在我使用的 erp 软件中加载报告。
表达式本身是否正确?
if(row["destination"] == null){
row["contact"];
}
else if(row["contactnumber"] == null){
row["contact"];
}
else{
return true;
}
亲切的问候,
斯图尔特
不,这是不正确的(尽管在句法上有效)。
首先我们得到的是一个表达式,而不是一个函数。
所以不应该有 return
语句。
显然 true
不可能是对的。其他值(可能)是字符串,因此这也应该是字符串。
我不太确定你到底想达到什么目的。 也许您正在寻找类似 SQL 中的 COALESCE 或 Oracle SQL 中的 NVL 之类的东西?
我想你创建了一个 JS 函数,用 JSfiddle 左右测试它,然后把它放在初始化脚本中并在表达式中调用它。
通过使用以下 Javascript 作为 Birt 中的计算列,这会将一列(如果为空)替换为另一列值。
if(row["destination"] == null){
row["contactnumber"];
}
else {
row["destination"]; }