using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.Common; using Wellan.Data; using Wellan.Common; using System.Text; using System.IO; using System.Drawing; using System.Collections.Generic; /// /// 專案人員派遣 /// public partial class forms_customer_fmRasn : Wellan.Web.UI.WUserControlBase { protected string _RACNM = ""; protected string _RAPYN = ""; protected string _BPENO = ""; protected string _BPNME = ""; protected int _YY = 0; //private string select = "SELECT A.*, B.BPSRM, B.BPSRD, B.BPP01, B.BPP02, B.BPP03, B.BPP04, B.BPP05, (CASE WHEN A.RAEDT IS NULL THEN 1 ELSE 2 END) RAEND "; //private string from = // @" FROM RASN A // LEFT OUTER JOIN BPJB B ON A.RAPYN=B.BPPYN AND A.RAJNO=B.BPJNO AND A.RACNO=B.BPCNO // LEFT OUTER JOIN BPSNView C ON A.RANUM=C.BPENO "; //private string where = " WHERE 1=1 "; //// private string order = " ORDER BY RACNM, RAPYN, RAEND, RANUM, RAITM"; //private string order = " ORDER BY RAPYN, RAEND, RANUM, RAITM"; //private string hq_order = " ORDER BY RAEDT, RANUM"; protected bool canSeeSalary = false; protected void Page_Load(object sender, EventArgs e) { _RACNM = ViewState["RACNM"] != null ? ViewState["RACNM"].ToString() : ""; _RAPYN = ViewState["RAPYN"] != null ? ViewState["RAPYN"].ToString() : ""; _BPENO = ViewState["BPENO"] != null ? ViewState["BPENO"].ToString() : ""; _BPNME = ViewState["BPNME"] != null ? ViewState["BPNME"].ToString() : ""; //if (IsPostBack) // RASNGrid.DataBind(); } protected override void OnInit(EventArgs e) { base.OnInit(e); dsRASNForm.ConnectionString = ConnectionString; dsRASN_RABRH.ConnectionString = ConnectionString; dsRASN_RANUM.ConnectionString = ConnectionString; dsRASN_BPJNO.ConnectionString = ConnectionString; dsRASN_BPCNO.ConnectionString = ConnectionString; dsRASN_RAWTZ.ConnectionString = ConnectionString; _YY = GetIntParam("YY"); if (ForwardSource != "") { _RAPYN = GetStringParam("RAPYN"); ViewState["RAPYN"] = _RAPYN; DbCommand cmdRacnm = Query.NewCommand( @"SELECT A.BCNUM FROM BCUS A INNER JOIN BPRJ B ON A.BCNUM=B.BPNUM INNER JOIN BPAA C ON B.BPPNM=C.BPPNM WHERE C.BPPYN=@BPPYN"); cmdRacnm.Parameters.Add(Query.NewParameter("BPPYN", _RAPYN)); object o = Query.ExecuteScalar(cmdRacnm); if (o == null) _RACNM = ""; else _RACNM = o.ToString(); } if (_YY > 0) { txtYY.Text = _YY.ToString(); ddlBPPYN.DataSource = new BpaaDAC().GetBpaa(_YY + WGuard1.CY11); ddlBPPYN.DataBind(); ListItem item = ddlBPPYN.Items.FindByValue(_RAPYN); if (item != null) item.Selected = true; } else { txtYY.Focus(); } MultiView1.Visible = _RAPYN != ""; dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = _RAPYN; dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = _RAPYN; string zone; string bscls; if (_RAPYN.Length > 4) zone = _RAPYN.Substring(3, 1); else zone = ""; switch (zone) { case "A": // A 北基宜 bscls = "1%"; break; case "B": // B 桃竹苗 bscls = "2%"; break; case "C": // C 中彰投 bscls = "3%"; break; case "D": // D 雲嘉南 bscls = "4%"; break; case "E": // E 高屏澎東 bscls = "5%"; break; case "F": // 台北市 (預留) bscls = "6%"; break; case "G": // 高雄市 (預留) bscls = "7%"; break; default: bscls = "%"; break; } dsRASN_RABRH.SelectParameters["BSCLS"].DefaultValue = bscls; GetGridViewRowColor(RASNGrid); switch (MultiView1.ActiveViewIndex) { case 0: { //RegisterLookupEvent(this, "btnRASN_RACNM_WQRY", "txtRACNM", "txtRACNM,txtRACNMX", "BCUS"); //RegisterLookupEvent(this, "btnRASN_RAPYN_WQRY", "txtRAPYN", "txtRAPYN,txtRAPYNX", "BPRJ"); break; } case 1: { Search(); break; } } // 依權限顯示隱藏資料 canSeeSalary = CheckRight(WRightName.Update); RASNGrid.Columns[5].Visible = canSeeSalary; RASNGrid.Columns[6].Visible = canSeeSalary; RASNGrid.Columns[7].Visible = canSeeSalary; RASNGrid.Columns[8].Visible = canSeeSalary; RASNGrid.Columns[9].Visible = canSeeSalary; RASNGrid.Columns[10].Visible = canSeeSalary; RASNGrid.Columns[11].Visible = canSeeSalary; RASNGrid.Columns[12].Visible = canSeeSalary; } // 查詢按鈕 protected void btnSearch_Click(object sender, EventArgs e) { // _RACNM = txtRACNM.Text; // _RAPYN = txtRAPYN.Text; _BPENO = txtBPENO.Text; _BPNME = txtBPNME.Text; if (//_RACNM.Length == 0 && //_RAPYN.Length == 0 && _BPENO.Length == 0 && _BPNME.Length == 0) { lbMessage.Text = GetString("NOSRHCOND"); lbMessage.Visible = true; } else { MultiView1.ActiveViewIndex = 1; Search(); RASNGrid.PageIndex = 0; RASNGrid.SelectedIndex = 0; RASNGrid.DataBind(); // 查詢有資料時,才將查詢條件紀錄在 ViewState 中 if (RASNGrid.Rows.Count > 0) { // ViewState["RACNM"] = txtRACNM.Text; // ViewState["RAPYN"] = txtRAPYN.Text; ViewState["BPENO"] = txtBPENO.Text; ViewState["BPNME"] = txtBPNME.Text; } } } // 取消查詢按鈕 protected void btnCancel_Click(object sender, EventArgs e) { //ViewState.Remove("RACNM"); //ViewState.Remove("RAPYN"); ViewState.Remove("BPENO"); ViewState.Remove("BPNME"); Search(); MultiView1.ActiveViewIndex = 1; } // 查詢動作 private new void Search() { List HQ_RAPYNS = new List() { "103TYB00001", "103JYB00001" }; int year = 0; if (!string.IsNullOrEmpty(txtYY.Text) && HQ_RAPYNS.IndexOf(_RAPYN) < 0) year = WQuery.GetInt32Value(txtYY.Text) + WGuard1.CY11; dsRASNGrid.SelectParameters["RAPYN"].DefaultValue = _RAPYN; dsRASNGrid.SelectParameters["BPENO"].DefaultValue = _BPENO; dsRASNGrid.SelectParameters["BPNME"].DefaultValue = _BPNME; dsRASNGrid.SelectParameters["year"].DefaultValue = year.ToString(); } // 存檔前的計算動作 private new void CalcFields(SqlDataSourceCommandEventArgs e) { } protected void dsRASNForm_Inserting(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); } protected void dsRASNForm_Updating(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); } protected void RASNGrid_DataBound(object sender, EventArgs e) { GridView_DataBound(sender, e); if (RASNGrid.Rows.Count > 0) { RASNGrid.Visible = true; if (RASNGrid.SelectedIndex == -1) RASNGrid.SelectedIndex = 0; if (RASNGrid.SelectedIndex > RASNGrid.Rows.Count - 1) RASNGrid.SelectedIndex = RASNGrid.Rows.Count - 1; if (RASNGrid.SelectedIndex != -1) { dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = RASNGrid.SelectedDataKey["RAPYN"].ToString(); dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = RASNGrid.SelectedDataKey["RAPYN"].ToString(); } RASNForm.DataBind(); } } protected void RASNGrid_PageIndexChanged(object sender, EventArgs e) { Search(); RASNGrid.SelectedIndex = 0; RASNGrid.DataBind(); } protected void dsRASNGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e) { if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0) { if (ForwardSource != "") RASNForm.ChangeMode(FormViewMode.Insert); else { MultiView1.ActiveViewIndex = 0; lbMessage.Text = GetString("NODATA"); lbMessage.Visible = true; } } } protected void RASNForm_ItemCommand(object sender, FormViewCommandEventArgs e) { switch (e.CommandName) { case "Search": MultiView1.ActiveViewIndex = 0; break; case "Save": cvMessage.ErrorMessage = ""; bool passed = true; string bpjno = (RASNForm.FindControl("hfBPJNO") as HiddenField).Value; string bpcno = (RASNForm.FindControl("hfBPCNO") as HiddenField).Value.Split('_')[0]; string rasdt = (RASNForm.FindControl("txtRASN_RASDT") as TextBox).Text; string rabrh = (RASNForm.FindControl("ddlRASN_RABRH") as DropDownList).SelectedValue; string rawtz = (RASNForm.FindControl("ddlRASN_RAWTZ") as DropDownList).SelectedValue; if (string.IsNullOrEmpty(rawtz)) rawtz = "台北"; int selected = 0; foreach (ListItem item in (RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).Items) selected += item.Selected ? 1 : 0; if (selected == 0) { cvMessage.ErrorMessage += "請選擇人員
"; cvMessage.IsValid = false; passed = false; } if (bpjno == "") { cvMessage.ErrorMessage += "請選擇職稱
"; cvMessage.IsValid = false; passed = false; } if (bpcno == "") { cvMessage.ErrorMessage += "請選擇等級
"; cvMessage.IsValid = false; passed = false; } if (rabrh == "") { cvMessage.ErrorMessage += "請選擇站別
"; cvMessage.IsValid = false; passed = false; } DateTime rasdtValue = (DateTime)CheckDate(rasdt, "請輸入正確的派遣開始日期", ref passed, cvMessage); DataTable bpjb = GetBPJB(bpjno, bpcno); if (bpjb.Rows.Count == 0) { cvMessage.ErrorMessage += "請檢查專案年度職稱與等級資料是否設定正確
"; cvMessage.IsValid = false; passed = false; } if (!passed) { RegisterJS(RASNForm); ProcessCustomValidatorMessage(cvMessage); break; } // 準備新增 DbCommand cmdInsertRASN = Query.NewCommand( @"INSERT INTO RASN (RANUM, RAITM, RACNM, RAPYN, RASDT, RAEDT, RAJNO, RACNO, RABRH, RAWTZ, APPNO, TRDAT, TRMOD, TRUSR) VALUES (@RANUM, @RAITM, @RACNM, @RAPYN, @RASDT, NULL, @RAJNO, @RACNO, @RABRH, @RAWTZ, 1, GETDATE(), 'INSERT', @TRUSR)"); cmdInsertRASN.Parameters.Add(Query.NewParameter("RANUM", DbType.String)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RAITM", DbType.Int32)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RACNM", _RACNM)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RAPYN", _RAPYN)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RASDT", rasdtValue.ToString(WGuard1.InvariantCulture))); cmdInsertRASN.Parameters.Add(Query.NewParameter("RAJNO", bpjno)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RACNO", bpcno)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RABRH", rabrh)); cmdInsertRASN.Parameters.Add(Query.NewParameter("RAWTZ", rawtz)); cmdInsertRASN.Parameters.Add(Query.NewParameter("TRUSR", UserId)); DbConnection conn = Query.NewConnection(); cmdInsertRASN.Connection = conn; conn.Open(); DbTransaction tran = conn.BeginTransaction(); cmdInsertRASN.Transaction = tran; try { foreach (ListItem item in (RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).Items) if (item.Selected) { // 新增人員派遣紀錄 // 取新的項次 object o = Query.ExecuteScalar(String.Format("SELECT ISNULL(MAX(RAITM), 0) + 1 FROM RASN WHERE RANUM='{0}'", item.Value)); if (o == null) cmdInsertRASN.Parameters["RAITM"].Value = 1; else cmdInsertRASN.Parameters["RAITM"].Value = Convert.ToInt32(o); cmdInsertRASN.Parameters["RANUM"].Value = item.Value; cmdInsertRASN.ExecuteNonQuery(); /* dsRASNForm.InsertParameters.UpdateValues(Context, this); dsRASNForm.InsertParameters["RANUM"].DefaultValue = item.Value; dsRASNForm.InsertParameters["RACNM"].DefaultValue = _RACNM; dsRASNForm.InsertParameters["RAPYN"].DefaultValue = _RAPYN; dsRASNForm.InsertParameters["RAJNO"].DefaultValue = bpjno; dsRASNForm.InsertParameters["RACNO"].DefaultValue = bpcno; dsRASNForm.InsertParameters["RASDT"].DefaultValue = rasdtValue.ToString(System.Globalization.CultureInfo.InvariantCulture); dsRASNForm.InsertParameters["RABRH"].DefaultValue = rabrh; */ /* dsRASNForm.InsertParameters["RAMSL"].DefaultValue = bpjb.Rows[0]["BPSRM"].ToString(); dsRASNForm.InsertParameters["RAHSL"].DefaultValue = bpjb.Rows[0]["BPSRD"].ToString(); dsRASNForm.InsertParameters["RAP01"].DefaultValue = bpjb.Rows[0]["BPP01"].ToString(); dsRASNForm.InsertParameters["RAP02"].DefaultValue = bpjb.Rows[0]["BPP02"].ToString(); dsRASNForm.InsertParameters["RAP03"].DefaultValue = bpjb.Rows[0]["BPP03"].ToString(); dsRASNForm.InsertParameters["RAP04"].DefaultValue = bpjb.Rows[0]["BPP04"].ToString(); dsRASNForm.InsertParameters["RAP05"].DefaultValue = bpjb.Rows[0]["BPP05"].ToString(); */ //dsRASNForm.InsertParameters["RAS01"].DefaultValue = ras01; //dsRASNForm.Insert(); } //throw new Exception("失敗測試"); tran.Commit(); ClientShowMessage("人員派遣新增成功!"); } catch (Exception ex) { tran.Rollback(); ClientShowMessage("人員派遣新增失敗!原因為:\\n" + ex.Message); } finally { conn.Close(); (RASNForm.FindControl("selRASN_RANUM") as CheckBoxList).DataBind(); (RASNForm.FindControl("gvRASN_RAENO") as GridView).DataBind(); (RASNForm.FindControl("gvRASN_RABRH") as GridView).DataBind(); RegisterJS(RASNForm); } break; case "Cancel": Search(); /* RASNForm.ChangeMode(FormViewMode.ReadOnly); RASNForm_ModeChanged(sender, e); if (RASNGrid.Rows.Count == 0) { DoAfterCommand("BPRJ"); } */ break; case "Return": DoAfterCommand("BPRJ"); break; } } // 取得該職稱及等級之薪資資料 protected DataTable GetBPJB(string bpjno, string bpcno) { DbCommand cmd = Query.NewCommand( @"SELECT BPSRM, BPSRD, BPP01, BPP02, BPP03, BPP04, BPP05 FROM BPJB WHERE BPPYN=@BPPYN AND BPJNO=@BPJNO AND BPCNO=@BPCNO "); cmd.Parameters.Add(Query.NewParameter("BPPYN", _RAPYN)); cmd.Parameters.Add(Query.NewParameter("BPJNO", bpjno)); cmd.Parameters.Add(Query.NewParameter("BPCNO", bpcno)); return Query.Select(cmd); } protected void RASNForm_ItemDeleted(object sender, FormViewDeletedEventArgs e) { Search(); RASNGrid.DataBind(); RASNForm.DataBind(); } protected void RASNForm_ItemInserted(object sender, FormViewInsertedEventArgs e) { Search(); } protected void RASNForm_ItemUpdated(object sender, FormViewUpdatedEventArgs e) { Search(); } protected void RASNForm_ModeChanged(object sender, EventArgs e) { if (RASNForm.CurrentMode == FormViewMode.ReadOnly) { RASNGrid.Visible = true; RASNGrid.DataBind(); if (RASNGrid.Rows.Count > 0 && RASNGrid.SelectedIndex == -1) { RASNGrid.SelectedIndex = 0; } if (OldMode == FormViewMode.Insert && RASNGrid.Rows.Count > 0) { RASNGrid.PageIndex = RASNGrid.PageCount - 1; RASNGrid.DataBind(); RASNGrid.SelectedIndex = RASNGrid.Rows.Count - 1; } } else { switch (RASNForm.CurrentMode) { case FormViewMode.Edit: break; case FormViewMode.Insert: break; } RASNGrid.Visible = false; } } protected void RASNForm_ModeChanging(object sender, FormViewModeEventArgs e) { OldMode = (sender as FormView).CurrentMode; } protected void RASNForm_DataBound(object sender, EventArgs e) { if (RASNForm.CurrentMode == FormViewMode.Insert || RASNForm.CurrentMode == FormViewMode.Edit) { RegisterCalendarEvent(RASNForm, "btnRASN_RASDT_DATE", "txtRASN_RASDT"); if (RASNForm.CurrentMode == FormViewMode.Edit) RegisterCalendarEvent(RASNForm, "btnRASN_RAEDT_DATE", "txtRASN_RAEDT"); RegisterJS(RASNForm); switch (RASNForm.CurrentMode) { case FormViewMode.Insert: SetClientFocus(RASNForm, "selRASN_RANUM"); dsRASN_RAENO1.SelectParameters["RAPYN"].DefaultValue = _RAPYN; dsRASN_RABRH1.SelectParameters["RAPYN"].DefaultValue = _RAPYN; break; case FormViewMode.Edit: SetControlFocus(RASNForm, "txtRASN_RASDT"); break; } } else if (RASNForm.CurrentMode == FormViewMode.ReadOnly) { SetControlVisible(RASNForm, "Panel2", canSeeSalary); } } protected void dsRASNForm_Deleted(object sender, SqlDataSourceStatusEventArgs e) { } protected void RegisterJS(FormView fv) { HtmlSelect dlBPJNO = fv.FindControl("ddlBPJNO") as HtmlSelect; HtmlSelect dlBPCNO = fv.FindControl("ddlBPCNO") as HtmlSelect; HiddenField hfBPJNO = fv.FindControl("hfBPJNO") as HiddenField; HiddenField hfBPCNO = fv.FindControl("hfBPCNO") as HiddenField; dlBPJNO.Attributes["onchange"] = String.Format("javascript:BPJNOChange('{0:c}', '{1:c}', '{2:c}', '{3:c}');", dlBPJNO.ClientID, dlBPCNO.ClientID, hfBPJNO.ClientID, hfBPCNO.ClientID); dlBPCNO.Attributes["onchange"] = String.Format("javascript:BPCNOChange('{0:c}', '{1:c}');", dlBPCNO.ClientID, hfBPCNO.ClientID); StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); dlBPCNO.DataBind(); for (int i = 0; i < dlBPCNO.Items.Count; i++) { sb1.Append("\"" + dlBPCNO.Items[i].Value + "\"" + (i < dlBPCNO.Items.Count - 1 ? "," : "")); sb2.Append("\"" + dlBPCNO.Items[i].Text + "\"" + (i < dlBPCNO.Items.Count - 1 ? "," : "")); } Page.ClientScript.RegisterArrayDeclaration("BPCNOValue", sb1.ToString()); Page.ClientScript.RegisterArrayDeclaration("BPCNOText", sb2.ToString()); Button btnSave = fv.FindControl("btnSave") as Button; btnSave.OnClientClick = String.Format("javascript:CopyValue('{0:c}', '{1:c}', '{2:c}', '{3:c}');return confirm(msgConfirmSave);", dlBPJNO.ClientID, dlBPCNO.ClientID, hfBPJNO.ClientID, hfBPCNO.ClientID); if (fv.DataItem != null) { DataRowView row = fv.DataItem as DataRowView; dlBPJNO.Value = row["RAJNO"].ToString(); } for (int i = dlBPCNO.Items.Count - 1; i >= 0; i--) { string[] bpcnos = dlBPCNO.Items[i].Value.Split('_'); if (bpcnos.Length > 1) dlBPCNO.Items[i].Value = bpcnos[1]; if (bpcnos[0] != dlBPJNO.Value) dlBPCNO.Items.Remove(dlBPCNO.Items[i]); } if (fv.DataItem != null) { DataRowView row = fv.DataItem as DataRowView; dlBPCNO.Value = row["RACNO"].ToString(); } } protected void RASNGrid_SelectedIndexChanged(object sender, EventArgs e) { foreach (GridViewRow row in RASNGrid.Rows) SetGridViewMouseBehavier(RASNGrid, row); } protected void RASNGrid_RowDataBound(object sender, GridViewRowEventArgs e) { SetGridViewMouseBehavier(RASNGrid, e.Row); //GridView_RowDataBound_Shrink_ViewState(sender, e); } protected string GetRAJNOName(string rapyn, string rajno) { DbCommand cmd = Query.NewCommand("SELECT BPJME FROM BPJA WHERE (BPPYN = @BPPYN) AND (BPJNO=@BPJNO)"); cmd.Parameters.Add(Query.NewParameter("BPPYN", rapyn)); cmd.Parameters.Add(Query.NewParameter("BPJNO", rajno)); object o = Query.ExecuteScalar(cmd); if (o == null) return ""; else return o.ToString(); } protected string GetRACNOName(string rapyn, string rajno, string racno) { DbCommand cmd = Query.NewCommand("SELECT BPCME FROM BPJB WHERE (BPPYN = @BPPYN) AND (BPJNO=@BPJNO) AND (BPCNO=@BPCNO)"); cmd.Parameters.Add(Query.NewParameter("BPPYN", rapyn)); cmd.Parameters.Add(Query.NewParameter("BPJNO", rajno)); cmd.Parameters.Add(Query.NewParameter("BPCNO", racno)); object o = Query.ExecuteScalar(cmd); if (o == null) return ""; else return o.ToString(); } protected void RASNForm_ItemCreated(object sender, EventArgs e) { if (RASNForm.CurrentMode == FormViewMode.Insert) { (RASNForm.FindControl("txtRASN_RASDT") as TextBox).Text = _RAPYN.Substring(0, _RAPYN.Length - 4) + "0101"; } } protected new bool CheckInput(System.Collections.Specialized.IOrderedDictionary values) { cvMessage.ErrorMessage = ""; cvMessage.IsValid = true; bool result = true; // 檢查日期 values["RASDT"] = CheckDate(values["RASDT"], "請輸入正確的派遣開始日期", ref result, cvMessage); if (values["RAEDT"].ToString() != "") { values["RAEDT"] = CheckDate(values["RAEDT"], "請輸入正確的派遣結束日期", ref result, cvMessage); if (result && Convert.ToDateTime(values["RAEDT"]).CompareTo(values["RASDT"]) < 0) { cvMessage.IsValid = false; cvMessage.ErrorMessage += "派遣結束日期 不可小於 派遣開始日期"; result = false; } } ProcessCustomValidatorMessage(cvMessage); return result; } protected void RASNForm_ItemInserting(object sender, FormViewInsertEventArgs e) { e.Cancel = !CheckInput(e.Values); } protected void RASNForm_ItemUpdating(object sender, FormViewUpdateEventArgs e) { // 更正前檢查,檢查專案年度職稱與等級資料是否設定正確 e.Cancel = !CheckInput(e.NewValues); string bpjno = (RASNForm.FindControl("hfBPJNO") as HiddenField).Value; string bpcno = (RASNForm.FindControl("hfBPCNO") as HiddenField).Value.Split('_')[0]; e.NewValues["RAJNO"] = bpjno; e.NewValues["RACNO"] = bpcno; DataTable bpjb = GetBPJB(bpjno, bpcno); if (bpjb.Rows.Count == 0) { e.Cancel = true; cvMessage.ErrorMessage += "請先檢查專案年度職稱與等級資料是否設定正確
"; cvMessage.IsValid = false; } } protected void Next_Click(object sender, EventArgs e) { string rapyn = ddlBPPYN.SelectedValue; // 檢查此使用者是否有權限處理這個專案 BprmDAC bprm = new BprmDAC(Query); if (!bprm.GetRight(rapyn, UserId)) { MultiView1.Visible = false; cvMessage.ErrorMessage = "對不起,你沒有處理這個專案的權限!"; cvMessage.IsValid = false; return; } // 檢查職稱與等級是否有設定 dsRASN_BPJNO.SelectParameters["BPPYN"].DefaultValue = rapyn; DataView dv = dsRASN_BPJNO.Select(new DataSourceSelectArguments()) as DataView; if (dv.Count == 0) { MultiView1.Visible = false; cvMessage.ErrorMessage = "此專案年度接單尚未設定職稱"; cvMessage.IsValid = false; return; } dsRASN_BPCNO.SelectParameters["BPPYN"].DefaultValue = rapyn; dv = dsRASN_BPCNO.Select(new DataSourceSelectArguments()) as DataView; if (dv.Count == 0) { MultiView1.Visible = false; cvMessage.ErrorMessage = "此專案年度接單尚未設定職稱等級"; cvMessage.IsValid = false; return; } ParamList["RAPYN"] = rapyn; DoAfterCommand("RASN"); } protected void RASNForm_ItemDeleting(object sender, FormViewDeleteEventArgs e) { // 刪除前檢查 // 1. 有結束日期不可刪除 } protected void cvBPJNO_ServerValidate(object source, ServerValidateEventArgs args) { args.IsValid = args.Value != ""; } protected void gvRASN_RAENO_DataBound(object sender, EventArgs e) { // 填入新增畫面上「已派遣人數」 (RASNForm.FindControl("lbRAENOCount") as ITextControl).Text = (RASNForm.FindControl("gvRASN_RAENO") as GridView).Rows.Count.ToString(); } protected void btnYY_Click(object sender, EventArgs e) { int year; if (!Int32.TryParse(txtYY.Text.Trim(), out year)) { cvMessage.IsValid = false; cvMessage.ErrorMessage = "請輸入正確的年度"; return; } MultiView1.Visible = false; ParamList["YY"] = year; ParamList["RAPYN"] = ""; DoAfterCommand("RASN"); } }