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_MISPRO; using GThinking.N_MISPRO.Data; using GThinking.N_MODEL.Page; using GThinking.N_MISPRO.Utility; using GThinking.N_CONTROL; using GThinking.N_PUBLIC; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; using GThinking.N_MISPRO.Caching; namespace GThinking.N_XLXSBJ { public partial class BJFLJSLM : OperationBase { BJFLJS entity = new BJFLJS(); #region 页面初始化 protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860023; this.UMName = "按角色隐藏栏目"; this.CurMaster = Master; this.Tabs = Tab; this.PageWidth = 700; this.PageHeight = 500; AddListSetMap(new ListSet(pagSHD.ID, null, grdJSLM, entity, UPSHD)); if (!IsPostBack) { this.Master.PnlQuery.GroupingText = "按角色隐藏栏目"; this.Master.PnlBill.GroupingText = "按角色隐藏栏目"; this.Master.PnlQuery.Visible = false; Master.BtnQueryVisible = false; Master.BtnReportVisible = false; InsertBeforeQuery(PageParam.GetRTrimString("BJFLID")); } base.InitPage(); if (!IsPostBack) { Master_OnQuery(); GridDataBind(); } } #endregion #region 模板继承事件 protected override void Master_OnQuery() { entity.sBJFLID = PageParam.GetRTrimString("BJFLID"); base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool Master_OnBeforeOK(object sender, EventArgs e) { return base.Master_OnBeforeOK(sender, e); } protected override bool DataLogicValid() { return base.DataLogicValid(); } protected override bool Master_OnOK() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { TSQL tmpSQL = new TSQL(dberp); if (grdJSLM.NewRows.Count > 0) { for (int i = 0; i < grdJSLM.NewRows.Count; i++) { string XJYJS = grdJSLM.GetValueByFieldName("XJYJS", grdJSLM.NewRows[i]).ToString().Trim(); string SJYJS = grdJSLM.GetValueByFieldName("SJYJS", grdJSLM.NewRows[i]).ToString().Trim(); string HJYJS = grdJSLM.GetValueByFieldName("HJYJS", grdJSLM.NewRows[i]).ToString().Trim(); string QTR = grdJSLM.GetValueByFieldName("QTR", grdJSLM.NewRows[i]).ToString().Trim(); string sLMID = grdJSLM.GetValueByFieldName("XLXSBJFLJSLM_LMID", grdJSLM.NewRows[i]).ToString().Trim(); string sBJFLID = PageParam.GetRTrimString("BJFLID"); UpdateByJSLX(dberp, tmpSQL, sLMID, "X", sBJFLID, XJYJS); UpdateByJSLX(dberp, tmpSQL, sLMID, "S", sBJFLID, SJYJS); UpdateByJSLX(dberp, tmpSQL, sLMID, "H", sBJFLID, HJYJS); UpdateByJSLX(dberp, tmpSQL, sLMID, "Q", sBJFLID, QTR); } } //使用脚本给父页面的隐藏控件赋值,调用父页面的控件事件 DialogOperationScript dos = new DialogOperationScript(this); ////dos.SetOwnerControlValue("ctl00_CPHForm_txtBJCLID", cbxBJCL.SelectedValue.Trim()); //dos.ClickOwnerButton(PageParam.GetRTrimString("RefreshCtrlID")); ShowMessage("修改成功!"); dos.CloseSelf(); dos.Execute(); CacheNotify.TableIsUpdated("DBERP", "XLXSBJFLJSLM"); dberp.CommitTrans(); } catch (Exception ex) { dberp.RollbackTrans(); ShowMessage(ex.Message); } return true; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[0].Text.Trim().Equals("K") && (e.Row.Cells[2].Text.Trim() != "") && (e.Row.Cells[2].Text.Trim() != " ")) { e.Row.Cells[2].Text = GetKZXXMC(e.Row.Cells[2].Text.Trim()); } else if ((e.Row.Cells[2].Text.Trim() != "") && (e.Row.Cells[2].Text.Trim() != " ")) { e.Row.Cells[2].Text = XLBJDUtils.GetLMMC(e.Row.Cells[2].Text.Trim()); } if (e.Row.Cells[0].Text.Trim().Equals("B")) { e.Row.Cells[0].Text = "按钮"; } else if (e.Row.Cells[0].Text.Trim().Equals("M")) { e.Row.Cells[0].Text = "明细栏目"; } else if (e.Row.Cells[0].Text.Trim().Equals("K")) { e.Row.Cells[0].Text = "附加信息"; } } base.Grid_RowDataBound(sender, e); } #endregion #region 自定义函数 //在第一次打开时判断是否需要插入 private void InsertBeforeQuery(string sBJFLID) { if (!sBJFLID.Trim().Equals("")) { //更新扩展信息栏目 DeleteKZXX(sBJFLID); InsertKZXX(sBJFLID, "X"); InsertKZXX(sBJFLID, "S"); InsertKZXX(sBJFLID, "H"); InsertKZXX(sBJFLID, "Q"); //获取字典中不在表中的栏目ID List NotInTableLMID = new List(XLBJDUtils.GetLMID(GetExistedLMID(sBJFLID))); List NotInTableLMIDOthers = new List(XLBJDUtils.GetLMID(GetExistedLMIDByJSLX(sBJFLID,"Q"))); if (NotInTableLMIDOthers.Count > 0) { //将不在表中的栏目ID插入数据表 foreach (string item in NotInTableLMIDOthers) { InsertByJSLX(item, "Q", sBJFLID); } } if (NotInTableLMID.Count > 0) { //将不在表中的栏目ID插入数据表 foreach (string item in NotInTableLMID) { InsertByJSLX(item, "X", sBJFLID); InsertByJSLX(item, "S", sBJFLID); InsertByJSLX(item, "H", sBJFLID); } } } } //根据角色类别插入 private void InsertByJSLX(string sLMID, string sJSLX, string sBJFLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add("insert into XLXSBJFLJSLM(XLXSBJFLJSLM_BJFLID,XLXSBJFLJSLM_JSLX,XLXSBJFLJSLM_LMLX,XLXSBJFLJSLM_LMID,XLXSBJFLJSLM_YCBZ)"); tmpSQL.Add("values("); tmpSQL.Add(string.Format("'{0}',", sBJFLID)); tmpSQL.Add(string.Format("'{0}',", sJSLX)); //tmpSQL.Add("'X',"); tmpSQL.Add(string.Format("'{0}',", XLBJDUtils.GetLMLX(sLMID))); tmpSQL.Add(string.Format("'{0}',", sLMID)); tmpSQL.Add("'N'"); tmpSQL.Add(")"); dberp.ExecSQL(tmpSQL); dberp.CommitTrans(); } catch { dberp.RollbackTrans(); ShowMessage("操作数据集出错,请和系统管理员联系!"); } } //查询数据表已经存在的栏目ID private List GetExistedLMID(string sBJFLID) { List ExistedLMID = new List(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select XLXSBJFLJSLM_LMID from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID=:pFLID"); sSQL.Add("order by XLXSBJFLJSLM_LMID"); sSQL.ParamByName("pFLID").Value = sBJFLID; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sLMID = ds.Tables[0].Rows[i]["XLXSBJFLJSLM_LMID"].ToString().Trim(); if (!ExistedLMID.Contains(sLMID)) ExistedLMID.Add(sLMID); } } return ExistedLMID; } //查询数据表已经存在的其他人栏目ID private List GetExistedLMIDByJSLX(string sBJFLID,string sJSLX) { List ExistedLMID = new List(); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL sSQL = new TSQL(dberp); sSQL.Clear(); sSQL.Add("select XLXSBJFLJSLM_LMID from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID=:pFLID and XLXSBJFLJSLM_JSLX=:pJSLX"); sSQL.Add("order by XLXSBJFLJSLM_LMID"); sSQL.ParamByName("pFLID").Value = sBJFLID; sSQL.ParamByName("pJSLX").Value = sJSLX; DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sLMID = ds.Tables[0].Rows[i]["XLXSBJFLJSLM_LMID"].ToString().Trim(); if (!ExistedLMID.Contains(sLMID)) ExistedLMID.Add(sLMID); } } return ExistedLMID; } //按角色类型更新数据表 private void UpdateByJSLX(TDatabase dberp, TSQL tmpSQL, string sLMID, string sJSLX, string sBJFLID, string sYCBZ) { tmpSQL.Clear(); tmpSQL.Add(" update XLXSBJFLJSLM set "); tmpSQL.Add(string.Format("XLXSBJFLJSLM_YCBZ='{0}'", sYCBZ)); tmpSQL.Add(string.Format(" ,XLXSBJFLJSLM_WHR='{0}'", CurSession.UserName.Trim())); tmpSQL.Add(string.Format(" ,XLXSBJFLJSLM_WHSJ='{0}'", CMISproConvert.ConvertTime(DateTime.Now))); tmpSQL.Add(string.Format(" ,XLXSBJFLJSLM_WHRID='{0}'", CurSession.UserId.Trim())); tmpSQL.Add(string.Format(" where XLXSBJFLJSLM_BJFLID='{0}' and XLXSBJFLJSLM_LMID='{1}' and XLXSBJFLJSLM_JSLX='{2}'", sBJFLID, sLMID, sJSLX)); dberp.ExecSQL(tmpSQL); } //删除扩展信息 private void DeleteKZXX(string sBJFLID) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add("delete from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID = :pBJFLID and XLXSBJFLJSLM_LMLX = 'K' "); tmpSQL.Add(" and not exists (select 1 from XLXSBJKZXXSZ where XLXSBJKZXXSZ_DYZD = XLXSBJFLJSLM_LMID ) "); tmpSQL.ParamByName("pBJFLID").Value = sBJFLID; dberp.ExecSQL(tmpSQL); dberp.CommitTrans(); } catch { dberp.RollbackTrans(); ShowMessage("操作数据集出错,请和系统管理员联系!"); } } //插入扩展信息 private void InsertKZXX(string sBJFLID,string sJSLX) { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); dberp.BeginTrans(); try { TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add("insert into XLXSBJFLJSLM(XLXSBJFLJSLM_BJFLID,XLXSBJFLJSLM_JSLX,XLXSBJFLJSLM_LMLX,XLXSBJFLJSLM_LMID,XLXSBJFLJSLM_YCBZ) "); tmpSQL.Add(" select :pBJFLID,:pJSLX,'K',XLXSBJKZXXSZ_DYZD,'N' "); tmpSQL.Add(" from XLXSBJKZXXSZ "); tmpSQL.Add(" where XLXSBJKZXXSZ_DYZD not in (select XLXSBJFLJSLM_LMID from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID = :pBJFLID and XLXSBJFLJSLM_JSLX = :pJSLX)"); tmpSQL.ParamByName("pBJFLID").Value = sBJFLID; tmpSQL.ParamByName("pJSLX").Value = sJSLX; dberp.ExecSQL(tmpSQL); dberp.CommitTrans(); } catch { dberp.RollbackTrans(); ShowMessage("操作数据集出错,请和系统管理员联系!"); } } //获取扩展信息的栏目名称 private string GetKZXXMC(string sDYZD) { string sKZXXMC=""; TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL tmpSQL = new TSQL(dberp); tmpSQL.Clear(); tmpSQL.Add("select XLXSBJKZXXSZ_MC from XLXSBJKZXXSZ where XLXSBJKZXXSZ_DYZD = :pDYZD"); tmpSQL.ParamByName("pDYZD").Value = sDYZD; DataSet ds = dberp.OpenDataSet(tmpSQL); if (ds.Tables[0].Rows.Count > 0) sKZXXMC = ds.Tables[0].Rows[0]["XLXSBJKZXXSZ_MC"].ToString().Trim(); return sKZXXMC; } #endregion } }