//public void CallSummerize(string title, int i)
        //{
        //    var column_name = string.Empty;
        //    var column_val = string.Empty;

        //    List<object> SummaryList;
        //    if (Report.PageSummaryFields.ContainsKey(title))
        //    {
        //        SummaryList = Report.PageSummaryFields[title];
        //        foreach (var item in SummaryList)
        //        {
        //            var table = title.Split('.')[0];
        //            column_name = title.Split('.')[1];
        //            column_val = Report.GeFieldtData(column_name, i);
        //            (item as IEbDataFieldSummary).Summarize(column_val);
        //        }
        //    }
        //    if (Report.ReportSummaryFields.ContainsKey(title))
        //    {
        //        SummaryList = Report.ReportSummaryFields[title];
        //        foreach (var item in SummaryList)
        //        {
        //            var table = title.Split('.')[0];
        //            column_name = title.Split('.')[1];
        //            column_val = Report.GeFieldtData(column_name, i);
        //            (item as IEbDataFieldSummary).Summarize(column_val);
        //        }
        //    }

        //}

        //NEED FIX OO
        public void DrawFields(EbReportField field, float section_Yposition, int serialnumber)
        {
            var column_name = string.Empty;
            var column_val  = string.Empty;

            if (Report.PageSummaryFields.ContainsKey(field.Title) || Report.ReportSummaryFields.ContainsKey(field.Title))
            {
                Report.CallSummerize(field.Title, serialnumber);
            }
            if (field is EbDataField)
            {
                if (field is IEbDataFieldSummary)
                {
                    column_val = (field as IEbDataFieldSummary).SummarizedValue.ToString();
                }
                else
                {
                    var table = field.Title.Split('.')[0];
                    column_name = field.Title.Split('.')[1];
                    column_val  = Report.GeFieldtData(column_name, serialnumber);
                }
                field.DrawMe(canvas, Report.Height, section_Yposition, detailprintingtop, column_val);
            }
            if ((field is EbPageNo) || (field is EbPageXY) || (field is EbDateTime) || (field is EbSerialNumber))
            {
                if (field is EbPageNo)
                {
                    column_val = Report.PageNumber.ToString();
                }
                else if (field is EbPageXY)
                {
                    column_val = Report.PageNumber + "/" /* + writer.PageCount*/;
                }
                else if (field is EbDateTime)
                {
                    column_val = DateTime.Now.ToString();
                }
                else if (field is EbSerialNumber)
                {
                    column_val = Report.SerialNumber.ToString();
                }
                field.DrawMe(canvas, Report.Height, section_Yposition, detailprintingtop, column_val);
            }
            else if (field is EbImg)
            {
                byte[] fileByte = this.ServiceClient.Post <byte[]>
                                      (new DownloadFileRequest
                {
                    FileDetails = new FileMeta
                    {
                        FileName = (field as EbImg).Image + ".jpg",
                        FileType = "jpg"
                    }
                });
                field.DrawMe(d, fileByte);
            }
            else if ((field is EbText) || (field is EbReportFieldShape))
            {
                field.DrawMe(canvas, Report.Height, section_Yposition, detailprintingtop);
            }
        }