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_fmBcus : Wellan.Web.UI.WUserControlBase { private string _BCNUM = ""; private string _BCNAM = ""; private string _OLD_BCNUM = ""; private string _bcusCls = ""; private string _bcusZon = ""; protected void Page_Load(object sender, EventArgs e) { _BCNUM = ViewState["BCNUM"] != null ? ViewState["BCNUM"].ToString() : ""; _BCNAM = ViewState["BCNAM"] != null ? ViewState["BCNAM"].ToString() : ""; //if (IsPostBack) // gvBCUS.DataBind(); } protected override void OnInit(EventArgs e) { base.OnInit(e); dsBCUSForm.ConnectionString = ConnectionString; GetGridViewRowColor(gvBCUS); switch (MultiView1.ActiveViewIndex) { case 0: { break; } case 1: { Search(); break; } } } // 查詢按鈕 protected void btnSearch_Click(object sender, EventArgs e) { ViewState["BCNUM"] = txtBCNUM.Text; ViewState["BCNAM"] = txtBCNAM.Text; _BCNUM = txtBCNUM.Text; _BCNAM = txtBCNAM.Text; if (_BCNUM.Length == 0 && _BCNAM.Length == 0) { cvMessage.ErrorMessage = GetString("NOSRHCOND"); cvMessage.IsValid = false; } else { MultiView1.ActiveViewIndex = 1; Search(); gvBCUS.PageIndex = 0; gvBCUS.SelectedIndex = 0; gvBCUS.DataBind(); } } // 取消查詢按鈕 protected void btnCancel_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 1; } // 查詢動作 private new void Search() { dsBCUSGrid.SelectParameters["BCNUM"].DefaultValue = _BCNUM; dsBCUSGrid.SelectParameters["BCNAM"].DefaultValue = _BCNAM; // 返回時,回到之前選擇的那一筆 if (ParamList != null && ParamList.ContainsKey("BCNUM")) { string bcnum = WDAC.GetStringValue(ParamList["BCNUM"]); int rowIndex = new BcusDAC(Query).SelectBCNUMIndex(bcnum, _BCNUM, _BCNAM); if (rowIndex >= 0) { gvBCUS.PageIndex = rowIndex / gvBCUS.PageSize; gvBCUS.SelectedIndex = rowIndex - gvBCUS.PageIndex * gvBCUS.PageSize; } ParamList.Remove("BCNUM"); } } private new void CalcFields(SqlDataSourceCommandEventArgs e) { } // dataSource 新增存檔之前 protected void dsBCUSForm_Inserting(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); e.Command.Parameters["@BCNUM"].Value = WGuard1.WNextRen(DateTime.UtcNow.AddHours(8), "BCUS", "BCNUM", String.Format("\"{0}{1}\"<9999>", _bcusZon, _bcusCls), " LEN(BCNUM)=6 "); } // dataSource 更正存檔之前 protected void dsBCUSForm_Updating(object sender, SqlDataSourceCommandEventArgs e) { CalcFields(e); } protected void gvBCUS_DataBound(object sender, EventArgs e) { GridView_DataBound(sender, e); if (gvBCUS.SelectedIndex == -1) gvBCUS.SelectedIndex = 0; fvBCUS.DataBind(); } protected void gvBCUS_PageIndexChanged(object sender, EventArgs e) { Search(); gvBCUS.SelectedIndex = 0; gvBCUS.DataBind(); } protected void dsBCUSGrid_Selected(object sender, ObjectDataSourceStatusEventArgs e) { if (e.ReturnValue is Int32 && WDAC.GetInt32Value(e.ReturnValue) == 0) { if (MultiView1.ActiveViewIndex == 0) { cvMessage.ErrorMessage = GetString("NODATA"); cvMessage.IsValid = false; } MultiView1.ActiveViewIndex = 0; cvMessage.ErrorMessage = GetString("NODATA"); cvMessage.IsValid = false; } } protected void fvBCUS_ItemCommand(object sender, FormViewCommandEventArgs e) { switch (e.CommandName) { case "Search": MultiView1.ActiveViewIndex = 0; SetClientFocus(txtBCNUM); break; case "Cancel": Search(); fvBCUS.ChangeMode(FormViewMode.ReadOnly); fvBCUS_ModeChanged(sender, e); break; case "BPRJ": fvBCUS.DataBind(); if (fvBCUS.DataItem != null) { DataRowView rv = fvBCUS.DataItem as DataRowView; ParamList.Clear(); ParamList.Add("BCNUM", rv["BCNUM"]); DoAfterCommand("BPRJ"); } break; } } protected void fvBCUS_ItemDeleted(object sender, FormViewDeletedEventArgs e) { Search(); gvBCUS.DataBind(); fvBCUS.DataBind(); } protected void fvBCUS_ItemInserted(object sender, FormViewInsertedEventArgs e) { Search(); } protected void fvBCUS_ItemUpdated(object sender, FormViewUpdatedEventArgs e) { Search(); } protected void fvBCUS_ModeChanged(object sender, EventArgs e) { if (fvBCUS.CurrentMode == FormViewMode.ReadOnly) { gvBCUS.Visible = true; gvBCUS.DataBind(); if (gvBCUS.Rows.Count > 0 && gvBCUS.SelectedIndex == -1) { gvBCUS.SelectedIndex = 0; } if (OldMode == FormViewMode.Insert) { gvBCUS.PageIndex = gvBCUS.PageCount - 1; gvBCUS.DataBind(); gvBCUS.SelectedIndex = gvBCUS.Rows.Count - 1; } fvBCUS.DataBind(); } else { switch (fvBCUS.CurrentMode) { case FormViewMode.Edit: break; case FormViewMode.Insert: break; } gvBCUS.Visible = false; } } protected void fvBCUS_ModeChanging(object sender, FormViewModeEventArgs e) { OldMode = (sender as FormView).CurrentMode; } protected void fvBCUS_DataBound(object sender, EventArgs e) { switch (fvBCUS.CurrentMode) { case FormViewMode.Insert: SetClientFocus(fvBCUS, "txtBCUS_BCNAM"); break; case FormViewMode.Edit: SetClientFocus(fvBCUS, "txtBCUS_BCNAM"); break; case FormViewMode.ReadOnly: if (fvBCUS.DataItem != null) ViewState["OLD_BCNUM"] = (fvBCUS.DataItem as DataRowView)["BCNUM"]; break; } } protected void rvBCNUM1_ServerValidate(object source, ServerValidateEventArgs args) { // 檢查客戶編號是否重複 _OLD_BCNUM = ViewState["OLD_BCNUM"] != null ? ViewState["OLD_BCNUM"].ToString() : ""; args.IsValid = true; if (args.Value == _OLD_BCNUM) return; DbCommand cmd = Query.NewCommand("SELECT COUNT(1) FROM BCUS WHERE BCNUM=@BCNUM"); cmd.Parameters.Add(Query.NewParameter("BCNUM", args.Value)); object o = Query.ExecuteScalar(cmd); args.IsValid = (o == null || Convert.ToInt32(o) == 0); } protected void gvBCUS_RowDataBound(object sender, GridViewRowEventArgs e) { SetGridViewMouseBehavier(gvBCUS, e.Row); //GridView_RowDataBound_Shrink_ViewState(sender, e); } protected void gvBCUS_SelectedIndexChanged(object sender, EventArgs e) { foreach (GridViewRow row in gvBCUS.Rows) SetGridViewMouseBehavier(gvBCUS, row); } protected void cvBCIDN_ServerValidate(object source, ServerValidateEventArgs args) { // 檢查統一編號是否正確 args.IsValid = WGuard1.WCheckUbiNumber(args.Value) == 0; } protected void cvBCMQT_ServerValidate(object source, ServerValidateEventArgs args) { // 檢查員工人數應為正數 int i; args.IsValid = args.Value != "" && int.TryParse(args.Value, out i) && i > 0; } protected void fvBCUS_ItemDeleting(object sender, FormViewDeleteEventArgs e) { // 刪除前檢查 // 檢查是否有專案資料 DbCommand cmd = Query.NewCommand("SELECT COUNT(1) FROM BPRJ WHERE BPNUM=@BPNUM"); cmd.Parameters.Add(Query.NewParameter("BPNUM", e.Keys["BCNUM"])); object o = Query.ExecuteScalar(cmd); if (o != null && Convert.ToInt32(o) > 0) { cvMessage.IsValid = false; cvMessage.ErrorMessage = "此客戶有專案資料,不可刪除"; e.Cancel = true; } } protected void fvBCUS_ItemInserting(object sender, FormViewInsertEventArgs e) { _bcusCls = (fvBCUS.FindControl("ddlClass") as DropDownList).SelectedValue; _bcusZon = (fvBCUS.FindControl("ddlZone") as DropDownList).SelectedValue; } // 查詢畫面的新增按鈕 protected void btnInsert_Click(object sender, EventArgs e) { gvBCUS.Visible = false; fvBCUS.ChangeMode(FormViewMode.Insert); MultiView1.ActiveViewIndex = 1; } }