首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

数据窗口FREEFORM显示有关问题

2012-09-18 
数据窗口FREEFORM显示问题总共两个界面,W_catalog,W_gwsm在w_CATALOG上有一个GRID类型数据窗口,N个按钮,其

数据窗口FREEFORM显示问题
总共两个界面,W_catalog,W_gwsm
在w_CATALOG上有一个GRID类型数据窗口,N个按钮,其中添加 修改
本来添加按钮CLICK事件函数是
if a>0 then
b=dw_1.object.id[1]  
 openwithparm(w_gwsm,b)  
else

 messagebox("系统提示","请选择记录!")
end if
但是,传递到修改界面以后,FREEFORM数据窗口显示空白
所以我突发奇想,把添加的CLICK事件改成了

//添加操作
long a
long b
a=dw_1.insertrow(0)
if a<0 then 
messagebox("插入错误","插入不成功")
return 0
else
dw_1.object.gwbh[a]='0'//默认岗位编号初始化为0
end if
//保存操作
dw_1.accepttext()
if dw_1.update() <> 1 then
messagebox("",SQLCA.SQLErrText)
 rollback using sqlca;
else
commit using sqlca;
end if
if sqlca.sqlcode = 0 then //这个是保存成功了
  commit;
else
  messagebox("插入错误", "错误信息为:"+string(sqlca.sqlerrtext)) //这个是数据库本身报出的错误
  rollback;
end if
//刷新操作
//messagebox("刷新","")←←←←←←←←←←←←←←←←←←稍后会说到此弹出窗口的原因
if dw_1.retrieve()=-1 then
return
end if
//把ROW=1添加传递至窗口W_gwsm,进行修改
if a>0 then
b=dw_1.object.id[1]  
 openwithparm(w_gwsm,b)  
else

 messagebox("系统提示","请选择记录!")
end if
分几步进行添加保存刷新然后传递到W_gwsm,然后点击添加按钮进入W_gwsm可以正确显示。

但是后来发现一个BUG,先点击修改按钮以后,关掉W_gwsm窗口再进行添加,FREEFORM数据窗口依旧显示空白
修改按钮的CLICK事件:
long i
int j
j=dw_1.getrow()
if j>0 then
i=dw_1.object.id[j]  
 openwithparm(w_gwsm,i)  
else
 messagebox("系统提示","请选择记录!")
end if
但是我后来尝试在添加按钮CLICK事件中的刷新操作中插入弹出窗口,即指出的刷新窗口,显示正常。
请问如何解决

[解决办法]
一开始就是直接传递的,可是显示空白。。

答:因为FreeForm数据窗口没有数据,所以是空白,可以用insertrow(0)插入一行数据,就好了
[解决办法]
也可以考虑把数据窗口传递给freeform,然后用sharedata来实现,这种方式也可以

热点排行