/// <summary> /// 读取TR中的内容 /// </summary> /// <param name="ETable"></param> /// <returns></returns> private List <TrEntity> ReadTR(XElement ETable) { List <TrEntity> listResult = new List <TrEntity>(); foreach (XElement TR in ETable.Elements("Tr")) { TrEntity entity = new TrEntity(); float Height = TR.Value <float>("Height"); entity.Height = Height; entity.ListTD = this.ReadTd(TR); listResult.Add(entity); } return(listResult); }
public void CreateTr(TrEntity tr) { EcomakDbContext.Entry(tr.Category).State = EntityState.Unchanged; EcomakDbContext.Trs.Add(tr); }
/// <summary> /// 写入表格 /// </summary> /// <param name="entity"></param> /// <param name="listSource"></param> private void WriteTable(TableEntity entity, List <Dictionary <string, object> > listSource) { int RowCount = 0; //行数 int ColCount = 0; if (entity.Head != null) { RowCount += 1; } if (!listSource.IsNullOrEmpty()) { RowCount += listSource.Count(); } if (!entity.ListTR.IsNullOrEmpty()) { ColCount = entity.ListTR[0].ListTD.Count(); } this.CurrentHeight += entity.Top; //当前画布的高度,要保留这个高度用于写入内容 float TabHeight = 0; //画表格的横线 if (true) { float TabCurrentHeight = 0; TabCurrentHeight = this.CurrentHeight; float StartX = entity.Left; float EndX = entity.Left + entity.Width; float StartY = TabCurrentHeight; float EndY = TabCurrentHeight; //g.DrawLine(new Pen(bru), StartX, StartY, EndX, EndY); cpcl_dll.CPCL_AddLine(this.dll.printer, (int)StartX, (int)StartY, (int)EndX, (int)EndY, 2); if (entity.Head != null) { TabCurrentHeight = TabCurrentHeight + entity.Head.Height; StartY = TabCurrentHeight; EndY = TabCurrentHeight; //g.DrawLine(new Pen(bru), StartX, StartY, EndX, EndY); cpcl_dll.CPCL_AddLine(this.dll.printer, (int)StartX, (int)StartY, (int)EndX, (int)EndY, 2); } if (!listSource.IsNullOrEmpty()) { TrEntity trEntity = entity.ListTR[0]; foreach (Dictionary <string, object> item in listSource) { TabCurrentHeight = TabCurrentHeight + trEntity.Height; StartY = TabCurrentHeight; EndY = TabCurrentHeight; //g.DrawLine(new Pen(bru), StartX, StartY, EndX, EndY); cpcl_dll.CPCL_AddLine(this.dll.printer, (int)StartX, (int)StartY, (int)EndX, (int)EndY, 2); } } TabHeight = TabCurrentHeight - this.CurrentHeight; } if (true) { float StartX = entity.Left; float EndX = entity.Left; float StartY = this.CurrentHeight; float EndY = this.CurrentHeight + TabHeight; //g.DrawLine(new Pen(bru), StartX, StartY, EndX, EndY); cpcl_dll.CPCL_AddLine(this.dll.printer, (int)StartX, (int)StartY, (int)EndX, (int)EndY, 2); if (!listSource.IsNullOrEmpty()) { TrEntity trEntity = entity.ListTR[0]; foreach (TdEntity td in trEntity.ListTD) { StartX = StartX + td.Width; EndX = EndX + td.Width; //g.DrawLine(new Pen(bru), StartX, StartY, EndX, EndY); cpcl_dll.CPCL_AddLine(this.dll.printer, (int)StartX, (int)StartY, (int)EndX, (int)EndY, 2); } } } if (true) { if (entity.Head != null && !entity.Head.ListTD.IsNullOrEmpty()) { Dictionary <string, object> dicSource = new Dictionary <string, object>(); entity.Head.ListTD.ForEach(item => { this.WriteTd(item, dicSource); }); this.CurrentHeight += entity.Head.Height; } } if (true) { if (!listSource.IsNullOrEmpty() && !entity.ListTR.IsNullOrEmpty()) { TrEntity trEntity = entity.ListTR[0]; float TrHeight = trEntity.Height; foreach (Dictionary <string, object> dicSource in listSource) { trEntity.ListTD.ForEach(item => { this.WriteTd(item, dicSource); }); this.CurrentHeight += TrHeight; } } } }
public void UpdateTrAsync(TrEntity tr) { EcomakDbContext.Entry(tr.Category).State = EntityState.Unchanged; EcomakDbContext.Trs.Update(tr); }