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_MISPRO.Utility; using GThinking.N_CONTROL; using GThinking.N_PUBLIC; using System.Collections.Generic; using GThinking.N_MISPRO.MISPROAS; using GThinking.N_WORKFLOW; namespace GThinking.N_XLXSBJ { public partial class CLYL_DRInfo : OperationBase { CLYL_DR entity = new CLYL_DR(); protected void Page_Load(object sender, EventArgs e) { this.UMID = 100860014; this.UMName = "线缆销售报价材料用量"; this.CurMaster = Master; this.Tabs = Tab; this.PageHeight = 600; this.PageWidth = 750; AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD)); if (!IsPostBack) { this.Master.PnlQuery.GroupingText = "查询条件"; this.Master.PnlBill.GroupingText = "单据信息"; InitControls(); } CustomPageSize = 1000; base.InitPage(); } #region 模板继承事件 protected override void Master_OnQuery() { entity.sPIID = cbxPIID.SelectedValue.Trim(); entity.sWLID = txtXLWLID.Text.Trim(); entity.sWLMC = txtWLMC.Text.Trim(); entity.sGGXH = txtGGXH.Text.Trim(); entity.sTH = txtTH.Text.Trim(); entity.sCZ = txtCZ.Text.Trim(); entity.sXLXHID = cbxXLXHID.SelectedValue.Trim(); entity.sXLGGID = txtXLGGID.Text.Trim(); entity.sXLBZID = cbxXLBZID.SelectedValue.Trim(); entity.sDYDJID = cbxDYDJID.SelectedValue.Trim(); base.Master_OnQuery(); } protected override void GridDataBind() { base.GridDataBind(); } protected override bool Master_OnBeforeOK(object sender, EventArgs e) { return base.Master_OnBeforeOK(sender, e); } protected override bool QueryValid() { if (cbxPIID.SelectedValue.Trim().Equals("")) { ShowMessage("请选择物料类别进行查询!"); return false; } return base.QueryValid(); } protected override bool DataLogicValid() { if (grdSHD.CheckedRows.Equals("")) { ShowMessage("请勾选线缆物料记录!"); return false; } if (cbxGCID.SelectedValue.Trim().Equals("")) { ShowMessage("请指定工厂!"); return false; } if (cbxCPMLID.SelectedValue.Trim().Equals("")) { ShowMessage("请指定产品目录!"); return false; } if (cbxJGCZB.SelectedValue.Trim().Equals("")) { ShowMessage("请指定结构尺重表!"); return false; } string[] sTempArr = grdSHD.CheckedRows.Split(','); Dictionary dicWL = new Dictionary(); string tmpKey = ""; foreach (string sIndex in sTempArr) { string sValue = grdSHD.GetValueByFieldName("XLXLB_WLID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); string sKey = grdSHD.GetValueByFieldName("XLXLB_XLXHID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim() + "|" + grdSHD.GetValueByFieldName("XLXLB_XLGGID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim() + "|" + grdSHD.GetValueByFieldName("XLBZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim().Split('|')[0].Trim() + "|" + grdSHD.GetValueByFieldName("XLXLB_DYDJID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); if (dicWL.ContainsKey(sKey)) { tmpKey = sKey; dicWL[sKey] = dicWL[sKey] + "," + sValue; } else { dicWL.Add(sKey, sValue); } } if (!tmpKey.Trim().Equals("")) { ShowMessage("以下物料的型号、规格、标准、电压等级相同,只能选择其中一个进行导入:" + "\r\n" + dicWL[tmpKey].Trim()); return false; } return base.DataLogicValid(); } protected override bool Master_OnOK() { TDatabase DBERP = null; try { DBERP = TContextDatabases.GetDatabase("DBERP"); DBERP.BeginTrans(); InsertXLXSCLQD(DBERP); DBERP.CommitTrans(); ShowMessage("导入成功!"); //CloseWindow(); //重新查询 Master_OnQuery(); GridDataBind(); FormAreaUpdate(); } catch (Exception ex) { ShowMessage(ex.Message); DBERP.RollbackTrans(); return false; } return true; } protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { } base.Grid_RowDataBound(sender, e); } #endregion #region 自定义函数 private void InitControls() { TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); string sSQL = "select PL_PIID,PL_MC from PL where 1=1 and isnull(PL_TYBZ,'N')<>'Y' order by PL_PIID "; DataSet ds = dberp.OpenDataSet(sSQL); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sID = ds.Tables[0].Rows[i]["PL_PIID"].ToString().Trim(); string sNAME = ds.Tables[0].Rows[i]["PL_MC"].ToString().Trim(); cbxPIID.Items.Add(new ListItem(sNAME, sID)); } TComboBox.SetComboBox("DBERP", cbxXLXHID, "select XLXHB_XLXHID as ID,XLXHB_XLXHID as Name from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by ID ", true); TComboBox.SetComboBox("DBERP", cbxDYDJID, "select distinct XLDYDJB_DYDJID as ID,XLDYDJB_DYDJID as Name from XLDYDJB where isnull(XLDYDJB_TYBZ,'N')<>'Y' order by ID ", true); TComboBox.SetComboBox("DBERP", cbxXLBZID, "select XLBZ_XLBZID,XLBZ_XLBZLXMC from XLBZ order by XLBZ_PX,XLBZ_XLBZID", true); TComboBox.SetComboBox("DBERP", cbxGCID, "select GC_GCID,GC_GCMC from GC where isnull(GC_TYBZ,'N')<>'Y' order by GC_GCID ", false); if (cbxGCID.ItemsCount == 1) cbxGCID.SelectedIndex = 0; TComboBox.SetComboBox("DBERP", cbxCPMLID, "SELECT XLXSCPML_CPMLID,XLXSCPML_CPMLMC FROM XLXSCPML where isnull(XLXSCPML_TYBZ,'N')<>'Y' order by XLXSCPML_CPMLID ", false); TSQL sql = new TSQL(dberp); sql.Add("select XLJGCZBML_JGCZBID,XLJGCZBML_JGCZBMC, XLJGCZBML_JGCZBBBID "); sql.Add(" from XLJGCZBML "); sql.Add(" where XLJGCZBML_CZBLX = 'A'"); sql.Add(" order by XLJGCZBML_JGCZBID"); ds = null; ds = dberp.OpenDataSet(sql); cbxJGCZB.ClearItems(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string sJGCZBBBID = ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBBBID"].ToString().Trim(); cbxJGCZB.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBMC"].ToString().Trim() + "|" + sJGCZBBBID , ds.Tables[0].Rows[i]["XLJGCZBML_JGCZBID"].ToString().Trim() + "|" + sJGCZBBBID)); } if (cbxJGCZB.ItemsCount == 1) cbxJGCZB.SelectedIndex = 0; else { if (!PageParam.GetRTrimString("JGCZBID").Equals("")) cbxJGCZB.SelectedValue = PageParam.GetRTrimString("JGCZBID") + "|" + PageParam.GetRTrimString("JGCZBBBID"); } } private void InsertXLXSCLQD(TDatabase dberp) { TSQL sSQL = new TSQL(dberp); if (!grdSHD.CheckedRows.Equals("")) { string[] sTempArr = grdSHD.CheckedRows.Split(','); foreach (string sIndex in sTempArr) { string sXLXHID = grdSHD.GetValueByFieldName("XLXLB_XLXHID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); string sXLGGID = grdSHD.GetValueByFieldName("XLXLB_XLGGID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); string sXLBZID = grdSHD.GetValueByFieldName("XLBZ", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim().Split('|')[0].Trim(); string sDYDJID = grdSHD.GetValueByFieldName("XLXLB_DYDJID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); sDYDJID = sDYDJID.Equals("") ? " " : sDYDJID; string sWLID = grdSHD.GetValueByFieldName("XLXLB_WLID", grdSHD.NewRows[CMISproConvert.StrToInt(sIndex)]).Trim(); sSQL.Clear(); sSQL.Add("insert into XLXSCLQD (XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_WLID,XLXSCLQD_GCID,XLXSCLQD_BZ,XLXSCLQD_WHR,XLXSCLQD_WHRID,XLXSCLQD_WHSJ,XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_CPMLID,"); sSQL.Add(" XLXSCLQD_CLJGBL01,XLXSCLQD_CLJGBL02,XLXSCLQD_CLJGBL03,XLXSCLQD_CLJGBL04,XLXSCLQD_CLJGBL05,XLXSCLQD_CLJGBL06,XLXSCLQD_CLJGBL07,XLXSCLQD_CLJGBL08,XLXSCLQD_CLJGBL09,XLXSCLQD_CLJGBL10,"); sSQL.Add(" XLXSCLQD_CLJGBL11,XLXSCLQD_CLJGBL12,XLXSCLQD_CLJGBL13,XLXSCLQD_CLJGBL14,XLXSCLQD_CLJGBL15,XLXSCLQD_CLJGBL16,XLXSCLQD_CLJGBL17,XLXSCLQD_CLJGBL18,XLXSCLQD_CLJGBL19,XLXSCLQD_CLJGBL20,"); sSQL.Add(" XLXSCLQD_CLJGBL21,XLXSCLQD_CLJGBL22,XLXSCLQD_CLJGBL23,XLXSCLQD_CLJGBL24,XLXSCLQD_CLJGBL25,XLXSCLQD_CLJGBL26,XLXSCLQD_CLJGBL27,XLXSCLQD_CLJGBL28,XLXSCLQD_CLJGBL29,XLXSCLQD_CLJGBL30,"); sSQL.Add(" XLXSCLQD_CLJGBL31,XLXSCLQD_CLJGBL32,XLXSCLQD_CLJGBL33,XLXSCLQD_CLJGBL34,XLXSCLQD_CLJGBL35,XLXSCLQD_CLJGBL36,XLXSCLQD_CLJGBL37,XLXSCLQD_CLJGBL38,XLXSCLQD_CLJGBL39,XLXSCLQD_CLJGBL40,"); sSQL.Add(" XLXSCLQD_CLJGBL41,XLXSCLQD_CLJGBL42,XLXSCLQD_CLJGBL43,XLXSCLQD_CLJGBL44,XLXSCLQD_CLJGBL45,XLXSCLQD_CLJGBL46,XLXSCLQD_CLJGBL47,XLXSCLQD_CLJGBL48,XLXSCLQD_CLJGBL49,XLXSCLQD_CLJGBL50,"); sSQL.Add(" XLXSCLQD_CLJGBL51,XLXSCLQD_CLJGBL52,XLXSCLQD_CLJGBL53,XLXSCLQD_CLJGBL54,XLXSCLQD_CLJGBL55,XLXSCLQD_CLJGBL56,XLXSCLQD_CLJGBL57,XLXSCLQD_CLJGBL58,XLXSCLQD_CLJGBL59,XLXSCLQD_CLJGBL60,"); sSQL.Add(" XLXSCLQD_CLJGBL61,XLXSCLQD_CLJGBL62,XLXSCLQD_CLJGBL63,XLXSCLQD_CLJGBL64,XLXSCLQD_CLJGBL65,XLXSCLQD_CLJGBL66,XLXSCLQD_CLJGBL67,XLXSCLQD_CLJGBL68,XLXSCLQD_CLJGBL69,XLXSCLQD_CLJGBL70,"); sSQL.Add(" XLXSCLQD_CLJGBL71,XLXSCLQD_CLJGBL72,XLXSCLQD_CLJGBL73,XLXSCLQD_CLJGBL74,XLXSCLQD_CLJGBL75,XLXSCLQD_CLJGBL76,XLXSCLQD_CLJGBL77,XLXSCLQD_CLJGBL78,XLXSCLQD_CLJGBL79,XLXSCLQD_CLJGBL80)"); sSQL.Add(" values (:XLXSCLQD_XLXHID,:XLXSCLQD_XLGGID,:XLXSCLQD_XLBZID,:XLXSCLQD_DYDJID,:XLXSCLQD_WLID,:XLXSCLQD_GCID,:XLXSCLQD_BZ,:XLXSCLQD_WHR,:XLXSCLQD_WHRID,:XLXSCLQD_WHSJ,:XLXSCLQD_JGCZBID,:XLXSCLQD_JGCZBBBID,:XLXSCLQD_CPMLID,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); sSQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0)"); sSQL.ParamByName("XLXSCLQD_XLXHID").Value = sXLXHID; sSQL.ParamByName("XLXSCLQD_XLGGID").Value = sXLGGID; sSQL.ParamByName("XLXSCLQD_XLBZID").Value = sXLBZID; sSQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJID; sSQL.ParamByName("XLXSCLQD_WLID").Value = sWLID; sSQL.ParamByName("XLXSCLQD_GCID").Value = cbxGCID.SelectedValue.Trim(); sSQL.ParamByName("XLXSCLQD_BZ").Value = "从线缆物料导入"; sSQL.ParamByName("XLXSCLQD_WHRID").Value = CurSession.UserId; sSQL.ParamByName("XLXSCLQD_WHR").Value = CurSession.UserName; sSQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now; sSQL.ParamByName("XLXSCLQD_JGCZBID").Value = cbxJGCZB.SelectedValue.Trim().Split('|')[0].Trim(); sSQL.ParamByName("XLXSCLQD_JGCZBBBID").Value = cbxJGCZB.SelectedValue.Trim().Split('|')[1].Trim(); sSQL.ParamByName("XLXSCLQD_CPMLID").Value = cbxCPMLID.SelectedValue.Trim(); dberp.ExecSQL(sSQL); //更新工作流 string sQXCurUser = CurSession.UserId; TWorkflow awf = new TWorkflow(CurSession, Cache); awf.UMID = 100860014; awf.WFNewInst(awf.GetWFID("XLXSBJCLYL"), sQXCurUser); dberp.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}',XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}' ", awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaNewInst), sXLXHID, sXLGGID, sXLBZID, sDYDJID)); if (!sWLID.Trim().Equals("")) { sSQL.Clear(); sSQL.Add("select CLYLJSJG_CPWLID as WLID, "); for (int i = 1; i < 80; i++) { sSQL.Add(string.Format("sum(case when XLXSBJCLWL_BJCLID='{0}' then CLYLJSJG_SL else 0.0 end) as SL{1}, ", "BJCL" + i.ToString().PadLeft(2, '0') + "0000", i.ToString().PadLeft(2, '0'))); } sSQL.Add("sum(case when XLXSBJCLWL_BJCLID='BJCL800000' then CLYLJSJG_SL else 0.0 end) as SL80 "); sSQL.Add(" from CLYLJSJG,XLXSBJCLWL "); sSQL.Add(" where CLYLJSJG_GCID=:pGCID "); sSQL.Add(" and CLYLJSJG_CPWLID=:pCPWLID "); sSQL.Add(" and CLYLJSJG_WLID=XLXSBJCLWL_WLID "); sSQL.Add("group by CLYLJSJG_CPWLID"); sSQL.ParamByName("pGCID").Value = cbxGCID.SelectedValue.Trim(); sSQL.ParamByName("pCPWLID").Value = sWLID.Trim(); DataSet ds = dberp.OpenDataSet(sSQL); if (ds.Tables[0].Rows.Count > 0) { sSQL.Clear(); sSQL.Add("update XLXSCLQD set "); for (int i = 1; i < 80; i++) { double fSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SL" + i.ToString().PadLeft(2, '0')].ToString()); string sSL = "0"; if (fSL.ToString().ToUpper().Contains("E"))//科学记数法 { sSL = fSL.ToString("0.000000");//显示6位小数 } else sSL = fSL.ToString(); sSQL.Add(string.Format("XLXSCLQD_SL{0}={1},XLXSCLQD_SHL{0}=0.0,XLXSCLQD_CLJGBL{0}=1.0, ", i.ToString().PadLeft(2, '0'), sSL)); } double fSL80 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SL80"].ToString()); string sSL80 = "0"; if (fSL80.ToString().ToUpper().Contains("E"))//科学记数法 { sSL80 = fSL80.ToString("0.000000");//显示6位小数 } else sSL80 = fSL80.ToString(); sSQL.Add(string.Format("XLXSCLQD_SL80={0},XLXSCLQD_SHL80=0.0,XLXSCLQD_CLJGBL80=1.0 ", sSL80)); sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); sSQL.ParamByName("pXLXHID").Value = sXLXHID; sSQL.ParamByName("pXLGGID").Value = sXLGGID; sSQL.ParamByName("pXLBZID").Value = sXLBZID; sSQL.ParamByName("pDYDJID").Value = sDYDJID; dberp.ExecSQL(sSQL); } } } } } #endregion } }