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 DRJGBYZZA : SingleCardBase { TZYZJJA entity = new TZYZJJA(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860164; 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='A' "); 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); InsertYZZA(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 InsertYZZA(TDatabase dberp, TSQL sSQL, DataSet ds) { string sXLJGU007 = GetOption(102579000, "XLJGU007"); foreach (DataRow Row in ds.Tables[0].Rows) { string sCPML = sGetCellTest(Row, 0).Trim(); string sXLGGID = sGetCellTest(Row, 1).Trim(); if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBYZZA where XLXSJGBYZZA_JGBID='{0}' and XLXSJGBYZZA_CPMLID='{1}' and XLXSJGBYZZA_XLGGID='{2}' and XLXSJGBYZZA_YZID='{3}'", txtJGBID.Value.Trim(), sCPML, sXLGGID, cbxYZID.SelectedValue.Trim()))) { if (chkIns.Checked)//不存在的记录自动插入 { sSQL.Clear(); sSQL.Add("insert into XLXSJGBYZZA(XLXSJGBYZZA_JGBID,XLXSJGBYZZA_CPMLID,XLXSJGBYZZA_XLGGID,XLXSJGBYZZA_YZID,XLXSJGBYZZA_YZZ,XLXSJGBYZZA_WHR,XLXSJGBYZZA_WHRID,XLXSJGBYZZA_WHSJ)"); sSQL.Add(" values(:XLXSJGBYZZA_JGBID,:XLXSJGBYZZA_CPMLID,:XLXSJGBYZZA_XLGGID,:XLXSJGBYZZA_YZID,:XLXSJGBYZZA_YZZ,:XLXSJGBYZZA_WHR,:XLXSJGBYZZA_WHRID,:XLXSJGBYZZA_WHSJ)"); sSQL.ParamByName("XLXSJGBYZZA_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSJGBYZZA_CPMLID").Value = sCPML; sSQL.ParamByName("XLXSJGBYZZA_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBYZZA_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("XLXSJGBYZZA_YZZ").Value = CMISproConvert.StrToFloat(sGetCellTest(Row, 2), 0); sSQL.ParamByName("XLXSJGBYZZA_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBYZZA_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBYZZA_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } } else { sSQL.Clear(); sSQL.Add("update XLXSJGBYZZA set XLXSJGBYZZA_YZZ=:XLXSJGBYZZA_YZZ,XLXSJGBYZZA_WHR=:XLXSJGBYZZA_WHR,XLXSJGBYZZA_WHRID=:XLXSJGBYZZA_WHRID,XLXSJGBYZZA_WHSJ=:XLXSJGBYZZA_WHSJ"); sSQL.Add(" where XLXSJGBYZZA_JGBID=:XLXSJGBYZZA_JGBID"); sSQL.Add(" and XLXSJGBYZZA_CPMLID=:XLXSJGBYZZA_CPMLID"); sSQL.Add(" and XLXSJGBYZZA_XLGGID=:XLXSJGBYZZA_XLGGID"); sSQL.Add(" and XLXSJGBYZZA_YZID=:XLXSJGBYZZA_YZID"); sSQL.ParamByName("XLXSJGBYZZA_JGBID").Value = txtJGBID.Value.Trim(); sSQL.ParamByName("XLXSJGBYZZA_CPMLID").Value = sCPML; sSQL.ParamByName("XLXSJGBYZZA_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSJGBYZZA_YZID").Value = cbxYZID.SelectedValue.Trim(); sSQL.ParamByName("XLXSJGBYZZA_YZZ").Value = CMISproConvert.StrToFloat(sGetCellTest(Row, 2), 0); sSQL.ParamByName("XLXSJGBYZZA_WHR").Value = tSession.UserName; sSQL.ParamByName("XLXSJGBYZZA_WHRID").Value = tSession.UserId; sSQL.ParamByName("XLXSJGBYZZA_WHSJ").Value = DateTime.Now; dberp.ExecSQL(sSQL); } } } private void ExcelColumnValid(DataSet ds) { Dictionary ColumnNames = new Dictionary(); ColumnNames.Add("0", "产品目录ID"); 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栏目依次为:产品目录ID、主芯截面、" + 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 } }