基礎功能
屬性:用來控制表單的基本屬性
保存:保存當前的設計,在設計過程中多執行保存並預覽按鈕。目前的保存具有保存與預覽的功能。
預覽:瀏覽當前的設計。
導出:就是把該表單備份,導出到一個xml文件。
導出ccform模板。導出ccform模板並共享。
全選:選擇全部的元素,一般用於全部刪除,全部平移對象,目前不太成熟。
對齊方式按鈕:
左對齊——在選擇多個同類的控件時,比如:標簽、線、文本框,執行此按鈕會執行左對齊。
居中——在選擇多個同類的控件時,比如:標簽、線、文本框,執行此按鈕會執行居中。
右對齊——在選擇多個同類的控件時,比如:標簽、線、文本框,執行此按鈕會執行左對齊。
頂部對齊——在選擇多個同類的控件時,比如:標簽、線、文本框,執行此按鈕會執行左對齊。
底部對齊——在選擇多個同類的控件時,比如:標簽、線、文本框,執行此按鈕會執行底部對齊。
刪除:刪除選擇元素,如果選擇的元素有多條,就要刪除選擇的元素集合。
增益:如果選擇的是線條:點一次就增加一個像素的寬度;如果選擇的是標簽:點一次就增加一個字體的大小。
減益:如果選擇的是線條:點一次就減小一個像素的寬度;如果選擇的是標簽:點一次就減小一個字體的大小。
調色版:用來改變線條,標簽的顏色。
表單導入
CCForm提供多種方式導入表單模版。從ccBPM網站上導入
在ccBPM官方網站上有一些網友共享的表單模板,通過他們方便的導入進來。
目前該功能還沒有實現。
1.從本機導入
導入存儲在本機上的表單模板,選擇本機的一個表單模版文件,執行確定按鈕。
選擇本機的文件,點確定按鈕,系統提示您,導入會清除當前的設計,導入表單模版文件。
點確定,完成表單導入。
2.從節點表單導入
如果您當前設計的是節點表單,那末這個功能是有效的,該列表中列出了當前節點,選擇一個節點執行確定,就完成了對節點表單的導入。
3. 從表單庫導入
選擇表單庫中現有的表單,然后點確定,就完成從表單庫表單導入.
他類似於把該表單復制一份。
4. 從內外部數據源導入
應用背景:ccform的表單設計是自上而下的設計,就是說現有表單后有數據表,就是說在設計表單時ccform就自動創建了字段,如果該表單的表有了該字段就不創建了。但是很多程序員習慣了先創建表,然后在創建表單,也就是說在設計表單時,系統已經有該表了,要以已經有的表結構做為該表單的模版導入,就需要用到此功能。
解釋:從指定的數據源中,指定的表,導入字段信息。
用途:在新建表單以前,表單已經有一個原型,或者已經有一個表,要以原來的數據表結構為模版,創建表單。比如我們要做一個人員入職流程,在實施以前,人員的基礎信息已經在一個表里了,為了方便快速的,准確的完成表單設計,可以從現有的人員表里把字段信息導入進來。
導入前的准備工作:
如果確認要使用原來的表作為該表單的數據表,那就把該表單的表與該表一致。需要把每個字段的中文描述都要寫清楚,系統就會按照這個描述生成字段說明標簽。
執行導入步驟:點擊下圖中的進入導入數據表字段向導,就進入下一步驟。
選擇數據源:
選擇要導入的數據源
在上圖中可以創建一個數據源從其他數據庫中導入字段, 這里是從本數據庫導入數據表結構。注意:如果字段或者屬性已經
選擇要生成的字段
點擊下一步,進入屬性字段編輯界面,如下圖.
配置字段屬性
如果一個字段是枚舉或者外鍵,可以在該字段上雙擊綁定值文本框,彈出外鍵或者枚舉讓其選擇。
為字段設置外鍵或者枚舉類型
點擊【導入字段,生成表單】按鈕就出現如下字段補充到該表單的最后面。
導入后的字段效果
導入后的字段根據自己的需要進行位置調整,完成導入工作。
表單事件
表單事件分為主表表事件與從表事件,事件是為您提供的業務處理的接口。
事件概述
設計圖如下:
表單事件是在表單裝在前后,保存前后發生的事件,它是編輯業務邏輯的接口。所以掌握表單事件非常有必要。
每個表單事件都有一樣的如下4個屬性:
事件類型:業務邏輯處理的依托載體,你是用存儲過程,還是用sql.來實現你的功能。
執行內容:就是執行的主體,書寫時支持全局變量@WebUser.No,@WebUser.Name 。支持本表單的字段變量@+字段名。
執行成功時:執行成功時提示的信息,信息內容支持變量,同執行內容一樣。
執行失敗時:執行失敗時提示的信息,信息內容支持變量,同執行內容一樣。
執行存儲過程:
請在執行內容里填寫一個存儲過程名稱,注意表達式支持變量。
執行SQL:請在執行內容里填寫SQL,注意表達式支持變量。如果有多條sql ,可以用@GO 分開。
比如:DELETE WF_Emp WHERE 1=2
@GO
DELETE WF_Emp WHERE 2=3
如果要執行存儲過程就要寫: EXEC YourProName @OID @OID 是一個當前的workid 參數。
如下圖:
執行自定義URL.
概要介紹:
用戶在表達自己的業務邏輯時,往往用代碼編寫比較順手,在這樣的應用條件下,你可以編寫一個url 向這個url中傳遞不同的標記,返回不同的結果來,返回空表示順利執行。
實例:在執行內容里設置一個http://myserver/Do.aspx?DoType=aaaaa,創建一個Do.aspx 根據DoType 標記這不同的內容處理。
如果順利處理了就返回空,出現異常一定要返回: Error+”異常信息。”
處理返回值用: this.Response.Write("Error:"+msg); 方法.
Ccform 處理的機制是,使用 HttpWebRequest 類靜默的執行URL ,然后獲取返回的內容。如果檢查到前幾個字符是Error 就認為是異常ccform 就會拋出異常。
系統參數:
您定義的url比如為 /App/DoUrl.aspx?ABC=123 , 系統會在之后增加一些參數,這些參數叫系統參數。實際執行的url為。
http://yourserver/App/DoUrl.aspx?ABC=123&UserNo=xy&SID=xxxxx&FK_Dept=1010&FK_Unit=10&EntityName=ND101&EntityPK=OID&EntityPKVal=12333&FK_Event=xxxxxx
后面多出的參數是系統參數,這些系統參數意義是:
| 參數名 |
中文名 |
用途 |
| UserNo |
當前用戶編號 |
|
| SID |
安全驗證碼 |
根據sid與userno可以進行訪問的安全性校驗,關於什么是SID,請參考其它文章。 |
| FK_Dept |
當前操作人員編號 |
|
| FK_Unit |
操作員單位編號 |
|
| EntityName |
當前實體編號 |
當前實體的名稱 |
| EntityPK |
實體主鍵 |
實體的主鍵,大多是OID |
| EntityPKVal |
主鍵值 |
實體的主鍵值,通過它可以獲得該實體的其它信息。 |
| FK_Event |
事件ID |
根據它可以獲得sys_frmevent這條數據配置的其它信息。 |
注意如下事項:
在url 中不能用session對象,不能訪問webUser.*的全局變量.
注意系統安全,防止非法侵入。
充分的利用系統參數,來獲取其它的信息。
如果在執行內容里配置的url是一個相對路徑比如是”/App/DoUrl.aspx”, 在bs模式下運行ccBPM就會自動拼接它的url . http://yourserverIP/App/DoUrl.aspx 如果是在cs模式下您需要在就需要在web.config中配置 BaseUrl 來告訴ccform執行的絕對路徑。
執行系統URL
為了方便期間ccform定義一個系統的url, 如果選擇這種類型,執行內容里就可以為空。系統在執行的時,就會自動訪問。
http://myserver/ccflow/DataUser/AppCoder/FrmEventHandle.aspx
如果在FrmEventHandle.aspx文件中實現業務邏輯里面的一個詳盡的案例。
主表事件
主表分為如下4種事件 裝載前事件、裝載后事件、保存前事件、保存后事件。您可以根據自己的需要加載相關的事件。
比如:在保存后處理相關的業務邏輯,要保存前做安全檢查。
從表事件
從表具有如下事件:從表保存前,保存后。單條數據保存前,保存后。單條數據刪除前,刪除后。一共三對共計六個。
從表保存前,保存后:參數是主表的字段參數。
單條數據的事件是從表的參數。
更多的功能探索,請訪問在線演示平台:
流程演示環境:http://demo.ccflow.org/
OA演示環境:(用戶名amdin 密碼:pub) http://ccoa.ccflow.org/Main/NewHome/login.aspx
馳騁工作流引擎官方網站:http://www.ccflow.org/
與眾多愛好者共同探索,請加官方QQ群:383352596
指定聯系官方QQ:1146275232

