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_CONTROL; using GThinking.N_PUBLIC; using GThinking.N_MISPRO.Caching; using GThinking.N_MISPRO.Utility; using System.Collections.Generic; using System.Text; namespace GThinking.N_XLXSBJ { [TableMap(DB = "DBERP", DbTableName = "XLXSBJDMX", Umid = 100860000, IsWorkFlow = false, UseWhr = false, IsAttach = false)] public class XLBJD_YZ_KJF : EntityManager { } public partial class XLBJD_YZ_KJFInfo : SingleGridBase { XLBJD_YZ_KJF entity = new XLBJD_YZ_KJF(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860000; this.UMName = "线缆销售报价单"; this.CurMaster = Master; this.ModuleGV = grdContentGrid; this.CurEntity = entity; this.PageHeight = 600; this.PageWidth = 700; Master.EnableNewBtn = false; Master.EnableEditBtn = false; Master.EnableCopyBtn = false; Master.EnableDeleteBtn = false; Master.EnableViewBtn = false; Master.EnableQueryBtn = false; Master.EnablePrintBtn = false; base.DataKeyNames = new string[] { "XLXHID", "XLGGID", "XLBZID", "DYDJID", "BJSL", "MMKJF" }; base.InitPage(); if (!IsPostBack) { double dKJF = CMISproConvert.StrToFloat(GetOption("BJU039")); string sTSFS = GetOption("BJU047"); if (sTSFS == "T") chkTS.Checked = true; else chkFGGS.Checked = true; txtDCKJF.Value = dKJF; txtDCKJF_OnTextChanged(null, null); } } #region 模板事件继承 protected override void Master_OnStandardQuery(object sender, EventArgs e) { entity.EntityTable.QuerySelSql = GetSQL(); base.Master_OnStandardQuery(sender, e); entity.GridDataBind(grdContentGrid, tSession); } protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { double dBJSL = CMISproConvert.StrToFloat(grdContentGrid.DataKeys[e.Row.RowIndex]["BJSL"].ToString().Trim()); double dMMKJF = 0; if (dBJSL > 0 && txtDCKJF.Value > 0) { dMMKJF = NumberUtils.RoundX(txtDCKJF.Value / dBJSL, 2); } e.Row.Cells[5].Text = dMMKJF.ToString("F2"); } base.moduleGV_RowDataBound(sender, e); } protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) { entity.EntityTable.QuerySelSql = GetSQL(); grdContentGrid.SelectedIndex = -1; base.moduleGV_PageIndexChanging(sender, e); } #endregion #region 自定义函数 private string GetSQL() { string sBJDID = PageParam.GetRTrimString("BJDID"); StringBuilder sSQL = new StringBuilder(); sSQL.AppendLine("select XLXSBJDMX_XLXHID as XLXHID, XLXSBJDMX_XLGGID as XLGGID, XLXSBJDMX_XLBZID as XLBZID, XLXSBJDMX_DYDJID as DYDJID,"); sSQL.AppendLine(" sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,"); sSQL.AppendLine(" 0.0 as MMKJF"); sSQL.AppendLine("from XLXSBJDMX "); sSQL.AppendLine("left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID"); sSQL.AppendLine("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID"); sSQL.AppendLine("left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0')"); sSQL.AppendLine("left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')"); sSQL.AppendLine("left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' "); sSQL.AppendLine("left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end"); sSQL.AppendLine("where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%'"); sSQL.AppendLine("group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS"); sSQL.AppendLine("having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300)"); sSQL.AppendLine(" OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)"); sSQL.AppendLine("order by XLXSBJDMX_XLXHID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID"); entity.Param.Add("pBJDID", sBJDID); return sSQL.ToString(); } #endregion #region 自定义按钮 protected void btnOK_Click(object sender, EventArgs e) { string sBJDID = PageParam.GetRTrimString("BJDID"); string sYZID = PageParam.GetRTrimString("YZID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@" select sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS from XLXSBJDMX left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0') left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%' group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300) OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)"); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds = dberp.OpenDataSet(SQL); if (ds.Tables[0].Rows.Count > 0) { SQL.Clear(); SQL.Add("update XLXSBJDYZZ0 "); SQL.Add(string.Format(" set XLXSBJDYZZ0_YZZ{0}=0 ",sYZID.Replace("BJ",""))); SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID "); SQL.ParamByName("pBJDID").Value = sBJDID; dberp.ExecSQL(SQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { double dBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJSL"].ToString().Trim()); double dMMKJF = 0; if (dBJSL > 0 && txtDCKJF.Value > 0) { dMMKJF = NumberUtils.RoundX(txtDCKJF.Value / dBJSL, 2); if (chkTS.Checked) dMMKJF = txtTSKJF.Value; } string sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); string sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); string sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); string sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); SQL.Clear(); SQL.Add(@" merge into XLXSBJDYZZ0 tar USING ( SELECT XLXSBJDMX_BJDID, XLXSBJDMX_XH,XLXSBJDMX_BJSL FROM XLXSBJDMX WHERE XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XLXHID = :pXLXHID AND XLXSBJDMX_XLGGID = :pXLGGID AND XLXSBJDMX_XLBZID = :pXLBZID AND XLXSBJDMX_DYDJID = :pDYDJID ) sor on( XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH ) "); SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=round(:pDJ,2) ",sYZID.Replace("BJ",""))); SQL.ParamByName("pBJDID").Value = sBJDID; SQL.ParamByName("pXLXHID").Value = sXLXHID; SQL.ParamByName("pXLGGID").Value = sXLGGID; SQL.ParamByName("pXLBZID").Value = sXLBZID; SQL.ParamByName("pDYDJID").Value = sDYDJID; SQL.ParamByName("pDJ").Value = dMMKJF; dberp.ExecSQL(SQL); } string sErrorMsg = ""; XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, "", false, false, false, "", DateTime.MinValue, GetOption("BJU002"), GetOption("BJU003"), tSession.UserId, tSession.UserName, ref sErrorMsg); if (!sErrorMsg.Equals("")) throw new Exception(sErrorMsg); } DialogOperationScript dos = new DialogOperationScript(this); dos.CloseSelf(); dos.Execute(); } protected void btnQX_Click(object sender, EventArgs e) { CloseWindow(); } #endregion #region 控件事件 protected void txtDCKJF_OnTextChanged(object sender, EventArgs e) { string sBJDID = PageParam.GetRTrimString("BJDID"); TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); TSQL SQL = new TSQL(dberp); SQL.Clear(); SQL.Add(@" select sum(case when XLXSBJDMX_JLDW in ('千米','Km','公里') then XLXSBJDMX_BJSL*1000 when XLXSBJDMX_JLDW in ('百米') then XLXSBJDMX_BJSL*100 else XLXSBJDMX_BJSL end) as BJSL,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS from XLXSBJDMX left join XLXHB on XLXSBJDMX_XLXHID=XLXHB_XLXHID left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID left join XLGGB on XLGGB_XLGGID= XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ=isnull(XLXHB_XLGGJDGZ,'0') left join XLXSBJXHML XHMLA on XHMLA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') left join XLXSBJXHML XHMLB on XHMLB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLB.XLXSBJXHML_DYDJID = ' ' left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLA.XLXSBJXHML_CPMLID,' ') end where XLXSBJDMX_BJDID=:pBJDID and (XLGGB_GGZXS=3 or XLGGB_GGZXS=1) and XLXSCPML_CPMLMC like '%中压%' group by XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID, XLXSBJDMX_DYDJID,XLGGB_GGZXS having (XLGGB_GGZXS = 3 AND SUM(XLXSBJDMX_BJSL) < 300) OR (XLGGB_GGZXS = 1 AND SUM(XLXSBJDMX_BJSL) < 500)"); SQL.ParamByName("pBJDID").Value = sBJDID; DataSet ds=dberp.OpenDataSet(SQL); double sumBJSL=0; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) sumBJSL += CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJSL"].ToString().Trim()); int iCount = ds.Tables[0].Rows.Count; txtZKJF.Value = iCount * txtDCKJF.Value; if(sumBJSL!=0) txtTSKJF.Value=NumberUtils.RoundX(iCount * txtDCKJF.Value/sumBJSL,2); txtBJSL.Value = sumBJSL; FormAreaUpdate(); Master_OnStandardQuery(null, null); } protected void chkTS_OnCheckedChanged(object sender, EventArgs e) { if (chkTS.Checked) chkFGGS.Checked = false; FormAreaUpdate(); Master_OnStandardQuery(null, null); } protected void chkFGGS_OnCheckedChanged(object sender, EventArgs e) { if (chkFGGS.Checked) chkTS.Checked = false; FormAreaUpdate(); Master_OnStandardQuery(null, null); } #endregion } }