Easyflow.NET 表單送出時,依Grid中的員工編號做為手動塞流程的關卡

由雙檔架構表單的單身(Grid)所儲存的員工編號欄位值,來當作程式手動塞流程的員工編號值(流程參數1的值)。此次的重點在於知道Grid的物件是什麼及如何從Grid物件中取得指定欄位的值。

表單後端程式碼完整範例「TEST2.aspx.cs」
範例程式碼片段:

protected override void BeforeSendNewFormAddFlow(TRFlowRESDB[] xFlowData, ref bool xBlnFlowChanged)
{
	xBlnFlowChanged = false; //不要重新解析流程
	int rows_count = MasterObj.DetailObjs[0].NewRows.Count;//取得grid有幾列資料
	xFlowData = new TRFlowRESDB[rows_count];//宣告流程物件陣列及其大小
	int resdb003=9901,index=0;//迴圈用的變數,流程關號、流程物件索引
	//送出表單時插入自訂流程使用 MasterObj.DetailObjs[0].NewRows 物件
	//DetailObjs[0]代表第一個Grid物件(第一個子單身)
	//NewRows代表尚未存入資料庫的資料
	foreach (DscRow dscRow in MasterObj.DetailObjs[0].NewRows)
	{
		if (!dscRow.IsDeleted)
		{
			xFlowData[index].resdb001 = formID; //表單代號
			xFlowData[index].resdb002 = SheetNo; //表單單號
			xFlowData[index].resdb003 = resdb003.ToString(); //關號
			xFlowData[index].resdb004 = "0010"; //支號
			xFlowData[index].resdb005 = 1; //流程角色
			xFlowData[index].resdb006 = 4; //簽核種類
			xFlowData[index].resdb007 = dscRow["empl1"].Value.ToString(); //流程角色參數1 (Grid物件中取得的員工編號值,中括號中填入"欄位名稱")
			xFlowData[index].resdb008 = ""; //流程角色參數2
			xFlowData[index].resdb009 = ""; //流程角色參數3
			xFlowData[index].resdb010 = ""; //流程角色參數4
			xFlowData[index].resdb011 = 0;  //容許簽核時間
			xFlowData[index].resdb012 = "N"; //自動ByPass?
			xFlowData[index].resdb013 = "0"; //ByPass方式
			xFlowData[index].resdb014 = "Y"; //是否強制簽核?
			xFlowData[index].resdb015 = "Y"; //是否單一簽核
			xFlowData[index].resdb016 = "N"; //可否列印?
			xFlowData[index].resdb017 = "Y"; //可否撤簽?
			xFlowData[index].resdb018 = "Y"; //可否加簽?
			xFlowData[index].resdb019 = "N"; //可否轉會?
			xFlowData[index].resdb020 = "N"; //可否轉寄?
			xFlowData[index].resdb021 = "N"; //可否新增附加檔?
			xFlowData[index].resdb022 = "N"; //可否修改附加檔?
			xFlowData[index].resdb023 = "N"; //可否刪除附加檔?
			xFlowData[index].resdb024 = "Y"; //可否閱讀附加檔?
			xFlowData[index].resdb025 = "N"; //簽核時密碼驗證?
			xFlowData[index].resdb026 = "N"; //流程是否已經解析?
			xFlowData[index].resdb027 = ""; //流程提示訊息
			xFlowData[index].resdb028 = ""; //
			xFlowData[index].resdb029 = ""; //
			resdb003++;
			index++;
		}
	}
	base.BeforeSendNewFormAddFlow(xFlowData, ref xBlnFlowChanged);
}

流程角色及流程角色參數設定參考

範例說明:
新增一個雙檔的表單,其中單頭只有一個 Textbox 輸入框,然後用 Grid 物件建立單身而單身也僅有放一個DSC內建的員工選單。(注意:被加入單身的人員會變成表單流程的關卡)

原始的流程設置,只有一個關卡(直屬主管)。

修改表單後端的程式碼,複寫函式「BeforeSendNewFormAddFlow」。這樣做可以在表單送出前經由程式修改的內容,將所選取的人員做為關卡插入於原始流程關卡之後。「BeforeSendNewFormAddFlow」函式預設是不會出現在後端程式碼的檔案中,我們需要手動將這段函式的程式碼區塊放到表單類別裏。

修改完成之後,重新開啟測試表單。將人員選擇加入單身之中,接著按下表單送出按鈕。此時表單流程顯示就會出現我們剛剛所加入人員的流程關卡。

4 thoughts on “Easyflow.NET 表單送出時,依Grid中的員工編號做為手動塞流程的關卡

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s