当前位置: 代码迷 >> PB >> pb error(R0039)——关于computer(计算)列赋值有关问题
  详细解决方案

pb error(R0039)——关于computer(计算)列赋值有关问题

热度:12   发布时间:2016-04-29 08:17:17.0
pb error(R0039)——关于computer(计算)列赋值问题
有两个Datawindow:DW1和DW2。
DW1:
(1)SQL语句是select a1,a2,a3,a4 from tablename1 where a1=string,其中a1,a2,a3,a4都是string型,a1=string中的string是一个String变量;
(2)DW1共有四列,分别为A1,A2,A3,A4,A5。A1~A4对应SQL语句的a2~a4列,A5是一个computer列,其值是等于SQL中的a1;

DW2:
(1)SQL语句是select b1,b2,b3,b4 from tablename2 where b1=integer,其中b1为integer,b2,b3,b4为string,b1=integer中的integer是一个integer变量;
(2)DW2共有四列,分别为B1,B2,B3,B4,B5。B1~B4对应SQL语句的b2~b4列,B5是一个computer列,其值是等SQL中的b1;

问题:
当我在DW1中添加一行后可以给A5列赋值,但在DW2中新增一行后给B5赋值,却总是出错。提示信息如下:
Application terminated.

Error: Error accessing external object property B5 at ……(后边就省略了)


请问这是哪里出了问题?为什么computer列为string时没有出问题,而变为integer时就显示出错呢?谢谢各位!

补充说明:
(1)如果我在B5中使用if(isrownew(),0,b5),这样在新增一行时是能完成自动赋值,但此值是固定为0,而不是我的指定值。
(2)我使用DW2.object.B5.coltype显示出是number。



------解决方案--------------------
补充说明:
(1)如果我在B5中使用if(isrownew(),0,b5),这样在新增一行时是能完成自动赋值,但此值是固定为0,而不是我的指定值。
(2)我使用DW2.object.B5.coltype显示出是number。

(1)if(isrownew(),0,b5), 表示当行为新增行时,值为0, 否则为b5(b5本身就是计算列,你竟然还在计算列中引用计算列本身,这不是无穷循环了吗), 这里应该是 if(isrownew(),0,b1) 吧

(2)是number,这个没有错
------解决方案--------------------
计算列是无法直接赋值的
  相关解决方案