[求助]不能正确保存数据,请指点一下如下代码哪有问题?
这是“保存”按钮里的代码<br>long row<br>row=dw_1.getrow()<br>if dw_1.dataobject="clzc" then<br> 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"))<br>//就是yfzc、wxzc、bxzc和sfzc四个字段的值相加后的结果传送给另外一个字段<br>end if<br>dw_1.Update()<br>IF dw_1.Update()=1 THEN<br> COMMIT USING SQLCA;<br>ELSE<br> ROLLBACK USING SQLCA;<br> messagebox("失败!","操作的结果保存至数据库时失败")<br>END IF<br><br>我点击保存按钮后,数据也保存,但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"))列值并没保存。关闭窗口,重新打开后,找到这条记录,再点击一下保存,该列值才记算并保存下来。<br><br>代码哪写错了?在线等<br><br>再就是上面的代码写的麻烦不麻烦?我刚学不久,有没有更精练或更简洁的代码,请告诉我<br>[align=right][color=#000066][此贴子已经被作者于2007-5-25 15:54:42编辑过][/color][/align]
<P>怎么没人帮我呀</P> 你把那個四個用messagebox show一下,<BR>int li_aa<BR>li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")<BR>dw_1.setitem(row,18,li_aa)<BR>datawindow-->update properties 下,有沒有選擇要更新的欄位的。 “datawindow-->update properties 下,有沒有選擇要更新的欄位的。” 我看了,没问题<br><br>int li_aa<br>li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")<br>dw_1.setitem(row,18,li_aa)<br><br>主要是不能即时更新,比如说第一次改了YFZC的值,直接点击保存后,只是把YFZC的这列值给保存了,dw_1.setitem(row,18,li_aa)没反应,该列值还是原来的值。<br><br><STRONG>得在改完YFZC的值后,再点击一下别的任意一列,再点击一下保存,结果才能出来。</STRONG><br><br>现在我把int li_aa<br>li_aa=dw_1.GetItemDecimal(row,"yfzc")+dw_1.GetItemDecimal(row,"wxzc")+dw_1.GetItemDecimal(row,"bxzc")+dw_1.GetItemDecimal(row,"sfzc")<br>dw_1.setitem(row,18,li_aa)的代码放在DATAWINDOW有losefocus的事件中,并且又加入一行dw_1.accepttext(),也还是不行。<br><br>各位老大再帮一下吧<br>
[align=right][color=#000066][此贴子已经被作者于2007-5-25 18:55:11编辑过][/color][/align]
<P>if dw_1.accepttext() = 1 then<BR>STRING ls_ordno<BR> ls_ordno = ls_kind+TRIM(ls_cust_no)+MID(TRIM(ls_ord_date),3,8)<BR> dw_1.SetItem(dw_1.getrow(),'ord_no',ls_ordno)<BR> IF IsNull(ls_ordno) OR Len(Trim(ls_ordno)) = 0 THEN<BR> MESSAGEBOX('訊息!!','此訂單編號不能為空白!!!!',EXCLAMATION!,OK!)<BR> dw_1.SetColumn('ord_no')<BR> RETURN<BR> END IF<BR> <BR><FONT color=#ff3300>integer row<BR>string ls_date,ls_date1</FONT></P>
<P><FONT color=#ff3300> //計算修改和刪除的筆數<BR> ll_mod = dw_1.ModifiedCount()<BR> ll_del = dw_1.DeletedCount()<BR> ll_total = ll_mod + ll_del</FONT></P>
<P><FONT color=#ff3300>//檢查資料是否有異動<BR> if ll_total<>0 then<BR> <BR> ll_mod = dw_1.modifiedcount()<BR> ll_del = dw_1.deletedcount()<BR> ll_total = ll_mod + ll_del<BR> <BR> if ll_total = 0 then <BR> ii_status = 0<BR> wf_menu_ctrl()<BR> im_menu.item[1].item[1].enabled=true<BR> <BR> end if <BR> else<BR> MESSAGEBOX('訊息!!','請確定是否有資料更新!!',EXCLAMATION!,OK!)<BR> return<BR> end if<BR><FONT color=#000000>end if</FONT> <BR><FONT color=#000000>我也是這麼寫的,沒有問題呀!你有沒有寫紅色的那一部份呀。<BR></FONT>你把你每一個getitemdecimal的數據messagebox一下,看看有沒有抓取出來。<BR></FONT></P>
页:
[1]