![clip_image002[22] clip_image002[22]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTM5NDAyLTIxMTI5Njg2NTcuanBn.png)
![clip_image004[19] clip_image004[19]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTQxMjc3LTczODgyODcxMy5qcGc=.png)
![clip_image006[15] clip_image006[15]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTQzMDExLTE2NzU2MDEwMDMuanBn.png)
![clip_image008[13] clip_image008[13]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTQ1OTgwLTEwOTY3MjU5NzAuanBn.png)
![clip_image010[13] clip_image010[13]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTQ3ODg2LTExODczMTU1NDUuanBn.png)
![clip_image011[7] clip_image011[7]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTQ5MjE1LTE1ODE1OTk4OTMucG5n.png)
![clip_image013[9] clip_image013[9]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTUwNTExLTExNjk2ODA1NjAuanBn.png)
![clip_image014[5] clip_image014[5]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTUyNDgwLTg4MDk0Njc4NS5wbmc=.png)
![clip_image015[9] clip_image015[9]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTU2Njk5LTExNzAwMDg2ODAucG5n.png)
![clip_image016[5] clip_image016[5]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNTU4NTQzLTEwMzg2OTcxMzIucG5n.png)

![clip_image020[8] clip_image020[8]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNjA0NzYxLTE3ODgyODQzODMuanBn.png)
![clip_image022[7] clip_image022[7]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNjA2NTU4LTE0Mjg1ODIwNy5qcGc=.png)
![clip_image024[5] clip_image024[5]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNjA4MDc0LTY2MDk5NjkxLmpwZw==.png)
![clip_image026[5] clip_image026[5]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvNjI0NTUvMjAxNjA4LzYyNDU1LTIwMTYwODMxMTUzNjEwMjQ2LTE2NzY4NjA4LmpwZw==.png)



