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

703 lines
31 KiB
C#
Raw Permalink 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_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 GThinking.N_MISPROAS;
using System.Collections.Generic;
namespace GThinking.N_XLXSBJ
{
public partial class XLJGB_DRInfo : SingleCardBase
{
XLJGB_DREntity entity = new XLJGB_DREntity();
//数据库插入
int sSucessIs = 0;
//数据库更新
int sSucessUp = 0;
//表格数据
int sSucessDr = 0;
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860001;
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;
Server.ScriptTimeout = 3600;
fupdPost.FileSaveType = gtAsyncFileUpload.DFileSaveType.SaveToPath;
if (AppRuntime.BitType == AppBitType.Bit32)
fupdPost.Filter = "XLS";
else // AppBitType.Bit64
fupdPost.Filter = "XLS,XLSX";
base.InitPage();
Server.ScriptTimeout = 3600;
if(PageParam.GetRTrimString("JJLY").Equals("D"))
{
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税基价、无税基价";
if(PageParam.GetRTrimString("BJLY").Equals("D"))
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、含税表价、无税表价";
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、工艺卡号、备注";
if (PageParam.GetRTrimString("BJLY").Equals("D"))
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税基价、无税基价、含税表价、无税表价、工艺卡号、备注";
}
else
{
lblLMNR2.Text = "一:型号、规格、标准、电压等级、计量单位、含税表价、无税表价";
lblLMNR3.Text = "二:型号、规格、标准、电压等级、计量单位、含税表价、无税表价、工艺卡号、备注";
}
if (!IsPostBack)
{
chkSheet.Checked = false;
cbxSheetList.Enabled = false;
}
}
#region 控件事件
protected void btnQD_Click(object sender, EventArgs e)
{
if (fupdPost.FilePath.Equals(""))
{
ShowMessage("请选择需要导入的文件!");
return;
}
else
{
if (!txtLastPath.Value.Trim().Equals(""))
{
if ((fupdPost.FilePath != txtLastPath.Value) && !cbxSheetList.SelectedValue.Trim().Equals(""))
{
ShowMessage("导入文件已发生变化,请重新指定导入页面!");
chkSheet_CheckedChanged(null, null);
return;
}
}
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
//当前价格表ID
string sJGBID = PageParam.GetRTrimString("XLXSJGBMX_JGBID");
string sJGBMC = PageParam.GetRTrimString("XLXSJGBMX_JGBMC");
sSucessDr = 0;
sSucessIs = 0;
sSucessUp = 0;
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 ds = dberp.OpenDataSet(sSQL);
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dicDRMXBZ.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim());
}
}
if (cbxSheetList.SelectedValue.Trim().Equals(""))
{
DataSet aDataExcel = new DataSet();
if (AppRuntime.BitType == AppBitType.Bit32)
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, "");
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, "", ref aDataExcel);
ExcelColumnName(aDataExcel);
//
string sFileName = fupdPost.FileName;
string sSheetName = GetDefaultSheetName(fupdPost.FilePath);
ExecDRSQL(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
ExecDRBZ(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
}
else
{
string[] sSheetList = cbxSheetList.SelectedValue.Split(',');
for (int i = 0; i < sSheetList.Length; i++)
{
DataSet aDataExcel = new DataSet();
if (AppRuntime.BitType == AppBitType.Bit32)
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, 0, sSheetList[i]);
else // AppBitType.Bit64
ReadWJ(fupdPost.FilePath, sSheetList[i], ref aDataExcel);
ExcelColumnName(aDataExcel);
//
string sFileName = fupdPost.FileName;
string sSheetName = sSheetList[i];
ExecDRSQL(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
ExecDRBZ(dberp, sSQL, aDataExcel, sJGBID, dicDRMXBZ, sFileName, sSheetName);
}
}
dberp.CommitTrans();
ShowMessage(String.Format("已导入到价格表【{0}】中!\r\n成功导入数据:{1}条。\r\n", sJGBID + "|" + sJGBMC, sSucessDr));
DialogOperationScript dos = new DialogOperationScript(this);
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return;
}
}
protected void btnQX_Click(object sender, EventArgs e)
{
CloseWindow();
}
protected void chkSheet_CheckedChanged(object sender, EventArgs e)
{
if (chkSheet.Checked)
{
string AllsSheetName = "";
if (fupdPost.FilePath.Equals(""))
{
ShowMessage("请选择需要导入的文件!");
chkSheet.Checked = false;
return;
}
cbxSheetList.Enabled = true;
cbxSheetList.ClearItems();
cbxSheetList.SelectedValue = "";
string connStr = GetConnString(fupdPost.FilePath);
OleDbConnection m_conn = new OleDbConnection(connStr);
m_conn.Open();
DataTable sheetNames = m_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
if (sheetNames.Rows[0].Table.Rows.Count == 1)
{
string sSheetName = sheetNames.Rows[0].Table.Rows[0]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
cbxSheetList.SelectedValue = sSheetName;
}
else
{
for (int i = 0; i < sheetNames.Rows[0].Table.Rows.Count; i++)
{
string sSheetName = sheetNames.Rows[0].Table.Rows[i]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
AllsSheetName = AllsSheetName + "," + sSheetName;
AllsSheetName = AllsSheetName.TrimEnd(',');
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
}
cbxSheetList.SelectedValue = AllsSheetName;
}
if (m_conn.State == ConnectionState.Open)
{
m_conn.Dispose();
m_conn = null;
}
txtLastPath.Value = fupdPost.FilePath;
FormAreaUpdate();
}
else
{
cbxSheetList.ClearItems();
cbxSheetList.SelectedValue = "";
cbxSheetList.Enabled = false;
FormAreaUpdate();
}
}
// 根据32/64位运行时返回不同的连接字符串。
private string GetConnString(string sPath)
{
string conn;
if (AppRuntime.BitType == AppBitType.Bit32)
{
conn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + sPath + ";" + "Extended Properties=Excel 8.0;";
//conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sPath + @";Extended Properties=""Excel 8.0;IMEX=1;ImportMixedTypes=Text""";
}
else // AppBitType.Bit64
{
conn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + sPath + ";" + "Extended Properties=Excel 8.0;";
}
return conn;
}
#endregion
#region 自定义事件
private void ExecDRSQL(TDatabase dberp, TSQL sSQL, DataSet ds, string sJGBID, Dictionary<string, string> dicDRMXBZ, string sFileName, string sSheetName)
{
#region 导入记录
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "G";
string sXLDYDJ = "";
string sJLDW = "";
int iXH = 1;
//是否启用非长度计量单位
bool bQYFCDJLDW = XLBJDUtils.GetXLXSBJPZXX(100860018).QYFCDJLDW();
Dictionary<string, double> dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD();
//有效期
string sYXQS = PageParam.GetRTrimString("YXQS");
string sYXQZ = PageParam.GetRTrimString("YXQZ");
string sBJU003 = PageParam.GetRTrimString("BJU003");
string sDefaultXLBZID = PageParam.GetRTrimString("sDefaultXLBZID");
string sJJLY = PageParam.GetRTrimString("JJLY");
string sBJLY = PageParam.GetRTrimString("BJLY");
string sCLCB = "";
string sCPJJ = "";
string sWSCLCB = "";
string sWSCPJJ = "";
//A|× B|*
string sXLJGU007 = GetOption(102579000, "XLJGU007");
iXH = XLJGB_JGBMX.getMaxXH(sJGBID)-1;
Mac.MacLog.TraceFormat(String.Format("ExecDRSQL-Begin"));
//V_XSBJJSJGB_ID
int VnewID = CMISproDataBase.NewID("DBERP", "V_XSBJJSJGB");
//V表序号从1开始
int iVXH = 1;
#region 循环EXCEL插入V表
foreach (DataRow Row in ds.Tables[0].Rows)
{
sSucessDr++;
sXLXHID = sGetCellTest(Row, 0).Trim();
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("×", "*");
}
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2).Trim(), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Equals(""))
sXLBZID = sGetCellTest(Row, 2).Trim();
sXLDYDJ = sGetCellTest(Row, 3).Trim().Replace('K', 'k').Replace('v', 'V'); ;
sJLDW = sGetCellTest(Row, 4).Trim();
if (!bQYFCDJLDW)
{
if (!sJLDW.ToUpper().Equals("KM") && !sJLDW.ToUpper().Equals("M") && !sJLDW.Equals("千米") && !sJLDW.Equals("米") && !dicLenJLDWTD.ContainsKey(sJLDW))
sJLDW = sBJU003;
else if (sJLDW.ToUpper().Equals("KM"))
sJLDW = "Km";
else if (sJLDW.ToUpper().Equals("M"))
sJLDW = "M";
}
else
{
if (sJLDW.Equals(""))
sJLDW = sBJU003;
else if (sJLDW.ToUpper().Equals("KM"))
sJLDW = "Km";
else if (sJLDW.ToUpper().Equals("M"))
sJLDW = "M";
}
sCLCB = sGetCellTest(Row, 5).Trim();
sCPJJ = sGetCellTest(Row, 5).Trim();
sWSCLCB = sGetCellTest(Row, 6).Trim();
sWSCPJJ = sGetCellTest(Row, 6).Trim();
if (sJJLY.Equals("D") && sBJLY.Equals("D"))
{
sCPJJ = sGetCellTest(Row, 7).Trim();
sWSCPJJ = sGetCellTest(Row, 8).Trim();
}
#region 插入V_XSBJJSJGB表 V_XSBJJSJGB_JGBJJ->含税基价 V_XSBJJSJGB_JGBBJ->无税基价,V_XSBJJSJGB_CLCB->含税表价,V_XSBJJSJGB_BJDHQCLCB->无税表价
sSQL.Clear();
sSQL.Add(@"insert into V_XSBJJSJGB (V_XSBJJSJGB_ID,V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID,V_XSBJJSJGB_JGBJLDW,V_XSBJJSJGB_JGBJJ,V_XSBJJSJGB_JGBBJ,V_XSBJJSJGB_CLCB,V_XSBJJSJGB_BJDHQCLCB )
values(:pID,:pJGBID,:pXH,:pXLXHID,:pXLGGID,:pXLBZID,:pDYDJID,:pJGBJLDW,:pJGBJJ,:pJGBBJ,:pHSBJ,:pWSBJ)");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
sSQL.ParamByName("pXH").Value = iVXH++;
sSQL.ParamByName("pXLXHID").Value = sXLXHID;
sSQL.ParamByName("pXLGGID").Value = sXLGGID;
sSQL.ParamByName("pXLBZID").Value = sXLBZID;
sSQL.ParamByName("pDYDJID").Value = sXLDYDJ;
sSQL.ParamByName("pJGBJLDW").Value = sJLDW;
sSQL.ParamByName("pJGBJJ").Value = CMISproConvert.StrToFloat(sCLCB, 0);
sSQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sWSCLCB, 0);
sSQL.ParamByName("pHSBJ").Value = CMISproConvert.StrToFloat(sCPJJ, 0);
sSQL.ParamByName("pWSBJ").Value = CMISproConvert.StrToFloat(sWSCPJJ, 0);
dberp.ExecSQL(sSQL);
#endregion
}
#endregion
#region 存在相同报价产品不允许导入
sSQL.Clear();
sSQL.Add(" SELECT V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID ");
sSQL.Add(" FROM V_XSBJJSJGB where V_XSBJJSJGB_ID = :pID and V_XSBJJSJGB_BJDID=:pJGBID ");
sSQL.Add(" GROUP BY V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID HAVING COUNT(1) > 1 ");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
DataSet dsV = dberp.OpenDataSet(sSQL);
if (dsV.Tables[0].Rows.Count > 0)
{
#region 删除V表
sSQL.Clear();
sSQL.Add("delete from V_XSBJJSJGB ");
sSQL.Add(" where V_XSBJJSJGB_ID=:pID");
sSQL.Add(" and V_XSBJJSJGB_BJDID=:pJGBID");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
#endregion
string sErrXLXHID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLXHID"].ToString().Trim();
string sErrXLGGID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLGGID"].ToString().Trim();
string sErrXLBZID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_XLBZID"].ToString().Trim();
string sErrDYDJID = dsV.Tables[0].Rows[0]["V_XSBJJSJGB_DYDJID"].ToString().Trim();
string sErrorMessage = "导入数据中存在相同报价产品[" + sErrXLXHID + " " + sErrXLGGID + " " + sErrXLBZID + " " + sErrDYDJID + "],导入失败!";
throw new Exception(sErrorMessage);
}
#endregion
#region 将V表插入XLXSJGBMX
sSQL.Clear();
sSQL.Add(@" merge into XLXSJGBMX tar
using ( select row_number() over( order by V_XSBJJSJGB_BJDXH )+:pMaxXH as XH,
V_XSBJJSJGB_XLXHID as XLXHID,
V_XSBJJSJGB_XLGGID as XLGGID,
V_XSBJJSJGB_XLBZID as XLBZID,
V_XSBJJSJGB_DYDJID as DYDJID,
V_XSBJJSJGB_JGBJLDW as JLDW,
V_XSBJJSJGB_JGBJJ as JGBJJ,
V_XSBJJSJGB_JGBBJ as JGBBJ,
V_XSBJJSJGB_CLCB as HSBJ,
V_XSBJJSJGB_BJDHQCLCB as WSBJ,
case when upper(V_XSBJJSJGB_JGBJLDW) in ('KM','千米') then 0.001 when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米') then 1 else 0 end as dJQJGXS
from V_XSBJJSJGB
where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pJGBID
) sor
on (
tar.XLXSJGBMX_JGBID=:pJGBID
and tar.XLXSJGBMX_XLXHID =sor.XLXHID
and tar.XLXSJGBMX_XLGGID =sor.XLGGID
and tar.XLXSJGBMX_XLBZID =sor.XLBZID
and tar.XLXSJGBMX_DYDJID =sor.DYDJID
)
when matched then update set ");
sSQL.Add(" XLXSJGBMX_WSJJ = sor.JGBBJ ,XLXSJGBMX_HSJJ = sor.JGBJJ, ");
sSQL.Add(" XLXSJGBMX_HSBJ = sor.JGBJJ ,XLXSJGBMX_WSBJ=sor.JGBBJ,XLXSJGBMX_JLDW=sor.JLDW, ");
sSQL.Add(" XLXSJGBMX_HSJJM = RoundFix(sor.JGBJJ* sor.dJQJGXS,6),XLXSJGBMX_HSBJM=RoundFix(sor.JGBJJ* sor.dJQJGXS,6),XLXSJGBMX_WSJJM=RoundFix(sor.JGBBJ* sor.dJQJGXS,6),XLXSJGBMX_WSBJM=RoundFix(sor.JGBBJ* sor.dJQJGXS,6), ");
sSQL.Add(" XLXSJGBMX_WHR = :XLXSJGBMX_WHR, XLXSJGBMX_WHRID=:XLXSJGBMX_WHRID, XLXSJGBMX_WHSJ=:XLXSJGBMX_WHSJ ");
sSQL.Add(" when not matched then insert ( ");
sSQL.Add(" XLXSJGBMX_JGBID, XLXSJGBMX_XH,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,XLXSJGBMX_JLDW, ");
sSQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_BZ,XLXSJGBMX_WHR,XLXSJGBMX_WHRID,XLXSJGBMX_WHSJ,");
sSQL.Add(" XLXSJGBMX_HSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_WSBJM )");
sSQL.Add(" values(");
sSQL.Add(" :pJGBID,sor.XH,sor.XLXHID,sor.XLGGID,sor.XLBZID,isnull(sor.DYDJID,' '),sor.JLDW, ");
sSQL.Add(" :XLXSJGBMX_YXQS,:XLXSJGBMX_YXQZ,sor.JGBBJ,sor.JGBJJ,sor.HSBJ,sor.WSBJ,:XLXSJGBMX_BZ,:XLXSJGBMX_WHR,:XLXSJGBMX_WHRID,:XLXSJGBMX_WHSJ, ");
sSQL.Add(" RoundFix(sor.JGBJJ* sor.dJQJGXS,6), RoundFix(sor.HSBJ* sor.dJQJGXS,6), RoundFix(sor.JGBBJ* sor.dJQJGXS,6),RoundFix(sor.WSBJ* sor.dJQJGXS,6) )");
sSQL.ParamByName("pMaxXH").Value = iXH;
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
sSQL.ParamByName("XLXSJGBMX_YXQS").Value = sYXQS;
sSQL.ParamByName("XLXSJGBMX_YXQZ").Value = sYXQZ.Equals("") ? null : sYXQZ;
sSQL.ParamByName("XLXSJGBMX_BZ").Value = "";
sSQL.ParamByName("XLXSJGBMX_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLXSJGBMX_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLXSJGBMX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now);
dberp.ExecSQL(sSQL);
XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, tSession, sJGBID);
#endregion
#region 删除V表
sSQL.Clear();
sSQL.Add("delete from V_XSBJJSJGB ");
sSQL.Add(" where V_XSBJJSJGB_ID=:pID");
sSQL.Add(" and V_XSBJJSJGB_BJDID=:pJGBID");
sSQL.ParamByName("pID").Value = VnewID;
sSQL.ParamByName("pJGBID").Value = sJGBID;
dberp.ExecSQL(sSQL);
#endregion
Mac.MacLog.TraceFormat(String.Format("ExecDRSQL-End"));
//
if (sJJLY.Equals("D"))
{
Mac.MacLog.TraceFormat(String.Format("DoCPJJ-Begin"));
XLJGB_CLJGTZList.DoCPJJ(dberp, PageParam.GetRTrimString("MXBH"), sJGBID, true,
CMISproConvert.StrToInt(PageParam.GetRTrimString("iXSWS")), PageParam.GetRTrimString("JSBLFS"), tSession.UserId, tSession.UserName, sBJU003);
Mac.MacLog.TraceFormat(String.Format("DoCPJJ-End"));
}
JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, PageParam.GetRTrimString("MXBH"));
#endregion
}
private void ExecDRBZ(TDatabase dberp, TSQL sSQL, DataSet ds, string sJGBID, Dictionary<string, string> dicDRMXBZ, string sFileName, string sSheetName)
{
string sXLXHID = "";
string sXLGGID = "";
string sXLBZID = "G";
string sXLDYDJ = "";
string sGYKH = "";
string sBZ = "";
string sXLJGU007 = GetOption(102579000, "XLJGU007");
string sDefaultXLBZID = PageParam.GetRTrimString("sDefaultXLBZID");
string sJJLY = PageParam.GetRTrimString("JJLY");
string sBJLY = PageParam.GetRTrimString("BJLY");
foreach (DataRow Row in ds.Tables[0].Rows)
{
sXLXHID = sGetCellTest(Row, 0).Trim();
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("×", "*");
}
sXLBZID = XLBJDUtils.GetBZXLZBZID(sGetCellTest(Row, 2).Trim(), sDefaultXLBZID, dicDRMXBZ);
if (sXLBZID.Equals(""))
sXLBZID = sGetCellTest(Row, 2).Trim();
sXLDYDJ = sGetCellTest(Row, 3).Trim().Replace('K', 'k').Replace('v', 'V'); ;
try
{
sGYKH = sGetCellTest(Row, 7).Trim();
sBZ = sGetCellTest(Row, 8).Trim();
if (sJJLY.Equals("D") && sBJLY.Equals("D"))
{
sGYKH = sGetCellTest(Row, 9).Trim();
sBZ = sGetCellTest(Row, 10).Trim();
}
}
catch
{
}
if (sGYKH.Equals("")) continue;
if (!dicDRMXBZ.ContainsKey(sXLBZID))
{
sSQL.Clear();
sSQL.Add("insert into XLBZ(XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_WHR,XLBZ_WHRID,XLBZ_WHSJ,XLBZ_DZSC,XLBZ_XLBZMS)");
sSQL.Add("values(:XLBZ_XLBZID,:XLBZ_XLBZLXMC,:XLBZ_WHR,:XLBZ_WHRID,:XLBZ_WHSJ,:XLBZ_DZSC,:XLBZ_XLBZMS)");
sSQL.ParamByName("XLBZ_XLBZID").Value = sXLBZID;
sSQL.ParamByName("XLBZ_XLBZLXMC").Value =sGYKH;
sSQL.ParamByName("XLBZ_WHR").Value = tSession.UserName;
sSQL.ParamByName("XLBZ_WHRID").Value = tSession.UserId;
sSQL.ParamByName("XLBZ_WHSJ").Value = DateTime.Now;
sSQL.ParamByName("XLBZ_DZSC").Value = "Y";
string sXLBZMS = sXLBZID+"/"+sGYKH + "/" + sBZ;
if (sXLBZMS.Length > 250)
sXLBZMS = sXLBZMS.Substring(0, 250);
sSQL.ParamByName("XLBZ_XLBZMS").Value =sXLBZMS;
dberp.ExecSQL(sSQL);
dicDRMXBZ.Add(sXLBZID, sGYKH);
}
//if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLBZGYKHDZB where XLBZGYKHDZB_XLBZID='{0}' and XLBZGYKHDZB_GYKH='{1}'", sXLBZID, sGYKH)))
//{
// sSQL.Clear();
// sSQL.Add("insert into XLBZGYKHDZB(XLBZGYKHDZB_XLBZID,XLBZGYKHDZB_GYKH,XLBZGYKHDZB_WHR,XLBZGYKHDZB_WHSJ,XLBZGYKHDZB_WHRID)");
// sSQL.Add("values(:XLBZGYKHDZB_XLBZID,:XLBZGYKHDZB_GYKH,:XLBZGYKHDZB_WHR,:XLBZGYKHDZB_WHSJ,:XLBZGYKHDZB_WHRID)");
// sSQL.ParamByName("XLBZGYKHDZB_XLBZID").Value = sXLBZID;
// sSQL.ParamByName("XLBZGYKHDZB_GYKH").Value = sGYKH;
// sSQL.ParamByName("XLBZGYKHDZB_WHR").Value = tSession.UserName;
// sSQL.ParamByName("XLBZGYKHDZB_WHRID").Value = tSession.UserId;
// sSQL.ParamByName("XLBZGYKHDZB_WHSJ").Value = DateTime.Now;
// dberp.ExecSQL(sSQL);
//}
//if (sBZ.Equals("")) continue;
//sSQL.Clear();
//sSQL.Add("update XLXSJGBMX set XLXSJGBMX_BZ=:pBZ ");
//sSQL.Add("where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and XLXSJGBMX_DYDJID=:pDYDJID ");
//sSQL.ParamByName("pXLXHID").Value = sXLXHID;
//sSQL.ParamByName("pXLGGID").Value = sXLGGID;
//sSQL.ParamByName("pXLBZID").Value = sXLBZID;
//sSQL.ParamByName("pDYDJID").Value = sXLDYDJ;
//sSQL.ParamByName("pBZ").Value = sBZ;
//dberp.ExecSQL(sSQL);
}
}
//检验栏目
private void ExcelColumnName(DataSet ds)
{
Mac.MacLog.TraceFormat(String.Format("ExcelColumnName-Begin"));
Dictionary<string, string> ColumnNames = new Dictionary<string, string>();
int iColumnCount = 7;
ColumnNames.Add("0", "型号");
ColumnNames.Add("1", "规格");
ColumnNames.Add("2", "标准");
ColumnNames.Add("3", "电压等级");
ColumnNames.Add("4", "计量单位");
if (PageParam.GetRTrimString("JJLY").Equals("D"))
{
ColumnNames.Add("5", "含税基价");
ColumnNames.Add("6", "无税基价");
if (PageParam.GetRTrimString("BJLY").Equals("D"))
{
ColumnNames.Add("7", "含税表价");
ColumnNames.Add("8", "无税表价");
iColumnCount = 9;
}
}
else
{
ColumnNames.Add("5", "含税表价");
ColumnNames.Add("6", "无税表价");
}
for (int i = 0; i < iColumnCount; i++)
{
try
{
if (!ds.Tables[0].Columns[i].ColumnName.Trim().Equals(ColumnNames[i.ToString()].Trim()))
{
throw new Exception("导入文件的栏目内容格式不正确,请按Excel栏目要求的内容格式调整导入文件!");
}
}
catch
{
throw new Exception("导入文件的栏目内容格式不正确,请按Excel栏目要求的内容格式调整导入文件!");
}
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
try
{
if (ds.Tables[0].Rows[i][0].ToString().Trim().Equals("")
|| ds.Tables[0].Rows[i][1].ToString().Trim().Equals("")
|| ds.Tables[0].Rows[i][2].ToString().Trim().Equals(""))
{
throw new Exception(String.Format("第{0}行型号、规格、标准存在空值,不允许导入!", (i + 2).ToString().Trim()));
}
}
catch
{
throw new Exception(String.Format("第{0}行型号、规格、标准存在空值,不允许导入!", (i + 2).ToString().Trim()));
}
}
Mac.MacLog.TraceFormat(String.Format("ExcelColumnName-End"));
}
private void ReadWJ(string sPath, string sSheetName, ref DataSet aDataExcel)
{
string sMessage = "";
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), sSheetName, "", false, ref sMessage);
if (!sMessage.Trim().Equals(""))
{
throw new Exception("文件读取失败!失败原因:" + sMessage.Trim());
}
}
private string sGetCellTest(DataRow Row, int ColumnIndex)
{
return Row[ColumnIndex].ToString().Trim().Replace("\r\n", "").Replace("\n", "");
}
//取得默认的sheet名称
private string GetDefaultSheetName(string sFilePath)
{
string connStr = GetConnString(sFilePath);
OleDbConnection m_conn = new OleDbConnection(connStr);
m_conn.Open();
DataTable sheetNames = m_conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string sSheetName = "";
if (sheetNames.Rows[0].Table.Rows.Count > 0)
{
sSheetName = sheetNames.Rows[0].Table.Rows[0]["TABLE_NAME"].ToString().Trim();
if (sSheetName.StartsWith("'") && sSheetName.EndsWith("'"))
sSheetName = sSheetName.TrimStart('\'').TrimEnd('\'');
if (sSheetName.EndsWith("$"))
sSheetName = sSheetName.TrimEnd('$');
}
if (m_conn.State == ConnectionState.Open)
{
m_conn.Dispose();
m_conn = null;
}
return sSheetName;
}
#endregion
}
}