protected void Btn_Save_Click(object sender, EventArgs e) { try { STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); DataTable MasterExistNewDt = null; DataTable MasterExistOldDt = null; string newEffEndDate = ""; if (this.gv_Detail.EditIndex != -1) { ShowErrorMessage("請將編輯的資料列做更新,再按[儲存]"); } else { DataTable DetailNewDt = (DataTable)Session["STM23_DTL_" + PageTimeStamp.Value]; if (DetailNewDt == null) { ShowErrorMessage("無明細資料,請確認"); return; } else { #region 重新檢查新增的資料列中,是否有store空白的,如果有則刪除不處理 DataRow[] drNULL = (DataRow[])DetailNewDt.Select(" store is null"); foreach (DataRow dr in drNULL) { dr.Delete(); } #endregion Session["STM23_DTL_" + PageTimeStamp.Value] = DetailNewDt; //重新計算每一筆的到店時間 CalculateData(); DetailNewDt = (DataTable)Session["STM23_DTL_" + PageTimeStamp.Value]; } switch (this.hid_PageStatus.Value) { case "INSERT": if (DetailNewDt.Rows.Count > 0) { //將已存在的舊路線,路線停用日 設定為此筆新路線[路線啟用日]-1天 //將啟用日是否>=SYSDATE ParameterList.Clear(); ParameterList.Add(this.Route.Text); ParameterList.Add(this.EFF_START.Text); MasterExistOldDt = BCO.QueryVaildByEffDate(ParameterList); MasterExistNewDt = MasterExistOldDt.Copy(); newEffEndDate = DateTime.Parse(this.EFF_START.Text).AddDays(-1).ToString("yyyy/MM/dd"); if (MasterExistNewDt != null && MasterExistNewDt.Rows.Count > 0) { MasterExistNewDt.Rows[0]["EFF_END"] = newEffEndDate; } #region 儲存新增資料 // 做資料儲存的動作 int vPID = BCO.CreateMasterAndDetail(this.getMasterParameterList(), DetailNewDt, MasterExistNewDt, MasterExistOldDt, null); this.hiddenID.Value = Convert.ToString(vPID); #endregion } ScriptManager.RegisterStartupScript(up_Middle, this.GetType(), "ClientScript", "alert('新增完成');", true); break; case "EDIT": #region 使用XML轉回DataSet DataTable MasterOldDt = null; if (MasterOLDData.InnerHtml != "" && MasterOLDData.InnerHtml != "<NewDataSet />") { DataSet Ds = new DataSet(); System.IO.StringReader sr = new System.IO.StringReader(MasterOLDData.InnerHtml); Ds.ReadXml(sr); MasterOldDt = Ds.Tables[0]; } DataTable DetailOldDt = null; if (DetailOLDData.InnerHtml != "" && DetailOLDData.InnerHtml != "<NewDataSet />") { DataSet Ds = new DataSet(); System.IO.StringReader sr = new System.IO.StringReader(DetailOLDData.InnerHtml); Ds.ReadXml(sr); DetailOldDt = Ds.Tables[0]; } #endregion //20110707 rika 改為不需要判斷 //將已存在的舊路線,路線停用日 設定為此筆新路線[路線啟用日]-1天 //將啟用日是否>=SYSDATE //ParameterList.Clear(); //ParameterList.Add(this.hiddenID.Value); //ParameterList.Add(this.Route.Text); //MasterExistOldDt = BCO.QueryVaildByEffDateForUpdate(ParameterList); //MasterExistNewDt = MasterExistOldDt.Copy(); //newEffEndDate = DateTime.Parse(this.EFF_START.Text).AddDays(-1).ToString("yyyy/MM/dd"); //if (MasterExistNewDt != null && MasterExistNewDt.Rows.Count > 0) //{ // MasterExistNewDt.Rows[0]["EFF_END"] = newEffEndDate; //} //if (MasterExistData.InnerHtml != "" && MasterExistData.InnerHtml != "<NewDataSet />") //{ // DataSet Ds = new DataSet(); // System.IO.StringReader sr = new System.IO.StringReader(MasterExistData.InnerHtml); // Ds.ReadXml(sr); // MasterExistOldDt = Ds.Tables[0]; // MasterExistNewDt = MasterExistOldDt.Copy(); // string newEffEndDate = DateTime.Parse(this.EFF_START.Text).AddDays(-1).ToString("yyy/MM/dd"); // MasterExistNewDt.Rows[0]["EFF_END"] = newEffEndDate; //} // 做資料儲存的動作 BCO.UpdateMasterAndDetail(this.getMasterParameterList(), MasterOldDt.Rows[0], DetailNewDt, DetailOldDt, MasterExistNewDt, MasterExistOldDt, null); ScriptManager.RegisterStartupScript(up_Middle, this.GetType(), "ClientScript", "alert('修改完成');", true); break; } #region 存檔後資料重新讀取 this.hiddenROUTE.Value = this.Route.Text; this.hiddenEFF_START.Value = this.EFF_START.Text; databind(); #endregion #region 存檔後狀態設定 this.hid_PageStatus.Value = "VIEW"; this.txt_PageStatus.Text = "VIEW"; #endregion } } catch (Exception ex) { if (ex.Message.IndexOf("資料已被異動") != -1) { this.ErrorMsgLabel.Text = "資料已被異動,請重新查詢"; } else { this.ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0]; //直接取第一個 } } finally { SetPageStatus(); SetDefaultValue(); } }
public static string checkEffDate(string ROUTE, string Eff_Start, string Eff_End, string ID,string Status) { STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); string returnValue = ""; //新增 if (Status == "INSERT") { //將啟用日是否>SYSDATE if (Convert.ToDateTime(Eff_Start) <= DateTime.Today) { string msg = "[路線啟用日]不可小於等於系統日"; returnValue = "double|" + msg; } else { //檢查是否相同pk已存在 ParameterList.Clear(); ParameterList.Add(ROUTE); ParameterList.Add(Eff_Start); DataTable Dt = BCO.QueryRouteByPK(ParameterList); if (Dt.Rows.Count > 0) { string msg = "已存在相同[路線啟用日]" + (Dt.Rows[0]["EFF_START"]).ToString() + "的資料"; returnValue = "double|" + msg; } else { //2011070 rika insert 修改為需要判斷啟用日是否>=sysdate及大於最大啟用日,及是否有重複的區間 DataTable MasterExistDt = null; string IsMax = string.Empty; IsMax = BCO.QueryMaxEffDate(ParameterList).ToString(); //啟用日是否小於最大路線啟用日 if (IsMax == "1") { string msg = "[路線啟用日]小於最大路線啟用日"; returnValue = "double|" + msg; } else if (IsMax == "0") { MasterExistDt = BCO.QueryVaildByEffDate(ParameterList); if (MasterExistDt != null && MasterExistDt.Rows.Count > 0) { string msg = ""; string newEffEndDate = DateTime.Parse(Eff_Start).AddDays(-1).ToString("yyy/MM/dd"); string oldEffEndDate = (MasterExistDt.Rows[0]["EFF_END"]).ToString().Trim(); if (oldEffEndDate == "" || oldEffEndDate == null) { msg = "已存在路線目前無設定結束日"; } else { msg = "已存在路線目前結束日為" + oldEffEndDate; } msg = msg + ",目前設定的路線起始日為" + Eff_Start; msg = msg + ",是否確定將舊路線結束日更改為" + newEffEndDate; returnValue = "exist|" + msg; } else { returnValue = "ok|ok"; } } //若找不到最大路線則表示為新路線 else { returnValue = "ok|ok"; } } } } //編輯 20110707 rika 修改判斷 else { ParameterList.Clear(); ParameterList.Add(ID); ParameterList.Add(ROUTE); ParameterList.Add(Eff_End); if (Convert.ToDateTime(Eff_End) <= DateTime.Today) { string msg = "[路線停用日]不可小於等於系統日"; returnValue = "double|" + msg; } else { DataTable Dt = BCO.QueryVaildByEffDateForUpdate(ParameterList); if (Dt.Rows.Count > 0 && Dt != null) { string msg = "路線與路線起始日為[" + Dt.Rows[0]["Eff_Start"].ToString() + "]之資料日期區間重疊!"; returnValue = "double|" + msg; } else { returnValue = "ok|ok"; } } } return returnValue; }
protected void Btn_Delete_Click(object sender, EventArgs e) { DateTime EFF_START = DateTime.Parse(this.EFF_START.Text); DateTime processtime = DateTime.Now; if (EFF_START <= processtime) { ShowErrorMessage("[路線啟用日]應大於系統日期才能進行刪除"); } else { ErrorMsgLabel.Text = ""; if (this.hid_PageStatus.Value == "VIEW") { ErrorMsgLabel.Text = ""; #region 取得更新前舊值 #region 使用XML轉回DataSet DataSet DsMaster = new DataSet(); System.IO.StringReader srM = new System.IO.StringReader(MasterOLDData.InnerHtml); DsMaster.ReadXml(srM); DataTable dtMasterOLD = DsMaster.Tables[0]; DataSet DsDetail = new DataSet(); System.IO.StringReader srD = new System.IO.StringReader(DetailOLDData.InnerHtml); DsDetail.ReadXml(srD); if (DsDetail.Tables.Count != 0) { DataTable dtDetailOLD = DsDetail.Tables[0]; } #endregion //if (dtDetailOLD.Rows.Count == 0) //{ // throw new Exception("抓取不到舊值,更新失敗!"); //} #endregion #region 處理刪除作業 try { STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); BCO.DeleteRoute(this.getMasterParameterList(), dtMasterOLD.Rows[0], null); ScriptManager.RegisterStartupScript(up_Middle, this.GetType(), "ClientScript", "alert('刪除完成');location.replace('STM231.aspx?Code=STM23');", true); } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0]; //直接取第一個 } #endregion } } }
public string RouteName(string Code) { string Name = ""; string ConnectionDBStr = ((DatabaseSettings)ConfigurationManager.GetSection("dataConfiguration")).DefaultDatabase; MaintainRoute co_main = new MaintainRoute(ConnectionDBStr); if (Code != "") { ArrayList ParameterList = new ArrayList(); ParameterList.Clear(); ParameterList.Add(Code); //輸入查詢值 DataTable Dt = co_main.QueryForSLP(ParameterList); if (Dt.Rows.Count > 0) { Name = Dt.Rows[0]["ROUTE_NAME"].ToString().Trim(); } else { Name = "查無資料"; } } return Name; }
}//databind /// <summary> /// 繫結資料 MST /// </summary> private void databind_Mst() { #region try { ErrorMsgLabel.Text = ""; STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConnectionDB); ParameterList.Clear(); ParameterList.Add(this.hiddenROUTE.Value); ParameterList.Add(this.hiddenEFF_START.Value); DataTable Dt = BCO.QueryRouteByPK(ParameterList); if (Dt.Rows.Count == 0) { ErrorMsgLabel.Text = "資料已被刪除,請重新查詢"; } #region 使用XML放置到前端資料 MasterOLDData.InnerHtml = Dt.DataSet.GetXml(); #endregion #region 將啟用日是否>=SYSDATE使用XML放置到前端資料 ////將啟用日是否>=SYSDATE //ParameterList.Clear(); //ParameterList.Add(this.hiddenROUTE.Value); //Dt = BCO.QueryVaildByEffDate(ParameterList); //MasterExistData.InnerHtml = Dt.DataSet.GetXml(); #endregion #region 20110704 rika 新增規則 //如果路線停用日小於等於系統日,則不可編輯/刪除/計算調整資料 if (Dt.Rows[0]["EFF_END"].ToString().Trim()!=string.Empty) { if (Convert.ToDateTime(Dt.Rows[0]["EFF_END"]) <= DateTime.Now) { this.Btn_Edit.Visible = false; this.Btn_Delete.Visible = false; this.Btn_Calculate.Visible = false; } } //如果路線區間包含重複資料則顯示警告訊息,且僅提供編輯或刪除資料 string IsOverLap = BCO.CheckOverlap(ParameterList); if (IsOverLap == "1") { ErrorMsgLabel.Text = "此路線包含重複日期區間資料,請洽系統服務人員!"; this.Btn_Calculate.Visible = false; this.Btn_Copy.Visible = false; } #endregion } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0]; //直接取第一個 } #endregion }//databind_Mst
protected void Btn_Export_Click(object sender, EventArgs e) { try { #region 傳入參數 ParameterList.Clear(); ParameterList.Add(GetValueSetParameter(SLP_CHAN_NO.Text, "string", false)); ParameterList.Add(GetValueSetParameter(SLP_Route1.Text, "string", false)); ParameterList.Add(GetValueSetParameter(SLP_Route2.Text, "string", false)); #endregion #region 取得資料 STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConntionDB); DataTable Dt = new DataTable(); Dt = BCO.QueryRouteRpt(ParameterList); #endregion if (Dt == null || (Dt != null && Dt.Rows.Count <= 0)) { ErrorMsgLabel.Text = "查無資料"; } else { #region 設定頁面狀態 this.hid_PageStatus.Value = "PRINT"; this.txt_PageStatus.Text = "PRINT"; #endregion string s_FileName = ""; //設定輸出檔名 string s_rptFilePath = ""; //設定報表路徑 s_rptFilePath = Server.MapPath("./REPORT/STM29/STM29R01.rpt"); s_FileName = HttpUtility.UrlEncode("STM29R01_" + "路線路順.xls", System.Text.Encoding.UTF8); LoadCrystalReport(s_FileName, s_rptFilePath, Dt, "EXCEL"); } } catch (Exception ex) { this.ErrorMsgLabel.Text = ex.ToString(); } finally { } }
}//ButtonQuery_Click private void databind() { //抓取本頁初次登記的時間 string SessionIDName = "STM_ROUTE_" + PageTimeStamp.Value; STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConntionDB); ParameterList.Clear(); ParameterList.Add(txt_ROUTE_ST.Text.Trim()); ParameterList.Add(txt_ROUTE_ED.Text.Trim()); ParameterList.Add(SLP_STORE_ST.Text.Trim()); ParameterList.Add(SLP_STORE_ED.Text.Trim()); ParameterList.Add(SLP_STEP.Text.Trim()); ParameterList.Add(SLP_EFF_START.StartDate); ParameterList.Add(SLP_EFF_START.EndDate); ParameterList.Add(TextBoxRowCountLimit.Text.Trim()); DataTable Dt = BCO.QueryByLikeForSLP(ParameterList); firstpage = 0; firstindex = -1; Session[SessionIDName] = Dt; GridView1.DataSource = Dt; //設定分頁大小 if (TextBoxPagesize.Text == "0") { GridView1.PageSize = 1; } else { GridView1.PageSize = (TextBoxPagesize.Text == "") ? 10 : (int.Parse(TextBoxPagesize.Text) < 0) ? 10 : int.Parse(TextBoxPagesize.Text); } GridView1.PageIndex = 0; GridView1.DataBind(); GridView1.SelectedIndex = -1; }//databind
protected void Btn_Print_Click(object sender, EventArgs e) { try { #region 傳入參數 ParameterList.Clear(); ParameterList.Add(GetValueSetParameter(SLP_CHAN_NO.Text, "string", false)); ParameterList.Add(GetValueSetParameter(SLP_Route1.Text, "string", false)); ParameterList.Add(GetValueSetParameter(SLP_Route2.Text, "string", false)); #endregion #region 取得資料 STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConntionDB); DataTable Dt = new DataTable(); Dt = BCO.QueryRouteRpt(ParameterList); #endregion if (Dt == null || (Dt != null && Dt.Rows.Count <= 0)) { ErrorMsgLabel.Text = "查無資料"; } else { #region 設定頁面狀態 this.hid_PageStatus.Value = "PRINT"; this.txt_PageStatus.Text = "PRINT"; #endregion string s_FileName = ""; //設定輸出檔名 string s_rptFilePath = ""; //設定報表路徑 s_rptFilePath = Server.MapPath("./REPORT/STM29/STM29R01.rpt"); s_FileName = HttpUtility.UrlEncode("STM29R01_" + "路線路順.PDF", System.Text.Encoding.UTF8); LoadCrystalReport(s_FileName, s_rptFilePath, Dt, "PDF"); #region Viewer寫法 //使用者名稱 //ParameterList.Clear(); //ParameterList.Add(Session["UID"].ToString()); //PIC.VDS2G.COMMON.SYS.MaintainUser BCO2 = new PIC.VDS2G.COMMON.SYS.MaintainUser(ConntionDB); //DataTable DtUser = BCO2.QueryUserName(ParameterList); //string Login_Name = ""; //if (DtUser.Rows.Count != 0) //{ // Login_Name = DtUser.Rows[0]["NAME"].ToString(); //} //#region CrystalReport列印報表 //string Program_ID = string.Empty; //string LoginUser = string.Empty; //string LoginName = string.Empty; //string Chan_No = string.Empty; //string Route1 = string.Empty; //string Route2 = string.Empty; //CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); //report.Load(Server.MapPath("./REPORT/STM29/STM29R.rpt")); //Program_ID = this.PageCode + "R"; //LoginUser = Session["UID"].ToString(); //Login_Name = Login_Name.Trim(); //Chan_No = ((TextBox)SLP_CHAN_NO.FindControl("TextBoxCode")).Text.Trim() + ((TextBox)SLP_CHAN_NO.FindControl("TextBoxName")).Text.Trim(); //Route1 = ((TextBox)SLP_Route1.FindControl("TextBoxName")).Text.Trim(); //Route2 = ((TextBox)SLP_Route2.FindControl("TextBoxName")).Text.Trim(); //ParameterFields par1 = new ParameterFields(); //AddParameter("par_Program_ID", Program_ID, par1); //ParameterFields par2 = new ParameterFields(); //AddParameter("par_LoginUser", LoginUser, par2); //ParameterFields par3 = new ParameterFields(); //AddParameter("par_LoginName", Login_Name, par3); //ParameterFields par4 = new ParameterFields(); //AddParameter("par_Route1", Route1, par4); //ParameterFields par5 = new ParameterFields(); //AddParameter("par_Route2", Route2, par5); //ParameterFields par6 = new ParameterFields(); //AddParameter("par_Chan_No", Chan_No, par6); //this.CryView.ReportSource = null; //this.CryView.ParameterFieldInfo.Add(par1[0]); //this.CryView.ParameterFieldInfo.Add(par2[0]); //this.CryView.ParameterFieldInfo.Add(par3[0]); //this.CryView.ParameterFieldInfo.Add(par4[0]); //this.CryView.ParameterFieldInfo.Add(par5[0]); //this.CryView.ParameterFieldInfo.Add(par6[0]); //report.SetDataSource(Dt); //this.CryView.ReportSource = report; //#endregion #endregion } } catch (Exception ex) { this.ErrorMsgLabel.Text = ex.ToString(); } finally { } }
public SLP_Route() { co_main = new STMModel.MaintainRoute(ConntionDB); }
}//Initiziatoin_Component private void dataget() { if (_Code != "") { ParameterList.Clear(); STMModel.MaintainRoute BCO = new STMModel.MaintainRoute(ConntionDB); ParameterList.Add(_Code); //輸入查詢值 DataTable Dt = co_main.QueryForSLP(ParameterList); //DataTable Dt = BCO.QuerySwitch(STMModel.MaintainRoute.QueryType.Route, // ParameterList // ); if (Dt.Rows.Count > 0) { _Name = Dt.Rows[0]["ROUTE_NAME"].ToString().Trim(); } else { _Name = "查無資料"; } } HiddenField1.Value = _Name; TextBoxName.Text = _Name; }//dataget
protected void Btn_Query_Click(object sender, EventArgs e) { try { ErrorMsgLabel.Text = ""; ResultMsgLabel.Text = ""; queryFlag = true; //選擇的頁籤 0:路線 1:路順 int ActiveTabIndex = this.TabContainer1.ActiveTabIndex; DataTable Dt = new DataTable(); #region 清空靜態變數 dt_Detail = null; #endregion ArrayList aList = this.getParameterList(); if (queryFlag) { #region 處理查詢 BCO.MaintainRoute bco = new MaintainRoute(ConntionDB); //選擇的頁籤 0:路線 1:路順 if (ActiveTabIndex == 0) { Dt = bco.QueryRouteByFind(aList); } else { Dt = bco.QueryStepByFind(aList); } #endregion if (Dt == null || (Dt != null && Dt.Rows.Count <= 0)) { //ResultMsgLabel.Text = "查無資料"; ScriptManager.RegisterStartupScript(Page, this.GetType(), "STM231.aspx", "alert(' 查無資料 ');", true); } else { dt_Detail = Dt; } #region 將Key值存到Session中 ArrayList arl_Key = new ArrayList(); foreach (DataRow drRow in Dt.Rows) { arl_Key.Add("id=" + drRow["ID"].ToString() + "&ROUTE=" + drRow["ROUTE"].ToString() + "&EFF_START=" + drRow["EFF_START"].ToString()); } Session["STM23_SortKey" + this.PageTimeStamp.Value] = arl_Key; #endregion #region 設定頁面狀態 this.hid_PageStatus.Value = "QUERY"; this.txt_PageStatus.Text = "QUERY"; #endregion #region 設定查詢結果 this.gv_Detail.DataSource = Dt; if (TextBoxPagesize.Text == "0") { gv_Detail.PageSize = 1; } else { gv_Detail.PageSize = (TextBoxPagesize.Text == "") ? 10 : (int.Parse(TextBoxPagesize.Text) < 0) ? 10 : int.Parse(TextBoxPagesize.Text); } this.gv_Detail.PageIndex = 0; this.gv_Detail.DataBind(); #endregion } } catch (Exception ex) { this.ErrorMsgLabel.Text = ex.ToString(); } finally { } }
private void GetRouteName(string strRoute, out string strRouteName) { strRouteName = ""; try { PIC.VDS2G.GFM.STM.MaintainRoute BCO = new PIC.VDS2G.GFM.STM.MaintainRoute(ConntionDB); ParameterList.Clear(); ParameterList.Add(strRoute); DataTable Dt = BCO.QueryForSLP(ParameterList); if (Dt.Rows.Count > 0) { strRouteName = Dt.Rows[0]["ROUTE_NAME"].ToString().Trim(); } else { strRouteName = ""; } } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } }