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

402 lines
16 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.Data;
using GThinking.N_MISPRO;
using GThinking.N_WORKFLOW;
using System.Collections.Generic;
using GThinking.N_CONTROL;
namespace GThinking.N_XLXSBJ
{
public partial class XLBJD_WBBJDNRList : SingleGridBase
{
XLBJD_WBBJDNR entity = new XLBJD_WBBJDNR();
Dictionary<string, string> dicHeaderTextCPMC = new Dictionary<string, string>();
//指定栏目类型-栏目编号
Dictionary<string, string> dicLMBH = new Dictionary<string, string>();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860043;
this.UMName = "外部线缆产品导入";
this.CurMaster = Master;
this.ModuleGV = ContentGrid;
this.CurEntity = entity;
this.PageHeight = 600;
this.PageWidth = 750;
base.DataKeyNames = new string[] { "XLWBBJDNR_WBBJDID", "XLWBBJDNR_DRHH" };
this.Master.EnableNewBtn = false;
this.Master.EnableCopyBtn = false;
this.Master.EnableViewBtn = false;
this.Master.EnableEditBtn = false;
this.Master.EnableDeleteBtn = false;
this.Master.EnablePrintBtn = false;
this.Master.EnableAttachBtn = false;
this.Master.EnableQueryBtn = false;
string sXLBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
if (sXLBJDID.Trim().Equals(""))
{
btnWBBJDMX.Visible = false;
}
else
{
btnWBBJDMX.Visible = true;
}
if (!IsPostBack)
{
}
base.InitPage();
this.ModuleGV.OnClientDblClick = "return false;";
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#region 模板继承事件
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.Master_OnStandardQuery(sender, e);
entity.EntityTable.QuerySelSql = GetQuerySql();
entity.GridDataBind(ContentGrid, tSession);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
entity.EntityTable.QuerySelSql = GetQuerySql();
ContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
#endregion
#region 私有函数
private string GetQuerySql()
{
InitGrid();
string sWBBJDID = PageParam.GetRTrimString("WBBJDID");
string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
string sSQL = " select XLWBBJDNR_WBBJDID,XLWBBJDNR_DRHH, ";
foreach (KeyValuePair<string, string> kpv in dicHeaderTextCPMC)
{
sSQL += string.Format("XLWBBJDNR_LMNR{0},", kpv.Key.ToString().Trim());
}
sSQL += " XLWBBJDNR_BJDID ";
sSQL += " from XLWBBJDNR where 1=1 ";
sSQL += "\r\n and XLWBBJDNR_WBBJDID = :XLWBBJDNR_WBBJDID ";
entity.Param.Add("XLWBBJDNR_WBBJDID", sWBBJDID);
sSQL += "\r\n and XLWBBJDNR_BJDID = :XLWBBJDNR_BJDID ";
entity.Param.Add("XLWBBJDNR_BJDID", sSELBJDID);
sSQL += " order by XLWBBJDNR_DRHH ";
return sSQL;
}
public void InitGrid()
{
dicHeaderTextCPMC.Clear();
if (string.IsNullOrEmpty(PageParam.GetRTrimString("WBBJDID")))
return;
string sWBBJDID = PageParam.GetRTrimString("WBBJDID");
string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
DataSet ds;
sql.Add(" select XLWBBJDLM_WBBJDID,XLWBBJDLM_LMBH,XLWBBJDLM_LMMC,XLWBBJDLM_BJDID from XLWBBJDLM ");
sql.Add(" where XLWBBJDLM_WBBJDID=:XLWBBJDLM_WBBJDID and XLWBBJDLM_BJDID=:XLWBBJDLM_BJDID ");
sql.Add(" order by XLWBBJDLM_LMBH ");
sql.ParamByName("XLWBBJDLM_WBBJDID").Value = sWBBJDID;
sql.ParamByName("XLWBBJDLM_BJDID").Value = sSELBJDID;
ds = dberp.OpenDataSet(sql);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dicHeaderTextCPMC.Add((ds.Tables[0].Rows[i]["XLWBBJDLM_LMBH"].ToString().Trim()), ds.Tables[0].Rows[i]["XLWBBJDLM_LMMC"].ToString().Trim());
}
string sValue = "";
foreach (KeyValuePair<string, string> kpv in dicHeaderTextCPMC)
{
sValue = kpv.Value.ToString().Trim();
AddColumn(0, "XLWBBJDNR_LMNR" + kpv.Key.ToString().Trim(), kpv.Value.ToString().Trim(), sValue.Length < 8 ? 160 : sValue.Length * 10 + 80, true);
}
}
public static bool ReCreate(string sWBBJDID, string sXLBJDID, TConfirm Confirm, Dictionary<string, string> dicLMBH, CMISproSession tSession, string sBJU003, string sDefaultXLBZID, ref string sErrMsg)
{
//判断是否导入报价单了
string sSQL = string.Format("select top 1 XLXSBJDMX_BJDID from XLXSBJDMX where XLXSBJDMX_WBBJDID='{0}' and XLXSBJDMX_BJDID='{1}' ", sWBBJDID, sXLBJDID);
if (CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
sErrMsg = "已导入报价单,不允许重新生成!";
return false;
}
Confirm.Register("IsQD", "即将根据导入内容重新生成外部报价单明细,是否继续?");
Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No;
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return false;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
//表示进行了提示并选择了取消,直接返回或其他处理
Confirm.Clear();
return false;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
//表示进行了提示并选择了确认
Confirm.Clear();
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
XLWBBJDUtils.InsXLWBBJDMX(dberp, SQL, sWBBJDID, sXLBJDID, tSession, ref sErrMsg);
if (!sErrMsg.Equals(""))
{
throw new Exception(sErrMsg);
}
//重新导入需要更新预处理字段为"N"
SQL.Clear();
SQL.Add("update XLWBBJDML set XLWBBJDML_YCL ='N' where XLWBBJDML_WBBJDID = :pWBBJDID and XLWBBJDML_BJDID = :pXLBJDID ");
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
SQL.ParamByName("pXLBJDID").Value = sXLBJDID;
dberp.ExecSQL(SQL);
dberp.CommitTrans();
return true;
}
catch (Exception ex)
{
sErrMsg = "自动生成外部报价单明细失败,请检查指定的报价单栏目是否正确!" + ex;
dberp.RollbackTrans();
return false;
}
}
public static bool DobtnWBBJDMX_Click(string sWBBJDID, string sXLBJDID, Dictionary<string, string> dicLMBH, CMISproSession tSession, string sBJU003, string sDefaultXLBZID, ref string sErrMsg)
{
string sSQL = "";
sSQL = string.Format("select top 1 XLWBBJDMX_BJDID from XLWBBJDMX where XLWBBJDMX_WBBJDID='{0}' and XLWBBJDMX_BJDID='{1}' ", sWBBJDID, sXLBJDID);
if (!CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
XLWBBJDUtils.InsXLWBBJDMX(dberp, SQL, sWBBJDID, sXLBJDID, tSession, ref sErrMsg);
if (!sErrMsg.Equals(""))
{
throw new Exception(sErrMsg);
}
dberp.CommitTrans();
return true;
}
catch (Exception ex)
{
sErrMsg = "自动生成报价单明细失败,请检查指定的报价单栏目是否正确!" + ex;
dberp.RollbackTrans();
return false;
}
}
else
{
return true;
}
}
public static bool DobtnWBBJDMX_Click(string[] sWBBJDID, string sXLBJDID, Dictionary<string, string> dicLMBH, CMISproSession tSession, string sBJU003, string sDefaultXLBZID, ref string sErrMsg)
{
if (!(sWBBJDID.Length >= 1))
return false;
//同一个分组是同一个报价单id
string sSQL = "";
sSQL = string.Format("select top 1 XLWBBJDMX_BJDID from XLWBBJDMX where XLWBBJDMX_WBBJDID='{0}' and XLWBBJDMX_BJDID='{1}' ", sWBBJDID[0], sXLBJDID);
if (!CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
for (int i = 0; i < sWBBJDID.Length; i++)
XLWBBJDUtils.InsXLWBBJDMX(dberp, SQL, sWBBJDID[i], sXLBJDID, tSession, ref sErrMsg);
if (!sErrMsg.Equals(""))
{
throw new Exception(sErrMsg);
}
dberp.CommitTrans();
return true;
}
catch (Exception ex)
{
sErrMsg = "自动生成报价单明细失败,请检查指定的报价单栏目是否正确!" + ex;
dberp.RollbackTrans();
return false;
}
}
else
{
return true;
}
}
#endregion
#region 按钮事件
//指定报价单栏目
protected void btnZDBJDLM_Click(object sender, EventArgs e)
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_WBBJDLMList.aspx";
pageParams.AddString("WBBJDID", PageParam.GetRTrimString("WBBJDID"));
//当前选中行的报价单ID
pageParams.AddString("SELBJDID", PageParam.GetRTrimString("SELBJDID"));
pageParams.AddString("MLFZH", PageParam.GetRTrimString("MLFZH"));
OpenDialog(pageParams);
}
//外部报价单明细以及重新生成
protected void btnWBBJDMX_Click(object sender, EventArgs e)
{
//在点击外部报价单的时候判断栏目设置并且生成明细记录
string sErrMsg = "";
string sMLFZH = PageParam.GetRTrimString("MLFZH");
string sBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
bool bResult = false;
if (sMLFZH == "0")
bResult = DobtnWBBJDMX_Click(PageParam.GetRTrimString("WBBJDID"), sBJDID, dicLMBH, tSession, GetOption(100860000, "BJU003"), XLBJDUtils.GetDefaultXLBZID(), ref sErrMsg);
else
{
string[] sWBBJDIDList = XLWBBJDUtils.GetWBBJDListByMLFZH(sBJDID, PageParam.GetRTrimString("MLFZH")).Split(',');
bResult = DobtnWBBJDMX_Click(sWBBJDIDList, PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"), dicLMBH, tSession, GetOption(100860000, "BJU003"), XLBJDUtils.GetDefaultXLBZID(), ref sErrMsg);
}
if (!sErrMsg.Equals(""))
{
ShowMessage(sErrMsg);
}
if (bResult)
{
DialogOperationScript dos = new DialogOperationScript(this);
//dos.SetOwnerControlValue(PageParam.GetRTrimString("txtSource"), "FNR");
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 = ReCreate(PageParam.GetRTrimString("WBBJDID"), PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID"),
Confirm, dicLMBH, tSession, GetOption(100860000, "BJU003"), XLBJDUtils.GetDefaultXLBZID(), ref sErrMsg);
if (!sErrMsg.Equals(""))
{
ShowMessage(sErrMsg);
}
if (bResult)
{
DialogOperationScript dos = new DialogOperationScript(this);
//dos.SetOwnerControlValue(PageParam.GetRTrimString("txtSource"), "FNR");
dos.SetCallbackArgument("OPEN");
dos.CloseSelf();
dos.Execute();
}
break;
}
}
//删除
protected void btnDELETE_Click(object sender, EventArgs e)
{
string sWBBJDID = PageParam.GetRTrimString("WBBJDID");
string sSELBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
if (ContentGrid.SelectedIndex < 0)
{
ShowMessage("请选择需要删除的记录!");
return;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" delete from XLWBBJDNR where XLWBBJDNR_WBBJDID=:pWBBJDID and XLWBBJDNR_BJDID=:pBJDID and XLWBBJDNR_DRHH = :pDRHH ");
SQL.ParamByName("pWBBJDID").Value = sWBBJDID;
SQL.ParamByName("pBJDID").Value = sSELBJDID;
SQL.ParamByName("pDRHH").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLWBBJDNR_DRHH"].ToString().Trim();
dberp.ExecSQL(SQL);
btnRefresh_Click(null, null);
}
protected void btnRefresh_Click(object sender, EventArgs e)
{
moduleGV_PageIndexChanging(null, null);
}
#endregion
#region GridView增加列
/// <summary>
/// 设置etString列的属性
/// </summary>
/// <param name="sDataField"></param>
/// <param name="HeadText"></param>
/// <param name="Width"></param>
private void AddColumn(int index, string sDataField, string HeadText, int Width, bool fVisible)
{
BoundField Column = new BoundField();
Column.DataField = sDataField;
Column.HeaderText = HeadText;
Column.ItemStyle.Width = (Unit)Width;
Column.HeaderStyle.Width = (Unit)Width;
Column.Visible = fVisible;
ContentGrid.Columns.Add(Column);
gtGridView_Column ColumnEx = new gtGridView_Column();
ColumnEx.DataField = sDataField;
ColumnEx.EditType = TEditType.etString;
ColumnEx.ShowHint = true;
ContentGrid.ColumnsEx.Insert(index, ColumnEx);
}
#endregion
}
}