$PBExportHeader$f_oa_update_html.srf global type f_oa_update_html from function_object end type forward prototypes global function integer f_oa_update_html (long ll_powerid, long ll_scid, long ll_taskid, long ll_billtype, string ls_html, ref string arg_msg, boolean if_commit) end prototypes global function integer f_oa_update_html (long ll_powerid, long ll_scid, long ll_taskid, long ll_billtype, string ls_html, ref string arg_msg, boolean if_commit);Int rslt = 1 Long ll_docid SELECT top 1 docid INTO :ll_docid FROM oa_doc WHERE dtype = 1 AND powerid = :ll_powerid AND scid = :ll_scid And BILLID = :ll_taskid ORDER BY docid desc; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询订单对应公文失败,' + sqlca.SQLErrText GOTO ext END IF Long arr_fileid[], ll_fileid String arr_filename[], ls_filename Long i = 0 IF sys_filedb_sqlca.DBHandle() > 0 THEN DECLARE cur1 CURSOR FOR SELECT FileID, FileName FROM u_File WHERE billtype = :ll_billtype AND relid = :ll_taskid AND scid = :ll_scid Order By FileName Using sys_filedb_sqlca; OPEN cur1; FETCH cur1 Into :ll_fileid, :ls_filename; DO WHILE sys_filedb_sqlca.SQLCode = 0 i++ arr_fileid[i] = ll_fileid arr_filename[i] = ls_filename FETCH cur1 Into :ll_fileid, :ls_filename; LOOP CLOSE cur1; END IF DELETE From oa_doc_bill_fj Where docid = :ll_docid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '删除旧的公文附件连接失败,' + sqlca.SQLErrText GOTO ext END IF FOR i = 1 To UpperBound(arr_fileid) INSERT INTO oa_doc_bill_fj(docid, printid, fileid, filename) Values(:ll_docid, :i, :arr_fileid[i], :arr_filename[i]); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '插入公文附件连接失败,' + sqlca.SQLErrText GOTO ext END IF NEXT // DONE: 更新html Blob lb_html lb_html = Blob(ls_html) UpdateBlob oa_doc Set HTML = :lb_html Where docid = :ll_docid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新公文HTML失败,' + sqlca.SQLErrText GOTO ext END IF ext: IF rslt = 1 and if_commit THEN COMMIT; ELSE ROLLBACK; END IF RETURN rslt end function