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 GThinking.N_MODEL.Page; using GThinking.N_PUBLIC; using GThinking.N_MISPRO.Data; using GThinking.N_MISPRO.Utility; using GThinking.N_MISPRO; using GThinking.N_MISPRO.TableCache; namespace GThinking.N_XLJC { public partial class XLBZLXList : SingleGridBase { XLBZLX entity = new XLBZLX(); #region Page事件 protected void Page_Load(object sender, EventArgs e) { this.UMID = 101421003; this.UMName = "线缆标准类型"; this.ModuleGV = grdXLBZ; this.CurMaster = Master; this.CurEntity = entity; this.sURLTarget = "XLBZLXInfo.aspx"; this.Master.EnableQueryBtn = false; this.PageHeight = 500; this.PageWidth = 700; base.DataKeyNames = new string[] { "XLBZ_XLBZID" }; if (DSActiveModule.IsActiveModule(101421011)) { btnXLDZBZ.Visible = true; } else { btnXLDZBZ.Visible = false; } base.InitPage(); if (!IsPostBack) { Master_OnStandardQuery(null, null); } } #endregion #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { entity.EntityTable.QuerySelSql = GetSQL(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(grdXLBZ, tSession); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetSQL(); grdXLBZ.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkPageParam.AddString("XLBZ_XLBZID", grdXLBZ.DataKeys[e.Row.RowIndex]["XLBZ_XLBZID"].ToString().Trim()); } base.moduleGV_RowDataBound(sender, e); } protected override void BeforeDelete(GThinking.N_MISPRO.Data.TDatabase db, ref bool ActionIsDone) { entity.Param.Add("XLBZ_XLBZID", grdXLBZ.DataKeys[grdXLBZ.SelectedIndex]["XLBZ_XLBZID"].ToString().Trim()); base.BeforeDelete(db, ref ActionIsDone); } protected override bool Master_AfterDeleteAction(object sender, EventArgs e) { if (!base.Master_AfterDeleteAction(sender, e)) { return false; } entity.EntityTable.QuerySelSql = GetSQL(); entity.GridDataBind(grdXLBZ, tSession); grdXLBZ.SelectedIndex = -1; return true; } protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) { string sXLBZID = grdXLBZ.DataKeys[grdXLBZ.SelectedIndex]["XLBZ_XLBZID"].ToString().Trim(); if (!sXLBZID.Equals("") && CMISproDataBase.ExistsRecord("DBERP", string.Format("select XLXLB_XLBZID from XLXLB where XLXLB_XLBZID ='{0}' " + " union all select XLLXB_XLBZID from XLLXB where XLLXB_XLBZID ='{0}' " + " union all select XLXZB_XLBZID from XLXZB where XLXZB_XLBZID ='{0}' " + " union all select XLXXB_XLBZID from XLXXB where XLXXB_XLBZID ='{0}' " + " union all select XLDTB_XLBZID from XLDTB where XLDTB_XLBZID ='{0}' " + " union all select XLZXBZ_XLBZID from XLZXBZ where XLZXBZ_XLBZID ='{0}'" + " union all select top 1 XLXSCLQD_XLBZID from XLXSCLQD where XLXSCLQD_XLBZID ='{0}' ", sXLBZID.Trim()))) { ShowMessage("该标准类型已被使用,不允许删除"); return false; } string sSQL = string.Format("select TOP 1 XLDZBZ_XLBZID from XLDZBZ where 1=1 and XLDZBZ_XLBZID like '{0}%' ", sXLBZID); if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) { ShowMessage("该标准类型存在线缆定制标准,不允许删除!"); return false; } return base.Master_BeforeDeleteAction(sender, e); } #endregion #region 自定义事件 private string GetSQL() { string sSQL = " select XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX,XLBZ_DZSC, XLBZ_WHR,XLBZ_WHRID,XLBZ_WHSJ " + " from XLBZ " + " where 1=1 and len(XLBZ_XLBZID) < 10 " + " order by XLBZ_PX,XLBZ_XLBZID "; return sSQL; } private bool CanDelete(string sXLBZID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXLB_XLBZID from XLXLB where XLXLB_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select XLLXB_XLBZID from XLLXB where XLLXB_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select XLXZB_XLBZID from XLXZB where XLXZB_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select XLXXB_XLBZID from XLXXB where XLXXB_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select XLDTB_XLBZID from XLDTB where XLDTB_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select XLZXBZ_XLBZID from XLZXBZ where XLZXBZ_XLBZID =:pXLBZID "); SQL.Add("union all "); SQL.Add("select top 1 XLXSCLQD_XLBZID from XLXSCLQD where XLXSCLQD_XLBZID =:pXLBZID "); SQL.ParamByName("pXLBZID").Value = sXLBZID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return false; } return true; } #endregion #region 按钮 protected void btnXLDZBZ_Click(object sender, EventArgs e) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(" select XLBZ_XLBZID from XLBZ where XLBZ_DZSC ='Y' "); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { TPageParams pageParams = new TPageParams(); pageParams.UrlPath = "XLDZBZList.aspx"; OpenModuleDialog(101421011, pageParams); } else { ShowMessage("未指定允许定制生产的标准!"); return; } } protected void btnSZQS_MenuItemClick(object sender, string ItemIndex) { int index = Int32.Parse(ItemIndex); switch (index) { case 0: btnSCQS_Click(sender, null); break; } } protected void btnDRQS_Click(object sender, EventArgs e) { string[,] arrray = new string[10, 2]{ {"1","国网"}, {"2","南网"}, {"3","样品"}, {"A","美标"}, {"D","地标"}, {"E","欧标"}, {"G","国标"}, {"J","行标"}, {"Q","企标"}, {"S","南非"} }; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); try { dberp.BeginTrans(); for (int i = 0; i < 10; i++) { if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLBZ where XLBZ_XLBZID = '{0}' and len(XLBZ_XLBZID) <10 ", arrray[i, 0]))) { sql.Clear(); sql.Add(" insert into XLBZ ("); sql.Add(" XLBZ_XLBZID, XLBZ_XLBZLXMC, XLBZ_WHR, XLBZ_WHRID, XLBZ_WHSJ,XLBZ_DZSC "); sql.Add(" ) values ( "); sql.Add(" :XLBZ_XLBZID, :XLBZ_XLBZLXMC, :XLBZ_WHR, :XLBZ_WHRID, :XLBZ_WHSJ, 'N' "); sql.Add(" )"); sql.ParamByName("XLBZ_XLBZID").Value = arrray[i, 0]; sql.ParamByName("XLBZ_XLBZLXMC").Value = arrray[i, 1]; sql.ParamByName("XLBZ_WHRID").Value = tSession.UserId; sql.ParamByName("XLBZ_WHR").Value = tSession.UserName; sql.ParamByName("XLBZ_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); dberp.ExecSQL(sql); } } dberp.CommitTrans(); ShowMessage("导入缺省成功!"); Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { ShowMessage("导入失败,原因:" + ex.Message); dberp.RollbackTrans(); return; } } protected void btnSCQS_Click(object sender, EventArgs e) { string[,] arrray = new string[10, 2]{ {"1","国网"}, {"2","南网"}, {"3","样品"}, {"A","美标"}, {"D","地标"}, {"E","欧标"}, {"G","国标"}, {"J","行标"}, {"Q","企标"}, {"S","南非"} }; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sql = new TSQL(dberp); int k = 0; int m = 0; try { bool pCDel = false; string sSQL = string.Format("select TOP 1 XLDZBZ_XLBZID from XLDZBZ where 1=1 "); pCDel = CMISproDataBase.ExistsRecord("DBERP", sSQL); dberp.BeginTrans(); sql.Clear(); //改善速度可直接查询ID为值域的数据 sql.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 and len(XLBZ_XLBZID) <10 "); DataSet ds = dberp.OpenDataSet(sql); if (ds.Tables[0].Rows.Count > 0) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { for (int i = 0; i < 10; i++) { if (arrray[i, 0].ToString().Trim() == ds.Tables[0].Rows[j]["XLBZ_XLBZID"].ToString().Trim()) { if (CanDelete(ds.Tables[0].Rows[j]["XLBZ_XLBZID"].ToString().Trim())) { sql.Clear(); sql.Add(" delete from XLBZ where XLBZ_XLBZID = :pXLBZID "); if (pCDel) { sql.Add(" and isnull(XLBZ_DZSC,'N')<> 'Y' "); } sql.ParamByName("pXLBZID").Value = ds.Tables[0].Rows[j]["XLBZ_XLBZID"].ToString().Trim(); dberp.ExecSQL(sql); k++; } else { m++; } } } } } else { k = -1; } dberp.CommitTrans(); if (-1 == k) { ShowMessage("当前没有数据可以删除!"); } else if (0 == k && 0 == m) { ShowMessage("当前没有缺省数据可以删除!"); } else if (k > 0 && m > 0) { ShowMessage("部分标准类型已被使用,不能删除!"); } else if (k > 0 && 0 == m) { ShowMessage("删除缺省数据成功!"); } else if (0 == k && m > 0) { ShowMessage("当前标准类型已被使用,不能删除!"); } Master_OnStandardQuery(null, null); FormAreaUpdate(); } catch (Exception ex) { ShowMessage("删除失败,原因:" + ex.Message); dberp.RollbackTrans(); return; } } #endregion } }