528 lines
24 KiB
C#
528 lines
24 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 GThinking.N_MISPROAS;
|
||
using System.Collections.Generic;
|
||
|
||
namespace GThinking.N_XLXSBJ
|
||
{
|
||
public partial class XLBJD_WBBJDDRInfo : SingleCardBase
|
||
{
|
||
XLBJD_WBBJDDREntity entity = new XLBJD_WBBJDDREntity();
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
this.UMID = 100860043;
|
||
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 (!IsPostBack)
|
||
{
|
||
chkSheet.Checked = false;
|
||
cbxSheetList.Enabled = false;
|
||
}
|
||
}
|
||
|
||
#region 控件事件
|
||
|
||
protected void btnQD_Click(object sender, EventArgs e)
|
||
{
|
||
if (fupdPost.FileName.Equals(""))
|
||
{
|
||
ShowMessage("请选择需要导入的文件!");
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
if (!txtLastPath.Value.Trim().Equals(""))
|
||
{
|
||
if ((fupdPost.FilePath != txtLastPath.Value) && !cbxSheetList.SelectedValue.Trim().Equals(""))
|
||
{
|
||
ShowMessage("导入文件已发生变化,请重新指定导入页面!");
|
||
chkSheet_CheckedChanged(null, null);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (txtHHS.Value > txtHHZ.Value)
|
||
{
|
||
ShowMessage("栏目行号始不能大于止!");
|
||
return;
|
||
}
|
||
|
||
if (txtHHS.Value <= 0)
|
||
{
|
||
ShowMessage("栏目行号始不能小于0!");
|
||
return;
|
||
}
|
||
|
||
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
||
TSQL sSQL = new TSQL(dberp);
|
||
|
||
try
|
||
{
|
||
dberp.BeginTrans();
|
||
|
||
Dictionary<string, string> dicLMMC = new Dictionary<string, string>();
|
||
|
||
string sDRSJ = DateTime.Now.ToString();
|
||
//当前报价单ID
|
||
string sBJDID = PageParam.GetRTrimString("BJDID");
|
||
string sHTBH = "";
|
||
if (!string.IsNullOrEmpty(PageParam.GetRTrimString("HTBH")))
|
||
{
|
||
sHTBH = PageParam.GetRTrimString("HTBH");
|
||
}
|
||
|
||
|
||
if (cbxSheetList.SelectedValue.Trim().Equals(""))
|
||
{
|
||
DataSet aDataExcel = new DataSet();
|
||
if (AppRuntime.BitType == AppBitType.Bit32)
|
||
aDataExcel = XLBJDUtils.ReadFromExcelFile(fupdPost.FilePath, false, "");
|
||
else // AppBitType.Bit64
|
||
ReadWJ(fupdPost.FilePath, "", ref aDataExcel);
|
||
ExcelColumnName(Convert.ToInt32(txtHHS.Value), Convert.ToInt32(txtHHZ.Value), aDataExcel, dicLMMC);
|
||
//
|
||
string sFileName = fupdPost.FileName;
|
||
string sSheetName = GetDefaultSheetName(fupdPost.FilePath);
|
||
|
||
XLWBBJDUtils.DeleteInValidEmptyRow(ref aDataExcel);
|
||
ExecDRSQL(dberp, sSQL, aDataExcel, dicLMMC, sBJDID, sHTBH, sDRSJ, 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, false, sSheetList[i]);
|
||
else // AppBitType.Bit64
|
||
ReadWJ(fupdPost.FilePath, sSheetList[i], ref aDataExcel);
|
||
ExcelColumnName(Convert.ToInt32(txtHHS.Value), Convert.ToInt32(txtHHZ.Value), aDataExcel, dicLMMC);
|
||
//
|
||
string sFileName = fupdPost.FileName;
|
||
string sSheetName = sSheetList[i];
|
||
|
||
XLWBBJDUtils.DeleteInValidEmptyRow(ref aDataExcel);
|
||
ExecDRSQL(dberp, sSQL, aDataExcel, dicLMMC, sBJDID, sHTBH, sDRSJ, sFileName, sSheetName);
|
||
}
|
||
}
|
||
|
||
dberp.CommitTrans();
|
||
ShowMessage("导入成功!");
|
||
CloseWindow();
|
||
DialogOperationScript dos = new DialogOperationScript(this);
|
||
dos.ClickOwnerButton(PageParam.GetRTrimString("btnCallBack"));
|
||
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)
|
||
{
|
||
if (fupdPost.FileName.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('$');
|
||
cbxSheetList.Items.Add(new ListItem(sSheetName, sSheetName));
|
||
}
|
||
}
|
||
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, Dictionary<string, string> dicLMMC, string sBJDID, string sHTBH, string sDRSJ, string sFileName, string sSheetName)
|
||
{
|
||
int iTotalRecords = ds.Tables[0].Rows.Count - CMISproConvert.StrToInt(txtHHZ.Value.ToString());
|
||
int Rcount = CMISproConvert.StrToInt(GetOption(100860043, "BJU069"));
|
||
int iZFS = iTotalRecords / Rcount;
|
||
if (iTotalRecords % Rcount > 0)
|
||
iZFS++;
|
||
int iMLFZH = CMISproDataBase.GetMaxXH("DBERP", "XLWBBJDML", "XLWBBJDML_MLFZH", "") + 1;
|
||
|
||
for (int iDRtimes = 1; iDRtimes <= iZFS; iDRtimes++)
|
||
{
|
||
string sWBBJDID = XLWBBJDUtils.GetNewWBBJDID();
|
||
#region 生成XLWBBJDML表数据--WBBJDID|外部报价单/BJDID
|
||
sSQL.Clear();
|
||
sSQL.Add("insert into XLWBBJDML");
|
||
sSQL.Add(" ( XLWBBJDML_BJDID,XLWBBJDML_WBBJDID,XLWBBJDML_SJLY,XLWBBJDML_WBBJDMC,XLWBBJDML_MLFZH,XLWBBJDML_FS,XLWBBJDML_FSXH,XLWBBJDML_EXCEL,XLWBBJDML_SHEET, ");
|
||
sSQL.Add(" XLWBBJDML_LMHHS,XLWBBJDML_LMHHZ,XLWBBJDML_NRHHS,XLWBBJDML_NRHHZ, ");
|
||
if (!string.IsNullOrEmpty(sHTBH))
|
||
{
|
||
sSQL.Add(" XLWBBJDML_HTBH, ");
|
||
}
|
||
sSQL.Add(" XLWBBJDML_DRSJ,XLWBBJDML_YCL, XLWBBJDML_WHR,XLWBBJDML_WHRID,XLWBBJDML_WHSJ ) ");
|
||
sSQL.Add(" values ");
|
||
sSQL.Add(" ( :pBJDID,:pWBBJDID,:pSJLY,:pWBBJDMC,:pMLFZH,:pFS,:pFSXH,:pEXCEL,:pSHEET, ");
|
||
sSQL.Add(" :pLMHHS,:pLMHHZ,:pNRHHS,:pNRHHZ, ");
|
||
if (!string.IsNullOrEmpty(sHTBH))
|
||
{
|
||
sSQL.Add(" :pHTBH, ");
|
||
sSQL.ParamByName("pHTBH").Value = sHTBH;
|
||
}
|
||
sSQL.Add(" :pDRSJ, :YCL, :pWHR,:pWHRID,:pWHSJ ) ");
|
||
sSQL.ParamByName("pBJDID").Value = sBJDID;
|
||
sSQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
if (!sBJDID.Trim().Equals(""))
|
||
{
|
||
sSQL.ParamByName("pSJLY").Value = "BJCP";
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("pSJLY").Value = "XSHT";
|
||
}
|
||
string sMC = sFileName + "【" + sSheetName + "】";
|
||
sMC = XLBJDUtils.SubStringFunc(sMC, 100);
|
||
string sEXECL = sFileName;
|
||
sEXECL = XLBJDUtils.SubStringFunc(sEXECL, 60);
|
||
string sSHEET = sSheetName;
|
||
sSHEET = XLBJDUtils.SubStringFunc(sSHEET, 40);
|
||
sSQL.ParamByName("pWBBJDMC").Value = sMC;
|
||
if (iZFS == 1)
|
||
{
|
||
sSQL.ParamByName("pMLFZH").Value = 0;
|
||
sSQL.ParamByName("pFS").Value = 0;
|
||
sSQL.ParamByName("pFSXH").Value = 0;
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("pMLFZH").Value = iMLFZH;
|
||
sSQL.ParamByName("pFS").Value = iZFS;
|
||
sSQL.ParamByName("pFSXH").Value = iDRtimes;
|
||
}
|
||
sSQL.ParamByName("pEXCEL").Value = sEXECL;
|
||
sSQL.ParamByName("pSHEET").Value = sSheetName;
|
||
sSQL.ParamByName("pLMHHS").Value = txtHHS.Value;
|
||
sSQL.ParamByName("pLMHHZ").Value = txtHHZ.Value;
|
||
if (iDRtimes < iZFS)
|
||
{
|
||
sSQL.ParamByName("pNRHHS").Value = txtHHZ.Value + 1 + Rcount * (iDRtimes - 1);
|
||
sSQL.ParamByName("pNRHHZ").Value = Rcount * iDRtimes + txtHHZ.Value;
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("pNRHHS").Value = txtHHZ.Value + 1 + Rcount * (iDRtimes - 1);
|
||
sSQL.ParamByName("pNRHHZ").Value = iTotalRecords + txtHHZ.Value;
|
||
}
|
||
sSQL.ParamByName("YCL").Value = "N";
|
||
sSQL.ParamByName("pDRSJ").Value = sDRSJ;
|
||
sSQL.ParamByName("pWHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
#endregion
|
||
|
||
#region 生成XLWBBJDLM表数据----WBBJDID|外部报价单ID=======LMBH|栏目编号/BJDID
|
||
sSQL.Clear();
|
||
sSQL.Add("insert into XLWBBJDLM ( ");
|
||
sSQL.Add(" XLWBBJDLM_BJDID,XLWBBJDLM_WBBJDID,XLWBBJDLM_LMBH,XLWBBJDLM_LMMC,XLWBBJDLM_ZDLMLX,XLWBBJDLM_WHR,XLWBBJDLM_WHRID,XLWBBJDLM_WHSJ) ");
|
||
sSQL.Add("values ( ");
|
||
sSQL.Add(" :pBJDID,:pWBBJDID,:pLMBH,:pLMMC,:pZDLMLX,:pWHR,:pWHRID,:pWHSJ) ");
|
||
//循环dic
|
||
foreach (KeyValuePair<string, string> kvp in dicLMMC)
|
||
{
|
||
sSQL.ParamByName("pBJDID").Value = sBJDID;
|
||
sSQL.ParamByName("pWBBJDID").Value = sWBBJDID;
|
||
sSQL.ParamByName("pLMBH").Value = kvp.Key;
|
||
|
||
string sLMMC = kvp.Value;
|
||
sLMMC = XLBJDUtils.SubStringFunc(sLMMC, 60);
|
||
sSQL.ParamByName("pLMMC").Value = sLMMC;
|
||
sSQL.ParamByName("pZDLMLX").Value = "";
|
||
sSQL.ParamByName("pWHRID").Value = tSession.UserId;
|
||
sSQL.ParamByName("pWHR").Value = tSession.UserName;
|
||
sSQL.ParamByName("pWHSJ").Value = DateTime.Now;
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
#endregion
|
||
|
||
#region 生成XLWBBJDNR表数据------WBBJDID|外部报价单ID=======DRHH|导入行号/BJDID
|
||
sSQL.Clear();
|
||
sSQL.Add("insert into XLWBBJDNR(");
|
||
sSQL.Add(" XLWBBJDNR_BJDID, XLWBBJDNR_WBBJDID, XLWBBJDNR_DRHH, ");
|
||
sSQL.Add(" XLWBBJDNR_LMNR01, XLWBBJDNR_LMNR02, XLWBBJDNR_LMNR03, XLWBBJDNR_LMNR04, XLWBBJDNR_LMNR05, XLWBBJDNR_LMNR06,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR07, XLWBBJDNR_LMNR08, XLWBBJDNR_LMNR09, XLWBBJDNR_LMNR10, XLWBBJDNR_LMNR11, XLWBBJDNR_LMNR12,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR13, XLWBBJDNR_LMNR14, XLWBBJDNR_LMNR15, XLWBBJDNR_LMNR16, XLWBBJDNR_LMNR17, XLWBBJDNR_LMNR18,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR19, XLWBBJDNR_LMNR20, XLWBBJDNR_LMNR21, XLWBBJDNR_LMNR22, XLWBBJDNR_LMNR23, XLWBBJDNR_LMNR24,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR25, XLWBBJDNR_LMNR26, XLWBBJDNR_LMNR27, XLWBBJDNR_LMNR28, XLWBBJDNR_LMNR29, XLWBBJDNR_LMNR30,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR31, XLWBBJDNR_LMNR32, XLWBBJDNR_LMNR33, XLWBBJDNR_LMNR34, XLWBBJDNR_LMNR35, XLWBBJDNR_LMNR36,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR37, XLWBBJDNR_LMNR38, XLWBBJDNR_LMNR39, XLWBBJDNR_LMNR40, XLWBBJDNR_LMNR41, XLWBBJDNR_LMNR42,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR43, XLWBBJDNR_LMNR44, XLWBBJDNR_LMNR45, XLWBBJDNR_LMNR46, XLWBBJDNR_LMNR47, XLWBBJDNR_LMNR48,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR49, XLWBBJDNR_LMNR50, XLWBBJDNR_LMNR51, XLWBBJDNR_LMNR52, XLWBBJDNR_LMNR53, XLWBBJDNR_LMNR54,");
|
||
sSQL.Add(" XLWBBJDNR_LMNR55, XLWBBJDNR_LMNR56, XLWBBJDNR_LMNR57, XLWBBJDNR_LMNR58, XLWBBJDNR_LMNR59, XLWBBJDNR_LMNR60)");
|
||
sSQL.Add("values (:XLWBBJDNR_BJDID, :XLWBBJDNR_WBBJDID, :XLWBBJDNR_DRHH, ");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR01, :XLWBBJDNR_LMNR02, :XLWBBJDNR_LMNR03, :XLWBBJDNR_LMNR04, :XLWBBJDNR_LMNR05, :XLWBBJDNR_LMNR06,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR07, :XLWBBJDNR_LMNR08, :XLWBBJDNR_LMNR09, :XLWBBJDNR_LMNR10, :XLWBBJDNR_LMNR11, :XLWBBJDNR_LMNR12,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR13, :XLWBBJDNR_LMNR14, :XLWBBJDNR_LMNR15, :XLWBBJDNR_LMNR16, :XLWBBJDNR_LMNR17, :XLWBBJDNR_LMNR18,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR19, :XLWBBJDNR_LMNR20, :XLWBBJDNR_LMNR21, :XLWBBJDNR_LMNR22, :XLWBBJDNR_LMNR23, :XLWBBJDNR_LMNR24,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR25, :XLWBBJDNR_LMNR26, :XLWBBJDNR_LMNR27, :XLWBBJDNR_LMNR28, :XLWBBJDNR_LMNR29, :XLWBBJDNR_LMNR30,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR31, :XLWBBJDNR_LMNR32, :XLWBBJDNR_LMNR33, :XLWBBJDNR_LMNR34, :XLWBBJDNR_LMNR35, :XLWBBJDNR_LMNR36,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR37, :XLWBBJDNR_LMNR38, :XLWBBJDNR_LMNR39, :XLWBBJDNR_LMNR40, :XLWBBJDNR_LMNR41, :XLWBBJDNR_LMNR42,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR43, :XLWBBJDNR_LMNR44, :XLWBBJDNR_LMNR45, :XLWBBJDNR_LMNR46, :XLWBBJDNR_LMNR47, :XLWBBJDNR_LMNR48,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR49, :XLWBBJDNR_LMNR50, :XLWBBJDNR_LMNR51, :XLWBBJDNR_LMNR52, :XLWBBJDNR_LMNR53, :XLWBBJDNR_LMNR54,");
|
||
sSQL.Add(" :XLWBBJDNR_LMNR55, :XLWBBJDNR_LMNR56, :XLWBBJDNR_LMNR57, :XLWBBJDNR_LMNR58, :XLWBBJDNR_LMNR59, :XLWBBJDNR_LMNR60)");
|
||
//循环ds
|
||
int iStart = CMISproConvert.StrToInt(txtHHZ.Value.ToString()) + (iDRtimes - 1) * Rcount;
|
||
int iEnd = 0;
|
||
if (iDRtimes < iZFS)
|
||
iEnd = iStart + Rcount;
|
||
else
|
||
iEnd = ds.Tables[0].Rows.Count;
|
||
for (int i = iStart; i < iEnd; i++)
|
||
{
|
||
sSQL.ParamByName("XLWBBJDNR_BJDID").Value = sBJDID;
|
||
sSQL.ParamByName("XLWBBJDNR_WBBJDID").Value = sWBBJDID;
|
||
sSQL.ParamByName("XLWBBJDNR_DRHH").Value = i + 1;
|
||
for (int j = 1; j <= 60; j++)
|
||
{
|
||
if (j <= ds.Tables[0].Columns.Count)
|
||
{
|
||
string sLMNR = ds.Tables[0].Rows[i][j - 1].ToString().Trim();
|
||
sLMNR = sLMNR.Replace("\n", " ").Replace("\r", " ");
|
||
if (j <= 12)
|
||
sLMNR = XLBJDUtils.SubStringFunc(sLMNR, 250);
|
||
else
|
||
sLMNR = XLBJDUtils.SubStringFunc(sLMNR, 60);
|
||
sSQL.ParamByName("XLWBBJDNR_LMNR" + j.ToString().Trim().PadLeft(2, '0')).Value = sLMNR;
|
||
}
|
||
else
|
||
{
|
||
sSQL.ParamByName("XLWBBJDNR_LMNR" + j.ToString().Trim().PadLeft(2, '0')).Value = null;
|
||
}
|
||
}
|
||
dberp.ExecSQL(sSQL);
|
||
}
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
//组织栏目名称
|
||
public static void ExcelColumnName(int iLMHHS,int iLMHHZ, DataSet ds, Dictionary<string, string> dicLMMC)
|
||
{
|
||
dicLMMC.Clear();
|
||
int RowNameStart = iLMHHS - 1;
|
||
int RowNameEnd = iLMHHZ - 1;
|
||
|
||
//x1-1
|
||
//x2-1 x2-2
|
||
//x3-1 x3-2 x3-3
|
||
string sCellName = "";
|
||
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
|
||
{
|
||
if (!ds.Tables[0].Rows[RowNameStart][j].ToString().Trim().Equals(""))
|
||
{
|
||
sCellName = ds.Tables[0].Rows[RowNameStart][j].ToString().Trim();
|
||
}
|
||
else
|
||
{
|
||
for (int k = j; k >= 0; k--)
|
||
{
|
||
if (!ds.Tables[0].Rows[RowNameStart][k].ToString().Trim().Equals(""))
|
||
{
|
||
sCellName = ds.Tables[0].Rows[RowNameStart][k].ToString().Trim();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//行开始
|
||
for (int i = RowNameStart + 1; i <= RowNameEnd; i++)
|
||
{
|
||
if (!ds.Tables[0].Rows[i][j].ToString().Trim().Equals(""))
|
||
{
|
||
sCellName = sCellName + ds.Tables[0].Rows[i][j].ToString().Trim();
|
||
}
|
||
else
|
||
{
|
||
for (int k = j; k >= 0; k--)
|
||
{
|
||
if (!ds.Tables[0].Rows[i][k].ToString().Trim().Equals("") && ds.Tables[0].Rows[i-1][k].ToString().Trim().Equals(""))
|
||
{
|
||
sCellName = sCellName + ds.Tables[0].Rows[i][k].ToString().Trim();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (sCellName.Equals(""))
|
||
{
|
||
sCellName = "Columns" + (j+1).ToString().Trim();
|
||
}
|
||
//if (sCellName.Length > 30)
|
||
//{
|
||
// throw new Exception(string.Format("第{1}列拼接出的标题名称过长:{0}", sCellName, (j + 1).ToString().Trim()));
|
||
//}
|
||
if (j >= 60)
|
||
{
|
||
throw new Exception(string.Format("最大仅支持60个栏目,请检查是否存在空白栏目,目前栏目数:{0}", j+1));
|
||
}
|
||
dicLMMC.Add((j+1).ToString().Trim().PadLeft(2, '0'), sCellName);
|
||
}
|
||
//throw new Exception(string.Format("!"));
|
||
|
||
}
|
||
|
||
private void ReadWJ(string sPath, string sSheetName, ref DataSet aDataExcel)
|
||
{
|
||
string sMessage = "";
|
||
aDataExcel = TExcelData.ReadExcel(sPath.Trim(), sSheetName, "",false, 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
|
||
}
|
||
}
|