Files
N_XLJC--MX/SelXLWLList.aspx.cs
2026-08-21 17:02:49 +08:00

581 lines
23 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_PUBLIC2;
using GThinking.N_CONTROL;
namespace GThinking.N_XLJC
{
public partial class SelXLWLList : TreeCodeClassBase
{
SelXLWL entity = new SelXLWL();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 101421006;
this.UMName = "线缆物料代码助手";
this.CurMaster = Master;
this.ModuleGV = grdGrid;
this.CurEntity = entity;
//this.CurQueryEntity = queryEntity;
//this.sQueryURLTarget = "XZWLQuery.aspx";
this.PageHeight = 300;
this.PageWidth = 700;
ReturnField = "XLXLB_WLID";
ModuleGV.CheckBox = true;
Master.StandardPLXZButton.Visible = true;
Master.EnableQueryBtn = false;
base.DataKeyNames = new string[] { "XLXLB_WLID" };
this.Master.LeftTreeView.DropMode = DDropMode.dmManual;
this.Master.LeftTreeView.InitEvents(true, false, false, false);
if (IsGtPostBack)
{
return;
}
if (!IsPostBack)
{
//queryEntity["SFZY"] = "Y";
InitControls();
}
base.InitPage();
grdGrid.ShowColCustomize = false;
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#region 模板事件继承
protected override void InitTreeView()
{
base.InitTreeView();
Master.LeftTreeView.ExpandImageToolTip = "展开";
Master.LeftTreeView.CollapseImageToolTip = "收起";
Master.LeftTreeView.ExpandDepth = 1;
gtTreeViewNode tn = TreeViewAddNode(null, "产品用途", "", "", true, true, false);
//加载产品用途节点
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
sSQL.Add("select distinct isnull(XLXHB_CPYT,' ') from XLXLB");
sSQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID");
sSQL.Add(" where 1=1 ");
sSQL.Add(" order by isnull(XLXHB_CPYT,' ')");
DataSet ds = dberp.OpenDataSet(sSQL);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
gtTreeViewNode node;
string sText = "";
string sValue = "";
sValue = ds.Tables[0].Rows[i][0].ToString().Trim();
sText = GetCPYTMC(sValue);
if (sValue.Equals(""))
sValue = "<NULL>";
node = TreeViewAddNode(tn, sText, sValue, "", true, true, false);
}
}
protected override void Master_OnStandardTreeNodeBeforePopulate(object sender, gtTreeViewNodeEventArgs e)
{
if (e.Node == null) return;
if (!string.IsNullOrEmpty(e.Node.Value))
{
if (e.Node.Depth == 1)//加载基本型号
{
entity.EntityTable.TreeQuerySelSql = GetTreeQuerySelSQL_JBXH(e.Node.Value.Trim());
}
else //加载派生型号
{
entity.EntityTable.TreeQuerySelSql = GetTreeQuerySelSQL_PSXH(e.Node.Value.Trim());
}
}
base.Master_OnStandardTreeNodeBeforePopulate(sender, e);
}
protected override void Master_OnStandardTreeNodeBeforeChanged(object sender, gtTreeViewNodeEventArgs e)
{
base.Master_OnStandardTreeNodeBeforeChanged(sender, e);
//base.InitEntityByCondition();
if (this.CurSelectedNote.Depth == 0)
{
entity.EntityTable.QuerySelSql = GetQuerySQL("");
}
else if (this.CurSelectedNote.Depth == 1)
{
entity.EntityTable.QuerySelSql = GetQuerySQL(e.Node.Value.Trim());
}
else
{
string sValue = e.Node.Value.Trim();
entity.EntityTable.QuerySelSql = GetQuerySQL_XH(sValue);
}
}
protected override void Master_OnStandardTreeNodeChanged(object sender, gtTreeViewNodeEventArgs e)
{
base.Master_OnStandardTreeNodeChanged(sender, e);
grdGrid.SelectedIndex = -1;
}
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
if (this.CurSelectedNote == null)
{
return;
}
//base.InitEntityByCondition();
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
grdGrid.Columns[6].Visible = true;
grdGrid.Columns[7].Visible = true;
}
else
{
grdGrid.Columns[6].Visible = false;
grdGrid.Columns[7].Visible = false;
}
if (this.CurSelectedNote.Depth == 0)
{
entity.EntityTable.QuerySelSql = GetQuerySQL("");
}
else if (this.CurSelectedNote.Depth == 1)
{
entity.EntityTable.QuerySelSql = GetQuerySQL(this.CurSelectedNote.Value.Trim());
}
else
{
string sValue = this.CurSelectedNote.Value.Trim();
entity.EntityTable.QuerySelSql = GetQuerySQL_XH(sValue);
}
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdGrid, tSession);
grdGrid.SelectedIndex = -1;
TreeAreaUpdate();
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//base.InitEntityByCondition();
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
grdGrid.Columns[6].Visible = true;
grdGrid.Columns[7].Visible = true;
}
else
{
grdGrid.Columns[6].Visible = false;
grdGrid.Columns[7].Visible = false;
}
if (this.CurSelectedNote.Depth == 0)
{
entity.EntityTable.QuerySelSql = GetQuerySQL("");
}
else if (this.CurSelectedNote.Depth == 1)
{
entity.EntityTable.QuerySelSql = GetQuerySQL(this.CurSelectedNote.Value.Trim());
}
else
{
string sValue = this.CurSelectedNote.Value.Trim();
entity.EntityTable.QuerySelSql = GetQuerySQL_XH(sValue);
}
base.moduleGV_PageIndexChanging(sender, e);
grdGrid.SelectedIndex = -1;
}
protected override TCodeReturn Master_OnOnlyOneCodeReturn()
{
TCodeReturn Return = base.Master_OnOnlyOneCodeReturn();
TkcQuery qryTemp = new TkcQuery("DBERP");
qryTemp.Add(" select WL_WLID from WL where 1 = 1 ");
if (!CurMaster.InputInfo.Value.Trim().Equals(""))
{
qryTemp.Add(" and (WL_WLID like :WL_WLID or WL_MC like :WL_WLID)");
qryTemp.ParamByName("WL_WLID").Value = "%" + CurMaster.InputInfo.Value.Trim() + "%";
}
qryTemp.Add(" order by WL_WLID ");
qryTemp.Open();
if (qryTemp.Count == 1)
{
Return.ReturnValue = qryTemp.FieldByName("WL_WLID").AsString;
Return.ReturnType = TCodeReturnType.SingleRecord;
}
else if (qryTemp.Count == 0)
{
Return.ReturnType = TCodeReturnType.NoRecord;
}
else
{
Return.ReturnType = TCodeReturnType.MultiRecord;
}
return Return;
}
#endregion
#region 自定义函数
private string GetTreeQuerySelSQL_JBXH(string sCPYT)
{
//base.InitEntityByCondition();
string sSQL = "select distinct XLXHB_XLJBXHID as Text,XLXHB_XLJBXHID as Value, "
+ " decode((select count(A.XHID) "
+ " from (select XLXHB_XLXHID as XHID,XLXHB_XLJBXHID as JBXHID from XLXLB left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID) A "
+ " where A.JBXHID=XLXLB_XLXHID and A.XHID<>XLXHB_XLXHID),0,'N','Y') as HasChild "
+ " from XLXLB "
+ " left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID"
+ " where isnull(XLXHB_XLJBXHID, ' ')=isnull(XLXHB_XLXHID,' ') ";
if (sCPYT.Trim().Equals("<NULL>"))
sSQL += " and isnull(XLXHB_CPYT,' ')=' '";
else
sSQL += " and XLXHB_CPYT='" + sCPYT.Trim() + "'";
sSQL += " order by XLXHB_XLJBXHID";
return sSQL;
}
private string GetTreeQuerySelSQL_PSXH(string sJBXHID)
{
//base.InitEntityByCondition();
string sSQL = "select distinct XLXLB_XLXHID as Text,XLXLB_XLXHID as Value, "
+ " 'N' as HasChild "
+ " from XLXLB "
+ " left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID"
+ " where isnull(XLXHB_XLJBXHID, ' ')<>isnull(XLXHB_XLXHID,' ') ";
if (!sJBXHID.Trim().Equals(""))
sSQL += " and XLXHB_XLJBXHID='" + sJBXHID.Trim() + "'";
else
sSQL += " 1<>1 ";
sSQL += " order by XLXLB_XLXHID";
return sSQL;
}
private string GetQuerySQL(string sCPYT)
{
//base.InitEntityByCondition();
string sSQL = "select XLXLB_WLID,WL_MC,WL_GG,WL_TZ,WL_CL,WL_JLDW,XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_DYDJID,XLXLB_XLBZID, ";
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += @"case isnull(WLJH_GCID,' ') when ' ' then ' ' else rtrim(WLJH_GCID) || '|' || ltrim(GC_GCMC) end as GC,
case isnull(WLJH_CKID,' ') when ' ' then ' ' else rtrim(WLJH_CKID) || '|' || ltrim(CK_MC) end as CK, ";
}
else
{
sSQL += "' ' as GC, ' ' as CK, ";
}
sSQL += " TMP.KYKCSL ";
sSQL += " from XLXLB"
+ " left join WL on WL_WLID=XLXLB_WLID"
+ " left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID"
+ " left join (select WLID, isnull(sum(KCSL-FPSL),0) as KYKCSL from GETWLSL('WL',' ',' ') group by WLID) TMP On TMP.WLID=XLXLB_WLID ";
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += @"left join WLJH on WLJH_WLID=XLXLB_WLID
left join GC on GC_GCID=WLJH_GCID
left join CK on CK_CKID=WLJH_CKID ";
}
sSQL += " where isnull(XLXLB_TYBZ,'N')<>'Y'";
if (CurMaster.InputInfo != null && !CurMaster.InputInfo.Value.Trim().Equals(""))
{
sSQL += " and (XLXLB_WLID like :pInputWLID or WL_MC like :pInputWLID) ";
entity.Param.Add("pInputWLID", "%" + CurMaster.InputInfo.Value.Trim() + "%");
}
if (sCPYT.Trim().Equals("<NULL>"))
{
sSQL += " and isnull(XLXHB_CPYT,' ')=' '";
}
else if (!sCPYT.Trim().Equals(""))
{
sSQL += " and XLXHB_CPYT=:XLXHB_CPYT ";
entity.Param.Add("XLXHB_CPYT", sCPYT.Trim());
}
if (!txtWLID.Text.Trim().Equals(""))
{
sSQL += " and XLXLB_WLID like :pWLID ";
entity.Param.Add("pWLID", "%" + txtWLID.Text.Trim() + "%");
}
if (!txtWLMC.Text.Trim().Equals(""))
{
sSQL += " and WL_MC like :pWLMC ";
entity.Param.Add("pWLMC", "%" + txtWLMC.Text.Trim() + "%");
}
if (!txtGGXH.Text.Trim().Equals(""))
{
sSQL += " and WL_GG like :pGGXH ";
entity.Param.Add("pGGXH", "%" + txtGGXH.Text.Trim() + "%");
}
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += " and WLJH_GCID = :pGC ";
entity.Param.Add("pGC", cbxGC.SelectedValue.Trim());
if (!String.IsNullOrEmpty(cbxCK.SelectedValue.Trim()))
{
sSQL += " and WLJH_CKID = :pCK ";
entity.Param.Add("pCK", cbxCK.SelectedValue.Trim());
}
}
sSQL += " order by XLXLB_WLID ";
return sSQL;
}
private string GetQuerySQL_XH(string sXLXHID)
{
//base.InitEntityByCondition();
string sSQL = "select XLXLB_WLID,WL_MC,WL_GG,WL_TZ,WL_CL,WL_JLDW,XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_DYDJID,XLXLB_XLBZID, ";
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += @"case isnull(WLJH_GCID,' ') when ' ' then ' ' else rtrim(WLJH_GCID) || '|' || ltrim(GC_GCMC) end as GC,
case isnull(WLJH_CKID,' ') when ' ' then ' ' else rtrim(WLJH_CKID) || '|' || ltrim(CK_MC) end as CK, ";
}
else
{
sSQL += "' ' as GC, ' ' as CK, ";
}
sSQL += " TMP.KYKCSL ";
sSQL += " from XLXLB"
+ " left join WL on WL_WLID=XLXLB_WLID"
+ " left join XLXHB on XLXHB_XLXHID=XLXLB_XLXHID"
+ " left join (select WLID, isnull(sum(KCSL-FPSL),0) as KYKCSL from GETWLSL('WL',' ',' ') group by WLID) TMP On TMP.WLID=XLXLB_WLID ";
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += @"left join WLJH on WLJH_WLID=XLXLB_WLID
left join GC on GC_GCID=WLJH_GCID
left join CK on CK_CKID=WLJH_CKID ";
}
sSQL += " where isnull(XLXLB_TYBZ,'N')<>'Y'";
if (CurMaster.InputInfo != null && !CurMaster.InputInfo.Value.Trim().Equals(""))
{
sSQL += " and (XLXLB_WLID like :pInputWLID or WL_MC like :pInputWLID) ";
entity.Param.Add("pInputWLID", "%" + CurMaster.InputInfo.Value.Trim() + "%");
}
if (!sXLXHID.Trim().Equals(""))
{
sSQL += " and XLXLB_XLXHID=:XLXLB_XLXHID ";
entity.Param.Add("XLXLB_XLXHID", sXLXHID.Trim());
}
if (!txtWLID.Text.Trim().Equals(""))
{
sSQL += " and XLXLB_WLID like :pWLID ";
entity.Param.Add("pWLID", "%" + txtWLID.Text.Trim() + "%");
}
if (!txtWLMC.Text.Trim().Equals(""))
{
sSQL += " and WL_MC like :pWLMC ";
entity.Param.Add("pWLMC", "%" + txtWLMC.Text.Trim() + "%");
}
if (!txtGGXH.Text.Trim().Equals(""))
{
sSQL += " and WL_GG like :pGGXH ";
entity.Param.Add("pGGXH", "%" + txtGGXH.Text.Trim() + "%");
}
if (!String.IsNullOrEmpty(cbxGC.SelectedValue.Trim()))
{
sSQL += " and WLJH_GCID = :pGC ";
entity.Param.Add("pGC", cbxGC.SelectedValue.Trim());
if (!String.IsNullOrEmpty(cbxCK.SelectedValue.Trim()))
{
sSQL += " and WLJH_CKID = :pCK ";
entity.Param.Add("pCK", cbxCK.SelectedValue.Trim());
}
}
sSQL += " order by XLXLB_WLID ";
return sSQL;
}
private string GetCPYTMC(string sCPYT)
{
switch (sCPYT)
{
case "P1C2": return "裸电线-C|触头用、电车线";
case "P1H1": return "裸电线-H|电焊机用";
case "P1J0": return "裸电线-J|绞线";
case "P1K1": return "裸电线-K|扩径形";
case "P1M1": return "裸电线-M|母线";
case "P1P1": return "裸电线-P|铜排";
case "P1QG": return "裸电线-QG|汽车蓄电池线";
case "P1S1": return "裸电线-S|电刷线";
case "P1T1": return "裸电线-T|天线";
case "P1Z1": return "裸电线-Z|自阻尼";
case "P200": return "电力电缆";
case "P201": return "电力电缆-同轴电缆";
case "P202": return "电力电缆-接地电缆";
case "P300": return "装备线缆-机车线";
case "P3A1": return "装备线缆-A|安装线";
case "P3B1": return "装备线缆-B|绝缘布线";
case "P3BP": return "装备线缆-BP|变频电缆";
case "P3C1": return "装备线缆-C|船用电缆";
case "P3CH": return "装备线缆-CH|船用通信电缆";
case "P3CK": return "装备线缆-CK|船用控制电缆";
case "P3CS": return "装备线缆-CS|船用射频电缆";
case "P3D1": return "装备线缆-D|电雷管引爆";
case "P3DC": return "装备线缆-DC|地铁车辆用";
case "P3DJ": return "装备线缆-DJ|计算机";
case "P3F1": return "装备线缆-F|飞机(航空)电线";
case "P3FG": return "装备线缆-FG|飞机用高压点火";
case "P3G1": return "装备线缆-G|高压直流软电缆";
case "P3H3": return "装备线缆-H|电焊机电缆;电子轰击炉用";
case "P3HL": return "装备线缆-HL|核电缆";
case "P3J1": return "装备线缆-J|引接线";
case "P3JK": return "装备线缆-JK|架空线";
case "P3K2": return "装备线缆-K|控制电缆";
case "P3M2": return "装备线缆-M|煤矿用";
case "P3MC": return "装备线缆-MC|采煤机电缆";
case "P3MH": return "装备线缆-MH|煤矿用通信";
case "P3MK": return "装备线缆-MK|煤矿控制电缆";
case "P3MY": return "装备线缆-MY|煤矿移动";
case "P3MZ": return "装备线缆-MZ|煤矿电钻";
case "P3N1": return "装备线缆-N|农用";
case "P3P2": return "装备线缆-P|信号电缆";
case "P3Q1": return "装备线缆-Q|汽车用线";
case "P3R1": return "装备线缆-R|绝缘软线";
case "P3S2": return "装备线缆-S|射频电缆";
case "P3T2": return "装备线缆-T|梯缆";
case "P3U1": return "装备线缆-U|矿用电缆";
case "P3UB": return "装备线缆-UB|矿用雷管";
case "P3UC": return "装备线缆-UC|采煤机电缆";
case "P3UH": return "装备线缆-UH|矿用通信";
case "P3UM": return "装备线缆-UM|矿工帽";
case "P3UY": return "装备线缆-UY|矿用移动";
case "P3UZ": return "装备线缆-UZ|矿用电钻";
case "P3W1": return "装备线缆-W|石油和地质勘探用";
case "P3W2": return "装备线缆-WQJ|潜油泵引接电缆";
case "P3WJ": return "装备线缆-WJ|野外测井用";
case "P3WQ": return "装备线缆-WQ|潜油泵电力电缆";
case "P3WT": return "装备线缆-WT|物探专用电缆";
case "P3WY": return "装备线缆-WY|野外移动";
case "P3X1": return "装备线缆-X|X光机电缆";
case "P3Y1": return "装备线缆-Y|移动用软电缆";
case "P3YH": return "装备线缆-YH|电焊机电缆";
case "P3YT": return "装备线缆-YT|电梯电缆";
case "P4CJ": return "光缆-CJ|局(室)内光缆";
case "P4E1": return "通信电缆-E|耳机用电线";
case "P4GD": return "光缆-GD|光电综合光缆";
case "P4GH": return "光缆-GH|海底光缆";
case "P4GM": return "光缆-GM|移动式光缆";
case "P4GS": return "光缆-GS|设备内光缆";
case "P4GT": return "光缆-GT|特殊光缆";
case "P4GY": return "光缆-GY|野外光缆";
case "P4H0": return "通信电缆-HO|同轴电缆";
case "P4H2": return "通信电缆-H|市内通信电缆";
case "P4HB": return "通信电缆-HB|电话布线";
case "P4HE": return "通信电缆-HE|长途通信电缆";
case "P4HH": return "通信电缆-HH|海底通信电缆";
case "P4HJ": return "通信电缆-HJ|局用电缆";
case "P4HP": return "通信电缆-HP|配线电缆";
case "P4HR": return "通信电缆-HR|电话软线";
case "P4HU": return "通信电缆-HU|矿用电话电缆";
case "P4HW": return "通信电缆-HW|岛屿通信电缆";
case "P4J2": return "通信电缆-J|交换机用电线";
case "P3FD": return "装备线缆-风力电缆";
case "P203": return "电力电缆-矿物绝缘电缆";
default: return "未指定产品用途";
}
}
private void InitControls()
{
string sSQL = "select GC_GCID, GC_GCMC from GC where isnull(GC_TYBZ,'N')<>'Y' order by GC_GCID";
TComboBox.SetComboBox("DBERP", cbxGC, sSQL, true);
if (cbxGC.SelectedValue.Equals(""))
{
cbxCK.Items.Clear();
cbxCK.SelectedValue = "";
cbxCK.Enabled = false;
}
else
{
sSQL = "select CK_CKID,case ISNULL(CK_TYBZ,' ') when 'Y' then RTRIM(CK_MC)||'(停用)' else CK_MC end as NAME ";
sSQL += " from CK where CK_GCID = '" + cbxGC.SelectedValue + "' order by ISNULL(CK_TYBZ,' '),CK_CKID";
cbxCK.Items.Clear();
cbxCK.Enabled = true;
TComboBox.SetComboBox("DBERP", cbxCK, sSQL, true);
}
}
#endregion
#region 控件事件
protected void txtWLID_TextChanged(object sender, EventArgs e)
{
moduleGV_PageIndexChanging(null, null);
}
protected void cbxGC_OnSelectedIndexChanged(object sender, EventArgs e)
{
if (cbxGC.SelectedValue.Equals(""))
{
cbxCK.Items.Clear();
cbxCK.SelectedValue = "";
cbxCK.Enabled = false;
}
else
{
string sSQL = "select CK_CKID,case ISNULL(CK_TYBZ,' ') when 'Y' then RTRIM(CK_MC)||'(停用)' else CK_MC end as NAME ";
sSQL += " from CK where CK_GCID = '" + cbxGC.SelectedValue + "' order by ISNULL(CK_TYBZ,' '),CK_CKID";
cbxCK.Items.Clear();
cbxCK.Enabled = true;
TComboBox.SetComboBox("DBERP", cbxCK, sSQL, true);
}
moduleGV_PageIndexChanging(null, null);
}
protected void btnOK_Click(object sender, EventArgs e)
{
if (grdGrid.SelectedIndex == -1)
{
ShowMessage("请选择线缆物料!");
return;
}
ExcuteCallBack(Server.HtmlDecode(grdGrid.SelectedDataKey["XLXLB_WLID"].ToString().Trim()));
}
#endregion
}
}