窗口无法保存,请高手指教
sdml 2008-04-25 04:31:21 这是ue_save里面的代码,删除可以,保存不行,删除就直接删了,插入也可以插入数据,就是无法保存
Long ll_currow, ll_modcount ,ll_errcode, ll_modrow , ll_imod, ll_return, ll_delcount, ll_del
String ls_org_cd, ls_errtext,ls_cldl_cd, ls_khzb,ls_cldl_nm, ls_cl_unit
dec ldb_khzb
Int li_seq, i
Accept_Err_Flag = 0
Message.ReturnValuec = 0
IF dw_sheet1.AceptText() < 1 THEN
Accept_Err_Flag = -1
Message.ReturnValue = 1
dw_sheet1.SetFocus()
RETURN
END IF
SetPointer(Hourglass!)
This.SetMicroHelp("")
ls_org_cd = dw_head.Object.org_cd[1]
IF IsNull(ls_org_cd) Or Trim(ls_org_cd) = "" THEN
MessageBox(This.Title + " (" + dw_head.Object.org_cd_t.text + ") ", +&
wf_msg_nm("SAA001"), Exclamation!)
wf_recovery("dw_head", 1, 'org_cd')
RETURN
End If
ll_modcount = dw_sheet1.modifiedCount()
ll_delcount = dw_sheet1.DeletedCount()
IF ll_modcount + ll_delcount = 0 THEN RETURN
FOR i = 1 TO ll_delcount
IF ll_delcount = 0 THEN EXIT
ls_org_cd = dw_sheet1.GetItemString(i, 'org_cd', DELETE!, TRUE)
ls_cldl_cd = dw_sheet1.GetItemString(i, 'cldl_cd', DELETE!, TRUE)
ls_cldl_nm = dw_sheet1.GetItemString(i, 'cldl_nm', DELETE!, TRUE)
ls_cl_unit = dw_sheet1.GetItemString(i, 'cl_unit', DELETE!, TRUE)
SELECT COUNT(*)
INTO :ll_del
FROM mxh030T(NOLOCK)
WHERE org_cd = :ls_org_cd
AND cldl_CD = :ls_cldl_cd ;
IF ll_del > 0 THEN
DELETE FROM mxh030T
WHERE org_cd = :ls_org_cd
AND cldl_CD = :ls_cldl_cd ;
IF SQLCA.SQLcode <> 0 THEN
ll_errcode = SQLCA.sqldbcode
ls_errtext = SQLCA.sqlerrtext
ROLLBACK USING SQLCA;
dw_sheet1.Event DbError(ll_errcode, ls_errtext, "", Primary!, 0)
RETURN
END IF
END IF
DELETE FROM mxh030T
WHERE org_cd = :ls_org_cd
AND cldl_CD = :ls_cldl_cd ;
IF SQLCA.SQLcode <> 0 THEN
ll_errcode = SQLCA.sqldbcode
ls_errtext = SQLCA.sqlerrtext
ROLLBACK USING SQLCA;
dw_sheet1.Event DbError(ll_errcode, ls_errtext, "", Primary!, 0)
RETURN
END IF
COMMIT USING SQLCA;
IF SQLCA.SQLcode <> 0 THEN
ll_errcode = SQLCA.sqldbcode
ls_errtext = SQLCA.sqlerrtext
ROLLBACK USING SQLCA;
dw_sheet1.Event DbError(ll_errcode, ls_errtext, "", Primary!, 0)
RETURN
END IF
NEXT
FOR ll_imod = 1 TO ll_modcount
ll_modrow = dw_sheet1.GetNextModified(ll_modrow, Primary!)
IF ll_modrow = 0 THEN EXIT
ls_org_cd = dw_sheet1.Object.org_cd[ll_modrow]
ls_cldl_cd = dw_sheet1.Object.cldl_cd[ll_modrow]
ls_cldl_nm = dw_sheet1.Object.cldl_nm[ll_modrow]
ls_khzb = dw_head.Object.khzb[ll_modrow]
ls_cl_unit = dw_sheet1.Object.cl_unit[ll_modrow]
// SELECT CONVERT(VARCHAR(22), khzb)
// INTO :ls_khzb
// FROM mxh030T(NOLOCK)
// WHERE org_cd = :ls_org_cd
// AND cldl_cd = :ls_cldl_cd
ldb_khzb = Dec(ls_khzb)
IF IsNull(ls_cldl_cd) OR Trim(ls_cldl_cd) = "" THEN
MessageBox(This.Title + " (" + dw_sheet1.Object.cldl_cd_t.text + ") ", +&
wf_msg_nm("SAA001"), Exclamation!)
//"材料大类代码."
wf_recovery("dw_sheet1", ll_modrow, 'cldl_cd')
RETURN
END IF
IF IsNull(ls_cldl_nm) OR Trim(ls_cldl_nm) = "" THEN
MessageBox(This.Title + " (" + dw_sheet1.Object.cldl_nm_t.text + ") ", +&
wf_msg_nm("SAA001"), Exclamation!)
//"材料大类名称."
wf_recovery("dw_sheet1", ll_modrow, 'cldl_nm')
RETURN
END IF
IF IsNull(ls_cl_unit) OR Trim(ls_cl_unit) = "" THEN
MessageBox(This.Title + " (" + dw_sheet1.Object.cl_unit_t.text + ") ", +&
wf_msg_nm("SAA001"), Exclamation!)
//"单位."
wf_recovery("dw_sheet1", ll_modrow, 'cl_unit')
RETURN
END IF
IF IsNull(ldb_khzb) THEN
MessageBox(This.Title, wf_msg_nm("SM0121"), Exclamation!)
//"考核指标位."
wf_recovery("dw_sheet1", ll_modrow, 'khzb')
RETURN
END IF
INSERT INTO mxh030T
( ORG_CD,
cldl_CD,
cldl_nm,
khzb,
cl_unit,
cl_lv1,
cl_lv2,
kh_lv1,
kh_lv2)
VALUES
( :ls_org_cd,
:ls_cldl_cd,
:ls_cldl_nm,
:ldb_khzb,
:ls_cl_unit,
null,
null,
null,
null) ;
IF SQLCA.SQLCode <> 0 THEN //OR SQLCA.SQLNRows < 1
ll_errcode = SQLCA.sqldbcode
ls_errtext = SQLCA.sqlerrtext
ROLLBACK USING SQLCA;
dw_sheet1.Event DbError(ll_errcode, ls_errtext, "", Primary!, 0)
RETURN
END IF
COMMIT USING SQLCA;
dw_sheet1.SetItemStatus(ll_modrow, 0, Primary!, DataModified!)
dw_sheet1.SetItemStatus(ll_modrow, 0, Primary!, NotModified!)
NEXT
dw_sheet1.ResetUpdate()
This.SetMicroHelp(wf_msg_nm("SP0084") + String(ll_modcount + ll_delcount))
This.Event ue_query()
dw_head.Enabled = TRUE
This.SetMicroHelp(wf_msg_nm('SP0084') + String(ll_modcount))
SetPointer(Arrow!)