示例#1
0
        /// <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);
        }
示例#2
0
 public void CreateTr(TrEntity tr)
 {
     EcomakDbContext.Entry(tr.Category).State = EntityState.Unchanged;
     EcomakDbContext.Trs.Add(tr);
 }
示例#3
0
        /// <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;
                    }
                }
            }
        }
示例#4
0
 public void UpdateTrAsync(TrEntity tr)
 {
     EcomakDbContext.Entry(tr.Category).State = EntityState.Unchanged;
     EcomakDbContext.Trs.Update(tr);
 }