601 lines
25 KiB
C#
601 lines
25 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_MODEL.Page;
|
||
using GThinking.N_MISPRO.Utility;
|
||
using GThinking.N_MISPRO;
|
||
using GThinking.N_CONTROL;
|
||
using GThinking.N_MISPRO.Data;
|
||
using GThinking.N_WORKFLOW;
|
||
using GThinking.N_PUBLIC;
|
||
using GThinking.N_MISPRO.MISPROAS;
|
||
using System.Web.Script.Serialization;
|
||
using System.Collections.Generic;
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public partial class XLBJD_WBPICNRInfo : BDOBillBase
|
||
{
|
||
XLBJD_WBPICNR entity = new XLBJD_WBPICNR();
|
||
//指定栏目类型-栏目编号
|
||
Dictionary<string, string> dicLMBH = new Dictionary<string, string>();
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860053;
|
||
this.UMName = "按外部报价单图片导入";
|
||
this.CurMaster = Master;
|
||
this.CurEntity = entity;
|
||
this.PageWidth = 850;
|
||
this.PageHeight = 600;
|
||
AddListSetMap(new ListSet("", null, grdXLWBBJDNR, entity.XLWBBJDNR, null));
|
||
//grdXLWBBJDNR.CanInsert = false;
|
||
|
||
Master.BtnNewVisible = false;
|
||
Master.BtnCopyVisible = false;
|
||
//Master.BtnEditVisible = false;
|
||
//Master.BtnSaveVisible = false;
|
||
//Master.BtnCancelVisible = false;
|
||
Master.BtnDeleteVisible = false;
|
||
|
||
base.InitPage();
|
||
}
|
||
|
||
#region 模板继承事件
|
||
protected override void SetControlState()
|
||
{
|
||
base.SetControlState();
|
||
|
||
txtWBBJDID.Enabled = false;
|
||
datDRSJ.Enabled = false;
|
||
txtWBBJDMC.Enabled = false;
|
||
txtPICNAME.Enabled = false;
|
||
txtNRHHS.Enabled = false;
|
||
txtNRHHZ.Enabled = false;
|
||
txtWHR.Enabled = false;
|
||
datWHSJ.Enabled = false;
|
||
|
||
btnZDBJDLM.Enabled = ControlState == TControlState.ctsBrowse;
|
||
btnWBBJDMX.Enabled = ControlState == TControlState.ctsBrowse;
|
||
|
||
if (HasBJDLM(txtBJDID.Value.Trim(), txtWBBJDID.Text.Trim()))
|
||
{
|
||
txtLMHHS.Enabled = false;
|
||
txtLMHHZ.Enabled = false;
|
||
}
|
||
}
|
||
|
||
protected override void InitQueryString()
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
entity.BJDID = PageParam.GetRTrimString("XLWBBJDML_BJDID");
|
||
entity.WBBJDID = PageParam.GetRTrimString("XLWBBJDML_WBBJDID");
|
||
}
|
||
else
|
||
{
|
||
entity.BJDID = txtBJDID.Value.Trim();
|
||
entity.WBBJDID = txtWBBJDID.Text.Trim();
|
||
}
|
||
base.InitQueryString();
|
||
}
|
||
|
||
protected override bool Master_BeforeSaveAction(object sender, EventArgs e)
|
||
{
|
||
//if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy)
|
||
//{
|
||
// txtJYBH.Text = CMISproDataBase.GetYWBHByNY("DBERP", "U_TSJY", "U_TSJY_JYBH", 4);
|
||
//}
|
||
|
||
txtWHR.Text = CurSession.UserName.Trim();
|
||
txtWHRID.Value = CurSession.UserId.Trim();
|
||
datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString());
|
||
entity.BJDID = txtBJDID.Value.Trim();
|
||
entity.WBBJDID = txtWBBJDID.Text.Trim();
|
||
|
||
//int maxXH = CMISproDataBase.GetMaxXH("DBERP", "U_TSJYMX", "U_TSJYMX_XH", "U_TSJYMX_JYBH = '" + txtJYBH.Text + "'") + 1;
|
||
//grdTSJYMX.BeginUpdate();
|
||
//foreach (GridViewRow row in grdTSJYMX.NewRows)
|
||
//{
|
||
// if (!row.Attributes["EditAction"].Equals("D"))
|
||
// {
|
||
// grdTSJYMX.EditRow(row, "U_TSJYMX_XH", Convert.ToString(maxXH++));
|
||
// }
|
||
//}
|
||
//grdTSJYMX.EndUpdate();
|
||
|
||
|
||
return base.Master_BeforeSaveAction(sender, e);
|
||
}
|
||
|
||
protected override bool Master_AfterSaveAction(object sender, EventArgs e)
|
||
{
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
|
||
//如果删过明细,则DRHH重新从1开始排序,保证连续
|
||
bool bHasDelMX = false;
|
||
foreach (GridViewRow row in grdXLWBBJDNR.NewRows)
|
||
{
|
||
if (row.Attributes["EditAction"].Equals("D"))
|
||
{
|
||
bHasDelMX = true;
|
||
break;
|
||
}
|
||
}
|
||
if (bHasDelMX)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add(" merge into XLWBBJDNR a ");
|
||
SQL.Add(" using ");
|
||
SQL.Add("( ");
|
||
SQL.Add("select ");
|
||
SQL.Add(" XLWBBJDNR_BJDID,XLWBBJDNR_WBBJDID,XLWBBJDNR_DRHH, ");
|
||
SQL.Add(" row_number() ");
|
||
SQL.Add(" over(order by XLWBBJDNR_DRHH) as XH ");
|
||
SQL.Add(" from XLWBBJDNR");
|
||
SQL.Add(" where XLWBBJDNR_BJDID=:pBJDID");
|
||
SQL.Add(" and XLWBBJDNR_WBBJDID=:pWBBJDID");
|
||
SQL.Add(" ) b ");
|
||
SQL.Add(" on( ");
|
||
SQL.Add(" a.XLWBBJDNR_BJDID=b.XLWBBJDNR_BJDID and a.XLWBBJDNR_WBBJDID=b.XLWBBJDNR_WBBJDID and a.XLWBBJDNR_DRHH=b.XLWBBJDNR_DRHH ");
|
||
SQL.Add(" ) ");
|
||
SQL.Add(" when matched then update set a.XLWBBJDNR_DRHH=b.XH ");
|
||
SQL.ParamByName("pBJDID").Value = txtBJDID.Value.Trim();
|
||
SQL.ParamByName("pWBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
dberp.ExecSQL(SQL);
|
||
|
||
entity.XLWBBJDNR.BJDID = txtBJDID.Value.Trim();
|
||
entity.XLWBBJDNR.WBBJDID = txtWBBJDID.Text.Trim();
|
||
entity.XLWBBJDNR.Query();
|
||
grdXLWBBJDNR.DataSource = entity.XLWBBJDNR.Entites;
|
||
grdXLWBBJDNR.DataBind();
|
||
grdXLWBBJDNR.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal;
|
||
}
|
||
|
||
//给内容行号赋值
|
||
int MaxHH = 0;
|
||
SQL.Clear();
|
||
SQL.Add("select max(XLWBBJDNR_DRHH) as MaxHH ");
|
||
SQL.Add(" from XLWBBJDNR");
|
||
SQL.Add(" where XLWBBJDNR_BJDID=:pBJDID");
|
||
SQL.Add(" and XLWBBJDNR_WBBJDID=:pWBBJDID");
|
||
SQL.ParamByName("pBJDID").Value = txtBJDID.Value.Trim();
|
||
SQL.ParamByName("pWBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
if (ds.Tables[0].Rows.Count > 0)
|
||
{
|
||
MaxHH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["MaxHH"].ToString(), 0);
|
||
}
|
||
if (txtLMHHZ.Value < MaxHH)
|
||
{
|
||
SQL.Clear();
|
||
SQL.Add("update XLWBBJDML set XLWBBJDML_NRHHS=:pNRHHS,XLWBBJDML_NRHHZ=:pNRHHZ");
|
||
SQL.Add(" where XLWBBJDML_BJDID=:pBJDID");
|
||
SQL.Add(" and XLWBBJDML_WBBJDID=:pWBBJDID");
|
||
SQL.ParamByName("pNRHHS").Value = txtLMHHZ.Value + 1;
|
||
SQL.ParamByName("pNRHHZ").Value = MaxHH;
|
||
SQL.ParamByName("pBJDID").Value = txtBJDID.Value.Trim();
|
||
SQL.ParamByName("pWBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
dberp.ExecSQL(SQL);
|
||
txtNRHHS.Value = txtLMHHZ.Value + 1;
|
||
txtNRHHZ.Value = MaxHH;
|
||
}
|
||
|
||
return base.Master_AfterSaveAction(sender, e);
|
||
}
|
||
|
||
protected override bool DataLogicValid()
|
||
{
|
||
if (txtLMHHS.Value > txtLMHHZ.Value)
|
||
{
|
||
ShowMessage("栏目行号始不能大于止!");
|
||
return false;
|
||
}
|
||
|
||
if (txtLMHHS.Value < 0)
|
||
{
|
||
ShowMessage("栏目行号不能为负数!");
|
||
return false;
|
||
}
|
||
|
||
if (txtLMHHS.Value == 0)
|
||
{
|
||
ShowMessage("栏目行号--不允许为空!");
|
||
return false;
|
||
}
|
||
return base.DataLogicValid();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 自定义函数
|
||
|
||
//XLWBBJDLM是否已经被指定过报价单栏目
|
||
private bool HasBJDLM(string sBJDID, string sWBBJDID)
|
||
{
|
||
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLWBBJDLM_LMBH from XLWBBJDLM where XLWBBJDLM_BJDID='{0}' and XLWBBJDLM_WBBJDID='{1}' and isnull(XLWBBJDLM_ZDLMLX,' ')<>' '",
|
||
sBJDID, sWBBJDID)))
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
//去除报价产品的空格
|
||
private void ClearSpace(string sWBBJDID, string sSELBJDID)
|
||
{
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add("select XLWBBJDMX_BJDID,XLWBBJDMX_WBBJDID,XLWBBJDMX_DRHH,XLWBBJDMX_BJCP ");
|
||
SQL.Add(" from XLWBBJDMX ");
|
||
SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sSELBJDID;
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
BJCPYJX(ref ds);
|
||
SQL.Clear();
|
||
SQL.Add("update XLWBBJDMX ");
|
||
SQL.Add(" set XLWBBJDMX_BJCP=:pXLWBBJDMX_BJCP ");
|
||
SQL.Add(" where XLWBBJDMX_WBBJDID=:pWBBJDID and XLWBBJDMX_BJDID=:pBJDID and XLWBBJDMX_DRHH = :pDRHH ");
|
||
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
SQL.ParamByName("pBJDID").Value = sSELBJDID;
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
SQL.ParamByName("pDRHH").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_DRHH"].ToString().Trim();
|
||
SQL.ParamByName("pXLWBBJDMX_BJCP").Value = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim();
|
||
dberp.ExecSQL(SQL);
|
||
}
|
||
|
||
}
|
||
//图片导入时,报价产品预解析
|
||
private void BJCPYJX(ref DataSet ds)
|
||
{
|
||
string sCPXX = "";
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
sCPXX = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim();
|
||
//先处理 × 号
|
||
sCPXX = sCPXX.Replace(" ", " ").Replace(" ", " ");
|
||
sCPXX = sCPXX.Replace("@", "");
|
||
sCPXX = sCPXX.Replace("×", "@");
|
||
//【GAN-BTW TZ 4* 4张】-16位置
|
||
//byte[] byt1 = System.Text.Encoding.Default.GetBytes(sCPXX);//17
|
||
//byte[] byt2 = System.Text.ASCIIEncoding.Default.GetBytes(sCPXX);//17
|
||
//将中文处理为"?"
|
||
byte[] byt = System.Text.Encoding.ASCII.GetBytes(sCPXX);//16-?
|
||
//直接remove
|
||
string str = System.Text.Encoding.ASCII.GetString(byt);
|
||
str = str.Replace("?", "").Trim();
|
||
//
|
||
if (str.Equals(""))
|
||
{
|
||
continue;
|
||
}
|
||
try
|
||
{
|
||
#region 第一轮去除明确的空格
|
||
//A-Z 65-90
|
||
//a-z 97-122
|
||
//0-9 48-57
|
||
//空 32//# 35//$ 36//% 37//* 42//+ 43 //- 45//@ 64//^ 94//. 46
|
||
byt = System.Text.Encoding.ASCII.GetBytes(str);
|
||
int preCharAscii = byt[0];
|
||
int curCharAscii = byt[0];
|
||
int netCharAscii = byt[0];
|
||
if (byt.Length >= 2)
|
||
{
|
||
for (int m = 2; m < byt.Length; m++)
|
||
{
|
||
preCharAscii = byt[m - 2];
|
||
curCharAscii = byt[m - 1];
|
||
netCharAscii = byt[m];
|
||
if (curCharAscii.Equals(32))
|
||
{
|
||
//先执行
|
||
//是-
|
||
if (preCharAscii.Equals(45) || netCharAscii.Equals(45))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是*
|
||
if (preCharAscii.Equals(42) || netCharAscii.Equals(42))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是×
|
||
if (preCharAscii.Equals(64) || netCharAscii.Equals(64))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是.
|
||
if (preCharAscii.Equals(46) || netCharAscii.Equals(46))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是+
|
||
if (preCharAscii.Equals(43) || netCharAscii.Equals(43))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是字符
|
||
if (IsNumOrAlp(preCharAscii, "1") && IsNumOrAlp(netCharAscii, "1"))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
//是mm 2
|
||
if (preCharAscii.Equals(109) && byt[m - 3].Equals(109) && netCharAscii.Equals(50))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
str = System.Text.Encoding.ASCII.GetString(byt);
|
||
str = str.Replace("$", "").Trim();
|
||
byt = System.Text.Encoding.ASCII.GetBytes(str);
|
||
|
||
#region 第二轮去除模糊的空格
|
||
//【WDZAN-BTLY 2 2 3*240+2*120】
|
||
//【GAN-BTWTZ 22 4*4】
|
||
//【WDZ-BYJ-16mm 2】
|
||
//A-Z 65-90
|
||
//a-z 97-122
|
||
//0-9 48-57
|
||
//空 32//# 35//$ 36//% 37//* 42//+ 43 //- 45//@ 64//^ 94//. 46
|
||
byt = System.Text.Encoding.ASCII.GetBytes(str);
|
||
preCharAscii = byt[0];
|
||
curCharAscii = byt[0];
|
||
netCharAscii = byt[0];
|
||
if (byt.Length >= 2)
|
||
{
|
||
for (int m = 2; m < byt.Length; m++)
|
||
{
|
||
preCharAscii = byt[m - 2];
|
||
curCharAscii = byt[m - 1];
|
||
netCharAscii = byt[m];
|
||
if (curCharAscii.Equals(32))
|
||
{
|
||
//先执行
|
||
//"K VV 22 2*5"
|
||
//KVV 2 2 2*5
|
||
if ((IsNumOrAlp(preCharAscii, "1") && IsNumOrAlp(netCharAscii, "2")) || (IsNumOrAlp(preCharAscii, "2") && IsNumOrAlp(netCharAscii, "2")))
|
||
{
|
||
if ((m + 1) < byt.Length && (m + 2) < byt.Length && (m + 3) < byt.Length)
|
||
{
|
||
if (byt[m + 1].Equals(32) || byt[m + 2].Equals(32) || byt[m + 3].Equals(32))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
}
|
||
else if ((m + 1) < byt.Length && (m + 2) < byt.Length)
|
||
{
|
||
if (byt[m + 1].Equals(32) || byt[m + 2].Equals(32))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
}
|
||
else if ((m + 1) < byt.Length)
|
||
{
|
||
if (byt[m + 1].Equals(32))
|
||
{
|
||
byt[m - 1] = 36;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
str = System.Text.Encoding.ASCII.GetString(byt);
|
||
str = str.Replace("$", "").Replace('@', '×').Trim();
|
||
if (str.Contains("3C-2V751"))
|
||
{
|
||
str = str.Replace("3C-2V751", "3C-2V 751");
|
||
}
|
||
else if (str.Contains("3C-2V75"))
|
||
{
|
||
str = str.Replace("3C-2V75", "3C-2V 75");
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
str = ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"].ToString().Trim();
|
||
}
|
||
ds.Tables[0].Rows[i]["XLWBBJDMX_BJCP"] = str;
|
||
}
|
||
|
||
}
|
||
|
||
//判断value的ascii是不是字母,jug是1判断字母,2判断数字,3判断字母或者数字
|
||
private bool IsNumOrAlp(int value, string Jug)
|
||
{
|
||
//A-Z 65-90
|
||
//a-z 97-122
|
||
//0-9 48-57
|
||
//空 32//# 35//$ 36//% 37//* 42//+ 43 //- 45//@ 64//^ 94//. 46
|
||
bool result = false;
|
||
if (Jug.Equals("1"))
|
||
{
|
||
if ((value >= 65 && value <= 90) || (value >= 97 && value <= 122))
|
||
{
|
||
result = true;
|
||
}
|
||
}
|
||
else if (Jug.Equals("2"))
|
||
{
|
||
if (value >= 48 && value <= 57)
|
||
{
|
||
result = true;
|
||
}
|
||
}
|
||
else if (Jug.Equals("3"))
|
||
{
|
||
if ((value >= 65 && value <= 90) || (value >= 97 && value <= 122) || (value >= 48 && value <= 57))
|
||
{
|
||
result = true;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 控件事件
|
||
|
||
//指定报价单栏目
|
||
protected void btnZDBJDLM_Click(object sender, EventArgs e)
|
||
{
|
||
if (txtLMHHS.Value == 0)
|
||
{
|
||
ShowMessage("请先维护栏目行号!");
|
||
return;
|
||
}
|
||
|
||
//如果尚未被指定为报价单栏目,则重新生成XLWBBJDLM表数据
|
||
if (!HasBJDLM(txtBJDID.Value.Trim(), txtWBBJDID.Text.Trim()))
|
||
{
|
||
#region 生成XLWBBJDLM表数据
|
||
//重新查询XLWBBJDNR,将没有内容的列剔除,以便创建合适的栏目
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
sSQL.Clear();
|
||
sSQL.Add(" select ");
|
||
sSQL.Add(" XLWBBJDNR_LMNR01,XLWBBJDNR_LMNR02,XLWBBJDNR_LMNR03,XLWBBJDNR_LMNR04,XLWBBJDNR_LMNR05,XLWBBJDNR_LMNR06,XLWBBJDNR_LMNR07,XLWBBJDNR_LMNR08,XLWBBJDNR_LMNR09,XLWBBJDNR_LMNR10,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR11,XLWBBJDNR_LMNR12,XLWBBJDNR_LMNR13,XLWBBJDNR_LMNR14,XLWBBJDNR_LMNR15,XLWBBJDNR_LMNR16,XLWBBJDNR_LMNR17,XLWBBJDNR_LMNR18,XLWBBJDNR_LMNR19,XLWBBJDNR_LMNR20,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR21,XLWBBJDNR_LMNR22,XLWBBJDNR_LMNR23,XLWBBJDNR_LMNR24,XLWBBJDNR_LMNR25,XLWBBJDNR_LMNR26,XLWBBJDNR_LMNR27,XLWBBJDNR_LMNR28,XLWBBJDNR_LMNR29,XLWBBJDNR_LMNR30,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR31,XLWBBJDNR_LMNR32,XLWBBJDNR_LMNR33,XLWBBJDNR_LMNR34,XLWBBJDNR_LMNR35,XLWBBJDNR_LMNR36,XLWBBJDNR_LMNR37,XLWBBJDNR_LMNR38,XLWBBJDNR_LMNR39,XLWBBJDNR_LMNR40,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR41,XLWBBJDNR_LMNR42,XLWBBJDNR_LMNR43,XLWBBJDNR_LMNR44,XLWBBJDNR_LMNR45,XLWBBJDNR_LMNR46,XLWBBJDNR_LMNR47,XLWBBJDNR_LMNR48,XLWBBJDNR_LMNR49,XLWBBJDNR_LMNR50,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR51,XLWBBJDNR_LMNR52,XLWBBJDNR_LMNR53,XLWBBJDNR_LMNR54,XLWBBJDNR_LMNR55,XLWBBJDNR_LMNR56,XLWBBJDNR_LMNR57,XLWBBJDNR_LMNR58,XLWBBJDNR_LMNR59,XLWBBJDNR_LMNR60 ");
|
||
sSQL.Add(" from XLWBBJDNR");
|
||
sSQL.Add(" where XLWBBJDNR_BJDID=:XLWBBJDNR_BJDID and XLWBBJDNR_WBBJDID=:XLWBBJDNR_WBBJDID ");
|
||
sSQL.Add(" order by XLWBBJDNR_DRHH ");
|
||
sSQL.ParamByName("XLWBBJDNR_BJDID").Value = txtBJDID.Value.Trim();
|
||
sSQL.ParamByName("XLWBBJDNR_WBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
DataSet dsNR = dberp.OpenDataSet(sSQL);
|
||
for (int c = dsNR.Tables[0].Columns.Count - 1; c >= 0; c--)
|
||
{
|
||
bool IsEmptyCol = true;//标记是否为空列
|
||
for (int r = 0; r < dsNR.Tables[0].Rows.Count; r++)
|
||
{
|
||
if (!dsNR.Tables[0].Rows[r][c].ToString().Trim().Equals(""))
|
||
{
|
||
IsEmptyCol = false;
|
||
break;
|
||
}
|
||
}
|
||
if (IsEmptyCol)//如果是空列则从dsNR中剔除
|
||
{
|
||
dsNR.Tables[0].Columns.RemoveAt(c);
|
||
}
|
||
else
|
||
{
|
||
//遇到第一个不是空列的,就跳出循环
|
||
break;
|
||
}
|
||
}
|
||
|
||
Dictionary<string, string> dicLMMC = new Dictionary<string, string>();
|
||
XLBJD_WBBJDDRInfo.ExcelColumnName(Convert.ToInt32(txtLMHHS.Value), Convert.ToInt32(txtLMHHZ.Value), dsNR, dicLMMC);
|
||
|
||
sSQL.Clear();
|
||
sSQL.Add("delete from XLWBBJDLM where XLWBBJDLM_BJDID=:pBJDID and XLWBBJDLM_WBBJDID=:pWBBJDID");
|
||
sSQL.ParamByName("pBJDID").Value = txtBJDID.Value.Trim();
|
||
sSQL.ParamByName("pWBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
dberp.ExecSQL(sSQL);
|
||
|
||
sSQL.Clear();
|
||
sSQL.Add("insert into XLWBBJDLM ( ");
|
||
sSQL.Add(" XLWBBJDLM_BJDID,XLWBBJDLM_WBBJDID,XLWBBJDLM_LMBH,XLWBBJDLM_LMMC,XLWBBJDLM_ZDLMLX,XLWBBJDLM_WHR,XLWBBJDLM_WHRID,XLWBBJDLM_WHSJ) ");
|
||
sSQL.Add("values ( ");
|
||
sSQL.Add(" :pBJDID,:pWBBJDID,:pLMBH,:pLMMC,:pZDLMLX,:pWHR,:pWHRID,:pWHSJ) ");
|
||
//循环dicLMMC
|
||
foreach (KeyValuePair<string, string> kvp in dicLMMC)
|
||
{
|
||
sSQL.ParamByName("pBJDID").Value = txtBJDID.Value.Trim();
|
||
sSQL.ParamByName("pWBBJDID").Value = txtWBBJDID.Text.Trim();
|
||
sSQL.ParamByName("pLMBH").Value = kvp.Key;
|
||
|
||
string sLMMC = kvp.Value;
|
||
sLMMC = XLBJDUtils.SubStringFunc(sLMMC, 60);
|
||
sSQL.ParamByName("pLMMC").Value = sLMMC;
|
||
sSQL.ParamByName("pZDLMLX").Value = "";
|
||
sSQL.ParamByName("pWHRID").Value = CurSession.UserId;
|
||
sSQL.ParamByName("pWHR").Value = CurSession.UserName;
|
||
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
#endregion
|
||
}
|
||
|
||
TPageParams pageParams = new TPageParams();
|
||
pageParams.UrlPath = "XLBJD_WBBJDLMList.aspx";
|
||
pageParams.AddString("WBBJDID", txtWBBJDID.Text.Trim());
|
||
pageParams.AddString("SELBJDID", txtBJDID.Value.Trim());
|
||
OpenFuncModuleDialog(100860043, pageParams);
|
||
}
|
||
|
||
//外部报价单明细以及重新生成
|
||
protected void btnWBBJDMX_Click(object sender, EventArgs e)
|
||
{
|
||
//在点击外部报价单的时候判断栏目设置并且生成明细记录
|
||
string sErrMsg = "";
|
||
bool bResult = XLBJD_WBBJDNRList.DobtnWBBJDMX_Click(txtWBBJDID.Text.Trim(), txtBJDID.Value.Trim(), dicLMBH, CurSession, GetOption(100860000, "BJU003"), XLBJDUtils.GetDefaultXLBZID(), ref sErrMsg);
|
||
if (!sErrMsg.Equals(""))
|
||
{
|
||
ShowMessage(sErrMsg);
|
||
}
|
||
else
|
||
{
|
||
ClearSpace(txtWBBJDID.Text.Trim(), txtBJDID.Value.Trim());
|
||
}
|
||
if (bResult)
|
||
{
|
||
DialogOperationScript dos = new DialogOperationScript(this);
|
||
dos.SetCallbackArgument("OPEN");
|
||
dos.CloseSelf();
|
||
dos.Execute();
|
||
}
|
||
}
|
||
|
||
protected void btnWBBJDMX_MenuItemClick(object sender, string ItemIndex)
|
||
{
|
||
int index = Int32.Parse(ItemIndex);
|
||
switch (index)
|
||
{
|
||
case 0:
|
||
//重新生成
|
||
string sErrMsg = "";
|
||
bool bResult = XLBJD_WBBJDNRList.ReCreate(txtWBBJDID.Text.Trim(), txtBJDID.Value.Trim(), Confirm, dicLMBH, CurSession, GetOption(100860000, "BJU003"), XLBJDUtils.GetDefaultXLBZID(), ref sErrMsg);
|
||
if (!sErrMsg.Equals(""))
|
||
{
|
||
ShowMessage(sErrMsg);
|
||
}
|
||
else
|
||
{
|
||
ClearSpace(txtWBBJDID.Text.Trim(), txtBJDID.Value.Trim());
|
||
}
|
||
if (bResult)
|
||
{
|
||
DialogOperationScript dos = new DialogOperationScript(this);
|
||
dos.SetCallbackArgument("OPEN");
|
||
dos.CloseSelf();
|
||
dos.Execute();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
}
|