首页 > 解决方案 > PowerBuilder - SetFilter(string) 出错 - 表达式无效

问题描述

我有一个生成一些报告的应用程序。我在检索到的数据中使用了一些过滤器。

wf_gen_filtro_conceptos()

//PROBLEM---------------
dw_rp1.setfilter(string(is_filtro) + " " + "or IsNull(causa)")
//----------------------
dw_rp1.filter()
dw_rp1.sort()
dw_rp1.groupcalc()

wf_gen_filtro_conceptos()变量is_filtro中设置。问题是当我使用setfilter(). 我无法连接这些字符串来创建新过滤器。例如,如果我单独使用其中一个字符串,IsNull(causa)则没有问题。

标签: filterbuilderpowerbuilder

解决方案


在使用 SetFilter 方法之前添加一行来连接字符串。就像是

ls_filterstring = is_filtro + " " + "or IsNull(causa)"
dw_rp1.setfilter(ls_filterstring)

通过这种方式,您可以在调试器中检查过滤器字符串发生的情况。如果 is_filtro 为 NULL,则整个字符串将为 NULL。

如果 is_filtro 正在设置,请确保字符串中的引号(如果有)是正确的。


推荐阅读