Files
N_XLXSBJ----MX/TZYZJJC_DRInfo.aspx.cs
T
2026-09-21 11:37:39 +08:00

241 lines
10 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_MISPRO.Data;
using GThinking.N_MISPRO.Utility;
using System.Collections.Generic;
using GThinking.N_CONTROL;
using GThinking.N_MISPROAS;
namespace GThinking.N_XLXSBJ
{
public partial class TZYZJJC_DRInfo : SingleCardBase
{
TZYZJJC_DR entity = new TZYZJJC_DR();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860166;
this.UMName = "按产品特性调表价";
base.CurMaster = Master;
base.CurEntity = entity;
this.PageHeight = 210;
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";
this.Page.Title = "导入Excel文件";
base.InitPage();
if (!IsPostBack)
{
GtLabel1.Text = "Excel栏目依次为:产品特性、主芯截面、调价因子";
txtJGBID.Value = PageParam.GetRTrimString("JGBID");
chkIns.Value = "Y";
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='C' ");
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 (ds.Tables[0].Rows.Count == 1)
{
cbxYZID.SelectedValue = ds.Tables[0].Rows[0]["XLXSTZYZ_YZID"].ToString().Trim();
}
}
}
#region 控件事件
protected void btnQD_Click(object sender, EventArgs e)
{
if (cbxYZID.SelectedValue.Trim().Equals(""))
{
ShowMessage("请选择待设置的调价因子!");
return;
}
if (fupdPost.FilePath.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);
}
ExcelColumnValid(aDataExcel);
InsertYZZC(dberp, sSQL, aDataExcel);
dberp.CommitTrans();
ShowMessage("导入成功!");
//执行完毕后刷新父页面并关闭当前页面
DialogOperationScript dos = new DialogOperationScript(this);
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
lblTitle.Text = "";
dberp.RollbackTrans();
ShowMessage(ex.Message);
}
finally
{
if (!fupdPost.FilePath.Trim().Equals("") && System.IO.File.Exists(fupdPost.FilePath.Trim()))
System.IO.File.Delete(fupdPost.FilePath.Trim());
}
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
#endregion
#region 自定义函数
private void InsertYZZC(TDatabase dberp, TSQL sSQL, DataSet ds)
{
int rrrorNUM = 2;
foreach (DataRow Row in ds.Tables[0].Rows)
{
string sCPTX = sGetCellTest(Row, 0).Trim();
string sZXJM = sGetCellTest(Row, 1).Trim();
double dZXJM = CMISproConvert.StrToFloat(sZXJM);
double dYZZ = CMISproConvert.StrToFloat(sGetCellTest(Row, 2), 0);
if (sCPTX.Trim().Equals(""))
{
throw new Exception("第" + rrrorNUM + "行产品特性为空!");
}
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB where XLXHB_XLTXID='{0}' and ISNULL(XLXHB_TYBZ,'N') <> 'Y' ", sCPTX)))
{
throw new Exception("第" + rrrorNUM + "行产品特性[" + sCPTX + "]不存在或已停用!");
}
if (dZXJM <= 0)
{
throw new Exception("第" + rrrorNUM + "行主芯截面[" + sZXJM + "]不合法!");
}
if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBYZZC where XLXSJGBYZZC_JGBID='{0}' and XLXSJGBYZZC_CPTX='{1}' and XLXSJGBYZZC_ZXJM={2} and XLXSJGBYZZC_YZID='{3}'",
txtJGBID.Value.Trim(), sCPTX, dZXJM, cbxYZID.SelectedValue.Trim())))
{
if (chkIns.Checked)//不存在的记录自动插入
{
sSQL.Clear();
sSQL.Add("insert into XLXSJGBYZZC(XLXSJGBYZZC_JGBID,XLXSJGBYZZC_CPTX,XLXSJGBYZZC_ZXJM,XLXSJGBYZZC_YZID,XLXSJGBYZZC_YZZ,XLXSJGBYZZC_WHR,XLXSJGBYZZC_WHRID,XLXSJGBYZZC_WHSJ)");
sSQL.Add(" values(:pJGBID,:pCPTX,:pZXJM,:pYZID,:pYZZ,:pWHR,:pWHRID,:pWHSJ)");
sSQL.ParamByName("pJGBID").Value = txtJGBID.Value.Trim();
sSQL.ParamByName("pCPTX").Value = sCPTX;
sSQL.ParamByName("pZXJM").Value = dZXJM;
sSQL.ParamByName("pYZID").Value = cbxYZID.SelectedValue.Trim();
sSQL.ParamByName("pYZZ").Value = dYZZ;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
}
}
else
{
sSQL.Clear();
sSQL.Add("update XLXSJGBYZZC set XLXSJGBYZZC_YZZ = :pYZZ,XLXSJGBYZZC_WHR = :pWHR,XLXSJGBYZZC_WHRID =:pWHRID,XLXSJGBYZZC_WHSJ =:pWHSJ ");
sSQL.Add(" where XLXSJGBYZZC_JGBID=:pJGBID");
sSQL.Add(" and XLXSJGBYZZC_CPTX=:pCPTX");
sSQL.Add(" and XLXSJGBYZZC_ZXJM=:pZXJM");
sSQL.Add(" and XLXSJGBYZZC_YZID=:pYZID");
sSQL.ParamByName("pJGBID").Value = txtJGBID.Value.Trim();
sSQL.ParamByName("pCPTX").Value = sCPTX;
sSQL.ParamByName("pZXJM").Value = dZXJM;
sSQL.ParamByName("pYZID").Value = cbxYZID.SelectedValue.Trim();
sSQL.ParamByName("pYZZ").Value = dYZZ;
sSQL.ParamByName("pWHR").Value = tSession.UserName;
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
dberp.ExecSQL(sSQL);
}
rrrorNUM++;
}
}
private void ExcelColumnValid(DataSet ds)
{
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
ColumnNames.Add("0", "产品特性");
ColumnNames.Add("1", "主芯截面");
ColumnNames.Add("2", cbxYZID.SelectedItem.Text.Trim());
for (int i = 0; i < 3; i++)
{
if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim()))
{
throw new Exception("导入文件的内容格式不正确,Excel栏目依次为:产品特性、主芯截面、" + cbxYZID.SelectedItem.Text.Trim() + "!");
}
}
}
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
}
}