### 菜單構成
通達Office Anywhere 11.0版安裝好之后,以”admin”身份登陸系統,可以看到應用中心操作菜單,如下圖所示:

如果看不到上述菜單,請依次訪問 系統管理->組織機構設置 -> 角色與權限管理 ,把應用中心相關菜單勾選上,如下圖:

### 設計應用
現以”合同管理”為例,講述如何通過應用中心以”不寫一行代碼”的方式定義一個功能強大且實用的應用系統。
#### 需求分析
合同管理由簽訂合同、合同收款、合同匯總以及應收款周期分析構成。
1. 簽訂合同
> 表單信息如下圖:

合同簽訂審批過程如下:
簽訂合同 -> 主管審核 -> 總監審批 -> 歸檔。
1. 合同收款
> 表單信息如下圖:

收款審批過程:登記收款 -> 財務確定 -> 收入結算
1. 合同匯總
> 表單信息如下圖:

1. 應收款周期分析
> 表單信息如下圖:

除了上述主要表單之外,合同管理還需要一個基礎設置表單以錄入一些基礎信息,如下圖:

此外還需要一個分段信息表單以錄入應收賬款周期信息,表單樣式從略。
合同管理整體框架如下圖所示:

#### 菜單設置
通過應用中心設計的應用系統可以通過菜單來發布和使用,也可以通過 應用中心 -> 我的應用 里訪問。點擊OA系統的 系統管理 -> 菜單設置 ,設置合同管理所需要用到的菜單,如下圖:

友情提示: 1)設置菜單時只需設置菜單的代碼和名稱,無需設置菜單訪問的模塊地址。 2)設置菜單不是必須的,應用定義好之后也可通過”自動綁定菜單”方式由系統自動創建所需要的菜單。
#### 創建應用
依次點擊菜單 應用中心-> 設計應用,進入設計應用界面如下圖所示:

點擊”創建新應用”,系統彈出如下對話框:

**應用名稱:** 指待創建的應用名稱,應用名稱不能重復;最長為20個字符。應用名稱的命名規則為:以漢字、英文字母、下劃線開頭,后接漢字、英文字母、下劃線、數字任意組合。
**所屬部門:** 實現應用按部門獨立管理。應用所屬部門中的用戶如果有應用中心的菜單權限即可對此應用進行所有的管理操作。
注:這個所屬部門只有管理員有權設置。
**所屬菜單:** 指應用所綁定的菜單。通過應用中心創建的應用,如果是通過獨立菜單來訪問的,那么應用需要綁定一個菜單。所屬菜單可以空著,等后期系統建成以后通過自動綁定菜單由系統自動賦值。
注:一個應用只能綁定一個菜單,不能多個應用綁定同一個菜單上。
**菜單圖標及圖標顏色:** 選定在”我的應用”中此應用呈現的圖標以及圖標顏色。
創建”合同管理”應用,如下圖:

點擊”確定”完成應用創建,如下圖:

創建新應用后,還可以對應用進行自動綁定菜單、創建應用導圖、添加應用說明、編輯、復制、刪除以及調整應用之間的順序,如下圖:

#### 創建分類
應用之下可以創建分類和表單。點擊剛才創建的應用”合同管理”,進入應用分類以及應用表單管理界面,如下圖:

點擊”新建”,進入分類創建頁面,如下圖:

**分類名稱:** 指創建的分類名稱,分類名稱不能重復;最長為20個字符。分類名稱的命名規則為:以漢字、英文字母、下劃線開頭,后接漢字、英文字母、下劃線、數字的任意組合。
**所屬部門:** 含義與應用的所屬部門一致;
給合同管理應用創建”數據錄入”和”數據分析”兩個分類,如下圖:

上述界面點擊”編輯”,還能進一步完成分類編輯、刪除以及拖拽分類以調整分類的順序等功能。
### 創建表單-基礎設置
#### 新建表單
把鼠標移到”新建表單”并點擊”控件形式”,彈出新建表單操作界面,如下圖:


**表單編號:** 全局唯一的編號,編號命名規則:以英文字母、下劃線開頭,后接英文字母、下劃線、數字的任意組合,最長為256個字符。
**表單名稱:** 待創建的表單名稱;分類名稱不能重復;最長為20個字符。表單名稱的命名規則為:以漢字、英文字母、下劃線開頭,后接漢字、英文字母、下劃線、數字的任意組合。
**所屬分類:** 把待創建的表單歸屬到某個分類下;
**所屬部門、所屬菜單:** 與應用的所屬部門、所屬菜單含義一致。
注:一個表單只能綁定一個菜單。
**查詢表單:** 代表該表單為查詢類表單,只能查詢、查看,不能存儲結果。
**驗證不通過仍保存:** 保存時在不滿足驗證規則情況下仍然允許保存數據。
**標題不允許更改:** 表單數據標題不能手工填寫和更改。
**標題必填:** 表單數據標題必須填寫或存在。
錄入基礎設置表單信息如下圖:

點擊”確定”,完成新建表單,如下圖:

#### 設計表單
點擊剛才新建的表單”基礎設置”,進入表單設計界面如下圖:

注:在表單設計器中,首先將組容器拖拽至表單設計器區域,然后才能添加控件。
表單設計器是應用中心最核心模塊,通過表單設計器可完成表單界面繪制、功能定義、流程設置、父子表單、定時任務、權限設置等功能。
#### 繪制表單
應用中心表單由組容器和基礎控件組成,組容器用于布局,基礎控件用于錄入數據。繪制表單時先把組容器拖拽到表單區域中,然后再把基礎控件拖拽到組容器中。組容器和基礎控件可以通過拖拽調整它們的位置。此外,每個基礎控件均有屬性可供設置。
小提示:不同組容器之間是有間隔的,如果希望組容器與之前的容器緊貼在一起而不留間隔,只需把該組容器的”顯示組容器名稱”選項去除即可。
根據2.2.1節需求描述,基礎設置表單需要體現四組信息,分別是業務類型、創收部門、客戶類型以及合同分期,因此我們拖拽四個單列布局容器到表單區域中,并把它們依次命名為”業務”、”部門”、”客戶”、”合同”,如下圖:

然后拖拽一個列表控件到業務組容器中,如下圖:

將其命名為”業務類型”,并添加一個名為”業務名稱”的單行文本字段。與此類似,添加另三個列表控件,分別為:
創收部門列表,包含”部門”單行文本字段、”負責人”單行文本字段;
客戶類型列表,包含”所屬行業”單行文本字段、”客戶類型”單行文本字段;
分期列表,包含”名稱”單行文本字段。
“基礎設置”表單最終設計結果如下圖:

點擊”預覽”運行表單設計結果,如下圖:

### 設計表單-簽訂合同
#### 新建表單
新建名稱為”簽訂合同”控件表單,如下圖:

#### 設計表單
##### 繪制表單
簽訂合同表單可以劃分為四大部分,分別是基本信息、收款進度管理、進款結算管理以及合同審批。基本信息部分用兩個容器,一個容器為兩列組容器,名稱為基本信息;另一個容器為三列組容器,并取消勾選”顯示組容器名稱”選項,如下圖:

在兩列組容器中依次定義以下兩個基礎控件:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 單行文本 | 合同編號 | 規則為:TD+部門代碼字母+6位日期+代表名字字母+個人當日合同流水號,共12-15位,例如:TDX140211LJ1。 | 長度為15 必填 不重復 |
| 單行文本 | 合同名稱 | | 必填 |
在三列組容器中依次定義以下三個基礎控件:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 單行文本 | 甲方 | | |
| 單行文本 | 聯系人 | | |
| 單行文本 | 聯系電話 | | 類型為手機號碼 |
| 單行文本 | 乙方 | | |
| 單行文本 | 合同代表 | | |
| 日期文本 | 簽訂日期 | | |
| 下拉選擇 | 業務類型 | | |
| 下拉選擇 | 部門 | | |
| 單行文本 | 負責人 | | |
| 下拉選擇 | 所屬行業 | | |
| 下拉選擇 | 客戶類型 | | |
| 貨幣文本 | 合同金額 | | |
| 日期文本 | 合同起日期 | | |
| 日期文本 | 合同止日期 | | |
| 附件 | 合同附件 | | |
| 貨幣文本 | 采購金額 | | |
| 單行文本 | 采購說明 | | |
繪制完的合同基本信息,如下圖所示:

收款進度管理部分使用一個單列組容器和雙列組容器,單列組容器命名為”收款進度管理”,雙列組容器取消勾選”顯示組容器名稱”選項。單列組容器定義一個列表控件,控件名稱為”收款進度”,并添加以下子字段:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 下拉選擇 | 分期 | | |
| 日期文本 | 應收日期 | | |
| 貨幣文本 | 應收金額 | | |
| 貨幣文本 | 實收金額 | | |
| 日期文本 | 開票日期 | | |
| 日期文本 | 到賬日期 | | |
| 下拉選擇 | 壞賬標識 | | 選項值類型為自定義,值為√ |
| 下拉選擇 | 到賬標識 | | 選項值類型為自定義,值為√ |
雙列組容器定義以下控件:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 貨幣文本 | 已到款總金額 | | |
| 貨幣文本 | 未收款總金額 | | |
| 日期文本 | 本期到賬日期 | | |
| 貨幣文本 | 本期到賬金額 | | |
繪制完的收款進度管理,如下圖:

“收款結算管理”部分也使用一個單列組容器和雙列組容器,單列組容器命名為”進款結算管理”,雙列組容器取消勾選”顯示組容器名稱”選項。單列組容器定義一個列表控件,控件名稱為”進款結算”,并添加以下子字段:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 下拉列表 | 部門 | | |
| 數值文本 | 結算比率 | | |
| 貨幣文本 | 結算金額 | | |
| 貨幣文本 | 累計已結算 | | |
| 日期文本 | 本期結算日期 | | |
| 貨幣文本 | 本期結算金額 | | |
雙列組容器定義以下控件:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 貨幣文本 | 已結算總金額 | | |
| 貨幣文本 | 未結算總金額 | | |
繪制完的進款結算管理,如下圖:

合同審批使用一個三列組容器,名稱命名為”合同審批”,并定義以下控件:
| 控件類型 | 名稱 | 描述 | 其他屬性 |
| --- | --- | --- | --- |
| 選人控件 | 部門主管 | | |
| 單選控件 | 審核意見 | | 選項值類型為”基礎代碼”,并選”審核意見” |
| 單行文本 | 主管批注 | | |
| 日期控件 | 審核日期 | | |
| 選人控件 | 運營總監 | | |
| 單選控件 | 審批意見 | | 選項值類型為”基礎代碼”,并選”審核意見” |
| 單行文本 | 審批批注 | | |
| 日期控件 | 審批日期 | | |
| 選人控件 | 歸檔員 | | |
| 多行文本 | 歸檔備注 | | |
| 日期控件 | 歸檔日期 | | |
繪制完的合同審批,如下圖:

##### 下拉框選項及表達式
在表單設計器中點擊 業務分類 下拉框控件,將其選項值類型設置為 關聯提取,如下圖:

點擊 設置關聯字段,關聯表單定義為 基礎設置,字段顯示定義為 業務分類.分類名稱,如下圖:

同理,部門 下拉框控件的下拉選項類型設置為 關聯提取,設置關聯字段的關聯表單為 基礎設置,字段顯示設置為 創收部門.部門,如下圖:

負責人 單行文本框的默認值類型設置為 關聯提取,設置關聯字段的關聯表單為 基礎設置,字段顯示設置為 創收部門.負責人,關聯條件設置為 部門=創收部門.部門,如下圖:

所屬行業 下拉控件的選項值類型設置為 關聯提取,設置關聯字段的關聯表單為 基礎設置,字段顯示設置為 客戶類型.行業,如下圖:

