protected void Page_Load(object sender, EventArgs e)
    {
        ((Master_DialogMasterPage)this.Master).Button2Text = ""; // Button2不顯示
        ((Master_DialogMasterPage)this.Master).Button1Text = ""; // Button1不顯示
        // 取出資料庫連通字串
        ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString;
        service          = ConstructorCommonSettings.setSCSSServiceProxDefault();

        if (!Page.IsPostBack)                              // 首次載入網頁
        {
            ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值
            string EMPID         = Request["EMPID"] != null ? Request["EMPID"] : "";
            string LEVCODE       = Request["LEVCODE"] != null ? Request["LEVCODE"] : "";
            string LEVNAME       = Request["LEVNAME"] != null ? Request["LEVNAME"] : "";
            string LEVDATE_START = Request["LEVDATE_START"] != null ? Request["LEVDATE_START"] : "";
            string LEVDATE_END   = Request["LEVDATE_END"] != null ? Request["LEVDATE_END"] : "";
            string IS_SPEC       = Request["IS_SPEC"] != null ? Request["IS_SPEC"] : "";
            DebugLog.Log(DebugLog.LogLevel.Info, string.Format(@"listLEAVE_TIMES.Page_Load.!Page.IsPostBack.Params:
               EMPID: {0}, 
               LEVCODE: {1},
               LEVNAME: {2}, 
               LEVDATE_START: {3}, 
               LEVDATE_END: {4},
               IS_SPEC: {5}", EMPID, LEVCODE, LEVNAME, LEVDATE_START, LEVDATE_END, IS_SPEC));
            if (!string.IsNullOrEmpty(EMPID) &&
                !string.IsNullOrEmpty(LEVCODE))
            {
                DateTime dtSt = DateTime.MinValue;
                DateTime.TryParse(LEVDATE_START, out dtSt);
                if (dtSt == DateTime.MinValue)
                {
                    dtSt = DateTime.Now;
                }
                DateTime dtEnd = DateTime.MinValue;
                if (!string.IsNullOrEmpty(LEVDATE_END))
                {
                    DateTime.TryParse(LEVDATE_END, out dtEnd);
                }
                else
                {
                    // 如果沒有給結束時間,就查這個月的前後半年
                    dtEnd = dtSt.AddMonths(6);
                    dtSt  = dtSt.AddMonths(-6);
                }
                lblSearchRange.Text = string.Format("{0} ~ {1}", dtSt.ToString("yyyy/MM/dd"), dtEnd.ToString("yyyy/MM/dd"));
                RefreshMainData(EMPID, LEVCODE, LEVNAME, dtSt.ToString("yyyyMMdd"), dtEnd.ToString("yyyyMMdd"), IS_SPEC);
            }
            else
            {
                lblMessage.Text = "無法查詢";
            }
        }
        else // 如果是POSTBACK
        {
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString;

        if (!Page.IsPostBack)
        {
            ConstructorCommonSettings.setCommonSettings();
            AddSiteMapNode("批次加班單異常處理", Request.Url.AbsoluteUri);
        }
    }
Esempio n. 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            AddSiteMapNode("", Request.Url.AbsoluteUri);
            SCSServicesProxy service = ConstructorCommonSettings.setSCSSServiceProxDefault();
            ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值
            string sessionGuid = service.CreateSessionGuid(SCSHR.SCSHRConfiguration.SCSServicesCompanyId, Current.Account, "");
            string RedirectUrl = string.Format(@"{0}?SessionGuid={1}", SCSHRConfiguration.ScshrLoginUrl, sessionGuid);

            Page.Response.Redirect(RedirectUrl);
        }
    }
    public static string CheckVal(string TIME_START, string TIME_OFF, string TYPE_START, string TYPE_OFF, string workResult, string offResult)
    {
        ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值
        JObject joMessage        = new JObject();
        string  connectionstring = new DatabaseHelper().Command.Connection.ConnectionString;

        DateTime dtTIME_START = DateTime.MinValue;

        DateTime.TryParse(TIME_START, out dtTIME_START);
        DateTime dtTIME_OFF = DateTime.MinValue;

        DateTime.TryParse(TIME_OFF, out dtTIME_OFF);
        if (string.IsNullOrEmpty(TIME_START) &&
            string.IsNullOrEmpty(TIME_OFF))
        {
            joMessage.Add(new JProperty("NOWORK", "\n補卡時間必填"));
        }
        else if (!string.IsNullOrEmpty(TYPE_START) &&
                 string.IsNullOrEmpty(TIME_START))
        {
            joMessage.Add(new JProperty("NOWORK_START", "\n上班補卡時間必填"));
        }
        else if (!string.IsNullOrEmpty(TYPE_OFF) &&
                 string.IsNullOrEmpty(TIME_OFF))
        {
            joMessage.Add(new JProperty("NOWORK_OFF", "\n下班補卡時間必填"));
        }

        if (!string.IsNullOrEmpty(TYPE_START) &&
            dtTIME_START > DateTime.Now)
        {
            joMessage.Add(new JProperty("START_TIME_Error", "\n上班補卡時間不能大於申請時間"));
        }

        if (!string.IsNullOrEmpty(TYPE_OFF) &&
            dtTIME_OFF > DateTime.Now)
        {
            joMessage.Add(new JProperty("OFF_TIME_Error", "\n下班補卡時間不能大於申請時間"));
        }


        return(joMessage.ToString());
    }
Esempio n. 5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ((Master_DialogMasterPage)this.Master).Button2Text = ""; // Button2不顯示
        ((Master_DialogMasterPage)this.Master).Button1Text = ""; // Button1不顯示
        // 取出資料庫連通字串
        ConnectionString = new DatabaseHelper().Command.Connection.ConnectionString;
        ConstructorCommonSettings.setCommonSettings(); // 設定DebugLog初始值

        if (!Page.IsPostBack)                          // 首次載入網頁
        {
            string ACCOUNT    = Request["ACCOUNT"] != null ? Request["ACCOUNT"] : "";
            string START_DATE = Request["START_DATE"] != null ? Request["START_DATE"] : "";
            ViewState["ACCOUNT"]    = ACCOUNT;
            ViewState["START_DATE"] = START_DATE;
            DebugLog.Log(DebugLog.LogLevel.Info, string.Format(@"findOVERTIME.ACCOUNT:{0}", ACCOUNT));
            RefreshMainData(ACCOUNT);
        }
        else // 如果是POSTBACK
        {
        }
    }
    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;
                }
            }
        }
    }
