觸發器實現致遠OA回寫U8憑證的製作方法

2022-12-05 09:03:02 字數 4420 閱讀 5776

表單樣式:

字段型別設定

公式舉例說明

唯一標識

說明:此表是先用費用申請單回寫預算金額,如果需要修改預算可用費用調整單進行調整,然後費用報銷單回寫費用發生明細。

字段型別設定

唯一標識

說明:此表需要先行維護好裝置檔案,以供報銷單調用。維修記錄為報銷單回寫生成。

字段屬性

說明:此表只供呼叫,所以無唯一標識。此表要先行維護好,一共申請單和報銷單調用。

此表只供呼叫,無唯一標識,需提前維護好,以備製作憑證時進行呼叫。

此表只供呼叫,無唯一標識,需提前維護好,以備製作憑證時進行呼叫。

此表只供呼叫,無唯一標識,需提前維護好,以備製作憑證時進行呼叫。編碼必須與u8中的科目編碼一致,部門、客戶、**商、專案、業務員等輔助核算項也必須與u8的輔助核算項一致,否則oa傳憑證到u8時會發生錯誤。另外因為u8字段長度較短,回寫時會出現截斷的情況,所以在設定oa欄位時需要注意長度不宜過長。

此表為過渡表,為方便在製作憑證時呼叫報銷明細時區分憑證標識為未製作憑證的明細。

此表為回寫u8的記錄表。當此表有資料時,u8即有憑證生成。此表為流程表單憑證製作表觸發生成,不宜自己進行填寫。

此表設有觸發器。另外因為u8字段長度較短,回寫時會出現截斷的情況,所以在設定oa欄位時需要注意長度不宜過長。此表沒有唯一標識。

觸發設定:

回寫設定:

回寫設定:

因為費用大類是文字型別。所以在此處設定為『包含』。應該在一開始就設定為數字型別,那樣可以用=算式進行分類統計。

不過沒有問題,這樣設定也沒有問題,只是需要在費用類別檔案中限定死材料費為1,人工費為2,其他費用為3.

觸發設定:

回寫設定:

校驗規則

操作設定

觸發設定

回寫設定

憑證標識在報銷單時預設(且不能修改字段值)為未製作憑證。在憑證製單時預設為已製作憑證。當下次呼叫報銷明細時,只可以呼叫未製作憑證的報銷明細。

此表觸發生成回寫u8的憑證底表。憑證底表觸發生成u8的憑證。因u8中有許多欄位為垃圾資料,所以在此表單上設定了許多欄位的預設值。此表單尤其要注意字段長度的問題。

exec sp_addlinkedserver 'a8tou8', ' ', 'sqloledb ', '192.168.50.33' ---建立伺服器連線

exec sp_addlinkedsrvlogin 'a8tou8', 'false ',null, 'sa', '!qaz2wsx' --建立登陸

此鏈結在a8的資料庫中建立。a8tou8是名稱,可以隨意取名。192.

168.50.33是u8伺服器的ip位址。

sa為u8資料庫的使用者名稱,!qaz2wsx為其密碼。

oa和u8的伺服器都需要設定元件服務:

兩台伺服器都需要啟動以下服務:

可以看到在資料庫中表單名稱為formmain_0226

在formmain_0226表中建立觸發器:

**如下:

use [a88]

go/****** object: trigger [dbo].[pingzheng] script date:

10/08/2019 13:09:55 ******/

set ansi_nulls on

goset quoted_identifier on

goalter trigger [dbo].[pingzheng] on [dbo].[formmain_0226]

for insert

asbegin

set nocount on

set xact_abort on

insert into

(iperiod,csign,isignseq,ino_id,inid,dbill_date,idoc,cbill,ibook,cdigest,

ccode,dt_date,cdept_id, ccus_id,

csup_id,bdelete,bvouchedit,bvouchmoneyhold,

bvalueedit,bcodeedit,bpcsedit,bdeptedit,bitemedit,bcussupinput,bflagout,

iyear,iyperiod,tvouchtime,md,mc,md_f,mc_f,nfrat,nd_s,nc_s,cdefine9)

