Files
N_XLXSBJ----MX/XLBJDDBList.aspx.cs
2026-08-21 17:03:02 +08:00

1600 lines
76 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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_WORKFLOW;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO.Utility;
using System.Text;
using System.Collections.Generic;
using GThinking.N_CONTROL;
using System.Drawing;
using GThinking.N_MISPRO.TableCache;
using GThinking.N_PUBLIC;
namespace GThinking.N_XLXSBJ
{
public partial class XLBJDDBList : SingleGridBase
{
XLBJDDB entity = new XLBJDDB();
XLBJDDB_M queryentity = new XLBJDDB_M();
Dictionary<string, string> dicColoum = new Dictionary<string, string>();
int iXSWS = 5;
#region 页面事件
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860042;
this.UMName = "报价单对比分析";
this.CurMaster = Master;
this.ModuleGV = grdGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sQueryURLTarget = "XLBJDDBQuery.aspx";
this.PageHeight = 500;
this.PageWidth = 700;
base.DataKeyNames = new string[] { "XLXSBJDMX_XLXHID", "XLXSBJDMX_XLGGID", "XLXSBJDMX_DYDJID" };
SetControlState();
iXSWS = string.IsNullOrEmpty(GetOption(100860001, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860001, "BJU002"));
if (iXSWS < 0)
iXSWS = 0;
else if (iXSWS > 8)
iXSWS = 8;
if (!IsPostBack)
{
//CurQueryEntity.FieldByName("PXFS").Value = "0";
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (!IsPostBack)
{
if (base.IsDefaultExecute)
{
Master_OnStandardQuery(null, null);
}
else
{
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
Master_OnStandardQuery(null, null);
}
}
//设置隐藏控件IsXJY、IsSJY、IsHJY
IsXJY.Value = "N";
IsSJY.Value = "N";
IsHJY.Value = "N";
TYGXX tRYXX = TRYXX.GetRYXXByGH(tSession.UserId);
string sXJYROLEID = string.Empty;
string sSJYROLEID = string.Empty;
string sHJYROLEID = string.Empty;
XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000);
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XJYROLEID))
sXJYROLEID = pzxx.XLXSBJPZ_XJYROLEID;
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_SJYROLEID))
sSJYROLEID = pzxx.XLXSBJPZ_SJYROLEID;
if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_HJYROLEID))
sHJYROLEID = pzxx.XLXSBJPZ_HJYROLEID;
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sXJYROLEID), tRYXX.RYID)))
{
IsXJY.Value = "Y";
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sSJYROLEID), tRYXX.RYID)))
{
IsSJY.Value = "Y";
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sHJYROLEID), tRYXX.RYID)))
{
IsHJY.Value = "Y";
}
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string sBJDHQLJBM = GetBJDHQLJBM(PageParam.GetRTrimString("CXBJDID"));
if (!sBJDHQLJBM.Equals(""))
{
sBJDHQLJBM = sBJDHQLJBM + "追溯";
btnLJZS.Width = XLBJDUtils.GetBtnLength(ref sBJDHQLJBM, false);
btnLJZS.Caption = sBJDHQLJBM;
}
}
}
}
#endregion
#region 模板继承事件
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
entity.EntityTable.QuerySelSql = "select TOP 1 XLXSBJDMX_BJDID from XLXSBJDMX where 1<>1";
base.Master_OnStandardQuery(sender, e);
DataSet ds = GetDBMXDataSet();
entity.GridDataBind(grdGrid, tSession);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
entity.GridDataBind(grdGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdGrid.DataSource = ds;
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
string sBJSL = "";
string sBiaoJ = "";
string sBaoJ = "";
string sBJJE = "";
int totalColumns = grdGrid.Columns.Count;
sBJSL = CurQueryEntity.FieldByName("BJSL").Value.Trim().Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
sBiaoJ = CurQueryEntity.FieldByName("BiaoJ").Value.Trim().Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
sBaoJ = CurQueryEntity.FieldByName("BaoJ").Value.Trim().Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
sBJJE = CurQueryEntity.FieldByName("BJJE").Value.Trim().Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 10; i < totalColumns; i++)
{
if (((i - 3) % 5) == 2)
{
if (sBJSL == "相同")
{
if (e.Row.Cells[i].Text.Trim() == e.Row.Cells[5].Text.Trim()) {
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
else if (sBJSL == "不同")
{
if (e.Row.Cells[i].Text.Trim() != e.Row.Cells[5].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
}
else if (((i - 3) % 5) == 3)
{
if (sBiaoJ == "相同")
{
if (e.Row.Cells[i].Text.Trim() == e.Row.Cells[6].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
else if (sBiaoJ == "不同")
{
if (e.Row.Cells[i].Text.Trim() != e.Row.Cells[6].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
}
else if (((i - 3) % 5) == 4)
{
if (sBaoJ == "相同")
{
if (e.Row.Cells[i].Text.Trim() == e.Row.Cells[7].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
else if (sBaoJ == "不同")
{
if (e.Row.Cells[i].Text.Trim() != e.Row.Cells[7].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
}
else if (((i - 3) % 5) == 0)
{
if (sBJJE == "相同")
{
if (e.Row.Cells[i].Text.Trim() == e.Row.Cells[8].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
else if (sBJJE == "不同")
{
if (e.Row.Cells[i].Text.Trim() != e.Row.Cells[8].Text.Trim())
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Color, "#ff0000");
}
}
}
}
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
entity.EntityTable.QuerySelSql = "select TOP 1 XLXSBJDMX_BJDID from XLXSBJDMX where 1<>1";
grdGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
DataSet ds = GetDBMXDataSet();
entity.GridDataBind(grdGrid, tSession);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
entity.GridDataBind(grdGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdGrid.DataSource = ds;
}
protected override void ReportRecordSetAdd()
{
DataSet ds = GetDBMXDataSet();
AddUserReportDataSet("CX_XLXSBJDMX", ds);
DataSet DBBJDLIST = new DataSet("DBBJDLIST");
AddUserReportDataSet("DBBJDLIST", DBBJDLIST);
DataTable table = new DataTable("table");
table.Columns.Add("DBBJDID", typeof(string));
DBBJDLIST.Tables.Add(table);
DataRow row = table.NewRow();
if (txtDBBJDIDJL.Value.Equals(""))
{
row["DBBJDID"] = txtZBJDIDJL.Value;
}
else
{
row["DBBJDID"] = txtZBJDIDJL.Value + "," + txtDBBJDIDJL.Value;
}
table.Rows.Add(row);
base.ReportRecordSetAdd();
}
protected override void ReportDataSetAdd()
{
DataSet ds = GetDBMXDataSet();
for (int i = 0; i < grdGrid.Columns.Count; i++)
{
string sDataField = ((System.Web.UI.WebControls.BoundField)(grdGrid.Columns[i])).DataField.ToString().Trim();
string sHeaderText = grdGrid.Columns[i].HeaderText;
AddUserReportField("CX_XLXSBJDMX", sDataField, sHeaderText, "S");
}
AddUserReportField("DBBJDLIST", "DBBJDID", "对比报价单清单", "S");
base.ReportDataSetAdd();
}
#endregion
#region 自定义函数
private string GetBJDHQLJBM(string sCurBJDID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("SELECT XLXSBJFL_BJDHQLJBM FROM XLXSBJFL LEFT JOIN XLXSBJD ON XLXSBJD_BJFLID = XLXSBJFL_BJFLID AND XLXSBJD_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = sCurBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0]["XLXSBJFL_BJDHQLJBM"].ToString().Trim();
}
return "";
}
private void SetControlState()
{
this.CurMaster.EnableNewBtn = false;
this.CurMaster.EnableCopyBtn = false;
this.CurMaster.EnableEditBtn = false;
this.CurMaster.EnableDeleteBtn = false;
this.CurMaster.EnableWorkflowBtn = false;
this.CurMaster.EnableViewBtn = false;
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
btnZJEDB.Visible = true;
}
else
{
btnZJEDB.Visible = false;
}
btnLJZS.Visible = GetbtnLJZSXS();
if (!IsPostBack)
{
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string[] arrList = PageParam.GetRTrimString("CXBJDID").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
txtZBJDIDJL.Value = arrList[0];
txtDBBJDIDJL.Value = string.Join(",", arrList, 1, arrList.Length - 1) ;
}
}
}
private bool GetbtnLJZSXS()
{
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string sCurBJDID = "";
string sBJFLID = "";
string sWPID = "";
string sSQRID = "";
string[] sTemp = PageParam.GetRTrimString("CXBJDID").Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (sTemp.Length > 0)
{
sCurBJDID = sTemp[0].ToString().Trim();
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("SELECT XLXSBJD_BJFLID,XLXSBJD_WPID,XLXSBJD_SQRID FROM XLXSBJD WHERE XLXSBJD_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = sCurBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim();
sWPID = ds.Tables[0].Rows[0]["XLXSBJD_WPID"].ToString().Trim();
sSQRID = ds.Tables[0].Rows[0]["XLXSBJD_SQRID"].ToString().Trim();
}
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
string sJLRBJCP = bjflxx.XLXSBJFL_JLRBJCP;
string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFLID, IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"),IsHJY.Value.Equals("Y"));
if (bjflxx.XSBJDHQLJ() && CheckModule("100860044"))
{
if (sWPID.Equals(""))//新建
{
if (sJLRBJCP.Equals("Y"))
{
return false;
}
}
else
{
string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sWPID);
if (sBZSW.Equals("0010"))
{
if (sJLRBJCP.Equals("Y"))
{
return false;
}
}
else
{
if (sSQRID.Equals(tSession.RYID.Trim()))
{
//单据不在第一步0010环节,报价申请人只允许比第一步时多看到“报价”、“报价金额”两个栏目,“报价数量”至“备注”之间的其他栏目仍然控制隐藏。
if (sJLRBJCP.Equals("Y"))
{
return false;
}
}
}
}
if (!sJLRBJCP.Equals("Y"))
{
if (bjflxx.XSBJDHQLJ())
{
return true;
}
else
{
return false;
}
}
#region 按角色隐藏栏目
//获取需要按角色隐藏的栏目ID列表
if (!sHidJSLMList.Trim().Equals(""))
{
string[] sHidJSLMs = sHidJSLMList.Split(',');
for (int i = 0; i < sHidJSLMs.Length; i++)
{
string sLMID = sHidJSLMs[i].Trim();
if (sLMID.Equals("btnLJ"))
return false;
}
}
#endregion
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
private DataSet GetDBMXDataSet()
{
base.InitEntityByCondition();
string sData = "";
string BJD = "";
string BJDLIST = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string temp = "";
if (txtZBJDIDJL.Value.Equals(""))
{
ShowMessage("请选择主报价单后再查询!");
return new DataSet();
}
if (txtDBBJDIDJL.Value.Equals(""))
{
temp = txtZBJDIDJL.Value;
}
else
{
temp = txtZBJDIDJL.Value + "," + txtDBBJDIDJL.Value;
}
string[] arr = temp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string queryBJD = @" select
b.XH,b.XLXSBJDMX_XLXHID,b.XLXSBJDMX_XLGGID,
rtrim(b.XLXSBJDMX_XLBZID)+'|'+rtrim(XLBZ_XLBZLXMC) as XLBZID,
case when b.ID=1 then b.XLXSBJDMX_DYDJID when b.ID=2 then '合计' end as XLXSBJDMX_DYDJID,
b.BJSL,b.JGBBJ,b.CPBJ,b.BJJE ";
string queryBJDtemp = "";
for (int i = 1; i < arr.Length; i++)
{
queryBJDtemp = " ,b.XH0{0},b.BJSL0{0},b.JGBBJ0{0},b.CPBJ0{0},b.BJJE0{0} ";
queryBJDtemp = string.Format(queryBJDtemp, i.ToString());
queryBJD = queryBJD + queryBJDtemp;
}
queryBJD = queryBJD + " from (select IDX_ID as ID, ";
queryBJDtemp = @" case when IDX_ID=1 then a.XH when IDX_ID=2 then 0 end as XH,
case when IDX_ID=1 then a.XLXSBJDMX_XLXHID when IDX_ID=2 then '' end as XLXSBJDMX_XLXHID,
case when IDX_ID=1 then a.XLXSBJDMX_XLGGID when IDX_ID=2 then '' end as XLXSBJDMX_XLGGID,
case when IDX_ID=1 then a.XLXSBJDMX_DYDJID when IDX_ID=2 then '' end as XLXSBJDMX_DYDJID,
case when IDX_ID=1 then a.XLXSBJDMX_XLBZID when IDX_ID=2 then '' end as XLXSBJDMX_XLBZID,
sum(a.BJSL) as BJSL,
sum(case when IDX_ID=1 then a.JGBBJ else 0 end) as JGBBJ,
sum(case when IDX_ID=1 then a.CPBJ else 0 end) as CPBJ,
sum(a.BJJE) as BJJE ";
queryBJD = queryBJD + queryBJDtemp;
for (int i = 1; i < arr.Length; i++)
{
queryBJDtemp = @" ,case when IDX_ID=1 then a.XH0{0} when IDX_ID=2 then 0 end as XH0{0},
sum(a.BJSL0{0}) as BJSL0{0},
sum(case when IDX_ID=1 then a.JGBBJ0{0} else 0 end) as JGBBJ0{0},
sum(case when IDX_ID=1 then a.CPBJ0{0} else 0 end) as CPBJ0{0},
sum(a.BJJE0{0}) as BJJE0{0} ";
queryBJDtemp = string.Format(queryBJDtemp, i.ToString());
queryBJD = queryBJD + queryBJDtemp;
}
queryBJD = queryBJD + @" from ( select
a0.XLXSBJDMX_XH as XH,
a0.XLXSBJDMX_XLXHID ,
a0.XLXSBJDMX_XLGGID ,
a0.XLXSBJDMX_DYDJID ,
a0.XLXSBJDMX_XLBZID ,
a0.XLXSBJDMX_BJSL as BJSL,
a0.XLXSBJDMX_JGBBJ as JGBBJ,
a0.XLXSBJDMX_CPBJ as CPBJ,
a0.XLXSBJDMX_BJJE as BJJE ";
for (int i = 1; i < arr.Length; i++)
{
queryBJDtemp = @" ,isnull(a{0}.XLXSBJDMX_XH,0) as XH0{0},
isnull(a{0}.XLXSBJDMX_BJSL,0) as BJSL0{0},
isnull(a{0}.XLXSBJDMX_JGBBJ,0) as JGBBJ0{0},
isnull(a{0}.XLXSBJDMX_CPBJ,0) as CPBJ0{0},
isnull(a{0}.XLXSBJDMX_BJJE,0) as BJJE0{0} ";
queryBJDtemp = string.Format(queryBJDtemp, i.ToString());
queryBJD = queryBJD + queryBJDtemp;
}
queryBJD = queryBJD + " from ( ";
BJD = @"SELECT
XLXSBJDMX_XH,
XLXSBJDMX_XLXHID,
XLXSBJDMX_XLGGID,
XLXSBJDMX_DYDJID,
XLXSBJDMX_XLBZID,
XLXSBJDMX_BJSL,
XLXSBJDMX_JGBBJ,
XLXSBJDMX_CPBJ,
XLXSBJDMX_BJJE,
ROW_NUMBER() OVER(PARTITION BY XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLBZID ORDER BY XLXSBJDMX_XH) AS XH
FROM XLXSBJDMX
WHERE XLXSBJDMX_BJDID = '{0}'
) a0";
BJDLIST = BJDLIST + string.Format(BJD, arr[0]);
for (int i = 1; i < arr.Length; i++)
{
BJD = @" left join (
SELECT
XLXSBJDMX_XH,
XLXSBJDMX_XLXHID,
XLXSBJDMX_XLGGID,
XLXSBJDMX_DYDJID,
XLXSBJDMX_XLBZID,
XLXSBJDMX_BJSL,
XLXSBJDMX_JGBBJ,
XLXSBJDMX_CPBJ,
XLXSBJDMX_BJJE,
ROW_NUMBER()
OVER(
PARTITION BY
XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLBZID ORDER BY XLXSBJDMX_XH) AS XH
FROM XLXSBJDMX
WHERE XLXSBJDMX_BJDID = '{0}'
) a{1}
ON a{1}.XLXSBJDMX_XLXHID =a0.XLXSBJDMX_XLXHID
and a{1}.XLXSBJDMX_XLGGID=a0.XLXSBJDMX_XLGGID
and a{1}.XLXSBJDMX_DYDJID=a0.XLXSBJDMX_DYDJID
and a{1}.XLXSBJDMX_XLBZID=a0.XLXSBJDMX_XLBZID
AND a{1}.XH = a0.XH";
BJDLIST = BJDLIST + string.Format(BJD, arr[i], i.ToString());
}
BJDLIST = BJDLIST + " ) a,IDX where IDX_ID>=1 and IDX_ID<=2 group by IDX_ID, ";
BJDLIST= BJDLIST+@"case when IDX_ID=1 then a.XH when IDX_ID=2 then 0 end,
case when IDX_ID=1 then a.XLXSBJDMX_XLXHID when IDX_ID=2 then '' end,
case when IDX_ID=1 then a.XLXSBJDMX_XLGGID when IDX_ID=2 then '' end,
case when IDX_ID=1 then a.XLXSBJDMX_DYDJID when IDX_ID=2 then '' end,
case when IDX_ID=1 then a.XLXSBJDMX_XLBZID when IDX_ID=2 then '' end ";
for (int i = 1; i < arr.Length; i++)
{
BJD = " ,case when IDX_ID=1 then a.XH0{0} when IDX_ID=2 then 0 end ";
BJD = string.Format(BJD, i.ToString());
BJDLIST = BJDLIST + BJD;
}
BJDLIST = BJDLIST + " ) b left join XLBZ on XLBZ_XLBZID=b.XLXSBJDMX_XLBZID order by ID,XH ";
queryBJD = queryBJD + BJDLIST;
SQL.Add(queryBJD);
DataSet dsQry = dberp.OpenDataSet(SQL);
string sKHMsg = "";
sData = "XH";
AddColumn(sData, arr[0], 0, 80, true, false, sKHMsg);
sData = "BJSL";
AddColumn(sData, "报价数量", 3, 80, true, false, sKHMsg);
sData = "JGBBJ";
AddColumn(sData, "表价", iXSWS, 80, true, false, sKHMsg);
sData = "CPBJ";
AddColumn(sData, "报价", iXSWS, 80, true, false, sKHMsg);
sData = "BJJE";
AddColumn(sData, "报价金额", iXSWS, 80, true, false, sKHMsg);
for (int i = 1; i < arr.Length; i++)
{
sData = "XH0{0}";
sData = string.Format(sData, i.ToString());
AddColumn(sData, arr[i], 0, 80, true, false, sKHMsg);
sData = "BJSL0{0}";
sData = string.Format(sData, i.ToString());
AddColumn(sData, "报价数量", 3, 80, true, false, sKHMsg);
sData = "JGBBJ0{0}";
sData = string.Format(sData, i.ToString());
AddColumn(sData, "表价", iXSWS, 80, true, false, sKHMsg);
sData = "CPBJ0{0}";
sData = string.Format(sData, i.ToString());
AddColumn(sData, "报价", iXSWS, 80, true, false, sKHMsg);
sData = "BJJE0{0}";
sData = string.Format(sData, i.ToString());
AddColumn(sData, "报价金额", iXSWS, 80, true, false, sKHMsg);
}
return dsQry;
}
private DataSet GetSQLDataSet()
{
base.InitEntityByCondition();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "";
string sDYDJID = "";
Dictionary<string, string> dicBJDHQCLCB = new Dictionary<string, string>();
Dictionary<string, string> dicCLCBJCL = new Dictionary<string, string>();
//因子值拼接列10个因子+调整报价%
string sYZZList = "";
//存储查询调价的报价单/参数传过来的报价单
string temp = "";
dicColoum.Clear();
dicBJDHQCLCB.Clear();
dicCLCBJCL.Clear();
//比对报价单按钮过来的当前报价单
//用于匹配时,固定当前报价单ID
string sCurBJDID = "";
//比对报价单按钮过来的除当前报价单之外的报价单
string sLevBJDID = "";
//比对报价单按钮过来的单独处理
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string[] sTemp = PageParam.GetRTrimString("CXBJDID").Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (sTemp.Length > 0)
{
sCurBJDID = sTemp[0].ToString().Trim();
for (int i = 1; i < sTemp.Length; i++)
{
sLevBJDID += sTemp[i].ToString().Trim() + ",";
}
sLevBJDID = sLevBJDID.TrimEnd(',');
}
}
temp = CurQueryEntity.FieldByName("DBBJDID").Value.Trim().Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "");
//构建基本的dsQry----型号,规格,标准,电压等级
SQL.Clear();
SQL.Add(" select '1' AS PX,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID, RTRIM(XLXSBJDMX_XLBZID) || '|' || RTRIM(XLBZ_XLBZLXMC) AS XLBZID,XLXSBJDMX_DYDJID,min(XLGGB_XH) as minXH ");
SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID ");
SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID ");
SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID ");
SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID ");
SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') ");
SQL.Add(" where 1 =1 ");
//SQL.Add(" and isnull(XLXSBJD_KH, ' ') <> ' ' ");
if (temp != "")
{
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_BJDID", temp));
}
SQL.Add(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLBZ_XLBZLXMC ");
SQL.Add(" UNION ALL ");
SQL.Add(" select '2' AS PX,' ' AS XLXSBJDMX_XLXHID,' ' AS XLXSBJDMX_XLGGID,' ' AS XLXSBJDMX_XLBZID, ' ' AS XLBZID,' ' AS XLXSBJDMX_DYDJID,0 as minXH ");
SQL.Add(" order by PX,XLXSBJDMX_XLXHID,minXH,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID ");
string s = SQL.Text;
DataSet dsQry = dberp.OpenDataSet(SQL);
//添加序号栏
dsQry.Tables[0].Columns.Add("XLXSBJDMX_XH");
//添加维度
string sData = "";
string sKHMsg = "";
if (!sCurBJDID.Equals(""))
{
SQL.Clear();
SQL.Add(" select XLXSBJD_KH,XLXSBJD_BJDID,XLXSBJD_BZ,XLXSBJD_BJFLID,XLXSBJD_WPID,XLXSBJD_SQRID from XLXSBJD ");
SQL.Add(" where 1 =1 ");
//SQL.Add(" and isnull(XLXSBJD_KH, ' ') <> ' ' ");
//temp = CurQueryEntity.FieldByName("DBBJDID").Value.Trim();
if (temp != "")
{
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sCurBJDID));
}
SQL.Add(" order by XLXSBJD_BJRQ desc,XLXSBJD_BJDID desc ");
DataSet dsKH = dberp.OpenDataSet(SQL);
if (dsKH.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsKH.Tables[0].Rows.Count; i++)
{
if (!dicColoum.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicColoum.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), i.ToString().Trim());
}
//添加客户列
sData = "KH_" + i.ToString().Trim();
//添加悬浮提示信息
sKHMsg = dsKH.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BZ"].ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, sKHMsg, 100, false);
Dictionary<string, string> dicXSCLCB = XSCLCB(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_WPID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_SQRID"].ToString().Trim());
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim());
if (!dicBJDHQCLCB.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicBJDHQCLCB.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim());
}
if (!dicCLCBJCL.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicCLCBJCL.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim());
}
sData = "XLXSBJDMX_XSSX_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), 0, 80, true, false, sKHMsg);
sData = "XLXSBJDMX_BJSL_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
//报价数量小数位数不确定
AddColumn(sData, "报价数量", 3, 80, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_BJDHQCLCB_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJDHQLJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJDHQLJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价单行情料价", iXSWS, 120, true, false, sKHMsg);
}
sData = "XLXSBJDMX_JGBBJ_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_JGBBJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_JGBBJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "表价", iXSWS, 120, true, false, sKHMsg);
sData = "YZZ_List_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, "报价单因子&调整报价", 170, true);
sData = "XLXSBJDMX_CPBJ_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价", iXSWS, 120, true, false, sKHMsg);
sData = "XLXSBJDMX_BJJE_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM + "金额", iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价金额", iXSWS, 120, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_CLCBJCL_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, "料价价差率(%)", 2, 120, true, false, sKHMsg);
}
}
}
//处理其他
SQL.Clear();
SQL.Add(" select XLXSBJD_KH,XLXSBJD_BJDID,XLXSBJD_BZ,XLXSBJD_BJFLID,XLXSBJD_WPID,XLXSBJD_SQRID from XLXSBJD ");
SQL.Add(" where 1 =1 ");
//SQL.Add(" and isnull(XLXSBJD_KH, ' ') <> ' ' ");
//temp = CurQueryEntity.FieldByName("DBBJDID").Value.Trim();
if (temp != "")
{
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", sLevBJDID));
}
SQL.Add(" order by XLXSBJD_BJRQ desc,XLXSBJD_BJDID desc ");
dsKH = dberp.OpenDataSet(SQL);
if (dsKH.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dsKH.Tables[0].Rows.Count; i++)
{
if (!dicColoum.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicColoum.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), (i+1).ToString().Trim());
}
//添加客户列
sData = "KH_" + (i + 1).ToString().Trim();
sKHMsg = dsKH.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BZ"].ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, sKHMsg, 100, false);
Dictionary<string, string> dicXSCLCB = XSCLCB(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_WPID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_SQRID"].ToString().Trim());
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim());
if (!dicBJDHQCLCB.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicBJDHQCLCB.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim());
}
if (!dicCLCBJCL.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicCLCBJCL.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim());
}
sData = "XLXSBJDMX_XSSX_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), 0, 80, true, false, sKHMsg);
sData = "XLXSBJDMX_BJSL_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
//报价数量小数位数不确定
AddColumn(sData, "报价数量", 3, 80, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_BJDHQCLCB_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJDHQLJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJDHQLJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价单行情料价", iXSWS, 120, true, false, sKHMsg);
}
sData = "XLXSBJDMX_JGBBJ_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_JGBBJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_JGBBJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "表价", iXSWS, 120, true, false, sKHMsg);
sData = "XLXSBJDMX_CPBJ_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价", iXSWS, 120, true, false, sKHMsg);
sData = "XLXSBJDMX_BJJE_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM + "金额", iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价金额", iXSWS, 120, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_CLCBJCL_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, "料价价差率(%)", 2, 120, true, false, sKHMsg);
}
sData = "XLXSBJDMX_CPBJJCL_" + (i + 1).ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, "报价价差率(%)", 2, 120, true, false, sKHMsg);
}
}
}
else
{
SQL.Clear();
SQL.Add(" select XLXSBJD_KH,XLXSBJD_BJDID,XLXSBJD_BZ,XLXSBJD_BJFLID,XLXSBJD_WPID,XLXSBJD_SQRID from XLXSBJD ");
SQL.Add(" where 1 =1 ");
//SQL.Add(" and isnull(XLXSBJD_KH, ' ') <> ' ' ");
//temp = CurQueryEntity.FieldByName("DBBJDID").Value.Trim();
if (temp != "")
{
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_BJDID", temp));
}
SQL.Add(" order by XLXSBJD_BJRQ desc,XLXSBJD_BJDID desc ");
DataSet dsKH = dberp.OpenDataSet(SQL);
for (int i = 0; i < dsKH.Tables[0].Rows.Count; i++)
{
if (!dicColoum.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicColoum.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), i.ToString().Trim());
}
//添加客户列
sData = "KH_" + i.ToString().Trim();
sKHMsg = dsKH.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "|"
+ dsKH.Tables[0].Rows[i]["XLXSBJD_BZ"].ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, sKHMsg, 100, false);
Dictionary<string, string> dicXSCLCB = XSCLCB(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_WPID"].ToString().Trim(), dsKH.Tables[0].Rows[i]["XLXSBJD_SQRID"].ToString().Trim());
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(dsKH.Tables[0].Rows[i]["XLXSBJD_BJFLID"].ToString().Trim());
if (!dicBJDHQCLCB.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicBJDHQCLCB.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim());
}
if (!dicCLCBJCL.ContainsKey(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim()))
{
dicCLCBJCL.Add(dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim());
}
sData = "XLXSBJDMX_XSSX_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, dsKH.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(), 0, 80, true, false, sKHMsg);
sData = "XLXSBJDMX_BJSL_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
//报价数量小数位数不确定
AddColumn(sData, "报价数量", 3, 80, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_BJDHQCLCB"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_BJDHQCLCB_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJDHQLJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJDHQLJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价单行情料价", iXSWS, 120, true, false, sKHMsg);
}
sData = "XLXSBJDMX_JGBBJ_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_JGBBJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_JGBBJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "表价", iXSWS, 120, true, false, sKHMsg);
sData = "XLXSBJDMX_CPBJ_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM, iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价", iXSWS, 120, true, false, sKHMsg);
sData = "XLXSBJDMX_BJJE_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
if (!bjflxx.XLXSBJFL_BJBM.Equals(""))
AddColumn(sData, bjflxx.XLXSBJFL_BJBM + "金额", iXSWS, 120, true, false, sKHMsg);
else
AddColumn(sData, "报价金额", iXSWS, 120, true, false, sKHMsg);
if (dicXSCLCB["XLXSBJDMX_CLCBJCL"].Trim().Equals("Y"))
{
sData = "XLXSBJDMX_CLCBJCL_" + i.ToString().Trim();
dsQry.Tables[0].Columns.Add(sData);
AddColumn(sData, "料价价差率(%)", 2, 120, true, false, sKHMsg);
}
}
}
//添加数据信息
//double sBJDHQCLCB = 0;
//double sCPBJ = 0;
//double sCLCBJCL = 0;
//string sKH = "";
SQL.Clear();
SQL.Add(" select XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CPBJ,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,XLXSBJDMX_BJJE,XLXSBJDMX_CLCBJCL,");
SQL.Add(" XLXSBJDMX_BJDID,XLXSBJD_KH,");
SQL.Add(" XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, ");
SQL.Add(" XLXSBJDYZZ0_YZZ01, XLXSBJDYZZ0_YZZ02, XLXSBJDYZZ0_YZZ03, XLXSBJDYZZ0_YZZ04, XLXSBJDYZZ0_YZZ05, ");
SQL.Add(" XLXSBJDYZZ0_YZZ06, XLXSBJDYZZ0_YZZ07, XLXSBJDYZZ0_YZZ08, XLXSBJDYZZ0_YZZ09, XLXSBJDYZZ0_YZZ10, ");
SQL.Add(" XLXSBJDYZZ0_YZZ11, XLXSBJDYZZ0_YZZ12, XLXSBJDYZZ0_YZZ13, XLXSBJDYZZ0_YZZ14, XLXSBJDYZZ0_YZZ15, ");
SQL.Add(" XLXSBJDYZZ0_YZZ16, XLXSBJDYZZ0_YZZ17, XLXSBJDYZZ0_YZZ18, XLXSBJDYZZ0_YZZ19, XLXSBJDYZZ0_YZZ20, ");
SQL.Add(" XLXSBJDMX_TZCPBJ,XLXSBJDMX_XH,XLXSBJDMX_XSSX ");
SQL.Add(" from XLXSBJDMX ");
//SQL.Add(" from XLXSBJDMX ");
SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID ");
SQL.Add(" left join XLXSBJDYZZ0 ON XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID AND XLXSBJDYZZ0_XH = XLXSBJDMX_XH ");
SQL.Add(" where 1 =1 ");
//SQL.Add(" and isnull(XLXSBJD_KH, ' ') <> ' ' ");
//temp = CurQueryEntity.FieldByName("DBBJDID").Value.Trim();
if (temp != "")
{
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_BJDID", temp));
}
DataSet dsData = dberp.OpenDataSet(SQL);
int len = dsQry.Tables[0].Rows.Count - 1;
dsQry.Tables[0].Rows[len]["XLXSBJDMX_DYDJID"] = "合计";
//循环dsQry,从dsData中匹配数据进行添加
for (int k = 0; k < dsQry.Tables[0].Rows.Count-1; k++)
{
sXLXHID = dsQry.Tables[0].Rows[k]["XLXSBJDMX_XLXHID"].ToString().Trim();
sXLGGID = dsQry.Tables[0].Rows[k]["XLXSBJDMX_XLGGID"].ToString().Trim();
sXLBZID = dsQry.Tables[0].Rows[k]["XLXSBJDMX_XLBZID"].ToString().Trim();
sDYDJID = dsQry.Tables[0].Rows[k]["XLXSBJDMX_DYDJID"].ToString().Trim();
//匹配数据
for (int i = 0; i < dsData.Tables[0].Rows.Count; i++)
{
if (sXLXHID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim())
&& sXLGGID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim())
&& sXLBZID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim())
&& sDYDJID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim()))
{
if (dicColoum.ContainsKey(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()))
{
//dsQry.Tables[0].Rows[k]["KH_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim();
dsQry.Tables[0].Rows[k]["XLXSBJDMX_BJSL_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = (CMISproConvert.StrToFloat(dsQry.Tables[0].Rows[k]["XLXSBJDMX_BJSL_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]].ToString()) +CMISproConvert.StrToFloat(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim())).ToString();
dsQry.Tables[0].Rows[len]["XLXSBJDMX_BJSL_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = (CMISproConvert.StrToFloat(dsQry.Tables[0].Rows[len]["XLXSBJDMX_BJSL_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]].ToString()) + CMISproConvert.StrToFloat(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim())).ToString();
if (dicBJDHQCLCB[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()].Trim().Equals("Y"))
dsQry.Tables[0].Rows[k]["XLXSBJDMX_BJDHQCLCB_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDHQCLCB"].ToString().Trim();
dsQry.Tables[0].Rows[k]["XLXSBJDMX_JGBBJ_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_JGBBJ"].ToString().Trim();
dsQry.Tables[0].Rows[k]["XLXSBJDMX_CPBJ_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_CPBJ"].ToString().Trim();
dsQry.Tables[0].Rows[k]["XLXSBJDMX_BJJE_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim();
dsQry.Tables[0].Rows[k]["XLXSBJDMX_XSSX_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim();
dsQry.Tables[0].Rows[len]["XLXSBJDMX_BJJE_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = (CMISproConvert.StrToFloat(dsQry.Tables[0].Rows[len]["XLXSBJDMX_BJJE_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]].ToString()) + CMISproConvert.StrToFloat(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim())).ToString();
if (dicCLCBJCL[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()].Trim().Equals("Y"))
dsQry.Tables[0].Rows[k]["XLXSBJDMX_CLCBJCL_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = dsData.Tables[0].Rows[i]["XLXSBJDMX_CLCBJCL"].ToString().Trim();
//增补当前报价单的因子
if (sCurBJDID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()))
{
sYZZList = dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ01"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ02"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ03"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ04"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ05"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ06"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ07"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ08"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ09"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ10"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ11"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ12"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ13"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ14"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ15"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ16"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ17"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ18"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ19"].ToString().Trim()
+ "|" + dsData.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ20"].ToString().Trim()
+ "&" + dsData.Tables[0].Rows[i]["XLXSBJDMX_TZCPBJ"].ToString().Trim();
dsQry.Tables[0].Rows[k]["YZZ_List_" + dicColoum[dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()]] = sYZZList;
}
}
if (sCurBJDID.Equals(dsData.Tables[0].Rows[i]["XLXSBJDMX_BJDID"].ToString().Trim()))
{
dsQry.Tables[0].Rows[k]["XLXSBJDMX_XH"] = dsData.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim();
}
}
}
}
if (!sCurBJDID.Equals(""))
{
double fCurCPBJ = 0.0;
double fCPBJJCL = 0.0;
//循环dsQry,处理报价单的对比报价价差率=(1-A报价/B报价)%;
for (int i = 0; i < dsQry.Tables[0].Rows.Count; i++)
{
fCurCPBJ = CMISproConvert.StrToFloat(dsQry.Tables[0].Rows[i]["XLXSBJDMX_CPBJ_0"].ToString().Trim());
for (int j = 0; j < dsQry.Tables[0].Columns.Count; j++)
{
fCPBJJCL = 0;
string SS = dsQry.Tables[0].Columns[j].ToString().Trim();
if (dsQry.Tables[0].Columns[j].ToString().Trim().IndexOf("XLXSBJDMX_CPBJ_") >= 0 && !dsQry.Tables[0].Columns[j].ToString().Trim().Equals("XLXSBJDMX_CPBJ_0"))
{
if(!dsQry.Tables[0].Rows[i][j].ToString().Trim().Equals(""))
{
fCPBJJCL = 1 - fCurCPBJ / (CMISproConvert.StrToFloat(dsQry.Tables[0].Rows[i][j].ToString()));
}
dsQry.Tables[0].Rows[i][dsQry.Tables[0].Columns[j].ToString().Trim().Replace("CPBJ", "CPBJJCL")] = fCPBJJCL * 100;
}
}
}
}
return dsQry;
}
private Dictionary<string,string> XSCLCB(string sBJFLID, string sWPID, string sSQRID)
{
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID);
string sXSBJDHQCLCB = "";
string sXSCLCBJCL = "";
string sJLRBJCP = bjflxx.XLXSBJFL_JLRBJCP;
string sHidJSLMList = XLBJDUtils.GetHidJSLMList(sBJFLID, IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"),IsHJY.Value.Equals("Y"));
if (bjflxx.XSBJDHQLJ())
{
sXSBJDHQCLCB = "Y";
}
else
sXSBJDHQCLCB = "N";
//显示料价价差率
if (bjflxx.XSLJJCL())
{
sXSCLCBJCL = "Y";
}
else
sXSCLCBJCL = "N";
if (sWPID.Equals(""))//新建
{
if (sJLRBJCP.Equals("Y"))
{
sXSBJDHQCLCB = "N";
sXSCLCBJCL = "N";
}
}
else
{
string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sWPID);
if (sBZSW.Equals("0010"))
{
if (sJLRBJCP.Equals("Y"))
{
sXSBJDHQCLCB = "N";
sXSCLCBJCL = "N";
}
}
else
{
if (sSQRID.Trim().Equals(tSession.RYID.Trim()))
{
//单据不在第一步0010环节,报价申请人只允许比第一步时多看到“报价”、“报价金额”两个栏目,“报价数量”至“备注”之间的其他栏目仍然控制隐藏。
if (sJLRBJCP.Equals("Y"))
{
sXSBJDHQCLCB = "N";
sXSCLCBJCL = "N";
}
}
}
}
#region 按角色隐藏栏目
//获取需要按角色隐藏的栏目ID列表
if (!sHidJSLMList.Trim().Equals(""))
{
string[] sHidJSLMs = sHidJSLMList.Split(',');
for (int i = 0; i < sHidJSLMs.Length; i++)
{
string sLMID = sHidJSLMs[i].Trim();
switch (sLMID)
{
case "XLXSBJDMX_BJDHQCLCB":
sXSBJDHQCLCB = "N";
break;
case "XLXSBJDMX_CLCBJCL":
sXSCLCBJCL = "N";
break;
}
}
}
#endregion
Dictionary<string, string> dicXSCLCB = new Dictionary<string, string>();
dicXSCLCB.Clear();
dicXSCLCB.Add("XLXSBJDMX_BJDHQCLCB", sXSBJDHQCLCB);
dicXSCLCB.Add("XLXSBJDMX_CLCBJCL", sXSCLCBJCL);
return dicXSCLCB;
}
/// <summary>
/// 设置etNumber列的属
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="NumberDecimalPlace"></param>
/// <param name="Width"></param>
private void AddColumn(string sDataField, string HeadText, int NumberDecimalPlace, int Width, bool ShowSubBit, bool ShowZero, string sHintTitle)
{
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;
grdGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etNumber;
ColumnEx.NumberDecimalPlace = NumberDecimalPlace;
ColumnEx.ShowSubBit = ShowSubBit;
ColumnEx.ShowZero = ShowZero;
ColumnEx.ShowHint = true;
ColumnEx.HintTitle = sHintTitle;
grdGrid.ColumnsEx.Insert(0, ColumnEx);
}
/// <summary>
/// 设置etString列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="Width"></param>
private void AddColumn(string sDataField, string HeadText, int Width, bool bVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = (Unit)Width;
Column.HeaderStyle.Width = (Unit)Width;
Column.Visible = bVisible;
grdGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
grdGrid.ColumnsEx.Insert(0, ColumnEx);
}
//判断模块是否存在并且是否有权限
private bool CheckModule(string sUMID)
{
int iUMID = CMISproConvert.StrToInt(sUMID);
UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID);
return (DSActiveModule.IsActiveModule(iUMID) && UR.Open);
}
#endregion
#region 控件事件
protected void btnZJEDB_Click(object sender, EventArgs e)
{
//比对报价单按钮过来的当前报价单
//用于匹配时,固定当前报价单ID
string sCurBJDID = "";
//比对报价单按钮过来的除当前报价单之外的报价单
string sLevBJDID = "";
//比对报价单按钮过来的单独处理
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string[] sTemp = PageParam.GetRTrimString("CXBJDID").Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (sTemp.Length > 0)
{
sCurBJDID = sTemp[0].ToString().Trim();
for (int i = 1; i < sTemp.Length; i++)
{
sLevBJDID += sTemp[i].ToString().Trim() + ",";
}
sLevBJDID = sLevBJDID.TrimEnd(',');
}
}
// SQL.Add(" order by XLXSBJD_BJRQ desc,XLXSBJD_BJDID desc ");
TPageParams param = new TPageParams();
param.UrlPath = "XLBJDDB_ZJEList.aspx";
param.AddString("CurBJDID", sCurBJDID);
param.AddString("LevBJDID", sLevBJDID);
OpenDialog(param);
}
protected void btnZBJD_Click(object sender, EventArgs e)
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_BDBJSelList.aspx"; // 弹框页面
pageParams.Title = "选择主报价单";
pageParams.AddString("txtZBJDIDJL", txtZBJDIDJL.ClientID);
pageParams.AddString("BJDLX", "ZBJD");
pageParams.AddString("txtBJFLID", txtBJFLID.ClientID);
pageParams.AddString("txtKH", txtKH.ClientID);
pageParams.AddString("txtXM", txtXM.ClientID);
pageParams.AddString("txtOPEN", txtOPEN.ClientID);
OpenFuncModuleDialog(100860000, pageParams, btnOPEN.ClientID);
}
protected void btnDBBJD_Click(object sender, EventArgs e)
{
string BJFLID="";
string KH="";
string XM="";
if (txtZBJDIDJL.Value.Equals(""))
{
ShowMessage("请先选择主报价单!");
return;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("SELECT XLXSBJD_BJFLID, XLXSBJD_KH, XLXSBJD_XMMC ");
SQL.Add("FROM XLXSBJD ");
SQL.Add("WHERE XLXSBJD_BJDID = :pBJDID");
SQL.ParamByName("pBJDID").Value = txtZBJDIDJL.Value;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
BJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim();
KH = ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim();
XM = ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim();
}
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_BDBJSelList.aspx"; // 弹框页面
pageParams.Title = "选择对比报价单";
pageParams.AddString("txtDBBJDIDJL", txtDBBJDIDJL.ClientID);
pageParams.AddString("BJDLX", "DBBJD");
pageParams.AddString("txtBJFLID", BJFLID);
pageParams.AddString("txtKH", KH);
pageParams.AddString("txtXM", XM);
pageParams.AddString("txtOPEN", txtOPEN.ClientID);
OpenFuncModuleDialog(100860000, pageParams, btnOPEN.ClientID);
}
protected void btnZBJD_DropDown(object sender, EventArgs e)
{
string zbjdList = "";
btnZBJD.Nodes.Clear();
zbjdList = txtZBJDIDJL.Value;
if (zbjdList!="")
btnZBJD.Nodes.Add(new GThinking.N_CONTROL.gtTreeNode(zbjdList, zbjdList));
MenuAreaUpdate();
}
protected void btnDBBJD_DropDown(object sender, EventArgs e)
{
string dbbjdList="";
btnDBBJD.Nodes.Clear();
dbbjdList = txtDBBJDIDJL.Value;
string[] arrList = dbbjdList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < arrList.Length; i++)
{
btnDBBJD.Nodes.Add(new GThinking.N_CONTROL.gtTreeNode(arrList[i], arrList[i]));
btnDBBJD.Nodes.Add(new GThinking.N_CONTROL.gtTreeNode(i.ToString(),"切换为主报价单", arrList[i]));
}
MenuAreaUpdate();
}
protected void btnZBJD_MenuItemClick(object sender, string sValue)
{
string sBJDID = sValue.Trim();
string sWFID = "";
string sWFINST = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" SELECT XLXSBJD_BJDID,XLXSBJD_WFID,XLXSBJD_WFINST FROM XLXSBJD WHERE XLXSBJD_BJDID = :pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
sWFID = ds.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim();
sWFINST = ds.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString().Trim();
}
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJDInfo.aspx";
tpp.AddString("XLXSBJD_BJDID", sBJDID);
tpp.AddString("WFID", sWFID);
tpp.AddString("WFINST", sWFINST);
tpp.CallAction = TPageCallAction.pcaBrowse;
OpenFuncModuleDialog(100860000, tpp);
}
protected void btnDBBJD_MenuItemClick(object sender, string sValue)
{
if (sValue.Trim() == "0" || sValue.Trim() =="1"|| sValue.Trim() == "2" || sValue.Trim() == "3")
{
string zbVal = txtZBJDIDJL.Value.Trim();
string dbVal = txtDBBJDIDJL.Value.Trim();
string[] dbList =dbVal.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string temp = dbList[int.Parse(sValue.Trim())];
dbList[int.Parse(sValue.Trim())] = zbVal;
txtZBJDIDJL.Value = temp;
txtDBBJDIDJL.Value = string.Join(",", dbList);
moduleGV_PageIndexChanging(null, null);
}
else{
string sBJDID = sValue.Trim();
string sWFID = "";
string sWFINST = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" SELECT XLXSBJD_BJDID,XLXSBJD_WFID,XLXSBJD_WFINST FROM XLXSBJD WHERE XLXSBJD_BJDID = :pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
sWFID = ds.Tables[0].Rows[0]["XLXSBJD_WFID"].ToString().Trim();
sWFINST = ds.Tables[0].Rows[0]["XLXSBJD_WFINST"].ToString().Trim();
}
TPageParams tpp = new TPageParams();
tpp.UrlPath = "XLBJDInfo.aspx";
tpp.AddString("XLXSBJD_BJDID", sBJDID);
tpp.AddString("WFID", sWFID);
tpp.AddString("WFINST", sWFINST);
tpp.CallAction = TPageCallAction.pcaBrowse;
OpenFuncModuleDialog(100860000,tpp);
}
}
protected void btnOPEN_Click(object sender, EventArgs e)
{
if (txtOPEN.Value == "run")
{
moduleGV_PageIndexChanging(null, null);
txtOPEN.Value = "norun";
}
}
protected void btnLJZS_Click(object sender, EventArgs e)
{
if (grdGrid.SelectedIndex < 0)
{
ShowMessage("请选择一条需要追溯的报价产品!");
return;
}
string sXLXHID = grdGrid.DataKeys[grdGrid.SelectedIndex]["XLXSBJDMX_XLXHID"].ToString().Trim();
string sXLGGID = grdGrid.DataKeys[grdGrid.SelectedIndex]["XLXSBJDMX_XLGGID"].ToString().Trim();
string sXLBZID = grdGrid.DataKeys[grdGrid.SelectedIndex]["XLXSBJDMX_XLBZID"].ToString().Trim();
string sDYDJID = grdGrid.DataKeys[grdGrid.SelectedIndex]["XLXSBJDMX_DYDJID"].ToString().Trim();
string sXH = grdGrid.DataKeys[grdGrid.SelectedIndex]["XLXSBJDMX_XH"].ToString().Trim();
string sCurBJDID = "";
if (!PageParam.GetRTrimString("CXBJDID").Equals(""))
{
string[] sTemp = PageParam.GetRTrimString("CXBJDID").Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (sTemp.Length > 0)
{
sCurBJDID = sTemp[0].ToString().Trim();
}
}
if (sXH.Equals("0") || sXH.Equals(""))
{
ShowMessage(sCurBJDID + "报价单明细不存在当前报价产品!");
return;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("SELECT XLXSBJD_JZBJHS,XLXSJGB_TJYS,XLXSBJD_GYSID,XLXSBJD_YSJDID,XLXSJGB_BJLY,XLXSBJD_TJ,XLXSBJD_LJ, ");
SQL.Add(" XLXSJGB_JGBIDS,XLXSJGB_JSBLFS,XLXSJGB_MXBH,XLXSBJD_JGBID,XLXSBJD_BJRQ,XLXSBJD_BJFLID FROM XLXSBJD ");
SQL.Add(" LEFT JOIN XLXSJGB ON XLXSJGB_JGBID=XLXSBJD_JGBID ");
SQL.Add(" WHERE XLXSBJD_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = sCurBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim());
TPageParams tpp = new TPageParams();
if (XLBJDUtils.IsJGEJGB(ds.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim()))
tpp.UrlPath = "XLBJD_JGECBZSList.aspx";
else
tpp.UrlPath = "XLBJD_CBZSList.aspx";
tpp.Title = "报价单行情料价追溯";
tpp.AddString("BJDID", sCurBJDID);
tpp.AddString("XH", sXH);
tpp.AddString("BJRQ", ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim());
tpp.AddString("BJFLID", ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim());
tpp.AddString("JGBID", ds.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim());
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (ds.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim().Equals("JGB"))
{
tpp.AddString("JGBIDS", ds.Tables[0].Rows[i]["XLXSJGB_JGBIDS"].ToString().Trim());
tpp.AddString("JSBLFS", ds.Tables[0].Rows[i]["XLXSJGB_JSBLFS"].ToString().Trim());
tpp.AddString("JGBTJYS", ds.Tables[0].Rows[i]["XLXSJGB_TJYS"].ToString().Trim());
tpp.AddString("BJLY", ds.Tables[0].Rows[i]["XLXSJGB_BJLY"].ToString().Trim());
break;
}
else
{
tpp.AddString("JGBIDS", "");
tpp.AddString("JSBLFS", "");
tpp.AddString("JGBTJYS", "");
tpp.AddString("BJLY", "");
}
}
tpp.AddString("HSBZ", ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim());
tpp.AddString("XLXHID", sXLXHID);
tpp.AddString("XLGGID", sXLGGID);
tpp.AddString("XLBZID", sXLBZID);
tpp.AddString("DYDJID", sDYDJID);
tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY);
tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID);
tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID);
tpp.AddString("TJ", ds.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString().Trim());
tpp.AddString("LJ", ds.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString().Trim());
tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX);
tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX);
if (bjflxx.XLXSBJFL_CPBJMRXSWS.Equals(""))
bjflxx.XLXSBJFL_CPBJMRXSWS = GetOption(100860000, "BJU002");
tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS);
tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情
tpp.AddString("CANEDIT", "N");//报价单是否允许编辑
tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX);
tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费
tpp.AddString("YSJDID", ds.Tables[0].Rows[0]["XLXSBJD_YSJDID"].ToString().Trim());//运输节点
tpp.AddString("GYSID", ds.Tables[0].Rows[0]["XLXSBJD_GYSID"].ToString().Trim());//运输单位
tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料
tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费
OpenModuleDialog(100860044, tpp);
}
}
#endregion
#region 栏目颜色
protected void grdGrid_GetCellParams(object sender, TableCell Cell, string FieldName)
{
if (FieldName.Split('_').Length >= 3)
{
if (CMISproConvert.StrToFloat(FieldName.Split('_')[2]) % 2 == 0)
{
grdGrid.ImportCellColor = Color.LightGray;
}
}
if (FieldName.Split('0').Length == 2)
{
if (CMISproConvert.StrToFloat(FieldName.Split('0')[1]) % 2 == 0)
{
grdGrid.ImportCellColor = Color.LightGray;
}
}
if (FieldName.ToString() == "XH"
|| FieldName.ToString() == "BJSL"
|| FieldName.ToString() == "JGBBJ"
|| FieldName.ToString() == "CPBJ"
|| FieldName.ToString() == "BJJE")
{
grdGrid.ImportCellColor = Color.LightGray;
}
}
#endregion
}
}