public void AddGatherData(string pPWorkOrderNo, string saleBillNo) { HYProduceData produceData = LibHYProduceCache.Default.GetProduceData(pPWorkOrderNo); if (produceData != null) { LibBcfGrid ppWorkOrderBcf = (LibBcfGrid)LibBcfSystem.Default.GetBcfInstance("pp.TenWorkRecord"); LibQueryCondition lb = new LibQueryCondition(); lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField() { Name = "WORKORDERNO", QueryChar = LibQueryChar.Equal, Value = new List <object> { pPWorkOrderNo } }); lb.QueryFields.Add(new AxCRL.Core.Comm.LibQueryField() { Name = "FROMSALEBILLNO", QueryChar = LibQueryChar.Equal, Value = new List <object> { saleBillNo } }); DataSet ds = ppWorkOrderBcf.BrowseTo(lb); if (ds.Tables.Count > 0) { produceData.TenWorkRecord.EnforceConstraints = false; try { DataTable dt = produceData.TenWorkRecord.Tables[0]; dt.BeginLoadData(); try { foreach (DataRow dr in ds.Tables[0].Rows) { DataRow row = dt.NewRow(); row.BeginEdit(); try { foreach (DataColumn column in ds.Tables[0].Columns) { row[column.ColumnName] = dr[column.ColumnName]; } } finally { row.EndEdit(); } dt.Rows.Add(row); } } finally { dt.EndLoadData(); } } finally { produceData.TenWorkRecord.EnforceConstraints = true; } } } }
public void RemoveFromSaleBillNo(string fromSaleBillNo) { //通过销售订单号查找派工单号 string sql = string.Format(@"SELECT DISTINCT F.BILLNO FROM WORKORDER A INNER JOIN WORKORDERDETAIL B ON A.BILLNO = B.BILLNO INNER JOIN PLSSALESORDER C ON B.FROMBILLNO = C.BILLNO INNER JOIN PLSPRODUCEMONTHPLANDETAIL D ON D.WORKORDERBILLNO = B.BILLNO INNER JOIN PLSPRODUCEDAYPLANDETAIL E ON E.FROMBILLNO = D.BILLNO AND E.FROMROWID = D.ROW_ID INNER JOIN PPWORKORDER F ON E.PWORKORDERNO = F.BILLNO WHERE A.PARENTBILLNO IS NULL AND C.BILLNO = {0} ", LibStringBuilder.GetQuotString(fromSaleBillNo)); LibDataAccess dataAccess = new LibDataAccess(); StringBuilder builder = new StringBuilder(); Int32 index = 1; using (IDataReader reader = dataAccess.ExecuteDataReader(sql)) { while (reader.Read()) { string workOrderNo = LibSysUtils.ToString(reader["BILLNO"]); HYProduceData hyProduceData = LibHYProduceCache.Default.GetProduceData(workOrderNo); DataTable dt = hyProduceData.TenWorkRecord.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { string saleBillNo = LibSysUtils.ToString(dt.Rows[i]["FROMSALEBILLNO"]); if (saleBillNo == fromSaleBillNo) { dt.Rows[i].Delete(); } } dt.AcceptChanges(); if (index == 1) { builder.AppendFormat(" AND (WORKORDERNO = {0}", LibStringBuilder.GetQuotObject(reader["BILLNO"])); } else { builder.AppendFormat(" OR WORKORDERNO = {0}", LibStringBuilder.GetQuotObject(reader["BILLNO"])); } index++; } } if (builder.Length > 0) { builder.Append(")"); sql = string.Format(@"DELETE FROM PPTENWORKRECORD WHERE 1=1 {0} AND FROMSALEBILLNO = '{1}'", builder.ToString(), fromSaleBillNo); LibDBTransaction trans = dataAccess.BeginTransaction(); try { int result = dataAccess.ExecuteNonQuery(sql); trans.Commit(); } catch (Exception) { trans.Rollback(); } } }