数据窗口更新的问题!update() =1好象不能满足。为什么!请看看。

dingd dingd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一共两个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()难道不能这样用????
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
dingd
PowerBuilder 1,111 成员 66,454 内容