如何获取不了数据窗口多行的数值,请大侠指教

怎么获取不了数据窗口多行的数值,请大侠指教
我写了这个代码获取多行的数值,感觉代码没错,但是就是不可得到,请大侠指教


if ll_count>0 then 
for ll_i=1 to ll_count
select count(*) into :ll_cnt from STDWK where work_type in('2','4') and card_date between :ls_holi_s_date and :ls_holi_e_date;
ls_hodilday=w_report.dw_preview.describe("Evaluate('compute_3',string(ll_i))")
messagebox('',ls_hodilday)
ll_hodilday1=long(ls_hodilday)
ll_hodilday2=ll_hodilday1 - ll_cnt
messagebox('',ll_hodilday2)
w_report.dw_preview.setitem(ll_i,'compute_3',ll_hodilday2)
    next 
end if

------解决方案--------------------
你自己跟下啊,这个应该很简单的。你哪句没取到值?
------解决方案--------------------
ls_hodilday=w_report.dw_preview.describe("Evaluate('compute_3',string(ll_i))")

为什么要用这句话,么这么用过,用getitem后者object取不行吗

ls_hodilday=string(w_report.dw_preview.object.compute_3[ll_i])
------解决方案--------------------
1.w_report.dw_preview.describe("Evaluate('compute_3',"+string(ll_i)+")") //此处ll_i变量注意
2.w_report.dw_preview.setitem(ll_i,'compute_3',ll_hodilday2) //此处不能给计算列赋值
------解决方案--------------------
帮你整理一下代码


if ll_count > 0 then 
for ll_i = 1 to ll_count
select count(*) into :ll_cnt 
  from STDWK
where work_type in('2','4') and 
card_date between :ls_holi_s_date and :ls_holi_e_date;

ls_hodilday = w_report.dw_preview.describe("Evaluate('compute_3',string(ll_i))")

messagebox('',ls_hodilday)
ll_hodilday1 = long(ls_hodilday)
ll_hodilday2 = ll_hodilday1 - ll_cnt

messagebox('', ll_hodilday2)
w_report.dw_preview.setitem(ll_i, 'compute_3', ll_hodilday2)

    next 
end if

------解决方案--------------------
1.select可以放到For 循环外边

2.ls_hodilday = w_report.dw_preview.describe("Evaluate('compute_3',string(ll_i))")
错了,应该为
ls_hodilday = w_report.dw_preview.describe("Evaluate('compute_3'," + string(ll_i) + ")")

3.w_report.dw_preview.setitem(ll_i, 'compute_3', ll_hodilday2)
计算列不能赋值
------解决方案--------------------
如果想给计算列赋新值,需要增加一个伪列,在sql中进行,如

select oper_cod, oper_nam from c_operator; 数据窗口会显示两个列

select oper_cod, oper_nam, 0 col_num from c_operator; 数据窗口会显示三个列 col_num就是伪列,可以赋值