我正在用一些数据填充DataWindow。其中一些列名是"Request No“、"Status”等。
"Status“列可以包含"Pending”、"Active“、"Expired”等值。
每当填充DataWindow时,我想要计算PowerBuilder中状态为“活动”的记录的数量。
在获得记录的计数后,我将在一些静态文本中填充计数。
有人可以帮助我,如何实现这一点,因为我是新手PowerBuilder。
谢谢
发布于 2012-06-04 23:18:02
这将为您提供答案,但它会向您介绍我们PowerBuilder开发人员所熟知的"Tilde Hell“。
ll_Count = Long (dw.Describe ("Evaluate('sum (if((status = ~~~"Active~~~"),1,0))',1)"))波浪号的疯狂之处在于每个级别的字符串求值都将表达式归结为下一次求值。(~~归结为~,~“归结为”,如果字符串括在双引号中,这将非常有用)
Describe()中的Evaluate(<expression>, <row>)将返回给定行上的<expression>的值。(因为<row>与跨整个数据集的sum()操作无关,所以您需要做的就是确保它是有效的行,即在本例中,至少有一行。)
祝好运,
特里。
发布于 2012-06-04 16:55:12
一种解决方案是使用您的条件过滤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()https://stackoverflow.com/questions/10876054
复制相似问题