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

528 lines
28 KiB
C#
Raw 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_CONTROL;
using GThinking.N_MISPRO.Data;
using GThinking.N_MISPRO.Utility;
using System.Collections.Generic;
using GThinking.N_MISPRO;
namespace GThinking.N_XLXSBJ
{
public partial class CLYL_FZZTCLYLList : OperationBase
{
CLYL_FZZTCLYL entity = new CLYL_FZZTCLYL();
DataSet dsCLYLLM = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860014;
this.UMName = "线缆销售报价材料用量";
this.CurMaster = Master;
this.Tabs = Tab;
this.PageHeight = 500;
this.PageWidth = 700;
CurMaster.BtnQueryVisible = false;
CurMaster.BtnReportVisible = false;
entity.getSQL += new CLYL_FZZTCLYL.getQuerySQL(EntityGetQuerySQL);
AddListSetMap(new ListSet(pagFZZTCLYL.ID, null, grdFZZTCLYL, entity, UPFZZTCLYL));
base.InitPage();
string sJGCZBID = PageParam.GetRTrimString("JGCZBID");
string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID");
dsCLYLLM = GetJGCZBCLYLLM(sJGCZBID, sJGCZBBBID);
grdFZZTCLYL.EnabledToolBar = false;
CurMaster.PnlQuery.Visible = false;
if (!IsPostBack)
{
Master_OnQuery();
GridDataBind();
}
}
#region 模板继承事件
protected override void Master_OnQuery()
{
base.Master_OnQuery();
grdFZZTCLYL.SelectedIndex = -1;
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool DataLogicValid()
{
return base.DataLogicValid();
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
CMISproSession tSession = CMISproApp.GetSession();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "";
string sDYDJID = "";
string sJGCZBID = PageParam.GetRTrimString("JGCZBID");
string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID");
string sCZBJLDW = PageParam.GetRTrimString("CZBJLDW");
string sWPID = PageParam.GetRTrimString("WPID");
string sUSERID = PageParam.GetRTrimString("USERID");
Dictionary<string, double> dicSL = new Dictionary<string, double>();
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
for (int t = 1; t <= 80; t++)
{
dicSL.Add("SL" + t.ToString().PadLeft(2, '0'), 0.0);
}
double fHSBL = 1;//换算比例
if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).ToUpper().Equals("KM") && sCZBJLDW.Split('/')[1].ToUpper().Equals("M"))
{
fHSBL = 1000;
}
else if (XLBJDUtils.GetDefaultBJU003(GetOption("BJU003")).ToUpper().Equals("M") && sCZBJLDW.Split('/')[1].ToUpper().Equals("KM"))
{
fHSBL = 0.001;
}
if (grdFZZTCLYL.NewRows.Count == 0)
{
return false;
}
else
{
for (int i = 0; i < grdFZZTCLYL.NewRows.Count; i++)
{
for (int j = 0; j < dsCLYLLM.Tables[0].Rows.Count; j++)
{
string sDataField = "V" + j.ToString().Trim();
string sBJCLID = dsCLYLLM.Tables[0].Rows[j]["XLJGCZBLM_BJCLID"].ToString().Trim();
string sBJCLMC = dsCLYLLM.Tables[0].Rows[j]["CLMC"].ToString().Trim();
double fCZBYL = CMISproConvert.StrToFloat(grdFZZTCLYL.GetValueByFieldName(sDataField.Trim(), grdFZZTCLYL.NewRows[i]).ToString());
int iRow = i + 1;
if (fCZBYL < 0)
{
ShowMessage("第" + iRow.ToString().Trim() + "行," + sBJCLMC + "尺重表用量不允许小于0!");
return false;
}
if (dsCLYLLM.Tables[0].Rows[j]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")
&& grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[i]).ToString().Trim().Equals("")
&& fCZBYL > 0)
{
ShowMessage(string.Format("第" + iRow.ToString().Trim() + "行," + "{0}|{1}--需要指定材料物料!", sBJCLID, sBJCLMC));
return false;
}
}
}
try
{
dberp.BeginTrans();
dicDRMXBZ.Clear();
sSQL.Clear();
sSQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
DataSet dsXLBZ = dberp.OpenDataSet(sSQL);
if (dsXLBZ.Tables[0].Rows.Count > 0)
{
for (int z = 0; z < dsXLBZ.Tables[0].Rows.Count; z++)
{
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[z]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[z]["XLBZ_XLBZLXMC"].ToString().Trim());
}
}
sSQL.Clear();
sSQL.Add("update XLXSCLQD set ");
sSQL.Add(" XLXSCLQD_SL01=:SL01,XLXSCLQD_SL02=:SL02,XLXSCLQD_SL03=:SL03,XLXSCLQD_SL04=:SL04,XLXSCLQD_SL05=:SL05,XLXSCLQD_SL06=:SL06,XLXSCLQD_SL07=:SL07,XLXSCLQD_SL08=:SL08,XLXSCLQD_SL09=:SL09,XLXSCLQD_SL10=:SL10,");
sSQL.Add(" XLXSCLQD_SL11=:SL11,XLXSCLQD_SL12=:SL12,XLXSCLQD_SL13=:SL13,XLXSCLQD_SL14=:SL14,XLXSCLQD_SL15=:SL15,XLXSCLQD_SL16=:SL16,XLXSCLQD_SL17=:SL17,XLXSCLQD_SL18=:SL18,XLXSCLQD_SL19=:SL19,XLXSCLQD_SL20=:SL20,");
sSQL.Add(" XLXSCLQD_SL21=:SL21,XLXSCLQD_SL22=:SL22,XLXSCLQD_SL23=:SL23,XLXSCLQD_SL24=:SL24,XLXSCLQD_SL25=:SL25,XLXSCLQD_SL26=:SL26,XLXSCLQD_SL27=:SL27,XLXSCLQD_SL28=:SL28,XLXSCLQD_SL29=:SL29,XLXSCLQD_SL30=:SL30,");
sSQL.Add(" XLXSCLQD_SL31=:SL31,XLXSCLQD_SL32=:SL32,XLXSCLQD_SL33=:SL33,XLXSCLQD_SL34=:SL34,XLXSCLQD_SL35=:SL35,XLXSCLQD_SL36=:SL36,XLXSCLQD_SL37=:SL37,XLXSCLQD_SL38=:SL38,XLXSCLQD_SL39=:SL39,XLXSCLQD_SL40=:SL40,");
sSQL.Add(" XLXSCLQD_SL41=:SL41,XLXSCLQD_SL42=:SL42,XLXSCLQD_SL43=:SL43,XLXSCLQD_SL44=:SL44,XLXSCLQD_SL45=:SL45,XLXSCLQD_SL46=:SL46,XLXSCLQD_SL47=:SL47,XLXSCLQD_SL48=:SL48,XLXSCLQD_SL49=:SL49,XLXSCLQD_SL50=:SL50,");
sSQL.Add(" XLXSCLQD_SL51=:SL51,XLXSCLQD_SL52=:SL52,XLXSCLQD_SL53=:SL53,XLXSCLQD_SL54=:SL54,XLXSCLQD_SL55=:SL55,XLXSCLQD_SL56=:SL56,XLXSCLQD_SL57=:SL57,XLXSCLQD_SL58=:SL58,XLXSCLQD_SL59=:SL59,XLXSCLQD_SL60=:SL60,");
sSQL.Add(" XLXSCLQD_SL61=:SL61,XLXSCLQD_SL62=:SL62,XLXSCLQD_SL63=:SL63,XLXSCLQD_SL64=:SL64,XLXSCLQD_SL65=:SL65,XLXSCLQD_SL66=:SL66,XLXSCLQD_SL67=:SL67,XLXSCLQD_SL68=:SL68,XLXSCLQD_SL69=:SL69,XLXSCLQD_SL70=:SL70,");
sSQL.Add(" XLXSCLQD_SL71=:SL71,XLXSCLQD_SL72=:SL72,XLXSCLQD_SL73=:SL73,XLXSCLQD_SL74=:SL74,XLXSCLQD_SL75=:SL75,XLXSCLQD_SL76=:SL76,XLXSCLQD_SL77=:SL77,XLXSCLQD_SL78=:SL78,XLXSCLQD_SL79=:SL79,XLXSCLQD_SL80=:SL80,");
sSQL.Add(" XLXSCLQD_WHR=:XLXSCLQD_WHR,XLXSCLQD_WHRID=:XLXSCLQD_WHRID,XLXSCLQD_WHSJ=:XLXSCLQD_WHSJ");
sSQL.Add(" where XLXSCLQD_XLXHID=:XLXSCLQD_XLXHID");
sSQL.Add(" and XLXSCLQD_XLGGID=:XLXSCLQD_XLGGID");
sSQL.Add(" and XLXSCLQD_XLBZID=:XLXSCLQD_XLBZID");
sSQL.Add(" and XLXSCLQD_DYDJID=:XLXSCLQD_DYDJID");
for (int m = 0; m < grdFZZTCLYL.NewRows.Count; m++)
{
sXLXHID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLXHID", grdFZZTCLYL.NewRows[m]).ToString().Trim();
sXLGGID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLGGID", grdFZZTCLYL.NewRows[m]).ToString().Trim();
sXLBZID = grdFZZTCLYL.GetValueByFieldName("XLBZ", grdFZZTCLYL.NewRows[m]).ToString().Trim();
sXLBZID = XLBJDUtils.GetBZXLZBZID(sXLBZID, "", dicDRMXBZ);
sDYDJID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_DYDJID", grdFZZTCLYL.NewRows[m]).ToString().Trim();
sDYDJID = sDYDJID.Replace('K', 'k').Replace('v', 'V');
sDYDJID = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim();
sSQL.ParamByName("XLXSCLQD_XLXHID").Value = sXLXHID;
sSQL.ParamByName("XLXSCLQD_XLGGID").Value = sXLGGID;
sSQL.ParamByName("XLXSCLQD_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJID;
for (int n = 0; n < dsCLYLLM.Tables[0].Rows.Count; n++)
{
string sDataField = "V" + n.ToString().Trim();
string sBJCLID = dsCLYLLM.Tables[0].Rows[n]["XLJGCZBLM_BJCLID"].ToString().Trim();
double dSL = CMISproConvert.StrToFloat(grdFZZTCLYL.GetValueByFieldName(sDataField.Trim(), grdFZZTCLYL.NewRows[m]).ToString(), 0);
dicSL["SL" + Convert.ToString(n + 1).PadLeft(2, '0')] = dSL * fHSBL;
}
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_JGCZBID='{0}' and XLXSCLQD_JGCZBBBID='{1}' and XLXSCLQD_WPID='{2}'"
+ " and XLXSCLQD_WFAWAITER like '{3}' and XLXSCLQD_XLXHID='{4}' and XLXSCLQD_XLGGID='{5}' and XLXSCLQD_XLBZID='{6}' and XLXSCLQD_DYDJID='{7}'",
sJGCZBID, sJGCZBBBID, sWPID, "%," + sUSERID + ",%", sXLXHID, sXLGGID, sXLBZID, sDYDJID)))
{
for (int t = 1; t <= 80; t++)
{
sSQL.ParamByName("SL" + t.ToString().PadLeft(2, '0')).Value = dicSL["SL" + t.ToString().PadLeft(2, '0')];
}
sSQL.ParamByName("XLXSCLQD_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSCLQD_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
//清空dicSL
dicSL.Clear();
for (int t = 1; t <= 80; t++)
{
dicSL.Add("SL" + t.ToString().PadLeft(2, '0'), 0.0);
}
}
}
bool bXLXSCLQDWL = false;
//当前尺重表栏目关联的报价材料是否存在需要细分的
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLJGCZBLM left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID where XLJGCZBLM_JGCZBID='{0}' and XLJGCZBLM_JGCZBBBID='{1}' and XLXSBJCL_BJHQ='2'",
sJGCZBID, sJGCZBBBID)))
{
for (int a = 0; a < grdFZZTCLYL.NewRows.Count; a++)
{
bool bInsertXLXSCLQDWL = false;
sXLXHID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLXHID", grdFZZTCLYL.NewRows[a]).ToString().Trim();
sXLGGID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_XLGGID", grdFZZTCLYL.NewRows[a]).ToString().Trim();
sXLBZID = grdFZZTCLYL.GetValueByFieldName("XLBZ", grdFZZTCLYL.NewRows[a]).ToString().Trim();
sXLBZID = XLBJDUtils.GetBZXLZBZID(sXLBZID, "", dicDRMXBZ);
sDYDJID = grdFZZTCLYL.GetValueByFieldName("XLXSCLQD_DYDJID", grdFZZTCLYL.NewRows[a]).ToString().Trim();
sDYDJID = sDYDJID.Replace('K', 'k').Replace('v', 'V');
sDYDJID = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim();
for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++)
{
string sDataField = "V" + b.ToString().Trim();
string sBJCLID = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_BJCLID"].ToString().Trim();
if (!grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[a]).ToString().Trim().Equals(""))
bInsertXLXSCLQDWL = true;
}
if (bInsertXLXSCLQDWL)
{
bXLXSCLQDWL = true;
sSQL.Clear();
sSQL.Add("select XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID");
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJID;
DataSet ds = dberp.OpenDataSet(sSQL);
double fJGCZBXH = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCLQD_JGCZBXH"].ToString());
double fDRHH = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSCLQD_DRHH"].ToString());
double newDRHH = fDRHH;
if (newDRHH == 0.0)
{
sSQL.Clear();
sSQL.Add("select min(XLXSCLQD_DRHH) as minDRHH ");
sSQL.Add(" from XLXSCLQD");
sSQL.Add(" where XLXSCLQD_JGCZBID=:pJGCZBID");
sSQL.Add(" and XLXSCLQD_DRHH<0");//DRHH为负,用于临时建立XLXSCLQD和XLXSCLQDWL之间的关系
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
DataSet dsCLQD = dberp.OpenDataSet(sSQL);
if (dsCLQD.Tables[0].Rows.Count > 0)
{
newDRHH = CMISproConvert.StrToFloat(dsCLQD.Tables[0].Rows[0][0].ToString()) - 1;
}
else
newDRHH = -1;//特殊处理
sSQL.Clear();
sSQL.Add("update XLXSCLQD set XLXSCLQD_JGCZBXH=:pJGCZBXH,XLXSCLQD_DRHH=:pDRHH ");
sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID ");
sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH;
sSQL.ParamByName("pDRHH").Value = newDRHH;
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJID;
dberp.ExecSQL(sSQL);
}
sSQL.Clear();
sSQL.Add("delete from XLXSCLQDWL where XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID=:pJGCZBBBID");
sSQL.Add(" and XLXSCLQDWL_JGCZBXH=:pJGCZBXH and XLXSCLQDWL_DRHH=:pDRHH");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH;
sSQL.ParamByName("pDRHH").Value = newDRHH;
dberp.ExecSQL(sSQL);
sSQL.Clear();
sSQL.Add("insert into XLXSCLQDWL(XLXSCLQDWL_JGCZBID,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_JGCZBXH,XLXSCLQDWL_DRHH");
for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++)
{
string sQDL = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_CLQDL"].ToString().Trim().Replace("第", "").Replace("列", "");
sSQL.Add(string.Format(",XLXSCLQDWL_WLID{0} ", sQDL));
}
sSQL.Add(") ");
sSQL.Add("values (:pJGCZBID,:pJGCZBBBID,:pJGCZBXH,:pDRHH");
for (int b = 0; b < dsCLYLLM.Tables[0].Rows.Count; b++)
{
string sDataField = "V" + b.ToString().Trim();
string sBJCLID = dsCLYLLM.Tables[0].Rows[b]["XLJGCZBLM_BJCLID"].ToString().Trim();
string sCLWL = grdFZZTCLYL.GetValueByFieldName(sDataField.Trim() + "_CLWL", grdFZZTCLYL.NewRows[a]).ToString().Trim();
sCLWL = sCLWL.Trim().Equals("") ? "" : sCLWL.Trim().Split('|')[0];
sSQL.Add(string.Format(",'{0}' ", sCLWL));
}
sSQL.Add(") ");
sSQL.ParamByName("pJGCZBID").Value = sJGCZBID;
sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
sSQL.ParamByName("pJGCZBXH").Value = fJGCZBXH;
sSQL.ParamByName("pDRHH").Value = newDRHH;
dberp.ExecSQL(sSQL);
}
else
{
//如果材料物料列数据都是空,则删除XLXSCLQDWL
sSQL.Clear();
sSQL.Add("delete from XLXSCLQDWL ");
sSQL.Add("where exists(select 1 from XLXSCLQD ");
sSQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID");
sSQL.Add(" and XLXSCLQD_JGCZBID=XLXSCLQDWL_JGCZBID and XLXSCLQD_JGCZBBBID=XLXSCLQDWL_JGCZBBBID and XLXSCLQD_JGCZBXH=XLXSCLQDWL_JGCZBXH and XLXSCLQD_DRHH=XLXSCLQDWL_DRHH");
sSQL.Add(" )");
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sDYDJID;
dberp.ExecSQL(sSQL);
}
}
}
dberp.CommitTrans();
if (bXLXSCLQDWL)
ShowMessage("已完成材料用量+材料物料的设置!");
else
ShowMessage("已完成材料用量的设置!");
DialogOperationScript dos = new DialogOperationScript(this);
if (!PageParam.GetRTrimString("btnRefreshCID").Equals(""))
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
ShowMessage(ex.Message);
dberp.RollbackTrans();
return false;
}
}
return false;
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && Tab.ActiveTabIndex == 1)
{
}
base.Grid_RowDataBound(sender, e);
}
#endregion
#region 自定义事件
private void EntityGetQuerySQL(TSQL SQL)
{
string sJGCZBID = PageParam.GetRTrimString("JGCZBID");
string sJGCZBBBID = PageParam.GetRTrimString("JGCZBBBID");
string sCZBJLDW = PageParam.GetRTrimString("CZBJLDW");
string sWPID = PageParam.GetRTrimString("WPID");
string sUSERID = PageParam.GetRTrimString("USERID");
InitGrid(dsCLYLLM);
SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,RTRIM(XLXSCLQD_XLBZID) ||'|'|| XLBZ_XLBZLXMC as XLBZ,'" + sCZBJLDW + "' as JLDW ");
for (int i = 0; i < dsCLYLLM.Tables[0].Rows.Count; i++)
{
string sDataField = "V" + i.ToString().Trim();
SQL.Add(",'' as " + sDataField.Trim());
if (dsCLYLLM.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))
{
SQL.Add(",'' as " + sDataField.Trim() + "_CLWL");
}
}
SQL.Add(" from XLXSCLQD ");
SQL.Add(" left join (select XLGGB_XLGGID as XLGGID,MIN(XLGGB_XH) as minXH from XLGGB where 1=1 GROUP BY XLGGB_XLGGID ) tmpXLGGB ");
SQL.Add(" on XLGGID = REPLACE(XLXSCLQD_XLGGID , '*','×') ");
SQL.Add(" left join XLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID ");
SQL.Add(" where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID=:pWPID and XLXSCLQD_WFAWAITER like :pWFAWAITER ");
SQL.Add(" order by XLXSCLQD_XLXHID,XLXSCLQD_XLBZID,minXH,XLXSCLQD_XLGGID,XLXSCLQD_DYDJID ");
SQL.ParamByName("pJGCZBID").Value = sJGCZBID;
SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
SQL.ParamByName("pWPID").Value = sWPID;
SQL.ParamByName("pWFAWAITER").Value = "%," + sUSERID + ",%"; ;
}
//获取结构尺重表材料用量栏目信息
public static DataSet GetJGCZBCLYLLM(string sJGCZBID, string sJGCZBBBID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add(" select XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBLM_CLQDL, ");
sql.Add(" case when isnull(XLXSBJCL_BJCLID,' ')=' ' then XLJGCZBLM_CZBLMMC else XLXSBJCL_BJCLMC end as CLMC");
sql.Add(" from XLJGCZBLM ");
sql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
sql.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '");
sql.Add(" order by XLJGCZBLM_CLQDL ");
sql.ParamByName("pJGCZBID").Value = sJGCZBID;
sql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
return dberp.OpenDataSet(sql);
}
#region 动态加载列表
private void InitGrid(DataSet dsCLYLLM)
{
AddColumn("XLXSCLQD_XLXHID", "型号", 120, true);
AddColumn("XLXSCLQD_XLGGID", "规格", 120, true);
AddColumn("XLBZ", "标准", 80, true);
AddColumn("XLXSCLQD_DYDJID", "电压等级", 80, true);
AddColumn("JLDW", "计量单位", 50, true);
for (int i = 0; i < dsCLYLLM.Tables[0].Rows.Count; i++)
{
string sDataField = "V" + i.ToString().Trim();
AddColumn(sDataField.Trim(), dsCLYLLM.Tables[0].Rows[i]["CLMC"].ToString().Trim(), 6, 100);
if (dsCLYLLM.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))
{
AddColumn(sDataField.Trim() + "_CLWL", "材料物料", 200, "");
}
}
}
#region GridView增加列
/// <summary>
/// 设置etString列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="Width"></param>
private void AddColumn(string sDataField, string HeadText, int Width, Boolean ReadOnly)
{
gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn();
Column.HeaderText = HeadText;
Column.DataField = sDataField;
Column.Width = (Unit)Width;
Column.EditType = TEditType.etString;
Column.ReadOnly = ReadOnly;
grdFZZTCLYL.Columns.Add(Column);
}
/// <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)
{
gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn();
Column.HeaderText = HeadText;
Column.DataField = sDataField;
Column.Width = (Unit)Width;
Column.EditType = TEditType.etNumber;
Column.NumberDecimalPlace = NumberDecimalPlace;
grdFZZTCLYL.Columns.Add(Column);
}
/// <summary>
/// 设置etDropDown列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="DateTimeKind"></param>
private void AddColumn(string sDataField, string HeadText, int Width, string p_SQL)
{
gtAjaxGridViewColumn Column = new gtAjaxGridViewColumn();
Column.HeaderText = HeadText;
Column.DataField = sDataField;
Column.Width = (Unit)Width;
Column.EditType = TEditType.etDropDown;
grdFZZTCLYL.Columns.Add(Column);
}
#endregion
#endregion
#endregion
#region 控件事件
protected void grdFZZTCLYL_GetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e)
{
if (e.EventFieldName.Contains("CLWL"))
{
string sEventFieldName = e.EventFieldName.Split('_')[0].ToString().Trim();
int iROW = CMISproConvert.StrToInt(sEventFieldName.Substring(1));
string sBJCLID = dsCLYLLM.Tables[0].Rows[iROW]["XLJGCZBLM_BJCLID"].ToString().Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add("select XLXSBJCLWL_WLID, ");
sql.Add("rtrim(rtrim(rtrim(rtrim(isnull(WL_MC,' '))||' '||rtrim(isnull(WL_GG,' ')))||' '||rtrim(isnull(WL_TZ,' ')))||' '||rtrim(isnull(WL_CL,' '))) as Name ");
sql.Add("from XLXSBJCLWL ");
sql.Add("left join WL on WL_WLID=XLXSBJCLWL_WLID ");
sql.Add("left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID ");
sql.Add("where XLXSBJCLWL_BJCLID=:pBJCLID ");
sql.Add(" and XLXSBJCL_BJHQ='2' ");
sql.Add("order by XLXSBJCLWL_WLID");
sql.ParamByName("pBJCLID").Value = sBJCLID;
DataSet ds = dberp.OpenDataSet(sql);
e.DropDownItems.Clear();
if (ds.Tables[0].Rows.Count > 0)
{
e.DropDownItems.Add(new ListItem("", ""));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["Name"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJCLWL_WLID"].ToString().Trim()));
}
}
}
#endregion
}
}