protected void bcoMan_EditButtonOnClick(string[] choiceResult) { if (choiceResult.Length >= 1) { UserUCO userUCO = new UserUCO(); //EBUser eBUser = userUCO.GetEBUser(choiceResult[0]); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(choiceResult[0]); // 人員 txtAPPLICANT.Text = KUser.Name; hidAPPLICANTGUID.Value = KUser.UserGUID; } }
/// <summary> /// 按下選擇帳號 /// </summary> protected void UC_ChoiceList1_EditButtonOnClick(UserSet userSet) { if (userSet.Items.Count <= 0) { return; } //EBUser user = new UserUCO().GetEBUser(Page.User.Identity.Name); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(Page.User.Identity.Name); // 人員 //檢查是否為部門主管 using (SqlDataAdapter sda = new SqlDataAdapter(@" SELECT * FROM TB_EB_EMPL_FUNC WHERE FUNC_ID = 'Superior' AND USER_GUID = @GUID ", ConnectionString)) using (DataSet ds = new DataSet()) { sda.SelectCommand.Parameters.AddWithValue("@GUID", KUser.UserGUID); //大類名稱 try { sda.Fill(ds); if (ds.Tables[0].Rows.Count > 0) //是部門主管 { lblAccount.Text = ""; string[] Account = userSet.Items[0].EBUsers[0].Account.Split('\\'); if (Account.Length > 1) { lblAccount.Text = Account[1]; } else { lblAccount.Text = Account[0]; } for (int i = 1; i < userSet.Items.Count; i++) { lblAccount.Text += ";"; Account = userSet.Items[i].EBUsers[0].Account.Split('\\'); if (Account.Length > 1) { lblAccount.Text += Account[1]; } else { lblAccount.Text += Account[0]; } } } } catch { } } }
protected void Page_Load(object sender, EventArgs e) { ConnectionString = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { DateTime Current = DateTime.Today; this.kdtpSTARTTIME.SelectedDate = new DateTime(Current.Year, Current.Month, 1); this.kdtpENDTIME.SelectedDate = new DateTime(Current.Year, Current.Month, DateTime.DaysInMonth(Current.Year, Current.Month)); //EBUser user = new UserUCO().GetEBUser(Page.User.Identity.Name); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(Page.User.Identity.Name); // 人員 string[] Account = KUser.Account.Split('\\'); if (Account.Length > 1) { lblAccount.Text = Account[1]; } else { lblAccount.Text = Account[0]; } // //檢查是否為部門主管 // using (SqlDataAdapter sda = new SqlDataAdapter(@" // SELECT * // FROM TB_EB_EMPL_FUNC // WHERE FUNC_ID = 'Superior' //AND USER_GUID = @GUID // ", ConnectionString)) // using (DataSet ds = new DataSet()) // { // sda.SelectCommand.Parameters.AddWithValue("@GUID", user.UserGUID); //大類名稱 // try // { // sda.Fill(ds); // if (ds.Tables[0].Rows.Count > 0) //是部門主管 // { // _UC_SearchGroupWithGroup.GroupID = user.GroupID; // _UC_SearchGroupWithGroup.Visible = true; // } // } // catch { } // } using (SqlDataAdapter sda = new SqlDataAdapter(@" IF ((SELECT dbo.FN_EB_CheckUserIsInRole ('DutyManager',@USER_GUID)) = '1') -- 判斷該帳號是否是HR管理者 BEGIN SELECT TOP 1 GROUP_ID -- 取得最上層的部門 FROM TB_EB_GROUP WHERE PARENT_GROUP_ID IS NULL END ELSE BEGIN SELECT * -- 取得擔任部門主管的部門 FROM TB_EB_EMPL_DEP WHERE GROUP_ID IN (SELECT GROUP_ID FROM TB_EB_EMPL_FUNC WHERE FUNC_ID = 'Superior' AND USER_GUID = @USER_GUID) AND USER_GUID = @USER_GUID AND ORDERS = 0 END ", ConnectionString)) using (DataSet ds = new DataSet()) { sda.SelectCommand.Parameters.AddWithValue("@USER_GUID", KUser.UserGUID); try { if (sda.Fill(ds) > 0) { _UC_SearchGroupWithGroup.GroupID = ds.Tables[0].Rows[0]["GROUP_ID"].ToString(); _UC_SearchGroupWithGroup.Visible = true; } } catch (Exception ex) { JGlobalLibs.DebugLog.Log(string.Format(@"WB_KYTI_SCSHR_ADV_LEAVE_REPORT.Page_Load.SELECT.FN_EB_CheckUserIsInRole.ERROR: 「{0}」;ERROR LINE: 「{1}」", ex.Message, ex.StackTrace)); } } } }
/// <summary> /// 顯示時欄位初始值 /// </summary> /// <param name="versionField">欄位集合</param> public override void SetField(Ede.Uof.WKF.Design.VersionField versionField) { FieldOptional fieldOptional = versionField as FieldOptional; if (fieldOptional != null) { #region ==============屬性說明==============『』 //fieldOptional.IsRequiredField『是否為必填欄位,如果是必填(True),如果不是必填(False)』 //fieldOptional.DisplayOnly『是否為純顯示,如果是(True),如果不是(False),一般在觀看表單及列印表單時,屬性為True』 //fieldOptional.HasAuthority『是否有填寫權限,如果有填寫權限(True),如果沒有填寫權限(False)』 //fieldOptional.FieldValue『如果已有人填寫過欄位,則此屬性為記錄其內容』 //fieldOptional.FieldDefault『如果欄位有預設值,則此屬性為記錄其內容』 //fieldOptional.FieldModify『是否允許修改,如果允許(fieldOptional.FieldModify=FieldModifyType.yes),如果不允許(fieldOptional.FieldModify=FieldModifyType.no)』 //fieldOptional.Modifier『如果欄位有被修改過,則Modifier的內容為EBUser,如果沒有被修改過,則會等於Null』 #endregion //#region ==============如果沒有填寫權限時,就要顯示有填寫權限人員的清單,只要把以下註解拿掉即可============== //if (!fieldOptional.HasAuthority『是否有填寫權限) //{ // string strItemName = String.Empty; // Ede.Uof.EIP.Organization.Util.UserSet userSet = ((FieldOptional)versionField).FieldControlData; // for (int i = 0; i < userSet.Items.Count; i++) // { // if (i == userSet.Items.Count - 1) // { // strItemName += userSet.Items[i].Name; // } // else // { // strItemName += userSet.Items[i].Name + "、"; // } // } // lblHasNoAuthority.ToolTip = lblAuthorityMsg.Text + ":" + strItemName; //} //#endregion #region ==============如果有修改,要顯示修改者資訊============== if (fieldOptional.Modifier != null) { lblModifier.Visible = true; lblModifier.ForeColor = System.Drawing.Color.Red; lblModifier.Text = String.Format("( {0}:{1} )", this.lblMsgSigner.Text, fieldOptional.Modifier.Name); } #endregion this.FormFieldMode = fieldOptional.FieldMode; // 記住本次 FieldMode // 初始化kytcontroller kytController = new KYTController(UpdatePanel1); // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { if (!string.IsNullOrEmpty(fieldOptional.FieldValue)) { kytController.FieldValue = fieldOptional.FieldValue; } kytController.SetAllViewType(KYTViewType.ReadOnly); // 設定所有KYT物件唯讀 btnCheck.Visible = false; // 隱藏檢查 ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: hidAPIResult.Value = ""; // 清掉先前的旗標 kytController.SetAllViewType(KYTViewType.Input); // 設定所有KYT物件可輸入 ktxtAPPLICANTDEPT.ReadOnly = true; // 部門唯讀 ktxtAPPLICANTDATE.ReadOnly = true; // 申請日期唯讀 ktxtAPPLICANT.ReadOnly = true; // 申請人唯讀 btnCheck.Visible = true; // 顯示檢查 if (this.FormFieldMode == FieldMode.Applicant) // 剛起單 { //EBUser user = new UserUCO().GetEBUser(this.ApplicantGuid); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(this.ApplicantGuid); // 人員 ktxtAPPLICANTDEPT.Text = KUser.GroupName[0]; // 部門名稱 hidAPPLICANTDEPT.Value = KUser.GroupID[0]; // 部門代碼 hidAPPLICANTDEPT_GROUPCODE.Value = KUser.GroupCode[0]; if (string.IsNullOrEmpty(hidAPPLICANTDEPT_GROUPCODE.Value)) // 如果UOF沒有維護GROUP_CODE,就呼叫WS取得 { List <SCSHR.net.azurewebsites.scsservices_beta.FilterItem> lsItems = new List <SCSHR.net.azurewebsites.scsservices_beta.FilterItem>(); SCSHR.net.azurewebsites.scsservices_beta.FilterItem item = new SCSHR.net.azurewebsites.scsservices_beta.FilterItem(); item.FieldName = "SYS_VIEWID"; item.FilterValue = KUser.Account; lsItems.Add(item); //filters.SetValue(item, 0); Exception ex = null; DataTable dtEmployee = service.BOFind("HUM0020100", "*", lsItems.ToArray(), out ex); if (dtEmployee.Rows.Count > 0) { if (dtEmployee.Columns.Contains("TMP_DEPARTID")) { hidAPPLICANTDEPT_GROUPCODE.Value = dtEmployee.Rows[0]["TMP_DEPARTID"].ToString(); } } } ktxtAPPLICANTDATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); // 申請日期 ktxtAPPLICANT.Text = string.Format(@"{0} ({1})", KUser.Name, KUser.Account); // 申請人姓名 hidAPPLICANT.Value = KUser.UserGUID; // 申請人代碼 hidAPPLICANTAccount.Value = KUser.Account; // 申請人帳號 string[] sAccount = hidAPPLICANTAccount.Value.Split('\\'); hidAPPLICANTAccount.Value = sAccount[sAccount.Length - 1]; hidAPPLICANTGuid.Value = KUser.UserGUID; // 申請人Guid kddlFOPUNCH_REASON.DataSource = getFOPUNCHType(SCSHRConfiguration.SCSSPunchTypeProgID, "SYS_ViewID,SYS_Name,SYS_EngName"); kddlFOPUNCH_REASON.DataValueField = "SYS_VIEWID"; kddlFOPUNCH_REASON.DataTextField = "SYS_NAME"; kddlFOPUNCH_REASON.DataBind(); } // 設定Picker是否能輸入 kdtpFOPUNCH_TIME.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdtpFOPUNCH_TIME_OFF.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; #region 綁定上班補卡狀態 if (!string.IsNullOrEmpty(SCSHRConfiguration.FOPUNCH_TYPE)) { DataTable dtSource = new DataTable(); dtSource.Columns.Add(new DataColumn("VALUE", typeof(string))); dtSource.Columns.Add(new DataColumn("TEXT", typeof(string))); DataRow ndr = dtSource.NewRow(); ndr["TEXT"] = "====請選擇===="; ndr["VALUE"] = ""; dtSource.Rows.Add(ndr); foreach (string _type in SCSHRConfiguration.FOPUNCH_TYPE.Split(",")) { string typeName = ""; switch (_type) { case "2": typeName = "刷卡上班"; break; case "0": typeName = "加班上班(前)"; break; case "4": typeName = "加班上班(後)"; break; } //kddlFOPUNCHTYPE.Items.Add(new ListItem(typeName, _type)); DataRow _ndr = dtSource.NewRow(); _ndr["TEXT"] = typeName; _ndr["VALUE"] = _type; dtSource.Rows.Add(_ndr); } kddlFOPUNCHTYPE.DataSource = dtSource; kddlFOPUNCHTYPE.DataTextField = "TEXT"; kddlFOPUNCHTYPE.DataValueField = "VALUE"; kddlFOPUNCHTYPE.DataBind(); kddlFOPUNCHTYPE.BindDataOnly = true; } #endregion 綁定上班補卡狀態 #region 綁定下班補卡狀態 if (!string.IsNullOrEmpty(SCSHRConfiguration.FOPUNCH_OFF_TYPE)) { DataTable dtSource = new DataTable(); dtSource.Columns.Add(new DataColumn("VALUE", typeof(string))); dtSource.Columns.Add(new DataColumn("TEXT", typeof(string))); DataRow ndr = dtSource.NewRow(); ndr["TEXT"] = "====請選擇===="; ndr["VALUE"] = ""; dtSource.Rows.Add(ndr); foreach (string _type in SCSHRConfiguration.FOPUNCH_OFF_TYPE.Split(",")) { string typeName = ""; switch (_type) { case "3": typeName = "刷卡下班"; break; case "1": typeName = "加班下班(前)"; break; case "5": typeName = "加班下班(後)"; break; } //kddlFOPUNCHTYPE_OFF.Items.Add(new ListItem(typeName, _type)); DataRow _ndr = dtSource.NewRow(); _ndr["TEXT"] = typeName; _ndr["VALUE"] = _type; dtSource.Rows.Add(_ndr); } kddlFOPUNCHTYPE_OFF.DataSource = dtSource; kddlFOPUNCHTYPE_OFF.DataTextField = "TEXT"; kddlFOPUNCHTYPE_OFF.DataValueField = "VALUE"; kddlFOPUNCHTYPE_OFF.DataBind(); kddlFOPUNCHTYPE_OFF.BindDataOnly = true; } #endregion 綁定下班補卡狀態 break; case FieldMode.Design: // 表單設計階段 break; case FieldMode.Signin: // 表單簽核 if (taskObj != null && taskObj.CurrentSite != null && taskObj.CurrentSite.SiteCode == "HR") { kddlFOPUNCHTYPE.ViewType = KYTViewType.Input; // 補上班卡狀態 kddlFOPUNCHTYPE_OFF.ViewType = KYTViewType.Input; // 補下班卡狀態 } break; case FieldMode.Print: // 表單列印 case FieldMode.Verify: // Verify case FieldMode.View: // 表單觀看 //kddlFOPUNCHTYPE_SelectedIndexChanged(kddlFOPUNCHTYPE, null); //kddlFOPUNCHTYPE_OFF_SelectedIndexChanged(kddlFOPUNCHTYPE_OFF, null); break; } ktxtSignResult.ViewType = KYTViewType.ReadOnly; } else // 如果網頁POSTBACK { JGlobalLibs.WebUtils.RequestHiddenFields(UpdatePanel1); // 取回HiddenField的值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: // 設定Picker是否能輸入 kdtpFOPUNCH_TIME.ViewType = KYTViewType.Input; kdtpFOPUNCH_TIME_OFF.ViewType = KYTViewType.Input; kdtpFOPUNCH_TIME.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdtpFOPUNCH_TIME_OFF.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; } } } }
//private Dictionary<string, string> GroupParams = new Dictionary<string, string>(); //private Dictionary<string, string> UserParams = new Dictionary<string, string>(); protected void Page_Load(object sender, EventArgs e) { this.ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; ((Master_DialogMasterPage)this.Master).Button2Text = ""; // Button2不顯示 ((Master_DialogMasterPage)this.Master).Button1Text = ""; // Button1不顯示 string groupID = Request["GROUPID"] != null?HttpUtility.UrlDecode(Request["GROUPID"]) : "Company"; string selectedUsers = Request["selectedUsers"] != null?HttpUtility.UrlDecode(Request["selectedUsers"]) : ""; JArray jArray = null; try { jArray = JArray.Parse(selectedUsers); } catch { } isSingle = Request["isSingle"] != null?HttpUtility.UrlDecode(Request["isSingle"]).ToUpper() == "Y" : false; isGroup = Request["isGroup"] != null?HttpUtility.UrlDecode(Request["isGroup"]).ToUpper() == "Y" : false; string groupConnectionString = this.ConnectionString; string userConnectionString = this.ConnectionString; string groupSql = Request["GroupSql"] != null?HttpUtility.UrlDecode(Request["GroupSql"]) : ""; string userSql = Request["UserSql"] != null?HttpUtility.UrlDecode(Request["UserSql"]) : ""; string searchSql = Request["SearchSql"] != null?HttpUtility.UrlDecode(Request["SearchSql"]) : ""; bool isSearchSelfGroupUsers = Request["isSearchSelfGroupUsers"] != null?HttpUtility.UrlDecode(Request["isSearchSelfGroupUsers"]).ToUpper() == "Y" : false; if (isSearchSelfGroupUsers) { userSql = string.Format(@" SELECT [ACCOUNT], [NAME], [USER_GUID], '' AS 'GROUP_ID' FROM TB_EB_USER WHERE USER_GUID IN (SELECT USER_GUID FROM TB_EB_EMPL_DEP WHERE GROUP_ID = @GROUP_ID) AND IS_SUSPENDED = 0 AND (EXPIRE_DATE IS NULL OR EXPIRE_DATE > GETDATE())" ); } bool isUserOnly = !string.IsNullOrEmpty(userSql); if (string.IsNullOrEmpty(groupSql)) { groupSql = @" DECLARE @TABLE TABLE( GROUP_ID NVARCHAR(50) ) INSERT INTO @TABLE SELECT GROUP_ID FROM TB_EB_GROUP WHERE GROUP_ID = @GROUP_ID WHILE @@ROWCOUNT > 0 BEGIN INSERT INTO @TABLE --找到所有下層部門 SELECT GROUP_ID FROM TB_EB_GROUP WHERE PARENT_GROUP_ID IN(SELECT GROUP_ID FROM @TABLE) AND GROUP_ID NOT IN(SELECT GROUP_ID FROM @TABLE) AND (ACTIVE = 1 OR ACTIVE IS NULL) --表示沒停用 END SELECT * FROM TB_EB_GROUP WHERE GROUP_ID IN (SELECT GROUP_ID FROM @TABLE) "; } if (string.IsNullOrEmpty(userSql)) { userSql = @" SELECT [TB_EB_USER].[USER_GUID], [GROUP_ID], [NAME] + '(' +[TB_EB_USER].[ACCOUNT] + ')' AS 'NAME', [TB_EB_USER].[ACCOUNT] AS 'ACCOUNT' FROM [TB_EB_EMPL_DEP] INNER JOIN [TB_EB_USER] ON TB_EB_EMPL_DEP.GROUP_ID = @GROUP_ID AND TB_EB_EMPL_DEP.USER_GUID = TB_EB_USER.USER_GUID AND (IS_SUSPENDED = 0 OR IS_SUSPENDED IS NULL) AND (EXPIRE_DATE IS NULL OR EXPIRE_DATE > GETDATE()) "; } if (string.IsNullOrEmpty(searchSql)) { searchSql = @" SELECT [TB_EB_USER].[USER_GUID], [GROUP_ID], [NAME] + '(' +[TB_EB_USER].[ACCOUNT] + ')' AS 'NAME', [TB_EB_USER].[ACCOUNT] AS 'ACCOUNT' FROM [TB_EB_EMPL_DEP] INNER JOIN [TB_EB_USER] ON TB_EB_EMPL_DEP.GROUP_ID IN ({0}) AND ([TB_EB_USER].[ACCOUNT] LIKE '%' + @SEARCHTEXT + '%' OR [TB_EB_USER].[NAME] LIKE '%' + @SEARCHTEXT + '%') AND TB_EB_EMPL_DEP.USER_GUID = TB_EB_USER.USER_GUID AND (IS_SUSPENDED = 0 OR IS_SUSPENDED IS NULL) AND (EXPIRE_DATE IS NULL OR EXPIRE_DATE > GETDATE()) "; } this.GroupInfo = this.DataToDictionary(string.Format("{0}^{1}", groupConnectionString, groupSql)); this.UserInfo = this.DataToDictionary(string.Format("{0}^{1}", userConnectionString, userSql)); this.SearchInfo = this.DataToDictionary(string.Format("{0}^{1}", userConnectionString, searchSql)); //string selectUser = Request["SelectUser"] != null ? Request["SelectUser"] : ""; //string selectGroup = Request["SelectGroup"] != null ? Request["SelectGroup"] : ""; //string groupConnectionString = Request["GroupConnectionString"] != null ? Request["GroupConnectionString"] : ""; //string userConnectionString = Request["UserConnectionString"] != null ? Request["UserConnectionString"] : ""; //string groupParams = Request["GroupParams"] != null ? Request["GroupParams"] : ""; //string userParams = Request["UserParams"] != null ? Request["UserParams"] : ""; //if (string.IsNullOrEmpty(groupConnectionString)) groupConnectionString = this.ConnectionString; //if (string.IsNullOrEmpty(userConnectionString)) userConnectionString = this.ConnectionString; //this.GroupParams = this.ParamsToDictionary(groupParams); //this.UserParams = this.ParamsToDictionary(userParams); // 取得資料庫連通字串 //ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; //ConnectionString = ConfigurationManager.ConnectionStrings["SHERATONstring"].ConnectionString; if (this.isGroup) { Right1.Attributes["Class"] = "Right1 SelectGroup"; Right2.Attributes["Class"] = "Right2 hidden"; } else { Right1.Attributes["Class"] = "Right1"; Right2.Attributes["Class"] = "Right2 SelectUser"; btnOpen.Attributes["Class"] = "hidden btnOpen SelectUser"; } if (!Page.IsPostBack) // 首次載入網頁 { gvMain.DataSource = this.GetGroup(groupID); gvMain.DataBind(); gvSelect.DataSource = this.CreategvSelect("gvSelect"); gvSelect.DataBind(); if (jArray != null) { foreach (JObject jObj in jArray) { string str_group = jObj["Group"].ToString(); DataTable dt = (DataTable)ViewState["gvSelect"]; foreach (string str in jObj["Users"]) { DataRow dr = dt.NewRow(); //EBUser user = new UserUCO().GetEBUser(str); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(str); // 人員 dr["GROUP_ID"] = str_group; string[] AccStr = KUser.Account.Split('\\'); dr["ACCOUNT"] = AccStr.Length > 1 ? AccStr[1] : AccStr[0]; dr["GUID"] = str; dr["NAME"] = string.Format("{0}({1})", KUser.Name, KUser.Account); dt.Rows.Add(dr); } ViewState["gvSelect"] = dt; gvSelect.DataSource = dt; gvSelect.DataBind(); } //string[] users = selectUser.Split(','); //string[] groups = selectGroup.Split(','); //if (users.Length == groups.Length) //{ // DataTable dt = (DataTable)ViewState["gvSelect"]; // for (int i = 0; i < users.Length; i++) // { // DataRow dr = dt.NewRow(); // EBUser user = new UserUCO().GetEBUser(users[i]); // dr["GROUP_ID"] = groups[i]; // dr["ACCOUNT"] = user.Account; // dr["GUID"] = users[i]; // dt.Rows.Add(dr); // } // ViewState["gvSelect"] = dt; // gvSelect.DataSource = dt; // gvSelect.DataBind(); //} } if (gvMain.Rows.Count > 0) { chkGROUPID_CheckedChanged(gvMain.Rows[0].FindControl("chkGROUPID"), null); } Right1.Visible = !isUserOnly; } else // 如果是POSTBACK { } }
/// <summary> /// 顯示時欄位初始值 /// </summary> /// <param name="versionField">欄位集合</param> public override void SetField(Ede.Uof.WKF.Design.VersionField versionField) { FieldOptional fieldOptional = versionField as FieldOptional; if (fieldOptional != null) { #region ==============屬性說明==============『』 //fieldOptional.IsRequiredField『是否為必填欄位,如果是必填(True),如果不是必填(False)』 //fieldOptional.DisplayOnly『是否為純顯示,如果是(True),如果不是(False),一般在觀看表單及列印表單時,屬性為True』 //fieldOptional.HasAuthority『是否有填寫權限,如果有填寫權限(True),如果沒有填寫權限(False)』 //fieldOptional.FieldValue『如果已有人填寫過欄位,則此屬性為記錄其內容』 //fieldOptional.FieldDefault『如果欄位有預設值,則此屬性為記錄其內容』 //fieldOptional.FieldModify『是否允許修改,如果允許(fieldOptional.FieldModify=FieldModifyType.yes),如果不允許(fieldOptional.FieldModify=FieldModifyType.no)』 //fieldOptional.Modifier『如果欄位有被修改過,則Modifier的內容為EBUser,如果沒有被修改過,則會等於Null』 #endregion //#region ==============如果沒有填寫權限時,就要顯示有填寫權限人員的清單,只要把以下註解拿掉即可============== //if (!fieldOptional.HasAuthority『是否有填寫權限) //{ // string strItemName = String.Empty; // Ede.Uof.EIP.Organization.Util.UserSet userSet = ((FieldOptional)versionField).FieldControlData; // for (int i = 0; i < userSet.Items.Count; i++) // { // if (i == userSet.Items.Count - 1) // { // strItemName += userSet.Items[i].Name; // } // else // { // strItemName += userSet.Items[i].Name + "、"; // } // } // lblHasNoAuthority.ToolTip = lblAuthorityMsg.Text + ":" + strItemName; //} //#endregion #region ==============如果有修改,要顯示修改者資訊============== if (fieldOptional.Modifier != null) { lblModifier.Visible = true; lblModifier.ForeColor = System.Drawing.Color.Red; lblModifier.Text = String.Format("( {0}:{1} )", this.lblMsgSigner.Text, fieldOptional.Modifier.Name); } #endregion this.FormFieldMode = fieldOptional.FieldMode; // 記住本次 FieldMode // 初始化kytcontroller kytController = new KYTController(UpdatePanel1); // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { if (!string.IsNullOrEmpty(fieldOptional.FieldValue)) { kytController.FieldValue = fieldOptional.FieldValue; } kytController.SetAllViewType(KYTViewType.ReadOnly); // 設定所有KYT物件唯讀 ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值 btnDEPARTID.Visible = false; // 帳部部門 btnPROFITID.Visible = false; // 利潤中心 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: kytController.SetAllViewType(KYTViewType.Input); // 設定所有KYT物件可輸入 ktxtMessage.ViewType = KYTViewType.ReadOnly; ktxtAPPLICANTDATE.ReadOnly = true; // 申請日期唯讀 ktxtAPPLICANTDEPT.ReadOnly = true; // 部門唯讀 ktxtEMPLOYEE.ReadOnly = true; // 異動人員唯讀 btnDEPARTID.Visible = true; // 帳部部門 btnPROFITID.Visible = true; // 利潤中心 if (this.FormFieldMode == FieldMode.Applicant) { //EBUser user = new UserUCO().GetEBUser(this.ApplicantGuid); // 取得起單人資料 KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(this.ApplicantGuid); // 人員 ktxtAPPLICANTDATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); // 設定申請日期 ktxtEMPLOYEE.Text = string.Format(@"{0} ({1})", KUser.Name, KUser.Account); // 設定異動人員名稱 hidEMPLOYEEGuid.Value = KUser.UserGUID; // 設定異動人員代號 ktxtAPPLICANTDEPT.Text = KUser.GroupName[0]; // 設定異動人員部門名稱 hidAPPLICANTDEPT.Value = KUser.GroupID[0]; // 設定異動人員部門代號(UOF) hidEMPLOYEETitleId.Value = KUser.Title_ID[0]; // 設定異動人員職稱代號 hidEMPLOYEETitleName.Value = KUser.Title_Name[0]; // 設定異動人員職稱 hidEMPLOYEEAccount.Value = KUser.Account; // 設定異動人員帳號 string[] sAccount = hidEMPLOYEEAccount.Value.Split('\\'); hidEMPLOYEEAccount.Value = sAccount[sAccount.Length - 1]; hidGROUPCODE.Value = KUser.GroupCode[0]; // 設定異動人員部門代號 #region 職務異動原因 DataTable dtEMPCHANGESource = getEMPCHANGEType(SCSHRConfiguration.SCSSReasonProdID, "SYS_ViewID,SYS_Name,FLAG"); // 新增請選擇選項 DataRow ndr = dtEMPCHANGESource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtEMPCHANGESource.Rows.InsertAt(ndr, 0); kddlREASONID.DataSource = dtEMPCHANGESource; kddlREASONID.DataTextField = "SYS_NAME"; kddlREASONID.DataValueField = "SYS_VIEWID"; kddlREASONID.DataBind(); #endregion 職務異動原因 #region 異動前職務資訊 using (SqlDataAdapter sda = new SqlDataAdapter(@" -- 查詢申請者個人資訊 SELECT COMPANY_NO, OPTION2, OPTION3, OPTION4 FROM TB_EB_USER WHERE USER_GUID = @USER_GUID -- 查詢申請者職稱 SELECT TITLE_NAME, TITLE_ID FROM TB_EB_JOB_TITLE WHERE TITLE_ID =(SELECT TOP 1 TITLE_ID FROM TB_EB_EMPL_DEP WHERE USER_GUID = @USER_GUID AND GROUP_ID = @GROUP_ID) -- 查詢申請者HR資訊 SELECT BU FROM TB_EB_EMPL_HR WHERE USER_GUID = @USER_GUID ", ConnectionString)) using (DataSet ds = new DataSet()) { sda.SelectCommand.Parameters.AddWithValue("@USER_GUID", hidEMPLOYEEGuid.Value); sda.SelectCommand.Parameters.AddWithValue("@GROUP_ID", hidAPPLICANTDEPT.Value); try { sda.Fill(ds); if (ds.Tables[0].Rows.Count > 0 && ds.Tables[1].Rows.Count > 0) { DataRow drUser = ds.Tables[0].Rows[0]; DataRow drTitle = ds.Tables[1].Rows[0]; DataRow drEmplHr = ds.Tables[2].Rows[0]; hidOCOMPANYID.Value = drUser["COMPANY_NO"].ToString(); // 申報公司 ktxtOCOMPANYNAME.Text = hidOCOMPANYID.Value; // 申報公司 ktxtODEPARTNAME.Text = KUser.GroupName[0]; // 帳部部門 hidODEPARTID.Value = hidAPPLICANTDEPT.Value; // 帳部部門 //ktxtOPROFITNAME.Text = user.GroupName; // 利潤中心 ktxtOPROFITNAME.Text = drEmplHr["BU"].ToString(); // 利潤中心 hidOPROFITID.Value = drEmplHr["BU"].ToString(); // 利潤中心 ktxtODUTYNAME.Text = drTitle["TITLE_NAME"].ToString(); // 職稱 hidODUTYID.Value = drTitle["TITLE_ID"].ToString(); // 職稱 ktxtOINSURANCESTATUS.Text = drUser["OPTION2"].ToString(); // 投保身份 ktxtONotCutHIdentity.Text = drUser["OPTION3"].ToString(); // 免扣繳對象 ktxtOIDYCLASSID.Text = drUser["OPTION4"].ToString(); // 參考代碼 } } catch (Exception e) { DebugLog.Log(DebugLog.LogLevel.Error, string.Format(@"UC_KYTI_SCSHR_EMPCHANGE.異動前職務資訊.SELECT.ERROR:{0}", e.Message)); } } #endregion 異動前職務資訊 #region 異動後職務資訊 #region 申報公司 DataTable dtCompanyIDSource = getModifyType(SCSHRConfiguration.SCSSCompanyIDProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 ndr = dtCompanyIDSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtCompanyIDSource.Rows.InsertAt(ndr, 0); kddlCOMPANYID.DataSource = dtCompanyIDSource; kddlCOMPANYID.DataTextField = "SYS_NAME"; kddlCOMPANYID.DataValueField = "SYS_VIEWID"; kddlCOMPANYID.DataBind(); kddlCOMPANYID.SelectedValue = hidOCOMPANYID.Value; #endregion 申報公司 ktxtDEPARTNAME.Text = ktxtODEPARTNAME.Text; // 帳部部門 hidDEPARTID.Value = hidODEPARTID.Value; // 帳部部門 hidPROFITID.Value = hidOPROFITID.Value; // 利潤中心 kddlPROFITNAME.SelectedValue = hidOPROFITID.Value; // 利潤中心 if (!string.IsNullOrEmpty(kddlPROFITNAME.SelectedValue)) { ktxtOPROFITNAME.Text = kddlPROFITNAME.SelectedItem.Text; // 如果找的到利潤中心的名稱就改用名稱 } ktxtPROFITNAME.Text = ktxtOPROFITNAME.Text; // 利潤中心 #region 職稱 DataTable dtTitleSource = getModifyType(SCSHRConfiguration.SCSSTitleProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 ndr = dtTitleSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtTitleSource.Rows.InsertAt(ndr, 0); kddlDUTYID.DataSource = dtTitleSource; kddlDUTYID.DataTextField = "SYS_NAME"; kddlDUTYID.DataValueField = "SYS_VIEWID"; kddlDUTYID.DataBind(); kddlDUTYID.SelectedValue = hidODUTYID.Value; #endregion 職稱 kddlINSURANCESTATUS.SelectedValue = ktxtOINSURANCESTATUS.Text; // 投保身份 kddlNotCutHIdentity.SelectedValue = ktxtONotCutHIdentity.Text; // 免扣繳對象 #region 參考代碼 DataTable dtIDYClassSource = getModifyType(SCSHRConfiguration.SCSSIDYClassIDProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 ndr = dtIDYClassSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtIDYClassSource.Rows.InsertAt(ndr, 0); kddlIDYCLASSID.DataSource = dtIDYClassSource; kddlIDYCLASSID.DataTextField = "SYS_NAME"; kddlIDYCLASSID.DataValueField = "SYS_VIEWID"; kddlIDYCLASSID.DataBind(); kddlIDYCLASSID.SelectedValue = ktxtOIDYCLASSID.Text; #endregion 參考代碼 #endregion 異動後職務資訊 //取得利潤中心 kddlPROFITNAME.DataSource = getPROFITID(SCSHRConfiguration.SCSSPROFITID, "SYS_ViewID,SYS_Name"); kddlPROFITNAME.DataValueField = "SYS_VIEWID"; kddlPROFITNAME.DataTextField = "SYS_NAME"; kddlPROFITNAME.DataBind(); } // 設定Picker是否能輸入 kdpSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpENDDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; case FieldMode.Design: // 表單設計階段 break; case FieldMode.Print: // 表單列印 break; case FieldMode.Signin: // 表單簽核 break; case FieldMode.Verify: // Verify break; case FieldMode.View: // 表單觀看 break; } } else // 如果網頁POSTBACK { JGlobalLibs.WebUtils.RequestHiddenFields(UpdatePanel1); // 取回HiddenField的值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: // 設定Picker是否能輸入 kdpSTARTDATE.ViewType = KYTViewType.Input; kdpENDDATE.ViewType = KYTViewType.Input; kdpSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpENDDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; } } } }
/// <summary> /// 顯示時欄位初始值 /// </summary> /// <param name="versionField">欄位集合</param> public override void SetField(Ede.Uof.WKF.Design.VersionField versionField) { FieldOptional fieldOptional = versionField as FieldOptional; if (fieldOptional != null) { #region ==============屬性說明==============『』 //fieldOptional.IsRequiredField『是否為必填欄位,如果是必填(True),如果不是必填(False)』 //fieldOptional.DisplayOnly『是否為純顯示,如果是(True),如果不是(False),一般在觀看表單及列印表單時,屬性為True』 //fieldOptional.HasAuthority『是否有填寫權限,如果有填寫權限(True),如果沒有填寫權限(False)』 //fieldOptional.FieldValue『如果已有人填寫過欄位,則此屬性為記錄其內容』 //fieldOptional.FieldDefault『如果欄位有預設值,則此屬性為記錄其內容』 //fieldOptional.FieldModify『是否允許修改,如果允許(fieldOptional.FieldModify=FieldModifyType.yes),如果不允許(fieldOptional.FieldModify=FieldModifyType.no)』 //fieldOptional.Modifier『如果欄位有被修改過,則Modifier的內容為EBUser,如果沒有被修改過,則會等於Null』 #endregion //#region ==============如果沒有填寫權限時,就要顯示有填寫權限人員的清單,只要把以下註解拿掉即可============== //if (!fieldOptional.HasAuthority『是否有填寫權限) //{ // string strItemName = String.Empty; // Ede.Uof.EIP.Organization.Util.UserSet userSet = ((FieldOptional)versionField).FieldControlData; // for (int i = 0; i < userSet.Items.Count; i++) // { // if (i == userSet.Items.Count - 1) // { // strItemName += userSet.Items[i].Name; // } // else // { // strItemName += userSet.Items[i].Name + "、"; // } // } // lblHasNoAuthority.ToolTip = lblAuthorityMsg.Text + ":" + strItemName; //} //#endregion #region ==============如果有修改,要顯示修改者資訊============== if (fieldOptional.Modifier != null) { lblModifier.Visible = true; lblModifier.ForeColor = System.Drawing.Color.Red; lblModifier.Text = String.Format("( {0}:{1} )", this.lblMsgSigner.Text, fieldOptional.Modifier.Name); } #endregion this.FormFieldMode = fieldOptional.FieldMode; // 記住本次 FieldMode // 初始化kytcontroller kytController = new KYTController(UpdatePanel1); // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { if (!string.IsNullOrEmpty(fieldOptional.FieldValue)) { kytController.FieldValue = fieldOptional.FieldValue; } kytController.SetAllViewType(KYTViewType.ReadOnly); // 設定所有KYT物件唯讀 ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: kytController.SetAllViewType(KYTViewType.Input); // 設定所有KYT物件可輸入 ktxtMessage.ViewType = KYTViewType.ReadOnly; ktxtAPPLICANTDATE.ReadOnly = true; // 申請日期唯讀 ktxtAPPLICANTDEPT.ReadOnly = true; // 部門唯讀 ktxtEMPLOYEE.ReadOnly = true; // 異動人員唯讀 if (this.FormFieldMode == FieldMode.Applicant) { //EBUser user = new UserUCO().GetEBUser(this.ApplicantGuid); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(this.ApplicantGuid); // 人員 ktxtAPPLICANTDATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); // 設定申請日期 ktxtEMPLOYEE.Text = string.Format(@"{0} ({1})", KUser.Name, KUser.Account); // 設定異動人員名稱 hidEMPLOYEEGuid.Value = KUser.UserGUID; // 設定異動人員代號 ktxtAPPLICANTDEPT.Text = KUser.GroupName[0]; // 設定異動人員部門名稱 hidAPPLICANTDEPT.Value = KUser.GroupID[0]; // 設定異動人員部門代號(UOF) hidEMPLOYEETitleId.Value = KUser.Title_ID[0]; // 設定異動人員職稱代號 hidEMPLOYEETitleName.Value = KUser.Title_Name[0]; // 設定異動人員職稱 hidEMPLOYEEAccount.Value = KUser.Account; // 設定異動人員帳號 string[] sAccount = hidEMPLOYEEAccount.Value.Split('\\'); hidEMPLOYEEAccount.Value = sAccount[sAccount.Length - 1]; hidGROUPCODE.Value = KUser.GroupCode[0]; // 設定異動人員部門代號 #region 申報公司 DataTable dtCompanyIDSource = getModifyType(SCSHRConfiguration.SCSSCompanyIDProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 DataRow ndr = dtCompanyIDSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtCompanyIDSource.Rows.InsertAt(ndr, 0); kddlCOMPANYID.DataSource = dtCompanyIDSource; kddlCOMPANYID.DataTextField = "SYS_NAME"; kddlCOMPANYID.DataValueField = "SYS_VIEWID"; kddlCOMPANYID.DataBind(); #endregion 申報公司 kdpSTARTDATE.Text = ktxtAPPLICANTDATE.Text; // 到職日期,預設為今日 kdpTRIALDATE.Text = ktxtAPPLICANTDATE.Text; // 試用/約聘期滿日,預設為今日 kdpSSTARTDATE.Text = ktxtAPPLICANTDATE.Text; // (特休)年資起始日,預設為今日 kdpGARRIVEDATE.Text = ktxtAPPLICANTDATE.Text; // 到集團日,預設為今日 #region 職稱 DataTable dtTitleSource = getModifyType(SCSHRConfiguration.SCSSTitleProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 ndr = dtTitleSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtTitleSource.Rows.InsertAt(ndr, 0); kddlDUTYID.DataSource = dtTitleSource; kddlDUTYID.DataTextField = "SYS_NAME"; kddlDUTYID.DataValueField = "SYS_VIEWID"; kddlDUTYID.DataBind(); #endregion 職稱 #region 參考代碼 DataTable dtIDYClassSource = getModifyType(SCSHRConfiguration.SCSSIDYClassIDProdID, "SYS_ViewID,SYS_Name"); // 新增請選擇選項 ndr = dtIDYClassSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtIDYClassSource.Rows.InsertAt(ndr, 0); kddlIDYCLASSID.DataSource = dtIDYClassSource; kddlIDYCLASSID.DataTextField = "SYS_NAME"; kddlIDYCLASSID.DataValueField = "SYS_VIEWID"; kddlIDYCLASSID.DataBind(); #endregion 參考代碼 //取得利潤中心 kddlPROFITNAME.DataSource = getPROFITID(SCSHRConfiguration.SCSSPROFITID, "SYS_ViewID,SYS_Name"); kddlPROFITNAME.DataValueField = "SYS_VIEWID"; kddlPROFITNAME.DataTextField = "SYS_NAME"; kddlPROFITNAME.DataBind(); } // 設定Picker是否能輸入 kdpSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpTRIALDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpSSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpGARRIVEDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; case FieldMode.Design: // 表單設計階段 break; case FieldMode.Print: // 表單列印 break; case FieldMode.Signin: // 表單簽核 break; case FieldMode.Verify: // Verify break; case FieldMode.View: // 表單觀看 break; } } else // 如果網頁POSTBACK { JGlobalLibs.WebUtils.RequestHiddenFields(UpdatePanel1); // 取回HiddenField的值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: // 設定Picker是否能輸入 kdpSTARTDATE.ViewType = KYTViewType.Input; kdpTRIALDATE.ViewType = KYTViewType.Input; kdpSSTARTDATE.ViewType = KYTViewType.Input; kdpGARRIVEDATE.ViewType = KYTViewType.Input; kdpSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpTRIALDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpSSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpGARRIVEDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; } } } }
/// <summary> /// 顯示時欄位初始值 /// </summary> /// <param name="versionField">欄位集合</param> public override void SetField(Ede.Uof.WKF.Design.VersionField versionField) { FieldOptional fieldOptional = versionField as FieldOptional; if (fieldOptional != null) { #region ==============屬性說明==============『』 //fieldOptional.IsRequiredField『是否為必填欄位,如果是必填(True),如果不是必填(False)』 //fieldOptional.DisplayOnly『是否為純顯示,如果是(True),如果不是(False),一般在觀看表單及列印表單時,屬性為True』 //fieldOptional.HasAuthority『是否有填寫權限,如果有填寫權限(True),如果沒有填寫權限(False)』 //fieldOptional.FieldValue『如果已有人填寫過欄位,則此屬性為記錄其內容』 //fieldOptional.FieldDefault『如果欄位有預設值,則此屬性為記錄其內容』 //fieldOptional.FieldModify『是否允許修改,如果允許(fieldOptional.FieldModify=FieldModifyType.yes),如果不允許(fieldOptional.FieldModify=FieldModifyType.no)』 //fieldOptional.Modifier『如果欄位有被修改過,則Modifier的內容為EBUser,如果沒有被修改過,則會等於Null』 #endregion //#region ==============如果沒有填寫權限時,就要顯示有填寫權限人員的清單,只要把以下註解拿掉即可============== //if (!fieldOptional.HasAuthority『是否有填寫權限) //{ // string strItemName = String.Empty; // Ede.Uof.EIP.Organization.Util.UserSet userSet = ((FieldOptional)versionField).FieldControlData; // for (int i = 0; i < userSet.Items.Count; i++) // { // if (i == userSet.Items.Count - 1) // { // strItemName += userSet.Items[i].Name; // } // else // { // strItemName += userSet.Items[i].Name + "、"; // } // } // lblHasNoAuthority.ToolTip = lblAuthorityMsg.Text + ":" + strItemName; //} //#endregion #region ==============如果有修改,要顯示修改者資訊============== if (fieldOptional.Modifier != null) { lblModifier.Visible = true; lblModifier.ForeColor = System.Drawing.Color.Red; lblModifier.Text = String.Format("( {0}:{1} )", this.lblMsgSigner.Text, fieldOptional.Modifier.Name); } #endregion this.FormFieldMode = fieldOptional.FieldMode; // 記住本次 FieldMode // 初始化kytcontroller kytController = new KYTController(UpdatePanel1); // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { if (!string.IsNullOrEmpty(fieldOptional.FieldValue)) { kytController.FieldValue = fieldOptional.FieldValue; } kytController.SetAllViewType(KYTViewType.ReadOnly); // 設定所有KYT物件唯讀 ktxtNOTE.ViewType = KYTViewType.Input; ktxtNOTE.ReadOnly = true; btnRead.Visible = false; // 隱藏讀取 ibtnDOC_NBR.Visible = false; ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: hidAPIResult.Value = ""; // 清掉先前的旗標 btnRead.Visible = true; // 顯示讀取 ibtnDOC_NBR.Visible = true; kddlOT_DOC_NBR.ViewType = KYTViewType.Input; // 加班單單號可輸入 ktxtCANCEL_REASON.ViewType = KYTViewType.Input; // 銷班原因可輸入 if (this.FormFieldMode == FieldMode.Applicant) // 如果是剛起單 { //EBUser user = new UserUCO().GetEBUser(this.ApplicantGuid); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(this.ApplicantGuid); // 人員 hidApplicantGUID.Value = this.ApplicantGuid; hidApplicantName.Value = KUser.Name; DataTable dtSource = getOVERTIMEType(SCSHRConfiguration.SCSSOverTimeTypeProgID, "SYS_ViewID,SYS_Name,SYS_EngName"); kddlREMARK.DataSource = dtSource; kddlREMARK.DataValueField = "SYS_VIEWID"; kddlREMARK.DataTextField = "SYS_NAME"; kddlREMARK.DataBind(); } hidAPPLICANTDATE.Value = DateTime.Now.ToString("yyyy/MM/dd"); // 申請日期 //kddlOT_DOC_NBR.DataSource = getOverTimeData(hidApplicantGUID.Value); //kddlOT_DOC_NBR.DataTextField = "SHOW"; //kddlOT_DOC_NBR.DataValueField = "DOC_NBR"; //kddlOT_DOC_NBR.DataBind(); kddlOT_DOC_NBR.Visible = false; ktxtDOC_NBR_Ori.ViewType = KYTViewType.Input; ktxtDOC_NBR_Ori.ReadOnly = true; Dialog.Open2(ibtnDOC_NBR, string.Format(@"~/CDS/SCSHR/WKFFields/QUERYWINDOWS/Search_OT_And_LEA_Form.aspx"), "查詢加班單號", 850, 600, Dialog.PostBackType.AfterReturn, new { FROM_TYPE = "OVER_TIME", USER_GUID = hidApplicantGUID.Value }.ToExpando()); btnRead_Click(btnRead, null); break; case FieldMode.Design: // 表單設計階段 break; case FieldMode.Print: // 表單列印 break; case FieldMode.Signin: // 表單簽核 break; case FieldMode.Verify: // Verify break; case FieldMode.View: // 表單觀看 break; } } else // 如果網頁POSTBACK { JGlobalLibs.WebUtils.RequestHiddenFields(UpdatePanel1); // 取回HiddenField的值 } } }
/// <summary> /// 顯示時欄位初始值 /// </summary> /// <param name="versionField">欄位集合</param> public override void SetField(Ede.Uof.WKF.Design.VersionField versionField) { FieldOptional fieldOptional = versionField as FieldOptional; if (fieldOptional != null) { #region ==============屬性說明==============『』 //fieldOptional.IsRequiredField『是否為必填欄位,如果是必填(True),如果不是必填(False)』 //fieldOptional.DisplayOnly『是否為純顯示,如果是(True),如果不是(False),一般在觀看表單及列印表單時,屬性為True』 //fieldOptional.HasAuthority『是否有填寫權限,如果有填寫權限(True),如果沒有填寫權限(False)』 //fieldOptional.FieldValue『如果已有人填寫過欄位,則此屬性為記錄其內容』 //fieldOptional.FieldDefault『如果欄位有預設值,則此屬性為記錄其內容』 //fieldOptional.FieldModify『是否允許修改,如果允許(fieldOptional.FieldModify=FieldModifyType.yes),如果不允許(fieldOptional.FieldModify=FieldModifyType.no)』 //fieldOptional.Modifier『如果欄位有被修改過,則Modifier的內容為EBUser,如果沒有被修改過,則會等於Null』 #endregion //#region ==============如果沒有填寫權限時,就要顯示有填寫權限人員的清單,只要把以下註解拿掉即可============== //if (!fieldOptional.HasAuthority『是否有填寫權限) //{ // string strItemName = String.Empty; // Ede.Uof.EIP.Organization.Util.UserSet userSet = ((FieldOptional)versionField).FieldControlData; // for (int i = 0; i < userSet.Items.Count; i++) // { // if (i == userSet.Items.Count - 1) // { // strItemName += userSet.Items[i].Name; // } // else // { // strItemName += userSet.Items[i].Name + "、"; // } // } // lblHasNoAuthority.ToolTip = lblAuthorityMsg.Text + ":" + strItemName; //} //#endregion #region ==============如果有修改,要顯示修改者資訊============== if (fieldOptional.Modifier != null) { lblModifier.Visible = true; lblModifier.ForeColor = System.Drawing.Color.Red; lblModifier.Text = String.Format("( {0}:{1} )", this.lblMsgSigner.Text, fieldOptional.Modifier.Name); } #endregion this.FormFieldMode = fieldOptional.FieldMode; // 記住本次 FieldMode // 初始化kytcontroller kytController = new KYTController(UpdatePanel1); // 取得資料庫連通字串 ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { if (!string.IsNullOrEmpty(fieldOptional.FieldValue)) { kytController.FieldValue = fieldOptional.FieldValue; } kytController.SetAllViewType(KYTViewType.ReadOnly); // 設定所有KYT物件唯讀 ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: kytController.SetAllViewType(KYTViewType.Input); // 設定所有KYT物件可輸入 ktxtMessage.ViewType = KYTViewType.ReadOnly; ktxtAPPLICANTDATE.ReadOnly = true; // 申請日期唯讀 ktxtAPPLICANTDEPT.ReadOnly = true; // 部門唯讀 ktxtRESIGNEMP.ReadOnly = true; // 離職人員唯讀 kdpESTIMATEBDATE.ViewType = KYTViewType.Input; // 預計復職日 kdpLSPAYDATE.ViewType = KYTViewType.ReadOnly; // 最後計薪日 kdpPSTARTDATE.ViewType = KYTViewType.ReadOnly; // 留停起算日 ktxtCHECKDOCUMENT.ViewType = KYTViewType.ReadOnly; // 檢核文件 kddlLPREPAYSTATUS.ViewType = KYTViewType.ReadOnly; // 勞保費預繳狀態 ktxtLPREPAYMONTH.ViewType = KYTViewType.ReadOnly; // 勞保費預繳月份數 ktxtLPREPAYMONEY.ViewType = KYTViewType.ReadOnly; // 勞保費預繳金額 kddlHPREPAYSTATUS.ViewType = KYTViewType.ReadOnly; // 健保費預繳狀態 ktxtHPREPAYMONTH.ViewType = KYTViewType.ReadOnly; // 健保費預繳月份數 ktxtHPREPAYMONEY.ViewType = KYTViewType.ReadOnly; // 健保費預繳金額 if (this.FormFieldMode == FieldMode.Applicant) { //EBUser user = new UserUCO().GetEBUser(this.ApplicantGuid); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(this.ApplicantGuid); // 人員 ktxtAPPLICANTDATE.Text = DateTime.Now.ToString("yyyy/MM/dd"); // 設定申請日期 ktxtRESIGNEMP.Text = string.Format(@"{0} ({1})", KUser.Name, KUser.Account); // 設定請 離職人 hidRESIGNEMPGuid.Value = KUser.UserGUID; ktxtAPPLICANTDEPT.Text = KUser.GroupName[0]; // 設定部門資訊 hidAPPLICANTDEPT.Value = KUser.GroupID[0]; hidRESIGNEMPTitleId.Value = KUser.Title_Name[0]; hidRESIGNEMPTitleName.Value = KUser.Title_ID[0]; hidRESIGNEMPAccount.Value = KUser.Account; string[] sAccount = hidRESIGNEMPAccount.Value.Split('\\'); hidRESIGNEMPAccount.Value = sAccount[sAccount.Length - 1]; hidGROUPCODE.Value = KUser.GroupCode[0]; DataTable dtRESIGNSource = getRESIGNVEType(SCSHRConfiguration.SCSSReasonProdID, "SYS_ViewID,SYS_Name,FLAG"); // 新增請選擇選項 DataRow ndr = dtRESIGNSource.NewRow(); ndr["SYS_VIEWID"] = ""; ndr["SYS_NAME"] = "===請選擇==="; dtRESIGNSource.Rows.InsertAt(ndr, 0); // 綁定離職原因 kddlREASONID.DataSource = dtRESIGNSource; kddlREASONID.DataValueField = "SYS_VIEWID"; kddlREASONID.DataTextField = "SYS_NAME"; kddlREASONID.DataBind(); } // 設定Picker是否能輸入 kdpESTIMATEBDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpLSPAYDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpPESTIMATERDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpPSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; case FieldMode.Design: // 表單設計階段 break; case FieldMode.Print: // 表單列印 break; case FieldMode.Signin: // 表單簽核 kdpESTIMATEBDATE.ViewType = KYTViewType.Input; // 預計復職日 kdpLSPAYDATE.ViewType = KYTViewType.Input; // 最後計薪日 kdpPSTARTDATE.ViewType = KYTViewType.Input; // 留停起算日 ktxtCHECKDOCUMENT.ViewType = KYTViewType.Input; // 檢核文件 kddlLPREPAYSTATUS.ViewType = KYTViewType.Input; // 勞保費預繳狀態 ktxtLPREPAYMONTH.ViewType = KYTViewType.Input; // 勞保費預繳月份數 ktxtLPREPAYMONEY.ViewType = KYTViewType.Input; // 勞保費預繳金額 kddlHPREPAYSTATUS.ViewType = KYTViewType.Input; // 健保費預繳狀態 ktxtHPREPAYMONTH.ViewType = KYTViewType.Input; // 健保費預繳月份數 ktxtHPREPAYMONEY.ViewType = KYTViewType.Input; // 健保費預繳金額 break; case FieldMode.Verify: // Verify break; case FieldMode.View: // 表單觀看 break; } } else // 如果網頁POSTBACK { JGlobalLibs.WebUtils.RequestHiddenFields(UpdatePanel1); // 取回HiddenField的值 switch (fieldOptional.FieldMode) // 判斷FieldMode { case FieldMode.Applicant: // 起單或退回申請者 case FieldMode.ReturnApplicant: case FieldMode.Signin: // 表單簽核 // 設定Picker是否能輸入 kdpESTIMATEBDATE.ViewType = KYTViewType.Input; // 預計復職日 kdpLSPAYDATE.ViewType = KYTViewType.Input; // 最後計薪日 kdpPSTARTDATE.ViewType = KYTViewType.Input; // 留停起算日 if (fieldOptional.FieldMode != FieldMode.Signin) { kdpPESTIMATERDATE.ViewType = KYTViewType.Input; // } kdpESTIMATEBDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpLSPAYDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpPESTIMATERDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; kdpPSTARTDATE.TextBoxReadOnly = SCSHRConfiguration.IS_PICKER_READONLY.ToUpper() == "Y"; break; } } } }
protected void Page_Load(object sender, EventArgs e) { ConnectionString = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString; service = ConstructorCommonSettings.setSCSSServiceProxDefault(); if (!Page.IsPostBack) // 網頁首次載入 { //EBUser user = new UserUCO().GetEBUser(Page.User.Identity.Name); KYT_EBUser KUser = new KYT_UserPO().GetUserDetailByUserGuid(Page.User.Identity.Name); // 人員 string[] Account = KUser.Account.Split('\\'); if (Account.Length > 1) { lblAccount.Text = Account[1]; } else { lblAccount.Text = Account[0]; } // //檢查是否為部門主管 // using (SqlDataAdapter sda = new SqlDataAdapter(@" // SELECT * // FROM TB_EB_EMPL_FUNC // WHERE FUNC_ID = 'Superior' //AND USER_GUID = @GUID // ", ConnectionString)) // using (DataSet ds = new DataSet()) // { // sda.SelectCommand.Parameters.AddWithValue("@GUID", user.UserGUID); //大類名稱 // try // { // sda.Fill(ds); // if (ds.Tables[0].Rows.Count > 0) //是部門主管 // { // //UC_ChoiceList1.Visible = true; // //UC_ChoiceListMobile.Visible = true; // //UserSet us = new UserSet(); // //UserSetGroup usg = new UserSetGroup(); // //usg.GROUP_ID = user.GroupID; // //usg.IS_DEPTH = true; // //us.Items.Add(usg); // //UC_ChoiceList1.LimitXML = us.GetXML(); // //UC_ChoiceList1.ChioceType = Ede.Uof.Common.ChoiceCenter.ChoiceTypeList.Group; // //UC_ChoiceList1.LimitChoice = Ede.Uof.Common.ChoiceCenter.LimitChoiceList.WithUserDept; // //UC_ChoiceList1.ExpandToUser = true; // //UC_ChoiceList1.LimitChoice = Ede.Uof.Common.ChoiceCenter.LimitChoiceList.DeptManager; // //UC_ChoiceListMobile.LimitXml = us.GetXML(); // //UC_ChoiceListMobile.LimitChoice = Ede.Uof.Common.ChoiceCenter.LimitChoiceList.WithUserDept; // //Dialog.Open2(btnWeekSelect, string.Format(@"~/CDS/MUJI/WKFFields/Dialog/DialogWeek.aspx"), "選擇週別", 800, 530, Dialog.PostBackType.AfterReturn, new { }.ToExpando()); // _UC_SearchGroupWithGroup.GroupID = user.GroupID; // _UC_SearchGroupWithGroup.Visible = true; // _UC_SearchGroupWithGroup.isMobile = true; // } // } // catch { } // } using (SqlDataAdapter sda = new SqlDataAdapter(@" IF ((SELECT dbo.FN_EB_CheckUserIsInRole ('DutyManager',@USER_GUID)) = '1') -- 判斷該帳號是否是HR管理者 BEGIN SELECT TOP 1 GROUP_ID -- 取得最上層的部門 FROM TB_EB_GROUP WHERE PARENT_GROUP_ID IS NULL END ELSE BEGIN SELECT * -- 取得擔任部門主管的部門 FROM TB_EB_EMPL_DEP WHERE GROUP_ID IN (SELECT GROUP_ID FROM TB_EB_EMPL_FUNC WHERE FUNC_ID = 'Superior' AND USER_GUID = @USER_GUID) AND USER_GUID = @USER_GUID AND ORDERS = 0 END ", ConnectionString)) using (DataSet ds = new DataSet()) { sda.SelectCommand.Parameters.AddWithValue("@USER_GUID", KUser.UserGUID); try { if (sda.Fill(ds) > 0) { _UC_SearchGroupWithGroup.GroupID = ds.Tables[0].Rows[0]["GROUP_ID"].ToString(); _UC_SearchGroupWithGroup.Visible = true; _UC_SearchGroupWithGroup.isMobile = true; } } catch (Exception ex) { JGlobalLibs.DebugLog.Log(string.Format(@"WB_KYTI_SCSHR_ADV_LEAVE_REPORT.Page_Load.SELECT.FN_EB_CheckUserIsInRole.ERROR: 「{0}」;ERROR LINE: 「{1}」", ex.Message, ex.StackTrace)); } } } }