322 lines
15 KiB
C#
322 lines
15 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_WORKFLOW;
|
||
using GThinking.N_MODEL.Dialog;
|
||
using GThinking.N_PUBLIC;
|
||
using GThinking.N_MISPRO.Utility;
|
||
using GThinking.N_CONTROL;
|
||
using System.IO;
|
||
using System.Data.OleDb;
|
||
using System.Data.Common;
|
||
using System.Collections.Generic;
|
||
using GThinking.N_MISPROAS;
|
||
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public partial class DRJGBYZZ1 : SingleCardBase
|
||
{
|
||
CLQDYZ entity = new CLQDYZ();
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860017;
|
||
this.UMName = "按型号规格电压等级标准调表价";
|
||
base.CurMaster = Master;
|
||
base.CurEntity = entity;
|
||
this.PageHeight = 180;
|
||
this.PageWidth = 420;
|
||
Master.EnableAttachBtn = false;
|
||
Master.EnableCancelBtn = false;
|
||
Master.EnableCopyBtn = false;
|
||
Master.EnableDeleteBtn = false;
|
||
Master.EnableEditBtn = false;
|
||
Master.EnableInsertBtn = false;
|
||
Master.EnablePrintBtn = false;
|
||
Master.EnableRefreshBtn = false;
|
||
Master.EnableSaveBtn = false;
|
||
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
|
||
fupdPost.Filter = "XLS,XLSX";
|
||
base.InitPage();
|
||
|
||
if (!IsPostBack)
|
||
{
|
||
txtJGBID.Value = PageParam.GetRTrimString("JGBID");
|
||
chkIns.Checked = true;
|
||
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC, XLXSTZYZ_JJFS ");
|
||
SQL.Add(" from XLXSTZYZ");
|
||
SQL.Add(" where XLXSTZYZ_MXBH = 'JZJ' and XLXSTZYZ_TJYS='1' ");
|
||
SQL.Add(" and XLXSTZYZ_JGBID = :pJGBID");
|
||
SQL.Add("order by XLXSTZYZ_YZID,XLXSTZYZ_XSXH");
|
||
SQL.ParamByName("pJGBID").Value = txtJGBID.Value;
|
||
DataSet ds = dberp.OpenDataSet(SQL);
|
||
cbxYZID.ClearItems();
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
string sJJFSMC = "";
|
||
if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ"))
|
||
{
|
||
sJJFSMC = "(元)";
|
||
}
|
||
else if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JD") || ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("KD"))
|
||
{
|
||
sJJFSMC = "(%)";
|
||
}
|
||
cbxYZID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + sJJFSMC, ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim()));
|
||
}
|
||
//if (cbxYZID.Items.Count > 0)
|
||
// cbxYZID.SelectedIndex = 0;
|
||
}
|
||
}
|
||
|
||
#region 控件事件
|
||
|
||
protected void btnQD_Click(object sender, EventArgs e)
|
||
{
|
||
if (fupdPost.FilePath.Equals(""))
|
||
{
|
||
ShowMessage("请选择需要导入的文件!");
|
||
return;
|
||
}
|
||
if (cbxYZID.SelectedValue.Trim().Equals(""))
|
||
{
|
||
ShowMessage("请选择待设置的调价因子!");
|
||
return;
|
||
}
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
try
|
||
{
|
||
lblTitle.Text = "正在导入数据,请稍后...";
|
||
dberp.BeginTrans();
|
||
DataSet aDataExcel = new DataSet();
|
||
if (AppRuntime.BitType == AppBitType.Bit32)
|
||
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, "");
|
||
else // AppBitType.Bit64
|
||
ReadWJ(fupdPost.FilePath, ref aDataExcel);//只能读出前33356行记录
|
||
ExcelColumnValid(aDataExcel);
|
||
InsertYZZ1(dberp, sSQL, aDataExcel);
|
||
dberp.CommitTrans();
|
||
ShowMessage("设置完成!");
|
||
|
||
//执行完毕后关闭当前页面
|
||
DialogOperationScript dos = new DialogOperationScript(this);
|
||
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefresh1CID"));
|
||
dos.CloseSelf();
|
||
dos.Execute();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
lblTitle.Text = "";
|
||
dberp.RollbackTrans();
|
||
ShowMessage(ex.Message);
|
||
}
|
||
}
|
||
|
||
protected void btnQX_Click(object sender, EventArgs e)
|
||
{
|
||
CloseWindow();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 自定义事件
|
||
|
||
private void InsertYZZ1(TDatabase dberp, TSQL sSQL, DataSet ds)
|
||
{
|
||
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
|
||
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 i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
|
||
}
|
||
}
|
||
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
|
||
//A|× B|*
|
||
string sXLJGU007 = GetOption(102579000, "XLJGU007");
|
||
foreach (DataRow Row in ds.Tables[0].Rows)
|
||
{
|
||
string sXLXHID = sGetCellTest(Row, 0).Trim();
|
||
string sXLGGID = sGetCellTest(Row, 1).Trim();
|
||
if (sXLJGU007.Equals("A"))
|
||
{
|
||
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("*", "×");
|
||
}
|
||
else if (sXLJGU007.Equals("B"))
|
||
{
|
||
sXLGGID = sXLGGID.Replace("x", "X").Replace("X", "*").Replace("×", "*");
|
||
}
|
||
string sXLBZID = sGetCellTest(Row, 2).Trim();
|
||
if (sXLBZID.Equals(""))
|
||
sXLBZID = " ";
|
||
sXLBZID = XLBJDUtils.GetBZXLZBZID(sXLBZID, sDefaultXLBZID, dicDRMXBZ);
|
||
string sXLDYDJ = sGetCellTest(Row, 3).Trim();
|
||
string sTJDH = "";
|
||
if (ds.Tables[0].Columns.Contains("调价代号"))
|
||
sTJDH = sGetCellTest(Row, 5).Trim();
|
||
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBYZZ1 where XLXSJGBYZZ1_JGBID='{0}' and XLXSJGBYZZ1_XLXHID='{1}' and XLXSJGBYZZ1_XLGGID='{2}' and XLXSJGBYZZ1_DYDJID='{3}' and XLXSJGBYZZ1_XLBZID='{4}' and XLXSJGBYZZ1_YZID='{5}'",
|
||
txtJGBID.Value.Trim(), sXLXHID, sXLGGID, sXLDYDJ, sXLBZID, cbxYZID.SelectedValue.Trim())))
|
||
{
|
||
if (chkIns.Checked)//不存在的记录自动插入
|
||
{
|
||
sSQL.Clear();
|
||
sSQL.Add("insert into XLXSJGBYZZ1(XLXSJGBYZZ1_JGBID,XLXSJGBYZZ1_XLXHID,XLXSJGBYZZ1_XLGGID,XLXSJGBYZZ1_DYDJID,XLXSJGBYZZ1_XLBZID,XLXSJGBYZZ1_YZID,XLXSJGBYZZ1_YZZ,XLXSJGBYZZ1_TJDH,XLXSJGBYZZ1_WHR,XLXSJGBYZZ1_WHRID,XLXSJGBYZZ1_WHSJ)");
|
||
sSQL.Add(" values(:XLXSJGBYZZ1_JGBID,:XLXSJGBYZZ1_XLXHID,:XLXSJGBYZZ1_XLGGID,:XLXSJGBYZZ1_DYDJID,:XLXSJGBYZZ1_XLBZID,:XLXSJGBYZZ1_YZID,:XLXSJGBYZZ1_YZZ,:XLXSJGBYZZ1_TJDH,:XLXSJGBYZZ1_WHR,:XLXSJGBYZZ1_WHRID,:XLXSJGBYZZ1_WHSJ)");
|
||
sSQL.ParamByName("XLXSJGBYZZ1_JGBID").Value = txtJGBID.Value.Trim();
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLXHID").Value = sXLXHID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLGGID").Value = sXLGGID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_DYDJID").Value = sXLDYDJ;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLBZID").Value = sXLBZID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_YZID").Value = cbxYZID.SelectedValue.Trim();
|
||
sSQL.ParamByName("XLXSJGBYZZ1_YZZ").Value = CMISproConvert.StrToFloat(sGetCellTest(Row, 4), 0);
|
||
sSQL.ParamByName("XLXSJGBYZZ1_TJDH").Value = sTJDH;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
sSQL.Clear();
|
||
sSQL.Add("update XLXSJGBYZZ1 set XLXSJGBYZZ1_YZZ=:XLXSJGBYZZ1_YZZ,XLXSJGBYZZ1_TJDH=:XLXSJGBYZZ1_TJDH,XLXSJGBYZZ1_WHR=:XLXSJGBYZZ1_WHR,XLXSJGBYZZ1_WHRID=:XLXSJGBYZZ1_WHRID,XLXSJGBYZZ1_WHSJ=:XLXSJGBYZZ1_WHSJ");
|
||
sSQL.Add(" where XLXSJGBYZZ1_JGBID=:XLXSJGBYZZ1_JGBID");
|
||
sSQL.Add(" and XLXSJGBYZZ1_XLXHID=:XLXSJGBYZZ1_XLXHID");
|
||
sSQL.Add(" and XLXSJGBYZZ1_XLGGID=:XLXSJGBYZZ1_XLGGID");
|
||
sSQL.Add(" and XLXSJGBYZZ1_DYDJID=:XLXSJGBYZZ1_DYDJID");
|
||
sSQL.Add(" and XLXSJGBYZZ1_XLBZID=:XLXSJGBYZZ1_XLBZID");
|
||
sSQL.Add(" and XLXSJGBYZZ1_YZID=:XLXSJGBYZZ1_YZID");
|
||
sSQL.ParamByName("XLXSJGBYZZ1_JGBID").Value = txtJGBID.Value.Trim();
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLXHID").Value = sXLXHID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLGGID").Value = sXLGGID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_DYDJID").Value = sXLDYDJ;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_XLBZID").Value = sXLBZID;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_YZID").Value = cbxYZID.SelectedValue.Trim();
|
||
sSQL.ParamByName("XLXSJGBYZZ1_YZZ").Value = CMISproConvert.StrToFloat(sGetCellTest(Row, 4), 0);
|
||
sSQL.ParamByName("XLXSJGBYZZ1_TJDH").Value = sTJDH;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("XLXSJGBYZZ1_WHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void ExcelColumnValid(DataSet ds)
|
||
{
|
||
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
|
||
ColumnNames.Add("0", "型号");
|
||
ColumnNames.Add("1", "规格");
|
||
ColumnNames.Add("2", "标准");
|
||
ColumnNames.Add("3", "电压等级");
|
||
ColumnNames.Add("4", cbxYZID.SelectedItem.Text.Trim());
|
||
|
||
for (int i = 0; i < 5; i++)
|
||
{
|
||
if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim()))
|
||
{
|
||
throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:型号、规格、标准、电压等级、" + cbxYZID.SelectedItem.Text.Trim() + "!");
|
||
}
|
||
}
|
||
if (ds.Tables[0].Columns.Count > 5)
|
||
{
|
||
if (!ds.Tables[0].Columns[5].ColumnName.Trim().Equals("调价代号"))
|
||
throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:型号、规格、标准、电压等级、" + cbxYZID.SelectedItem.Text.Trim() + "、调价代号!");
|
||
}
|
||
List<string> lstXLXHID = new List<string>();
|
||
List<string> lstXLBZID = new List<string>();
|
||
List<string> lstDYDJID = new List<string>();
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL SQL = new TSQL(dberp);
|
||
SQL.Clear();
|
||
SQL.Add(" select XLXHB_XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by XLXHB_XLXHID ");
|
||
DataSet dsTmp = dberp.OpenDataSet(SQL);
|
||
if (dsTmp.Tables[0].Rows.Count > 0)
|
||
{
|
||
lstXLXHID.Clear();
|
||
for (int i = 0; i < dsTmp.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!lstXLXHID.Contains(dsTmp.Tables[0].Rows[i][0].ToString().Trim().ToUpper()))
|
||
lstXLXHID.Add(dsTmp.Tables[0].Rows[i][0].ToString().Trim().ToUpper());
|
||
}
|
||
}
|
||
Dictionary<string, string> dicDRMXBZ = new Dictionary<string, string>();
|
||
dicDRMXBZ.Clear();
|
||
SQL.Clear();
|
||
SQL.Add("select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ where 1 = 1 ");
|
||
DataSet dsXLBZ = dberp.OpenDataSet(SQL);
|
||
if (dsXLBZ.Tables[0].Rows.Count > 0)
|
||
{
|
||
for (int i = 0; i < dsXLBZ.Tables[0].Rows.Count; i++)
|
||
{
|
||
dicDRMXBZ.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
|
||
if (!lstXLBZID.Contains(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim()))
|
||
lstXLBZID.Add(dsXLBZ.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim());
|
||
}
|
||
}
|
||
SQL.Clear();
|
||
SQL.Add(" select XLDYDJB_DYDJID from XLDYDJB where isnull(XLDYDJB_TYBZ,' ')<>'Y' order by XLDYDJB_XH ");
|
||
dsTmp = dberp.OpenDataSet(SQL);
|
||
if (dsTmp.Tables[0].Rows.Count > 0)
|
||
{
|
||
lstDYDJID.Clear();
|
||
for (int i = 0; i < dsTmp.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!lstDYDJID.Contains(dsTmp.Tables[0].Rows[i][0].ToString().Trim().ToUpper()))
|
||
lstDYDJID.Add(dsTmp.Tables[0].Rows[i][0].ToString().Trim().ToUpper());
|
||
}
|
||
}
|
||
|
||
string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID();
|
||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||
{
|
||
if (!lstXLXHID.Contains(ds.Tables[0].Rows[i][0].ToString().Trim().ToUpper()))
|
||
{
|
||
throw new Exception("第" + (i + 2).ToString() + "行型号为空或不存在或已停用,不允许导入!");
|
||
}
|
||
if (!lstDYDJID.Contains(ds.Tables[0].Rows[i][3].ToString().Trim().ToUpper()))
|
||
{
|
||
throw new Exception("第" + (i + 2).ToString() + "行电压等级为空或不存在或已停用,不允许导入!");
|
||
}
|
||
}
|
||
}
|
||
|
||
private void ReadWJ(string sPath, ref DataSet aDataExcel)
|
||
{
|
||
string sMessage = "";
|
||
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), "", "", false, ref sMessage);
|
||
if (!sMessage.Trim().Equals(""))
|
||
{
|
||
throw new Exception("文件读取失败!具体原因:" + sMessage);
|
||
}
|
||
}
|
||
|
||
private string sGetCellTest(DataRow Row, int ColumnIndex)
|
||
{
|
||
return Row[ColumnIndex].ToString().Trim().Replace("\r\n", "").Replace("\n", "");
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
}
|