我正在使用一些数据填充DataWindow。一些列名称是“请求号”,“状态”等。
“状态”列可以包含“待定”,“有效”,“已过期”等值。
每当填充DataWindow时,我想计算PowerBuilder中状态为“活动”的记录数。
在获得记录计数后,我将在一些静态文本中填充计数。
任何人都可以帮助我,如何实现这一点,因为我是PowerBuilder的新手。
由于
答案 0 :(得分:4)
这将为您提供答案,但它会向您介绍我们的PowerBuilder开发人员所知道的“Tilde Hell”。
ll_Count = Long (dw.Describe ("Evaluate('sum (if((status = ~~~"Active~~~"),1,0))',1)"))
波浪形的疯狂与每个级别的字符串评估将表达式归结为下一次评估有关。 (~~归结为〜,和〜“归结为”如果你的字符串用双引号括起来,这很有用)
Evaluate(<expression>, <row>)
内的 Describe()
将返回给定行上<expression>
的值。 (由于<row>
与在整个数据集中工作的sum()
操作无关,因此您需要做的就是确保它是一个有效的行,即在此示例中,至少有一行。)
特里。
答案 1 :(得分:3)
一种解决方案是使用您的条件过滤DW数据,然后获取行数。
类似的东西:
dw_ctrl.SetFilter("status='Active'")
dw_ctrl.Filter()
ll_count = dw_ctrl.RowCount()
//...
//don't forget to reset filter after that
dw_ctrl.SetFilter("")
dw_ctrl.Filter()