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; /// /// 年度職稱設定 /// public partial class forms_customer_fmBpja : Wellan.Web.UI.WUserControlBase { protected string _BPNUM = ""; protected string _BPPYN = ""; protected void Page_Load(object sender, EventArgs e) { //if (IsPostBack) // gvBPJA.DataBind(); } protected override void OnInit(EventArgs e) { base.OnInit(e); dsBPJAForm.ConnectionString = ConnectionString; _BPPYN = GetStringParam("BPPYN"); _BPNUM = GetStringParam("BPNUM"); GetGridViewRowColor(gvBPJA); Search(); } // 查詢動作 private new void Search() { dsBPJAGrid.SelectParameters["BPPYN"].DefaultValue = _BPPYN; // 返回時,回到之前選擇的那一筆 if (ParamList != null && ParamList.ContainsKey("BPPYN") && ParamList.ContainsKey("BPJNO")) { int rowIndex = new BpjaDAC(Query).SelectBPJAIndex( WDAC.GetStringValue(ParamList["BPPYN"]), WDAC.GetStringValue(ParamList["BPJNO"]), _BPPYN); if (rowIndex >= 0) { gvBPJA.PageIndex = rowIndex / gvBPJA.PageSize; gvBPJA.SelectedIndex = rowIndex - gvBPJA.PageIndex * gvBPJA.PageSize; } ParamList.Remove("BPJNO"); } } private new void CalcFields(SqlDataSourceCommandEventArgs e) { } protected void dsBPJAForm_Inserting(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); e.Command.Parameters["@BPPYN"].Value = _BPPYN; e.Command.Parameters["@BPJNO"].Value = WGuard1.WNextRen(DateTime.UtcNow.AddHours(8), "BPJA", "BPJNO", "", String.Format(" BPPYN='{0}'", _BPPYN)); } protected void dsBPJAForm_Updating(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); } protected void gvBPJA_DataBound(object sender, EventArgs e) { GridView_DataBound(sender, e); if (gvBPJA.Rows.Count > 0) { if (gvBPJA.SelectedIndex == -1) gvBPJA.SelectedIndex = 0; fvBPJA.DataBind(); } } protected void gvBPJA_PageIndexChanged(object sender, EventArgs e) { Search(); gvBPJA.SelectedIndex = 0; gvBPJA.DataBind(); } protected void dsBPJAGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e) { if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0) { fvBPJA.ChangeMode(FormViewMode.Insert); fvBPJA_ModeChanged(sender, e); } } protected void fvBPJA_ItemCommand(object sender, FormViewCommandEventArgs e) { switch (e.CommandName) { case "Insert": break; case "Edit": break; case "Cancel": Search(); fvBPJA.ChangeMode(FormViewMode.ReadOnly); fvBPJA_ModeChanged(sender, e); if (gvBPJA.Rows.Count == 0) DoAfterCommand("BPAA"); break; case "Return": DoAfterCommand("BPAA"); break; case "Detail": fvBPJA.DataBind(); if (fvBPJA.DataItem != null) { DataRowView rv = fvBPJA.DataItem as DataRowView; ParamList["BPPYN"] = rv["BPPYN"]; ParamList["BPJNO"] = rv["BPJNO"]; ParamList["BPJME"] = rv["BPJME"]; DoAfterCommand("BPJB"); } break; } } protected void fvBPJA_ItemDeleted(object sender, FormViewDeletedEventArgs e) { Search(); gvBPJA.DataBind(); if (gvBPJA.SelectedIndex > gvBPJA.Rows.Count - 1) { gvBPJA.SelectedIndex = gvBPJA.Rows.Count - 1; gvBPJA.DataBind(); } fvBPJA.DataBind(); } protected void fvBPJA_ItemInserted(object sender, FormViewInsertedEventArgs e) { Search(); } protected void fvBPJA_ItemUpdated(object sender, FormViewUpdatedEventArgs e) { Search(); } protected void fvBPJA_ModeChanged(object sender, EventArgs e) { switch (fvBPJA.CurrentMode) { case FormViewMode.ReadOnly: gvBPJA.Visible = true; gvBPJA.DataBind(); if (gvBPJA.Rows.Count > 0) { if (gvBPJA.SelectedIndex == -1) { gvBPJA.SelectedIndex = 0; } if (OldMode == FormViewMode.Insert) { gvBPJA.PageIndex = gvBPJA.PageCount - 1; gvBPJA.DataBind(); gvBPJA.SelectedIndex = gvBPJA.Rows.Count - 1; } gvBPJA.DataBind(); fvBPJA.DataBind(); } break; case FormViewMode.Edit: gvBPJA.Visible = false; break; case FormViewMode.Insert: gvBPJA.Visible = false; break; } } protected void fvBPJA_ModeChanging(object sender, FormViewModeEventArgs e) { OldMode = (sender as FormView).CurrentMode; } protected void fvBPJA_DataBound(object sender, EventArgs e) { switch (fvBPJA.CurrentMode) { case FormViewMode.Edit: Control ddlBPJA_BPCLS = fvBPJA.FindControl("ddlBPJA_BPCLS"); RegisterLookupEvent(fvBPJA, "txtBPJA_BPJME_WQRY", "txtBPJA_BPJME", "txtBPJA_BPJME", "BCLS_BPJA_BPNAM", " BSCLS LIKE '\" + document.getElementById(\"" + ddlBPJA_BPCLS.ClientID + "\").value + \"%'"); SetClientFocus(fvBPJA, "txtBPJA_BPJME"); break; case FormViewMode.Insert: ddlBPJA_BPCLS = fvBPJA.FindControl("ddlBPJA_BPCLS"); RegisterLookupEvent(fvBPJA, "txtBPJA_BPJME_WQRY", "txtBPJA_BPJME", "txtBPJA_BPJME", "BCLS_BPJA_BPNAM", " BSCLS LIKE '\" + document.getElementById(\"" + ddlBPJA_BPCLS.ClientID + "\").value + \"%'"); SetClientFocus(fvBPJA, "txtBPJA_BPJME"); break; } } protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { CustomValidator v = source as CustomValidator; int i; args.IsValid = args.Value != "" && int.TryParse(args.Value, out i) && i > 0; } protected void fvBPJA_ItemCreated(object sender, EventArgs e) { switch (fvBPJA.CurrentMode) { case FormViewMode.Insert: (fvBPJA.FindControl("lbBPJA_BPPYN") as ITextControl).Text = _BPPYN; break; } } protected void gvBPJA_RowDataBound(object sender, GridViewRowEventArgs e) { SetGridViewMouseBehavier(gvBPJA, e.Row); //GridView_RowDataBound_Shrink_ViewState(sender, e); } protected void gvBPJA_SelectedIndexChanged(object sender, EventArgs e) { foreach (GridViewRow row in gvBPJA.Rows) SetGridViewMouseBehavier(gvBPJA, row); } protected void fvBPJA_ItemDeleting(object sender, FormViewDeleteEventArgs e) { // 刪除前檢查 // 1. 是否已有科目設定 DbCommand cmd1 = Query.NewCommand("SELECT COUNT(1) FROM BPJB WHERE BPPYN=@BPPYN AND BPJNO=@BPJNO"); cmd1.Parameters.Add(Query.NewParameter("BPPYN", e.Values["BPPYN"])); cmd1.Parameters.Add(Query.NewParameter("BPJNO", e.Values["BPJNO"])); int i = Convert.ToInt32(Query.ExecuteScalar(cmd1)); cmd1.Dispose(); if (i > 0) { cvMessage.ErrorMessage = "本職稱已有等級設定。不可刪除!"; cvMessage.IsValid = false; e.Cancel = true; } // 2. 是否有派遣人員使用此職稱 DbCommand cmd2 = Query.NewCommand("SELECT COUNT(1) FROM RASN WHERE RAPYN=@BPPYN AND RAJNO=@BPJNO"); cmd2.Parameters.Add(Query.NewParameter("BPPYN", e.Values["BPPYN"])); cmd2.Parameters.Add(Query.NewParameter("BPJNO", e.Values["BPJNO"])); i = Convert.ToInt32(Query.ExecuteScalar(cmd2)); cmd2.Dispose(); if (i > 0) { cvMessage.ErrorMessage = "本職稱已有派遣人員使用。不可刪除!"; cvMessage.IsValid = false; e.Cancel = true; } } }