提交所有文件3
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user