| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1131 人关注过本帖
标题:[求助]不能正确保存数据,请指点一下如下代码哪有问题?
只看楼主 加入收藏
gdyuer
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-5-23
收藏
 问题点数:0 回复次数:4 
[求助]不能正确保存数据,请指点一下如下代码哪有问题?
这是“保存”按钮里的代码
long row
row=dw_1.getrow()
if dw_1.dataobject="clzc" then
dw_1.setitem(row,18,dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc"))
//就是yfzc、wxzc、bxzc和sfzc四个字段的值相加后的结果传送给另外一个字段
end if
dw_1.Update()
IF dw_1.Update()=1 THEN
COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA;
messagebox("失败!","操作的结果保存至数据库时失败")
END IF

我点击保存按钮后,数据也保存,但dw_1.setitem(row,18,dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc"))列值并没保存。关闭窗口,重新打开后,找到这条记录,再点击一下保存,该列值才记算并保存下来。

代码哪写错了?在线等

再就是上面的代码写的麻烦不麻烦?我刚学不久,有没有更精练或更简洁的代码,请告诉我

[此贴子已经被作者于2007-5-25 15:54:42编辑过]

搜索更多相关主题的帖子: 数据 代码 保存 
2007-05-25 09:52
gdyuer
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-5-23
收藏
得分:0 

怎么没人帮我呀

2007-05-25 15:55
路過
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:160
专家分:111
注 册:2006-12-15
收藏
得分:0 
你把那個四個用messagebox show一下,
int li_aa
li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")
dw_1.setitem(row,18,li_aa)
datawindow-->update properties 下,有沒有選擇要更新的欄位的。

2007-05-25 16:39
gdyuer
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-5-23
收藏
得分:0 
“datawindow-->update properties 下,有沒有選擇要更新的欄位的。” 我看了,没问题

int li_aa
li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")
dw_1.setitem(row,18,li_aa)

主要是不能即时更新,比如说第一次改了YFZC的值,直接点击保存后,只是把YFZC的这列值给保存了,dw_1.setitem(row,18,li_aa)没反应,该列值还是原来的值。

得在改完YFZC的值后,再点击一下别的任意一列,再点击一下保存,结果才能出来。

现在我把int li_aa
li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")
dw_1.setitem(row,18,li_aa)的代码放在DATAWINDOW有losefocus的事件中,并且又加入一行dw_1.accepttext(),也还是不行。

各位老大再帮一下吧

[此贴子已经被作者于2007-5-25 18:55:11编辑过]

2007-05-25 18:43
路過
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:160
专家分:111
注 册:2006-12-15
收藏
得分:0 

if dw_1.accepttext() = 1 then
STRING ls_ordno
ls_ordno = ls_kind+TRIM(ls_cust_no)+MID(TRIM(ls_ord_date),3,8)
dw_1.SetItem(dw_1.getrow(),'ord_no',ls_ordno)
IF IsNull(ls_ordno) OR Len(Trim(ls_ordno)) = 0 THEN
MESSAGEBOX('訊息!!','此訂單編號不能為空白!!!!',EXCLAMATION!,OK!)
dw_1.SetColumn('ord_no')
RETURN
END IF

integer row
string ls_date,ls_date1

//計算修改和刪除的筆數
ll_mod = dw_1.ModifiedCount()
ll_del = dw_1.DeletedCount()
ll_total = ll_mod + ll_del

//檢查資料是否有異動
if ll_total<>0 then

ll_mod = dw_1.modifiedcount()
ll_del = dw_1.deletedcount()
ll_total = ll_mod + ll_del

if ll_total = 0 then
ii_status = 0
wf_menu_ctrl()
im_menu.item[1].item[1].enabled=true

end if
else
MESSAGEBOX('訊息!!','請確定是否有資料更新!!',EXCLAMATION!,OK!)
return
end if
end if
我也是這麼寫的,沒有問題呀!你有沒有寫紅色的那一部份呀。
你把你每一個getitemdecimal的數據messagebox一下,看看有沒有抓取出來。


2007-05-28 08:26
快速回复:[求助]不能正确保存数据,请指点一下如下代码哪有问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.077064 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved