数据窗口更新的问题!update() =1好象不能满足。为什么!请看看。
dingd 2002-10-29 01:36:40 一共两个windows!
窗体allrecord 上有个dw_1的数据窗口,用来显示所有数据!已经实现!!
还有一个"新增"按钮cb_1, 点击按钮cb_1,重新弹出一个窗体new ,这个new上有个
Tab Control,上面有3页!每个页对应一个数据窗口。
分别是tab_1.tabpage_1.dw_1, tab_1.tabpage_2.dw_2和tab_1.tabpage_3.dw_3
窗体new上有个"确定"按钮,来确定输入
下面就是我写的代码: 可是运行后,
弹出一个DataWindow Error的窗口(我没有定义),
上面显示:DataWindow does not have UPDATE capability.
这是什么原因,为什么我的数据更新不成功?????
-------------------------------------------------
int i_ret
i_ret = MessageBox("系统提示:","确认输入吗?",Question!,OKCancel!,1)
//如果点击OK!
IF i_ret = 1 then
//读数据窗口数据
if tab_1.tabpage_1.dw_1.accepttext() <> 1 then
messagebox("系统提示:","!!!!!!!!!!!")
return
end if
//检查"编号"是否为空
if string(tab_1.tabpage_1.dw_1.getitemnumber(1,"id"))=''&
or Isnull(tab_1.tabpage_1.dw_1.getitemnumber(1,"id")) = true then
messagebox("系统提示:","'编号'不能为空!")
tab_1.tabpage_1.dw_1.setfocus()
tab_1.tabpage_1.dw_1.setcolumn(1)
return
end if
//检查"编号"是否重复
int tab_id=-1
int cur_id
cur_id = tab_1.tabpage_1.dw_1.getitemnumber(tab_1.tabpage_1.dw_1.getrow(),"id")
select id
into :tab_id
from ps_info
where id=:cur_id;
if (tab_id <> -1) then
messagebox("系统提示:","编号重复!")
tab_1.tabpage_1.dw_1.setfocus()
tab_1.tabpage_1.dw_1.setcolumn(1)
return
end if
//检查"姓名"是否为空
if trim(tab_1.tabpage_1.dw_1.getitemstring(1,"name"))=''&
or Isnull(tab_1.tabpage_1.dw_1.getitemstring(1,"name")) = true then
messagebox("系统提示:","'姓名'不能为空!")
tab_1.tabpage_1.dw_1.setfocus()
tab_1.tabpage_1.dw_1.setcolumn(2)
return
end if
//"姓名"的开头不能为数字
string temp_name
temp_name = trim(tab_1.tabpage_1.dw_1.getitemstring(tab_1.tabpage_1.dw_1.getrow(),"name"))
if pos('0123456789',left(temp_name,1)) <> 0 then
messagebox("系统提示:","姓名的第一个字母不得为数字!")
tab_1.tabpage_1.dw_1.setfocus()
tab_1.tabpage_1.dw_1.setcolumn(2)
return
end if
//检查"性别"是否为空
if trim(tab_1.tabpage_1.dw_1.getitemstring(1,"sex"))=''&
or Isnull(tab_1.tabpage_1.dw_1.getitemstring(1,"sex")) = true then
messagebox("系统提示:","'性别'不能为空!")
tab_1.tabpage_1.dw_1.setfocus()
tab_1.tabpage_1.dw_1.setcolumn(3)
return
end if
if tab_1.tabpage_1.dw_1.accepttext() = 1 then
if tab_1.tabpage_1.dw_1.update() =1 then
if tab_1.tabpage_2.dw_2.update() =1 then
if tab_1.tabpage_3.dw_3.update() =1 then
commit;
else
rollback;
end if
else
rollback;
end if
else
rollback;
end if
end if
end IF
tab_1.tabpage_1.dw_1.reset()
tab_1.tabpage_1.dw_1.insertrow(0)
tab_1.tabpage_2.dw_2.reset()
tab_1.tabpage_2.dw_2.insertrow(0)
tab_1.tabpage_3.dw_3.reset()
tab_1.tabpage_3.dw_3.insertrow(0)
//close(new)
-----------------------------------
根据我的初步测试,问题可能出在:
if tab_1.tabpage_1.dw_1.update() =1 then
if tab_1.tabpage_2.dw_2.update() =1 then
if tab_1.tabpage_3.dw_3.update() =1 then
前面的if tab_1.tabpage_1.dw_1.accepttext() = 1条件是满足了!!!
但进入到if tab_1.tabpage_1.dw_1.update() =1就不满足了,这是为什么?
update()难道不能这样用????