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_MODEL.Page; using GThinking.N_MISPRO.Data; using GThinking.N_PUBLIC; using GThinking.N_MISPRO.Utility; using GThinking.N_CONTROL; using System.Text; namespace GThinking.N_XLXSBJ { public partial class TZYZBJ4List : SingleGridBase { TZYZBJ_YZZ4 entity = new TZYZBJ_YZZ4(); TZYZBJ4_M queryentity = new TZYZBJ4_M(); DataSet dsTJYS1 = new DataSet(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860028; this.UMName = "按型号调报价"; this.CurMaster = Master; this.ModuleGV = grdContentGrid; this.CurEntity = entity; this.CurQueryEntity = queryentity; this.sURLTarget = "TZYZBJ4Info.aspx"; this.sQueryURLTarget = "TZYZBJ4Query.aspx"; this.PageHeight = 600; this.PageWidth = 750; base.DataKeyNames = new string[] { "XLXSBJDYZZ4_JGBID", "minYZID", "XLXSBJDYZZ4_XLXHID" }; grdContentGrid.FindColumnByFieldName("XLXSBJDYZZ4_JGBID").Visible = false; if (!IsPostBack) { if (!PageParam.GetRTrimString("JGBID").Equals("")) CurQueryEntity.FieldByName("JGBID").Value = PageParam.GetRTrimString("JGBID"); else CurQueryEntity.FieldByName("JGBID").Value = GetDefaultJGBID(); if (!PageParam.GetRTrimString("SQDH").Equals("")) CurQueryEntity.FieldByName("CLYLZDDH").Value = PageParam.GetRTrimString("SQDH").Trim(); } base.InitPage(); if (!IsPostBack) { if (!PageParam.GetRTrimString("JGBID").Equals("")) Master_OnStandardQuery(null, null); else { if (IsDefaultExecute) Master_OnStandardQuery(null, null); else { this.Master.StandardNewButton.OnClientClick = "alert('请先查询调价表!');"; this.Master.StandardCopyButton.OnClientClick = "alert('请先查询调价表!');"; } } } } #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetSQL(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(grdContentGrid, tSession); if (CurQueryEntity.FieldByName("JGBID").Value.Trim().Equals("")) { this.Master.StandardNewButton.OnClientClick = "alert('请先查询调价表!');"; this.Master.StandardCopyButton.OnClientClick = "alert('请先查询调价表!');"; } else { this.Master.StandardNewButton.OnClientClick = "OpenCardForm('INSERT');return false;"; this.Master.StandardCopyButton.OnClientClick = "OpenCardForm('COPY');return false;"; } InitControl(); TPageParams pageParams = new TPageParams(); pageParams.AddString("XLXSBJDYZZ4_JGBID", CurQueryEntity.FieldByName("JGBID").Value.Trim()); pageParams.AddString("TJYZList", txtTJYZList.Value.Trim()); pageParams.AddString("FirstYZID", txtFirstYZID.Value.Trim()); if (!PageParam.GetRTrimString("XLXHID").Equals("")) pageParams.AddString("XLXHID", PageParam.GetRTrimString("XLXHID").Trim()); SetNewFormParam(pageParams); } protected override void BeforeDelete(TDatabase db, ref bool ActionIsDone) { string sYZIDlist = TZYZBJAInfo.GetYZIDList(txtTJYZList.Value.Trim()); entity.EntityTable.DeleteSql = " delete from XLXSBJDYZZ4 where XLXSBJDYZZ4_JGBID =:XLXSBJDYZZ4_JGBID and XLXSBJDYZZ4_XLXHID=:XLXSBJDYZZ4_XLXHID and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ4_YZID", sYZIDlist); entity.Param.Add("XLXSBJDYZZ4_JGBID", this.grdContentGrid.SelectedDataKey["XLXSBJDYZZ4_JGBID"].ToString().Trim()); entity.Param.Add("XLXSBJDYZZ4_XLXHID", this.grdContentGrid.SelectedDataKey["XLXSBJDYZZ4_XLXHID"].ToString().Trim()); base.BeforeDelete(db, ref ActionIsDone); } protected override bool Master_AfterDeleteAction(object sender, EventArgs e) { if (!base.Master_AfterDeleteAction(sender, e)) { return false; } base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetSQL(); entity.GridDataBind(grdContentGrid, tSession); grdContentGrid.SelectedIndex = -1; return true; } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkPageParam.AddString("XLXSBJDYZZ4_JGBID", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJDYZZ4_JGBID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_XLXHID", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJDYZZ4_XLXHID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_YZID", grdContentGrid.DataKeys[e.Row.RowIndex]["minYZID"].ToString().Trim()); LinkPageParam.AddString("TJYZList", txtTJYZList.Value.Trim()); LinkPageParam.AddString("FirstYZID", txtFirstYZID.Value.Trim()); } base.moduleGV_RowDataBound(sender, e); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { base.InitEntityByCondition(); entity.EntityTable.QuerySelSql = GetSQL(); grdContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义函数 private string GetSQL() { base.InitEntityByCondition(); InitGridView(); string sYZIDlist = TZYZBJAInfo.GetYZIDList(txtTJYZList.Value.Trim()); StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine("select :pJGBID as XLXSBJDYZZ4_JGBID,XLXSBJDYZZ4_XLXHID as XLXHID, XLXSBJDYZZ4_XLXHID"); sSQL.AppendLine(" ,minYZID"); for (int i = 0; i < dsTJYS1.Tables[0].Rows.Count; i++) { sSQL.AppendLine(string.Format(",TZYZ_{0}", dsTJYS1.Tables[0].Rows[i][0].ToString().Trim())); } sSQL.AppendLine(" from "); sSQL.AppendLine(" ( "); sSQL.AppendLine(" select XLXSBJDYZZ4_XLXHID,min(XLXSBJDYZZ4_YZID) as minYZID "); for (int i = 0; i < dsTJYS1.Tables[0].Rows.Count; i++) { sSQL.AppendLine(string.Format(",sum(CASE XLXSBJDYZZ4_YZID WHEN '{0}' THEN XLXSBJDYZZ4_YZZ ELSE 0 END) as TZYZ_{0}", dsTJYS1.Tables[0].Rows[i][0].ToString().Trim())); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CLYLZDDH").Value.Trim())) { sSQL.AppendLine(" from ( "); sSQL.AppendLine(" select :pJGBID as XLXSBJDYZZ4_JGBID, XLXSBJDYZZ4_XLXHID,XLXSBJDYZZ4_YZID,XLXSBJDYZZ4_YZZ from XLXSBJDYZZ4 where XLXSBJDYZZ4_JGBID = :pJGBID "); sSQL.AppendLine(" and exists(select 1 from XLXSBJYLZDMX where XLXSBJYLZDMX_SQDH = :pSQDH and XLXSBJYLZDMX_XLXHID = XLXSBJDYZZ4_XLXHID) "); if (!string.IsNullOrEmpty(sYZIDlist)) { sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ4_YZID", sYZIDlist)); } sSQL.AppendLine(" union "); sSQL.AppendLine(" select :pJGBID as XLXSBJDYZZ4_JGBID, XLXSBJYLZDMX_XLXHID as XLXSBJDYZZ4_XLXHID "); sSQL.AppendLine(string.Format(" ,case when isnull(XLXSBJDYZZ4_YZID,' ') = ' ' then '{0}' else XLXSBJDYZZ4_YZID end as XLXSBJDYZZ4_YZID, isnull(XLXSBJDYZZ4_YZZ,0) as XLXSBJDYZZ4_YZZ ", txtFirstYZID.Value.Trim())); sSQL.AppendLine(" from XLXSBJYLZDMX "); sSQL.AppendLine(" left join XLXSBJDYZZ4 "); sSQL.AppendLine(" on XLXSBJDYZZ4_XLXHID = XLXSBJYLZDMX_XLXHID and XLXSBJDYZZ4_JGBID = :pJGBID "); if (!string.IsNullOrEmpty(sYZIDlist)) { sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ4_YZID", sYZIDlist)); } sSQL.AppendLine(" where XLXSBJYLZDMX_SQDH = :pSQDH and isnull(XLXSBJDYZZ4_YZID,' ') = ' ' "); sSQL.AppendLine(" ) YZZ4 "); entity.Param.Add("pSQDH", CurQueryEntity.FieldByName("CLYLZDDH").Value.Trim()); } else sSQL.AppendLine(" from XLXSBJDYZZ4 "); if (string.IsNullOrEmpty(CurQueryEntity.FieldByName("JGBID").Value.Trim())) { sSQL.AppendLine(" where 1<>1 "); } else { sSQL.AppendLine(" where XLXSBJDYZZ4_JGBID = :pJGBID "); } if (!string.IsNullOrEmpty(sYZIDlist)) { sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ4_YZID", sYZIDlist)); } if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("XLXH").Value.Trim())) { sSQL.AppendLine(" and XLXSBJDYZZ4_XLXHID LIKE :pXLXH "); } sSQL.AppendLine(" group by XLXSBJDYZZ4_XLXHID "); sSQL.AppendLine(" ) a "); sSQL.AppendLine(" where 1=1 "); if (!CurQueryEntity.FieldByName("YZZYSZ").Value.Trim().Equals("")) { if (dsTJYS1.Tables[0].Rows.Count > 0) { string sYZZWKSQL = ""; for (int i = 0; i < dsTJYS1.Tables[0].Rows.Count; i++) { if (CurQueryEntity.FieldByName("YZZYSZ").Value.Trim().Contains(dsTJYS1.Tables[0].Rows[i][0].ToString().Trim())) { if (!sYZZWKSQL.Equals("")) sYZZWKSQL += " or "; sYZZWKSQL += string.Format(" TZYZ_{0} <> 0 ", dsTJYS1.Tables[0].Rows[i][0].ToString().Trim()); } } if (!sYZZWKSQL.Equals("")) { sSQL.AppendLine(" and ( "); sSQL.AppendLine(sYZZWKSQL); sSQL.AppendLine(" )"); } } } if (!CurQueryEntity.FieldByName("YZZWSZ").Value.Trim().Equals("")) { if (dsTJYS1.Tables[0].Rows.Count > 0) { string sYZZWKSQL = ""; for (int i = 0; i < dsTJYS1.Tables[0].Rows.Count; i++) { if (CurQueryEntity.FieldByName("YZZWSZ").Value.Trim().Contains(dsTJYS1.Tables[0].Rows[i][0].ToString().Trim())) { if (!sYZZWKSQL.Equals("")) sYZZWKSQL += " or "; sYZZWKSQL += string.Format(" TZYZ_{0} = 0 ", dsTJYS1.Tables[0].Rows[i][0].ToString().Trim()); } } if (!sYZZWKSQL.Equals("")) { sSQL.AppendLine(" and ( "); sSQL.AppendLine(sYZZWKSQL); sSQL.AppendLine(" )"); } } } sSQL.AppendLine(" order by XLXSBJDYZZ4_XLXHID"); entity.Param.Add("pJGBID", CurQueryEntity.FieldByName("JGBID").Value.Trim()); entity.Param.Add("pXLXH","%" + CurQueryEntity.FieldByName("XLXH").Value.Trim() + "%"); return sSQL.ToString(); } private void InitGridView() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC, XLXSTZYZ_JJFS "); SQL.Add(" from XLXSTZYZ"); SQL.Add(" where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_TJYS='4' "); SQL.Add(" and XLXSTZYZ_JGBID = :pJGBID"); if (!string.IsNullOrEmpty(PageParam.GetRTrimString("TJYZID"))) { SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", PageParam.GetRTrimString("TJYZID").Trim())); } SQL.Add("order by XLXSTZYZ_YZID,XLXSTZYZ_XSXH"); SQL.ParamByName("pJGBID").Value = CurQueryEntity.FieldByName("JGBID").Value.Trim(); DataSet ds = dberp.OpenDataSet(SQL); dsTJYS1 = ds; txtTJYZList.Value = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (i == 0) txtFirstYZID.Value = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); string sJJFSMC = ""; int iXSWS = 2; //查询时将 BJ01|防火(元) //加价类型的应当以金额来记,为2位小数位数, //加点扣点,以小数形式展示应当为4位,即 0.4235或者 42.35% //乘以/除以形式,应当按照加点扣点形式,但是只能以小数形式展现。 if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ")) { sJJFSMC = "(元)"; iXSWS = 2; } else if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("MX") || ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("DX")) { sJJFSMC = "(X)"; iXSWS = 4; } else { sJJFSMC = "(%)"; iXSWS = 2; } AddColumn("TZYZ_" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJFSMC.Replace("(X)", ""), iXSWS, 80); txtTJYZList.Value += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJFSMC + ","; } txtTJYZList.Value = txtTJYZList.Value.TrimEnd(','); } private string GetDefaultJGBID() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add("SELECT XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='BJD' and XLXSJGB_TJYS='4' order by XLXSJGB_JGBID"); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } private void InitControl() { if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CLYLZDDH").Value.Trim())) { if (!IsPostBack)//首次打开需要补上这一段,否则按钮还是可用状态 { Master.RightCopyBtn = false; Master.RightViewBtn = false; Master.RightEditBtn = false; Master.RightDeleteBtn = false; } Master.StandardCopyButton.Enabled = false; Master.StandardEditButton.Enabled = false; Master.StandardDeleteButton.Enabled = false; Master.StandardViewButton.Enabled = false; } else { Master.StandardCopyButton.Enabled = true; Master.StandardEditButton.Enabled = true; Master.StandardDeleteButton.Enabled = true; Master.StandardViewButton.Enabled = true; } } private string GetCLFirstYZ() { string sJGBID_CL = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_JGBID"].ToString().Trim(); string sXLXHID_CL = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_XLXHID"].ToString().Trim(); string sYZIDlist = TZYZBJAInfo.GetYZIDList(txtTJYZList.Value.Trim()); string sSQL_CL = string.Format(@"select XLXSBJDYZZ4_YZID from XLXSBJDYZZ4 where XLXSBJDYZZ4_XLXHID = '{0}' and XLXSBJDYZZ4_JGBID = '{1}' and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ4_YZID", sYZIDlist) , sXLXHID_CL, sJGBID_CL); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Add(sSQL_CL); DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0][0].ToString().Trim(); } else return ""; } private void OpenInfo(TPageCallAction tpCallAction, string sCLYLZDSQ) { TPageParams LinkPageParam = new TPageParams(); LinkPageParam.UrlPath = "TZYZBJ4Info.aspx"; LinkPageParam.AddString("XLXSBJDYZZ4_JGBID", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_JGBID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_XLXHID", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_XLXHID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_YZID", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["minYZID"].ToString().Trim()); LinkPageParam.AddString("TJYZList", txtTJYZList.Value.Trim()); LinkPageParam.AddString("FirstYZID", txtFirstYZID.Value.Trim()); LinkPageParam.AddString("CLYLZDSQ", sCLYLZDSQ); LinkPageParam.CallAction = tpCallAction; OpenDialog(LinkPageParam); } private void OpenInfo(TPageCallAction tpCallAction,string sCLYLZDSQ,string sYZID) { TPageParams LinkPageParam = new TPageParams(); LinkPageParam.UrlPath = "TZYZBJ4Info.aspx"; LinkPageParam.AddString("XLXSBJDYZZ4_JGBID", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_JGBID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_XLXHID", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJDYZZ4_XLXHID"].ToString().Trim()); LinkPageParam.AddString("XLXSBJDYZZ4_YZID", sYZID); LinkPageParam.AddString("TJYZList", txtTJYZList.Value.Trim()); LinkPageParam.AddString("FirstYZID", txtFirstYZID.Value.Trim()); LinkPageParam.AddString("CLYLZDSQ", sCLYLZDSQ); LinkPageParam.CallAction = tpCallAction; OpenDialog(LinkPageParam); } #endregion #region 控件事件 protected void ContentGrid_RowDoubleClick(object sender, GThinking.N_CONTROL.RowDoubleClickEventArgs e) { base.InitEntityByCondition(); if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("CLYLZDDH").Value.Trim())) { string sYZID = GetCLFirstYZ(); if (!sYZID.Equals("")) OpenInfo(TPageCallAction.pcaBrowse, "N", sYZID); else OpenInfo(TPageCallAction.pcaInsert, "Y"); } else OpenInfo(TPageCallAction.pcaBrowse, "N"); } #endregion #region GridView增加列 /// /// 设置etCheckBox列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width, TEditType CheckBox) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etCheckBox; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etString列的属性 /// /// /// /// private void AddColumn(string sDataField, string HeadText, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etString; ColumnEx.ShowHint = true; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etNumber列的属 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)Width; Column.HeaderStyle.Width = (Unit)Width; Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etNumber; ColumnEx.ShowHint = true; ColumnEx.NumberDecimalPlace = NumberDecimalPlace; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } /// /// 设置etDateTime列的属性 /// /// /// /// /// private void AddColumn(string sDataField, string HeadText, TDateTimeEditKinds DateTimeKind) { BoundField Column = new BoundField(); Column.DataField = sDataField; Column.HeaderText = HeadText; Column.ItemStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); Column.HeaderStyle.Width = (Unit)(DateTimeKind == TDateTimeEditKinds.dtDateTime ? 125 : 72); grdContentGrid.Columns.Add(Column); gtGridView_Column ColumnEx = new gtGridView_Column(); ColumnEx.DataField = sDataField; ColumnEx.EditType = TEditType.etDateTime; ColumnEx.DateTimeEditKins = DateTimeKind; grdContentGrid.ColumnsEx.Insert(0, ColumnEx); } #endregion } }