Esempio n. 8
0
    /// <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;
                }
            }
        }
    }
Esempio n. 9
0
    /// <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;
                }
            }
        }
    }
Esempio n. 12
0
    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));
                    }
                }
        }
    }
Esempio n. 13
0
    /// <summary>
    /// 尋找任務
    /// </summary>
    /// <returns></returns>
    private DataTable RefreshgvMain()
    {
        // 呼叫 飛騰WS取得班別
        SCSServicesProxy service   = ConstructorCommonSettings.setSCSSServiceProxDefault();
        DataTable        dtScource = new DataTable(); // call飛騰帶回來的資料
        DataTable        dtNew     = new DataTable(); // 查詢班別


        Exception ex = null;

        dtScource = service.BOFind("ATT0010500", "*", out ex);
        if (ex != null)
        {
            DebugLog.Log(DebugLog.LogLevel.Error, string.Format(@"UC_KYTI_SCSHR_TRAVEL.getBOFind.service.Error:{0}", ex.Message));
            return(dtNew);
        }

        dtScource.Columns.Add(new DataColumn("HTYPE", typeof(string)));
        // 休息日
        DataRow ndr = dtScource.NewRow();

        ndr["SYS_VIEWID"] = "H";   // 班別代號
        ndr["HTYPE"]      = "1";   // HTYPE
        ndr["SYS_NAME"]   = "休息日"; // 班別名稱
        dtScource.Rows.Add(ndr);

        // 例假日
        ndr = dtScource.NewRow();
        ndr["SYS_VIEWID"] = "H2";  // 班別代號
        ndr["HTYPE"]      = "2";   // HTYPE
        ndr["SYS_NAME"]   = "例假日"; // 班別名稱
        dtScource.Rows.Add(ndr);

        // 變形休息日
        ndr = dtScource.NewRow();
        ndr["SYS_VIEWID"] = "H3";    // 班別代號
        ndr["HTYPE"]      = "3";     // HTYPE
        ndr["SYS_NAME"]   = "變形休息日"; // 班別名稱
        dtScource.Rows.Add(ndr);

        // 國定假日
        ndr = dtScource.NewRow();
        ndr["SYS_VIEWID"] = "H4";   // 班別代號
        ndr["HTYPE"]      = "4";    // HTYPE
        ndr["SYS_NAME"]   = "國定假日"; // 班別名稱
        dtScource.Rows.Add(ndr);

        // 主表有資料 → 主表Select(filter)查詢 → 給DataRow arrRow → 跑arrRow → 新增DataRow ndrr → 跑主表的Columns
        // → if(新的dtNew是否有存在主表的columnName) → 不存在(新增主表的ColumnName) → 存在(主表的ColumnName新的ndrr)
        // → Column塞回新的dtNew → dr塞回DataRow → 查詢的結果ViewSatate、return。
        // 無輸入查詢也會查,但就是sql條件為空會查全部

        // (1).call飛騰WS取得資料
        // (2).存放到dtSource
        // (3).建立ndr存放帶回來的資料(SYS_VIEWID、SYS_NAME、STARTTIME、ENDTIME)
        // (4).判斷是否有資料
        // (5).在從dtSource Select語法。(第一次進入跳窗則為空,會查所有資料)
        // (6).



        if (dtScource.Rows.Count > 0) // 是否有資料
        {
            // 查詢班別代號、班別名稱、上班時間、下班時間
            string filter = "";
            filter += "SYS_VIEWID LIKE '%" + txtSearch.Text + "%' OR SYS_NAME LIKE '%" + txtSearch.Text + "%' OR STARTTIME LIKE '%" + txtSearch.Text + "%' OR ENDTIME LIKE '%" + txtSearch.Text + "%'";
            DataRow[] arrRow = dtScource.Select(filter, "HTYPE ASC");
            foreach (DataRow dr in arrRow)
            {
                DataRow ndr_New = dtNew.NewRow();
                foreach (DataColumn dc in dtScource.Columns)
                {
                    if (!dtNew.Columns.Contains(dc.ColumnName))
                    {
                        dtNew.Columns.Add(new DataColumn(dc.ColumnName, dc.DataType));
                    }
                    if (dc.ColumnName == "HTYPE" && dr[dc.ColumnName].ToString() == "")
                    {
                        ndr_New[dc.ColumnName] = "0";
                    }
                    else
                    {
                        ndr_New[dc.ColumnName] = dr[dc.ColumnName];
                    }
                }
                dtNew.Rows.Add(ndr_New);
            }
        }
        ViewState[gvMain.ID] = dtNew;
        return(dtNew);
    }