computed object 计算列值能不能修改的问题

tigerwithwing 2008-12-11 05:10:01
我的程序如下:
long index
string ls_dqmc,ls_xj
dec ldec_byys,ldec_syqs
for index = 1 to dw_1.rowcount()
ls_dqmc=dw_1.object.dq[index]
ls_xj=dw_1.object.mc[index]
if ls_dqmc ='浦口' and ls_xj = '现' then
dw_1.setitem(index,'ljys',dw_1.object.ljys[index] -9903.8)
end if
next

dw_1.object.ljys[index] 是一个计算列,它的expression 是 a + b


可是我加上上面的代码,怎么dw_1.object.ljys[index]的值还是 a + b 而不是 a + b -9903.8 呢?
...全文
425 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tigerwithwing 2008-12-11
  • 打赏
  • 举报
回复
解决了。我把列明给弄错了 qd = '浦口' 错了。应该是dq。
谢谢各位大哥。
tigerwithwing 2008-12-11
  • 打赏
  • 举报
回复
a b 都是列
按照你上面的
if( qd = '浦口' and mc = '现', a + b - 9903.8, a + b )

我verify 了一下,报:expecting true/false expression 的错误
liubocy 2008-12-11
  • 打赏
  • 举报
回复
a,b是列的话

if( qd = '浦口' and mc = '现', a + b - 9903.8, a + b )

如果是个字符串

if( qd = '浦口' and mc = '现', 'a + b - 9903.8', 'a + b' )
liubocy 2008-12-11
  • 打赏
  • 举报
回复
computed object不能赋值,如果你的判断条件简单,可以在expression中用表达式来做。

如果比较复杂,在dw数据源中加个字段,用setitem赋值。

如:
select qd,
mc,
0.00 as ljys
from table
tigerwithwing 2008-12-11
  • 打赏
  • 举报
回复
那如果我在计算列的expression 中用if表达式
if ls_dqmc ='浦口' and ls_xj = '现' then
该计算列的值=a + b - 9903.8
else
该计算列的值=a + b

这个描述怎么在expression 中写呢?
还请不吝赐教。谢谢!
xiongxiao 2008-12-11
  • 打赏
  • 举报
回复
可以修改计算列的表达式,它的值是不能被直接改变的,除非表达式直接就是这个值
dw_report.Modify("ljys.Expression='a + b - 9903.8'")
不过表达式是对整个列起作用的,所以你想要达到的效果是不太可能用计算域来完成的
jlwei888 2008-12-11
  • 打赏
  • 举报
回复
呵呵 ,计算列的值是不能改的!是自动产生的只能取

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