1. “員工請假”流程及在線表單開發示例
1.1. 描述
通過本示例達到快速對F2流程管理平台的在線表單速訊上手及零編碼式的開發。實現一個以請假為示例的流程及在線表單,及請假數據的查詢。
1.2. 目標效果
(1) 如何配置一個“請假在線表單”
(2) 如何配置請假流程
(3) 如何查詢我個人的請假歷史數據
(4) 如何讓管理員查詢所有請假的數據
1.3. 如何配置一個“請假在線表單”
1.3.1. 數據庫表定義
點擊在線表單==》數據庫表定義==》新增,如下圖:
點擊編輯字段,如下圖:
點擊編輯字段,新建請假的所有字段
說膽:每個表中必須要有CreatorId和CreatedTime,這兩個字段的意義在於存放創建人ID和數據創建時間,后面將用此字段做過過濾條件來做表的數據查詢管理。申請人ID在表單元素配置時會配置為隱藏域,當請假人提起請假時會自動綁定申請人的用戶ID,通常也會有一個對應的請假人姓名,如上圖所示。當然這兩個字段也不是絕對要的,如果沒有這兩個字段那么需要實現“目標效果”中的第3和第4點需要在菜單地址中增加多兩個參數
參數地址傳入指定的字段來代替這兩個字段,增加sortName參數和creatorId參數,詳細見
后面的說明在“如何時查詢個人的請假歷史數據”中有提到。
點擊生成物理表
到此數據庫表就配置完成了。
1.3.2. 數據對象定義
點擊“新增”,選擇上面定義好的數據庫表
點擊編輯子表可以添加子表,由於請假表沒有子表,所以可忽略。
至此,數據對象字義已完成。
1.3.3. 表單定義
表單定義是很重要的一環節,需要定義字段的控件元素。
新增一個表單定義,選擇你剛才配置的數據對象
點擊編輯元素字段,如下圖:
選擇數據對象中的字段后效果如下圖所示:
編輯每個字段的控件類型,如下圖編輯姓名字段,由於申請人的姓名是不需要用戶自己來輸入的,通過配置默認值來自動填寫:
所在部門也是和姓名同理,通過配置默認值來達到提起流程時自動填寫。
配置請假類別,因為請假類型是一個選項,我們可以從數據庫在配置,通過自定義、數據字典,或Sql來獲取選項。下面是通過自定義選項的配置;
配置申請日期,由於申請日期用的是CreatedTime創建時間,在意義上是相同的,主要是用於后面列表的默認排序字段,通過默認獲取當前時間來設置申請日期。
設置申請人ID,由於申請人ID是不需要被顯示的,同時也是不需要用戶自己來輸入的所以我們配置申請人ID為隱藏域,同時設置默認值為當前登錄者ID,如下圖
提示:我們在實際開發使用過程中經常要用到各個身份的ID作為來維護數據的關系,比如用戶ID,部門ID是最常見的,所以這些ID都通過隱藏域和設置默認值來實現數據自動填寫和存儲到你自定義的數據庫表中。這些值都能通過默認值或高級控件“自定義選擇器”和“自定義選擇對話框”來實現。
1.3.4. 配置表單應用
需要將上面定義的請假在線表單定義應用成一個表單應用供流程引擎調用,如下圖所示:
編輯表單Html模板如下圖,點擊生成表單模板,調整布局格式后如下圖所示:
點擊保存。
致此表單定義完成。
1.4. 如何配置請假流程
配置流程定義請參見流程定義相關幫助,這些不再贅述。
配置表單應用
表單表單權限,表單權限分為讀和寫,可以配置哪些字段在哪個環節或都此人可見可編輯的權限。首先分析請假表業務,所有字段都在開始的時候由提單人填寫,並且申請人姓名和申請時間提單人不能填寫只能由系統默認生成。下面我們來達到這效果的配置。
先通過批量設置,再單獨設置個別的字段,如下圖:
根據業務需求,所有字段只能在提單時填寫,設置如下:
單獨設置:申請人姓名和申請日期,因為這兩個字段提單人也不能修改。通過選擇“空環節”來達到任何環節都不能編輯此字段的效果。
此致表單配置完成
最后發起流程,申請日期是灰色不可編輯,同時已是當前時間,效果如下:
1.5. 如何查詢我個人的請假歷史數據
下面來看看如何查詢我個人請假的歷史表單內的數據,也就是最開始的時候我們定義的請假數據庫表中的數據。效果如下:
那么我們僅需要配置一個系統菜單,菜單的地址規則如下:
/SingleQuery/MySearch/?appId=流程應用ID&tableName=數據庫表名
延展:如果你的數據庫表字段中沒有CreatedId和CreatedTime那么也可以把在地址后面增加sortName參數和creatorId參數,對應的值就是字段名稱,用於指定對應分別代表這兩個字段。如下
/SingleQuery/MySearch/?appId=AB&tableName=cust_qjsqb&sortName=默認排序字段名& creatorId=創建人字段名
請假數據個人查詢的地址是:
/SingleQuery/MySearch/?appId=AB&tableName=cust_qjsqb
通過點擊配置的菜單顯示數據庫列表如下,以下是通過配置好列表表頭的效果,一開始出來的列表將會是所有字段,我們需要配置一些顯示哪一些字段,哪一些字段隱藏,哪一些字段做為查詢條件。
是否Sql輸出:指的是列表展現數據時不查詢此字段,由於大文本字段非常龐大並且字段內容可會有一些是Html或Json的數據,如果查詢出來會導致列表的數據源非常大,不利於展現顯示,強烈性建議把大本的字段去掉Sql輸出的勾選,並且Grid列隱藏打上勾。
如果僅是是Grid列隱藏打勾並不影響Json數據的正常輸出,只是沒有在列表中顯示。依然還是能通過EasyUI的Row能獲取得到Grid列隱藏的數據,如果把Sql輸出去除勾選則EasyUI的row中也不存在此字段的屬性。
凍結列:凍結列的好處在於瀏覽器大小變化時不影響列表的展示和查看,更好的瀏覽效果,通常列表要凍結前四列。
日期字段市里為搜索條件時瀏覽:需要把是否可編輯勾選上,如下圖
日期查詢參數,默認所有查詢方式都是like,對於日期使用like無意義,可修改為大於等於,如下圖
具體參考系統請假示例的配置。
致此配置完成。
1.6. 如何讓管理員查詢所有請假的數據
配置讓管理員查詢到所有人的請假數據庫表數據和上面的配置相同,只是不會過慮當前用戶的數據,將顯示請假表數據庫中的所有數據,區別僅是菜單地址的不同。
本節不需要配置表頭,由於在上一小節中已經配置過了。
菜單地址格式:
/SingleQuery/ListSearch/?appId=應用ID&tableName=數據庫表名
請假如下效果的地址是:/SingleQuery/ListSearch/?appId=AB&tableName=cust_qjsqb