客戶類型 下拉控件的選項值類型設置為 關聯提取,設置關聯字段的關聯表單為 基礎設置,字段顯示設置為 客戶類型.類型,關聯條件設置為 所屬行業=客戶類型.行業,如下圖:

友情提示:所屬行業和客戶類型正好組成了一對二級聯動,多級聯動可參照此例子定義。
收款進度的進度款分期 下拉選擇控件的選項值類型設置為 關聯提取,設置關聯字段的關聯表單為 基礎設置,字段顯示設置為 合同分期.期次,如下圖:

已收款總金額 貨幣文本控件的默認值類型設置為 表達式,然后點擊 定義表達式,系統彈出表達式定義窗口,如下圖:

表達式定義窗口最左邊是字段選擇區;右邊是函數選擇區;中間上方是表達式編輯區,下方是快捷鍵操作區。在函數列表的統計函數中雙擊 SUM(\\),該函數將自動輸入到公式編輯區的當前光標所在位置,如下圖:

SUM(\\)其中SUM是函數名稱,代表求和,\\是函數的參數。選中函數的參數部分,即\\,如下圖:

然后從字段選擇區中單擊 收款進度.實收金額,該字段將替換掉選中的函數參數部分,如下圖:

點擊”提交”,已收款總金額計算表達式定義完成。
同理,定義 未收款總金額貨幣 文本控件默認值類型為 表達式,表達式內容為 SUM(本表單.收款進度.應收金額-本表單.收款進度.實收金額),如下圖:

“進款結算”列表控件的”收入部門”下拉選擇控件的選項值類型設置為”關聯提取”,設置關聯字段的關聯表單為”基礎設置”,顯示字段設置為”創收部門.部門”,如下圖:

“進款結算”列表控件的”結算金額”貨幣文本控件的默認值類型設置為”表達式”,表達式內容為 本表單.合同金額\*本表單.進款結算.結算比率,如下圖:

“已結算金額”貨幣文本控件的默認值類型設置為”表達式”,表達式內容為 SUM(本表單.進款結算.累計已結算),如下圖:

未結算金額 貨幣文本控件的默認值類型定義為”表達式”,表達式內容為 SUM(本表單.進款結算.結算金額-本表單.進款結算.累計已結算)。
審核意見 下拉框的選項值類型定義為”基礎代碼”,并選擇審核意見作為 基礎代碼,如下圖:

審批意見與審核意見一樣定義。
#### 流程設置
“簽訂合同”時需要走審批流程,可以通過定義流程來實現。方法是:點擊表單設計器 》流程設置,如下圖:

點擊”確定”按鈕,系統彈出流程設計器界面,如下圖:

友情提示:如果流程設計器沒有彈出,可能是被瀏覽器攔截了。把瀏覽器設置為允許彈出窗口,然后再次點擊 流程設置 即可。
在流程設計器中繪制以下流程步驟,如下表:
| 步驟名稱 | 經辦人 | 智能選人 | 流轉設置 | 可寫字段 | 條件設置 |
| --- | --- | --- | --- | --- | --- |
| 簽訂合同 | 所有部門 | | | 合同編號、合同名稱、甲方、聯系人、聯系電話、乙方、合同代表、簽訂日期、部門、負責人、所屬行業、客戶類型、合同金額、合同起日期、合同止日期、合同附件、采購金額、采購說明、收款進度 | |
| 主管審核 | 所有部門 | 自動選人規則定義為”按表單字段選擇”,已選表單字段為”負責人” | 允許退回之前步驟 | 進款結算、審核意見、主管批注、部門主管、審核時間 | 流出條件設置為:審核意見=“01” |
| 總監審批 | 運營總監 | | 允許退回之前步驟 | 審批意見、總監批注、運營總監、審批時間 | 流出條件設置為:審批意見=“01” |
| 歸檔 | 合同歸檔員 | | | 歸檔員、歸檔備注、歸檔時間 | |
簽訂合同流程設置結果如下圖:

#### 定義觸發器
觸發器是指在滿足一定條件下(包括流程執行的步驟、操作動作等)執行的動作或者操作,包括提取、回填以及驗證三種類型:
提取觸發器:用于填寫表單時從別的表單提取數據到本表單中,例如:填寫入庫單時從材料表單中提取材料信息到入庫單中。
回填觸發器:用于保存(或刪除)表單時更新其他表單數據,例如:保存入庫單時更新庫存表單信息。
驗證觸發器:用于驗證表單數據有效性,例如:填寫出庫單時出庫數量不得超過庫存數量。
友情提示:觸發器與關聯提取、表達式之間的區別在于:
1. 觸發器是需要在一定條件下才執行,而關聯提取、表達式是無條件執行的,即只要打開表單就會執行關聯提取、表達式;
2. 關聯提取和表達式可以認為是提取觸發器的簡化版;
3. 關聯提取是從別的表單中提取數據,表達式是基于本表單數據的數據計算。
簽訂合同表單需要定義以下觸發器:
1. 設置合同代表和合同簽訂日期默認值 在合同審批的第一步驟,即簽訂合同時由系統自動填寫上合同代表和合同簽訂日期。這個動作執行有前提條件,即只在第一步驟執行,因此需要通過定義觸發器實現。點擊表單設計器的 觸發器 操作按鈕,如下圖:

系統彈出觸發器管理窗口,如下圖:

點擊“新建”,選擇觸發器類型為“提取”,如下圖:

點擊“下一步”,觸發器名稱定義為“合同代表”,流程步驟定義為 “簽訂合同”,觸發方式定義為“新建觸發”,如下圖:

點擊“下一步”,然后點擊“數據填充”,選擇表單為“簽訂合同”,如下圖;

在目標字段一列中找到“簽訂日期”,把填充方式指定為“填入值”,填充表達式定義“THISDATE”,如下圖:

在目標字段中繼續找到“合同代表”,把填充方式指定為“填入值”,填充表達式定義為“LOGIN\_USER”,如下圖:

點擊“確定”完成觸發器定義。
1. 定義驗證合同附件觸發器 簽訂合同時要求合同金額超過5000(含)元時必須上傳合同附件,可以通過定義驗證觸發器實現。新建驗證觸發器,觸發器名稱指定為驗證附件,流程步驟設置為簽訂合同,觸發方式指定為條件觸發以及保存觸發,如下圖:

點擊下一步,定義驗證條件為”本表單.合同金額\\<5000 || 本表單.合同附件 ISNOTNULL”,出錯警告設置為”合同金額超過5000(含)時須傳合同附件!”文字顏色設置為”紅色”,如下圖:

簽訂合同其他觸發器,如下表:
| 名稱 | 觸發器類型 | 流程步驟 | 觸發方式 | 觸發設置 |
| --- | --- | --- | --- | --- |
| 審核 | 提取 | 主管審核 | 修改觸發 | 數據填充 選擇表單為 簽訂合同;部門主管 的填充方式為 填入值,填充表達式為LOGIN\_UID(選入控件必須用LOGIN\_UID填充);審核意見 的填充方式為 填入值,填充表達式為 “01”(下拉選項的選項為基礎代碼時,要用基礎代碼的代碼填充);審核時間 的填充方式為 填入值,填充表達式為THISDATE |
| 審批 | 提取 | 總監審批 | 修改觸發 | 數據填充 選擇表單為 簽訂合同;運營總監 的填充方式為 填入值,填充表達式為 LOGIN\_UID;審批意見 的填充方式為 填入值,填充表達式為 “01”;審批時間的 填充方式為 填入值,填充表達式為THISDATE |
| 歸檔 | 提取 | 歸檔 | 修改觸發 | 數據填充 選擇表單為 簽訂合同;歸檔員 的填充方式為 填入值,填充表達式為 LOGIN\_UID;歸檔時間 的填充方式為 填入值,填充表達式為THISDATE |
| 驗證應收金額 | 驗證 | 簽訂合同 | 條件觸發 保存觸發 | 驗證條件設置為 本表單.合同金額=本表單.已收款總金額+本表單.未收款總金額,出錯警告設置為 合同金額應等于已收金額加上未收金額!文字顏色為 紅色 |
| 驗證結算金額 | 驗證 | 主管審核 | 條件觸發 保存觸發 | 驗證條件設置為 本表單.合同金額=本表單.已結算金額+本表單.未結算金額,出錯警告設置為 已結算金額加未結算金額應等于合同金額!文字顏色為 紅色 |
至此,簽訂合同表單已經全部設計完成。點擊表單設計器”預覽”操作,可看到簽訂合同實際運行界面,如下圖(部分):

### 設計表單-合同收款
#### 新建表單
表單名稱定義為”合同收款”,所屬分類指定為”數據錄入”,如下圖:

#### 設計表單
設計合同收款表單的基本信息部分,如下圖:

到賬確認部分,如下圖:

費用結算部分,如下圖:

結算明細字段列表,如下圖:

其中結算比率、結算金額設置為只讀,原部門設置為隱藏。
##### 定義控件選項值、默認值以及表單鏈接
選中”合同詳情”鏈接控件,然后點擊”設置關聯條件”,在彈出的設置關聯條件界面里,把關聯表單定義為”簽訂合同”,關聯條件定義為 (本報單,即合同收款)合同編號=(簽訂合同)合同編號,如下圖:

“到賬”下拉選擇控件的選項值類型定義為自定義,值為”已到賬”。
“應結算總金額”的默認值類型定義為表達式,表達式為 SUM(本表單.結算明細.結算金額)。
“已結算總金額”的默認值類型定義為表達式,表達式為 SUM(本表單.結算明細.實際結算)。
#### 流程設置
合同收款流程步驟信息,如下表:
| 步驟名稱 | 經辦人 | 智能選人 | 流轉設置 | 可寫字段 | 條件設置 |
| --- | --- | --- | --- | --- | --- |
| 收款登記 | 所有部門 | | | 合同編號、收款期次、合同詳情、到賬金額、到賬日期、開票日期、登記人、登記日期、匯款憑據、負責人、到款說明 | |
| 到賬確定 | 財務 | | 允許退回之前步驟 | 到賬金額、到賬日期、開票日期、到賬、財務說明、確定人、確定日期 | 轉出條件設置為:到賬=已到賬 |
| 主管結算 | 全體部門 | 按表單字段選擇,已選表單字段設置為負責人 | 允許退回之前步驟 | 結算明細 | |
流程設計結果如下圖:

#### 定義觸發器
1. 定義提取合同下拉選項觸發器 合同收款時只能選擇審核通過且自己簽訂的或者自己審核的合同,別人簽訂且別人審核的合同無權收款,另外已經收款的合同無需再次收款,已做壞賬處理的合同也無需收款。點擊 新建 提取觸發器,觸發器名稱定義為 合同,流程步驟定義為 收款登記,觸發方式指定為 新建觸發 以及 修改觸發,如下圖:

點擊 下一步,進入提取觸發器設置界面,如下圖:

數據范圍設置為:排重。
數據來源指定為:簽訂合同(即簽訂合同表單的基本信息部分)以及簽訂合同.收款進度。因為簽訂合同(基本信息部分)以及簽訂合同.收款進度同屬于同一個表單,因此數據關聯無需定義。
數據過濾定義為:簽訂合同.收款進度.壞賬標識 ISNULL && 簽訂合同.收款進度.已收款標識 ISNULL && 簽訂合同.審核意見=“01” && (簽訂合同.合同代表=LOGIN\_USER || 簽訂合同.負責人=LOGIN\_USER)。
數據填充的選擇表單指定為:合同收款,合同編號填充方式定義為: 構造下拉列表,填充表達式定義為:簽訂合同.合同編號。
數據排序定義為:合同編號 升序。定義結果如下圖:

數據填充定義結果,如下圖:

數據排序定義結果,如下圖:

名詞解釋
數據來源:指觸發器從什么地方獲取數據。一個表單一般由基本信息(即除列表之外的控件信息)和列表組成,基本信息放在一起,每個列表信息各自放在一起,基本信息用”表單名稱”代表,列表用”表單名稱.列表名稱”代表。選擇數據來源時要注意”不多選、不少選”的原則,即用多少選多少,既不要多選,也不要少選,否則觸發的結果有可能不正確,而且還影響性能。在上述觸發器中,由于要判斷合同代表、主管以及審核意見,這些信息都在基本信息中,因此需要選擇”簽訂合同”;同時還要判斷到賬情況、壞賬情況,因此需要選擇”簽訂合同.收款進度”。
數據關聯:指數據來源之間的數據關聯關系。比如有兩個數據來源,簽訂合同以及合同收款,存在這樣的關聯關系:簽訂合同的合同編號=合同收款的合同編號;又比如學生信息表以及成績表,存在的關聯關系是:學生信息表的學號=成績表的學號。數據關聯關系有以下幾種標識:
\=:代表關聯后的數據必須在兩個表中同時存在。
\*=:代表關聯后的數據以左邊的表為主,如果右邊的表數據不存在,則右邊補空。
\=\*:代表關聯后的數據以右邊的表為主,如果左邊的單數據不存在,則左邊補空。
舉例說明:簽訂合同表已有以下數據:
| 合同編號 | 合同名稱 | 合同金額 |
| --- | --- | --- |
| 1 | 購買 | 1萬 |
| 2 | 開發 | 5千 |
| 3 | 集成 | 3萬 |
合同收款表已有以下數據:
| 合同編號 | 收款期次 | 收款金額 |
| --- | --- | --- |
| 1 | 一次性 | 1萬 |
| 2 | 一次性 | 5千 |
| 4 | 第一期 | 1萬 |
那么,簽訂合同.合同編號=合同收款.合同編號,關聯之后的數據為:
| 合同編號(簽訂合同) | 合同名稱 | 合同金額 | 合同編號(合同收款) | 收款期次 | 收款金額 |
| --- | --- | --- | --- | --- | --- |
| 1 | 購買 | 1萬 | 1 | 一次性 | 1萬 |
| 2 | 開發 | 5千 | 2 | 一次性 | 5千 |
簽訂合同.合同編號\*=合同收款.合同編號,關聯之后的數據為:
| 合同編號(簽訂合同) | 合同名稱 | 合同金額 | 合同編號(合同收款) | 收款期次 | 收款金額 |
| --- | --- | --- | --- | --- | --- |
| 1 | 購買 | 1萬 | 1 | 一次性 | 1萬 |
| 2 | 開發 | 5千 | 2 | 一次性 | 5千 |
| 3 | 集成 | 3萬 | | | |
簽訂合同.合同編號=\*合同收款.合同編號,關聯之后的數據為:
| 合同編號(簽訂合同) | 合同名稱 | 合同金額 | 合同編號(合同收款) | 收款期次 | 收款金額 |
| --- | --- | --- | --- | --- | --- |
| 1 | 購買 | 1萬 | 1 | 一次性 | 1萬 |
| 2 | 開發 | 5千 | 2 | 一次性 | 5千 |
| | | | 4 | 第一期 | 1萬 |
例外情況:如果數據來源來自同一個表單,則無需定義數據關聯。
合同收款其他需要定義的觸發器,如下表:
| 名稱 | 觸發器類型 | 流程步驟 | 觸發方式 | 觸發設置 |
| --- | --- | --- | --- | --- |
| 合同期次 | 提取 | 收款登記 | 條件觸發 | 數據范圍:全部 數據來源:簽訂合同、簽訂合同.收款進度 數據關聯:無 數據過濾:本表單.合同編號=簽訂合同.合同編號 && 簽訂合同.收款進度.壞賬標識 ISNULL && 簽訂合同.收款進度.已收款標識 ISNULL 數據填充:選擇表單為 合同收款;收款期次的填充方式指定為 構造下拉列表,填充表達式為 簽訂合同.收款進度.進度款分期 數據排序:無 |
| 登記信息 | 提取 | 收款登記 | 新建觸發 | 數據范圍:默認 數據來源:無 數據關聯:無 數據過濾:無 數據填充:選擇表單為 合同收款;登記人的填充方式指定為 填入值,填充表達式為LOGIN\_UID;登記時間的填充方式指定為 填入值,填充表達式為THISDATE 數據排序:無 |
| 確認信息 | 提取 | 財務確定 | 修改觸發 | 數據范圍:全部(默認) 數據來源:無 數據關聯:無 數據過濾:無 數據填充:選擇表單為 合同收款;確任人的填充方式指定為 填入值,填充表達式為LOGIN\_UID;確任時間的填充方式指定為 填入值,填充表達式為THISDATE 數據排序:無 |
| 結算 | 提取 | 主管結算 | 修改觸發 | 數據范圍:全部(默認) 數據來源:簽訂合同、簽訂合同.收款進度、簽訂合同.進款結算 數據關聯:無 數據過濾:本表單.合同編號=簽訂合同.合同編號 && 本表單.收款期次=簽訂合同.收款進度.進度款分期 數據填充:選擇表單為 合同收款.結算明細;收入部門的填充方式指定為 填入值,填充表達式為 簽訂合同.進款結算.收入部門;結算比率的填充方式指定為 填入值,填充表達式為 簽訂合同.進款結算.結算比率;結算金額的填充方式指定為 填入值,填充表達式為 本表單.應收金額\*簽訂合同.進款結算.結算比率;原部門的填充方式指定為 填入值,填充表達式為 簽訂合同.進款結算.收入部門; 數據排序:無 |
| 回寫收款標志 | 回填 | 收款登記(回寫合同收款標識放在收款登記是為了避免下次收款登記時,仍能選出該收款期次) | 保存觸發 | 回填目標:簽訂合同.收款進度 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.收款期次=簽訂合同.收款進度.進度款分期 回寫條件:無 更新方式:已收款標識 更新表達式定義為 “1” |
| 刪除收款標志 | 回填 | 收款登記 | 刪除觸發 | 回填目標:簽訂合同.收款進度 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.收款期次=簽訂合同.收款進度.進度款分期 回寫條件:無 更新方式:已收款標識 更新表達式定義為 ““ |
| 回寫到款日期 | 回填 | 財務確定 | 保存觸發 | 回填目標:簽訂合同.收款進度 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.收款期次=簽訂合同.收款進度.進度款分期 回寫條件:本表單.到賬=“已到賬” 更新方式:實到金額的更新表達式為 本表單.到賬金額;到賬日期的更新表達式為 本表單.到賬日期;開票日期的更新表達式為 本表單.開票日期 |
| 刪除到款日期 | 回填 | 財務確定 | 刪除觸發 | 回填目標:簽訂合同.收款進度 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.收款期次=簽訂合同.收款進度.進度款分期 回寫條件:本表單.到賬=“已到賬” 更新方式:實到金額的更新表達式為 ““;到賬日期的更新表達式為 ““;開票日期的更新表達式為 ““ |
| 本期已到賬 | 回填 | 財務確定 | 保存觸發 | 回填目標:簽訂合同 查找條件:合同收款.合同編號=簽訂合同.合同編號 回寫條件:本表單.到賬=“已到賬” 更新方式:已收款總金額的更新表達式為 簽訂合同.已收款總金額+本表單.到賬金額;未收款總金額的更新表達式為 簽訂合同.未收款總金額-本表單.到賬金額;本期到賬金額的更新表達式為 本表單.到賬金額;本期到賬日期的更新表達式為 本表單.到賬日期 |
| 刪除本期已到賬 | 回填 | 財務確定 | 刪除觸發 | 回填目標:簽訂合同 查找條件:合同收款.合同編號=簽訂合同.合同編號 回寫條件:本表單.到賬=“已到賬” 更新方式:已收款總金額的更新表達式為 簽訂合同.已收款總金額-本表單.到賬金額;未收款總金額的更新表達式為 簽訂合同.未收款總金額+本表單.到賬金額;本期到賬金額的更新表達式為 ““;本期到賬日期的更新表達式為 ““ |
| 已結算 | 回填 | 主管結算 | 保存觸發 | 回填目標:簽訂合同.進款結算 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.結算明細.原部門=簽訂合同.進款結算.收入部門 回寫條件:空 更新方式:累計已結算的更新表達式為 簽訂合同.進款結算.累計已結算+本表單.結算明細.實際結算;本期結算金額的更新表達式為 本表單.結算明細.實際結算;本期結算日期為 本表單.到賬日期 |
| 刪除已結算 | 回填 | 主管結算 | 刪除觸發 | 回填目標:簽訂合同.進款結算 查找條件:合同收款.合同編號=簽訂合同.合同編號;合同收款.結算明細. 原部門=簽訂合同.進款結算.收入部門 回寫條件:空 更新方式:累計已結算的更新表達式為 簽訂合同.進款結算.累計已結算-本表單.結算明細.實際結算;本期結算金額的更新表達式為 ““;本期結算日期為 ““ |
| 已結算總金額 | 回填 | 主管結算 | 保存觸發 | 回填目標:簽訂合同 查找條件:合同收款.合同編號=簽訂合同.合同編號 回寫條件:無 更新方式:已結算金額的更新表達式為 簽訂合同.已結算金額+本表單.到賬金額;未結算金額的更新表達式為 簽訂合同.未結算金額-本表單.到賬金額 |
| 刪除已結算總金額 | 回填 | 主管結算 | 刪除觸發 | 回填目標:簽訂合同 查找條件:合同收款.合同編號=簽訂合同.合同編號 回寫條件:無 更新方式:已結算金額的更新表達式為 簽訂合同.已結算金額-本表單.到賬金額;未結算金額的更新表達式為 簽訂合同.未結算金額+本表單.到賬金額 |
| 驗證結算金額 | 驗證 | 主管結算 | 條件觸發 保存觸發 | 驗證條件:本表單.實際結算總金額=本表單.到賬金額 出錯警告:結算總金額應等于到賬金額! 文本顏色:紅色 |
現以”回寫到款日期”為列,描述”回填觸發器”定義過程。點擊 新建回填觸發器,觸發器名稱定義為”回寫到款日期”,流程步驟定義為 “財務確認”,觸發方式定義為”保存觸發”,取消勾選”目標不存在時新建”以及”目標值為零時刪除”選項,如下圖:

點擊下一步,然后把回填目標定義為”簽訂合同.收款進度”,如下圖:

點擊”查找條件”,定義查找條件為”合同收款.合同編號=簽訂合同.合同編號 以及 合同收款.收款期次=簽訂合同.收款進度.進度款分期”,如下圖:

點擊”確定”后返回,接著點擊”回寫條件”,定義回寫條件為 本表單.到賬=“已到賬”,如下圖:

點擊 更新方式,定義更新方式為 實到金額 的更新表達式為 本表單.到賬金額;到賬日期的更新表達式為 本表單.到賬日期;開票日期的更新表達式為 本表單.開票日期,如下圖:

點擊 確定 返回,最后點擊 保存 完成回填觸發器定義。
友情提示:回填觸發器一般成對出現,一個用于保存時執行,另一個用于刪除時執行。這兩個觸發器所執行的動作正好相反,即如果保存觸發的動作是增加數量,則刪除觸發的動作則是減少數量;如果保存觸發的動作是設置標志,則刪除觸發的動作則是清除標志。
### 設計數據分析表單-合同匯總
合同匯總可以根據部門、起始時間、結束時間三個參數匯總合同以及收款信息。
#### 繪制表單
合同匯總表單由參數和匯總結果兩部分組成。參數部分包括部門、起始時間和結束時間,部門采用下拉選擇控件,起始時間和結束時間用日期控件,繪制結果如下圖:

匯總結果部分包含一個 明細 列表,明細列表包含合同代表文本控件、客戶名稱文本控件、合同編號文本控件,簽訂日期文本控件、合同金額貨幣文本、到款期次文本控件、到款日期文本控件、到款金額貨幣文本控件、采購金額貨幣文本控件,列表設置為只讀,如下圖:

匯總結果部分還包含合同總金額、到款總金額以及采購總金額,其中到款總金額等于上述明細列表的到款金額之和,但合同總金額、采購總金額卻不等于明細列表的合同金額之和、采購金額之和,原因是指定的查詢時間范圍之內同一個合同可能有多期到款,也就是說在明細列表里同一個合同可能出現多次。基于上述原因我們再定義一個用于輔助計算合同總金額以及采購總金額的合同列表,該列表只包含合同編號、合同金額以及采購金額,并要求確保滿足查詢條件的合同信息只出現一次,由于該列表的目的是為了計算合同總金額和采購總金額,無需顯示在界面上,因此把合同列表控件設置為隱藏,合同列表信息如下圖:

合同總金額等于合同列表的合同金額之和,采購金額等于合同列表的采購金額之和。這里只是計算合同總金額以及采購總金額的一種方法,另一種方法是直接通過定義觸發器直接計算結果,而無需通過合同明細列表進行中轉計算,具體如何定義實現留給讀者自行思考。繪制結果如下圖:

#### 定義控件其他屬性
**部門下拉選擇控件**的選項值類型定義為 關聯提取,設置關聯字段如下圖:

**合同總金額貨幣文本**的默認值類型設置為 表達式,表達式設置為:

**到款總金額貨幣文本**的默認值設置為 表達式,表達式設置為:

**采購總金額貨幣文本**的默認值設置為 表達式,表達式設置為:

#### 定義觸發器
合同匯總需要根據部門、起始時間、結束時間指定的參數范圍,從簽訂合同表單中提取滿足條件的合同到明細列表中,通過定義以下提取觸發器實現:
名稱觸發器類型流程步驟觸發方式觸發設置提取合同以及收款提取所有步驟(默認值)新建觸發條件觸發數據范圍:全部 數據來源:簽訂合同、簽訂合同.收款進度 數據關聯:無 篩選條件:簽訂合同.審核意見=“01” && 簽訂合同.收款進度.壞賬標識 ISNULL && (本表單.部門 ISNULL || 本表單.部門=簽訂合同.部門) && (本表單.起始時間 ISNULL || 本表單.起始時間<=簽訂合同.簽訂日期 ||="" 本表單.起始時間<="簽訂合同.收款進度.到賬日期)" &&="" (本表單.結束時間="" isnull="" 本表單.結束時間="">=簽訂合同.簽訂日期 || 本表單.結束時間>=簽訂合同.收款進度.到賬日期) 數據填充:選擇表單:合同收款;目標字段填充定義如下表:目標字段填充方式提取表達式客戶名稱填入值簽訂合同.甲方合同編號填入值簽訂合同.合同編號簽訂日期填入值簽訂合同.簽訂日期合同金額填入值簽訂合同.合同金額到款期次填入值簽訂合同.收款進度.進度款分期到款日期填入值簽訂合同.收款進度.到賬日期到款金額填入值簽訂合同.收款進度.實收金額采購金額填入值簽訂合同.采購金額合同代表填入值簽訂合同.合同代表數據排序:按 合同代表 升序排列僅提取合同提取所有步驟(默認值)新建觸發 條件觸發數據范圍:排重 數據來源:無 篩選條件:無 數據填充:選擇表單:合同匯總.合同,目標字段填充定義如下:目標字段填充方式提取表達式合同編號填入值本表單.明細.合同編號合同金額填入值本表單.明細.合同金額采購金額填入值本表單.明細.采購金額
觸發器定義完成之后,點擊 預覽,合同匯總運行結果如下圖:

友情提示:
合同匯總屬于報表,僅用于統計分析,綁定菜單時可用如下模塊路徑:/general/appbuilder/web/appcenter/appdata/create?formId=XXX&type=query,其中XXX代表表單ID號,表單ID號可以在表單設計器頁面地址欄中查到。
### 應收款周期分析
合同應收款可按1月以內、1-3月內、3-6月內、6-12月內、1年以上四個應收帳周期進行分析。為了方便應收帳周期的管理和維護,可以另定義一張表單進行管理這些信息。
#### 定義表單-分段信息
定義分段信息表單,并錄入以下應收款周期信息,如下圖:

#### 定義表單-應收款周期分析
設計應收款周期表單,如下圖:

其中,部門為下拉選擇、起始時間和結束時間為日期文本,分析結果為列表,分析結果包含應收款周期單行文本、應收金額貨幣文本兩個子字段,部門選項值類型為關聯提取,設置關聯字段如下圖:

點擊 保存 完成表單設計。
#### 定義觸發器
定義應收款周期分析觸發器,如下表:
名稱觸發器類型流程步驟觸發方式觸發設置應收款周期提取所有步驟新建觸發數據范圍:全部 數據來源:分段信息.應收款周期 篩選條件:無 數據填充:選擇表單:應收款周期分析.分析結果,目標字段填充定義如下:目標字段填充方式提取表達式應收款周期填入值分段信息.應收款周期.分段名稱應收金額提取所有步驟條件觸發數據范圍:全部 數據來源:簽訂合同、簽訂合同.收款進度 篩選條件:簽訂合同.審核意見=“01” && 簽訂合同.收款進度.已收款標識 ISNULL && 簽訂合同.收款進度.壞賬標識 ISNULL && (本表單.部門 ISNULL || 本表單.部門=簽訂合同.部門) && (本表單.起始時間 ISNULL || 本表單.起始時間<=簽訂合同.收款進度.簽訂日期) &&="" (本表單.結束時間="" isnull="" ||="" 本表單.結束時間="">=簽訂合同.簽訂日期) 數據填充:選擇表單:應收款周期分析.分析結果,目標字段填充定義如下:目標字段填充方式提取表達式應收款周期匹配本表單.分析結果.應收款周期應收款金額填入值SUM(CASE IF 本表單.分析結果.應收款周期=“1月以內” && MONTHBETWEEN(THISDATE,簽訂合同.收款進度.應收日期)>=0 && MONTHBETWEEN(THISDATE,簽訂合同.收款進度.應收日期)<1 then="" 簽訂合同.收款進度.應收金額="" if="" 本表單.分析結果.應收款周期="“1-3月內”" &&="" monthbetween(thisdate,簽訂合同.收款進度.應收日期)="">=1 && MONTHBETWEEN(THISDATE,簽訂合同.收款進度.應收日期)<3 then="" 簽訂合同.收款進度.應收金額="" if="" 本表單.分析結果.應收款周期="“3-6月內”" &&="" monthbetween(thisdate,簽訂合同.收款進度.應收日期)="">=3 && MONTHBETWEEN(THISDATE,簽訂合同.收款進度.應收日期)<6 then="" 簽訂合同.收款進度.應收金額="" if="" 本表單.分析結果.應收款周期="“6-12月內”" &&="" monthbetween(thisdate,簽訂合同.收款進度.應收日期)="">=6 && MONTHBETWEEN(THISDATE,簽訂合同.收款進度.應收日期)<12 then="" 簽訂合同.收款進度.應收金額="" if="" 本表單.分析結果.應收款周期="“1年以上”" &&="" monthbetween(thisdate,簽訂合同.收款進度.應收日期)="">=12 THEN 簽訂合同.收款進度.應收金額 else 0 END)
完成上述觸發器設置之后,應收款周期分析定義全部完成。點擊 預覽 可看到應收款周期分析運行結果,如下圖:

名詞解釋
“匹配”:是指在填充的過程中,根據當前記錄中匹配的目標字段的值和與之匹配的表達式做等值數據篩選,然后在篩選出來的記錄基礎上計算其他填充表達式的值,并把值填充到當前記錄相應的目標字段中。”匹配”的填充方式一般用在列表已有數據的基礎上補充填充其他字段的內容。在本例子中,就是在應收款周期分析結果列表的應收款周期字段已經填充的基礎上(第一個觸發器填充了),根據應收款周期補充填充應收款金額。
### 打印模板
應用中心支持通過word模板(即文件后綴名為.dot或.dotx)實現對表單數據的精準打印(套打)。打印模板制作要點如下:
1. 通過word制作打印模板并保存成dot或者dotx格式;
2. 需要輸出數據的地方貼上數據標簽,打印的時候數據標簽將被替換成表單數據。數據標簽由大括號+控件名稱組成,如:{合同編號}、{收款進度.分期}等;
3. 列表數據支持兩種打印形式,一種是固定行打印,數據標簽列表第一條記錄為{收款進度.分期1}、{收款進度.預計收款日期1}、{收款進度.預計收款金額1},第二條記錄為{收款進度.分期2}、{收款進度.預計收款日期2}、{收款進度.預計收款金額2},分別代表打印第一條和第二條記錄數據,其他記錄類推;另一種是動態行打印,即打印之前需要給表格插入足夠多行以打印列表里所有數據,數據標簽用{收款進度.分期}、{收款進度.預計收款日期}、{收款進度.預計收款金額}來標識。
4. 保存word模板時,把 工具 -> 保存選項 -> 信任中心 -> 信任中心設置 ->受保護視圖中”為來自internet的文件啟用受保護的視圖”選項取消勾選,如下圖所示:

動態行打印模板格式設置,如下圖:

固定行打印模板格式設置,如下圖:

Word模板打印支持打印所有數據,包括二維碼、條形碼、圖片、簽章等。
- 個人事務
- 電子郵件
- 消息管理
- 任務管理
- 公告通知
- 新聞
- 投票
- 個人考勤
- 日程安排
- 工作日志
- 通訊簿
- 個人文件柜
- 任務中心
- 流程中心
- 流程中心簡介及菜單構成
- 新建工作
- 我的工作
- 工作查詢
- 工作監控
- 超時統計分析
- 工作委托
- 工作銷毀
- 流程日志查詢
- 數據報表
- 工作流設置
- 流程中心應用實例
- 行政辦公
- 公告通知管理
- 公告通知審批
- 新聞管理
- 投票管理
- 詞語過濾管理
- 信息過濾審核
- 工作計劃
- 辦公用品管理
- 會議管理
- 車輛申請與安排
- 固定資產管理
- 圖書管理
- 資源申請與管理
- 組織機構信息
- 知識管理
- 公共文件柜
- 公共文件柜設置
- 網絡硬盤
- 網絡硬盤設置
- 圖片瀏覽
- 圖片瀏覽設置
- 智能門戶
- 門戶管理
- 我的門戶
- 門戶日志管理
- 門戶內容管理
- 應用中心
- 功能介紹
- 使用說明
- EXCEL表單設計器
- 系統自帶應用介紹
- 函數詳解
- 腳本編寫指南
- 報表中心
- 我的報表
- 報表管理
- 復雜報表
- 分類管理
- 回收站
- 人力資源
- 人事管理
- 招聘管理
- 培訓管理
- 考勤管理
- 績效考核
- 積分管理
- 薪酬管理
- 人力資源設置
- 在線考試
- 檔案管理
- 卷庫管理
- 案卷管理
- 文件管理
- 案卷借閱
- 檔案統計
- 檔案銷毀
- 交流園地
- 企業社區
- 討論區
- 討論區設置
- 企業開放平臺
- 單點登錄平臺
- 統一工作待辦
- 移動開放平臺
- 附件程序
- 實用信息
- 即時通訊
- 系統管理
- 組織機構設置
- 行政辦公設置
- 信息交流設置
- 企業微信釘釘集成
- 印章管理
- 手機簽章管理
- 水印管理
- 功能管理中心
- 定時任務管理
- 緊急通知設置
- 界面設置
- 狀態欄設置
- 菜單設置
- 系統代碼設置
- 自定義字段設置
- 數據庫管理
- 系統日志管理
- 系統資源管理
- 附件管理
- 系統訪問控制
- 系統參數設置
- 系統接口設置
- 服務器監控
- 移動設備綁定管理
- 數據源管理
- 注冊外部應用
- 系統信息
- PC客戶端使用手冊
- 移動客戶端使用手冊