values

((select field0015 from inserted), (select field0001 from inserted),

(select field0017 from inserted),((select max(ino_id) from where isignseq =(select field0017 from inserted))+1),

(select field0016 from inserted),(select field0002 from inserted),-1,

(select name from org_member where id =(select field0003 from inserted)),0,

(select field0005 from inserted),(select field0006 from inserted),

(select field0004 from inserted), (select field0019 from inserted),

(select field0011 from inserted), (select field0012 from inserted),0,1,0,1,1,1,1,1,0,0,

(select field0014 from inserted), (select field0014*100+field0015 from inserted),

(select field0002 from inserted),convert(money,(select field0008 from inserted)),

convert(money,(select field0009 from inserted)),

0,0,0,0,0,(select field0018 from inserted))

end此觸發器用於當憑證底表新增記錄時,觸發u8憑證表也跟著新增記錄。當憑證底表字段不一樣,甚至說字段順序不一樣時,此觸發器就需要重新編輯,以跟u8的憑證字段一一對應。因專案在前期階段,客戶不一定就能購買軟體,所以並沒有再耗費心力去寫刪除、更改記錄時的觸發器。

u8憑證表為gl_accvouch,在此表中共建立了兩個觸發器。

**如下:

use [ufdata_999_2019]

go/****** object: trigger [dbo].[pingzheng] script date:

10/08/2019 13:14:01 ******/

set ansi_nulls on

goset quoted_identifier on

goalter trigger [dbo].[pingzheng] on [dbo].[gl_accvouch]

for insert

asbegin

set nocount on

set xact_abort on

update gl_accvouch

set ino_id =(select min(ino_id) from gl_accvouch where cdefine9=(select cdefine9 from inserted)) where cdefine9=(select cdefine9 from inserted)

endoa觸發u8的觸發器,因為要取的u8的最大憑證編號,插入憑證時最少有兩條分錄,不能通過最大值來插入u8(會造成插入的資料憑證編碼遞增)。此觸發器可以規避此問題。

**如下:

use [ufdata_999_2019]

go/****** object: trigger [dbo].[pingzheng2] script date:

10/08/2019 13:15:09 ******/

set ansi_nulls on

goset quoted_identifier on

goalter trigger [dbo].[pingzheng2] on [dbo].[gl_accvouch]

for insert

asbegin

set nocount on

set xact_abort on

declare @a int

select @a=count(*) from gl_accvouch where cdefine9=(select cdefine9 from inserted) and inid=(select inid from inserted)

if @a>1

delete from gl_accvouch where i_id=(select i_id from inserted)

訓練六 觸發器

一 訓練目的 1 熟悉基本rs觸發器 d觸發器 jk觸發器 門控制鎖存器的邏輯功能與特點。2 掌握各功能端的作用。3 學會使用雙蹤示波器波形和比較相位。二 儀器及材料 a tds 4數電實驗箱 雙蹤示波器 數字萬用表。b 參考元件 與非門74ls00 d觸發器74ls74 jk觸發器74ls112。...

基本RS觸發器

課題教知識目學標目能力目標標素質目 標教學重點教學難點 教學準備 由與非門構成的基本rs觸發器 1 掌握觸發器的功能。2 掌握數字萬用表的使用。1 學會連線電路。2 會用萬用表測試電路出現故障的原因。1 培養學生分析問題和解決實際問題的綜合能力。2 培養學生的團隊合作精神和交流合作能力。熟悉觸發器的...

觸發器實驗 講

實驗四觸發器實驗 一 實驗目的 1 掌握rs觸發器 d觸發器 jk觸發器的工作原理。2 學會正確使用rs觸發器 d觸發器 jk觸發器。二 實驗所用器件和裝置 1 四2輸入與非門74ls001片 2 雙d觸發器74ls741片 3 雙jk觸發器74ls731片 三 實驗內容 1 用74ls00構成乙個...