Exemplo n.º 1
0
 private static void FillColorStopsAndOffsets(
     Color[] colorStops,
     float[] colorOffsets,
     int numberOfColors,
     IFillElement fillElement)
 {
     if (numberOfColors > 0)
     {
         colorStops[0]   = fillElement.BackColor;
         colorOffsets[0] = 0.0f;
     }
     if (numberOfColors <= 1)
     {
         return;
     }
     colorStops[1] = fillElement.BackColor2;
     colorOffsets[colorStops.Length - 1] = 1f;
     if (numberOfColors <= 2)
     {
         return;
     }
     colorStops[2]   = fillElement.BackColor3;
     colorOffsets[1] = fillElement.GradientPercentage;
     if (numberOfColors <= 3)
     {
         return;
     }
     colorStops[3]   = fillElement.BackColor4;
     colorOffsets[2] = fillElement.GradientPercentage2;
 }
Exemplo n.º 2
0
        protected override bool InnerHandle(IFillElement element, IReportKey RK)
        {
            LOG.Info("reportinfo 内部处理");
            bool result = false;
            InfoElement info = element as InfoElement;
            if (info != null)
            {
                //设置报告ID
                info.ReportID = RK.ID;
                //修改备注内容
                if (info.SectionNo == 11)
                {
                    if (info.Memo != null)
                    {
                        info.Memo = info.Memo.Replace(";", SystemInfo.NewLine);
                    }
                }
                //清理身份证号信息
                if (info.CID != null)
                {
                    info.CID = info.CID.Trim();
                }
                //设置检验者、审核者签名url
                info.CheckerUrl = PUser.GetUserUrl(info.Checker);
                info.TechnicianUrl = PUser.GetUserUrl(info.Technician);

                //设置检验者、审核者签名图片
                info.CheckerImage = PUser.GetUserImage(info.Checker);
                info.TechnicianImage = PUser.GetUserImage(info.Technician);
                result = true;
            }
            return result;
        }
Exemplo n.º 3
0
        private GradientStop[] GetColorStops(IFillElement element)
        {
            float          gradientPercentage  = element.GradientPercentage;
            float          gradientPercentage2 = element.GradientPercentage2;
            GradientStyles gradientStyle       = element.GradientStyle;
            Color          color1         = this.GetColor(element.BackColor);
            Color          color2         = this.GetColor(element.BackColor2);
            Color          color3         = this.GetColor(element.BackColor3);
            Color          color4         = this.GetColor(element.BackColor4);
            int            numberOfColors = element.NumberOfColors;
            int            colorCount     = Math.Min(Math.Max(numberOfColors, 1), 4);

            GradientStop[] colorStops = new GradientStop[colorCount];
            for (int index = 0; index < colorCount; ++index)
            {
                colorStops[index] = new GradientStop();
            }
            if (gradientStyle == GradientStyles.Gel)
            {
                gradientPercentage  = 0.0f;
                gradientPercentage2 = 1f;
            }
            if (numberOfColors > 0)
            {
                colorStops[0].Color    = color1;
                colorStops[0].Position = 0.0f;
                if (numberOfColors > 1)
                {
                    colorStops[1].Color = color2;
                    colorStops[colorCount - 1].Position = 1f;
                    if (numberOfColors > 2)
                    {
                        colorStops[2].Color    = color3;
                        colorStops[1].Position = gradientPercentage;
                        if (numberOfColors > 3)
                        {
                            colorStops[3].Color    = this.GetColor(color4);
                            colorStops[2].Position = gradientPercentage2;
                        }
                    }
                }
            }
            switch (gradientStyle)
            {
            case GradientStyles.Radial:
                colorStops = this.GetFillRadialGradientStops(colorStops, colorCount, gradientPercentage, gradientPercentage2);
                break;

            case GradientStyles.Gel:
                colorStops = this.GetFillGelGradientStops(colorStops, colorCount);
                break;
            }
            return(colorStops);
        }
Exemplo n.º 4
0
 protected override bool InnerHandle(IFillElement element, IReportKey RK)
 {
     bool result = false;
     ItemElement item = element as ItemElement;
     if (item != null)
     {
         item.ReportID = RK.ID;
         result = this.OperateItem(item);
     }
     return result;
 }
Exemplo n.º 5
0
 public bool HandleElement(IFillElement element, IReportKey RK)
 {
     bool result = false;
     if (element != null)
     {
         LOG.Info("ID为" + RK.ID + "的报告进行" + element.GetType().Name + "类型的数据填充");
         result = FillElement(element, RK);
         if (result)
         {
             LOG.Info(element.GetType().Name + "数据填充成功,进行内部处理");
             result = InnerHandle(element, RK);
         }
     }
     return result;
 }
Exemplo n.º 6
0
 public bool Fill(IFillElement element, string sql)
 {
     DataTable dt = GetDataTable(sql);
     if (dt == null)
     {
         return false;
     }
     if (dt.Rows.Count > 0)
     {
         if (!FillData(element, dt.Rows[0], dt.Columns))
         {
             LOG.Error("填充" + element.GetType().Name + "元素失败");
             return false;
         }
     }
     return true;
 }
Exemplo n.º 7
0
        public static void FillRectangle(IGraphics g, RectangleF rect, IFillElement fillElement)
        {
            int val2           = 4;
            int numberOfColors = fillElement.NumberOfColors;

            Color[] colorStops   = new Color[Math.Min(Math.Max(numberOfColors, 1), val2)];
            float[] colorOffsets = new float[Math.Min(Math.Max(numberOfColors, 1), val2)];
            FillPrimitiveImpl.FillColorStopsAndOffsets(colorStops, colorOffsets, numberOfColors, fillElement);
            switch (fillElement.GradientStyle)
            {
            case GradientStyles.Solid:
                g.FillRectangle(rect, fillElement.BackColor);
                break;

            case GradientStyles.Linear:
            case GradientStyles.Radial:
                if (numberOfColors < 2 || numberOfColors == 2 && fillElement.BackColor == fillElement.BackColor2)
                {
                    g.FillRectangle(rect, fillElement.BackColor);
                    break;
                }
                g.FillGradientRectangle(rect, colorStops, colorOffsets, fillElement.GradientStyle, fillElement.GradientAngle, fillElement.GradientPercentage, fillElement.GradientPercentage2);
                break;

            case GradientStyles.Glass:
                g.FillGlassRectangle(Rectangle.Round(rect), fillElement.BackColor, fillElement.BackColor2, fillElement.BackColor3, fillElement.BackColor4, fillElement.GradientPercentage, fillElement.GradientPercentage2);
                break;

            case GradientStyles.OfficeGlass:
                g.FillOfficeGlassRectangle(Rectangle.Round(rect), fillElement.BackColor, fillElement.BackColor2, fillElement.BackColor3, fillElement.BackColor4, fillElement.GradientPercentage, fillElement.GradientPercentage2, true);
                break;

            case GradientStyles.OfficeGlassRect:
                g.FillOfficeGlassRectangle(Rectangle.Round(rect), fillElement.BackColor, fillElement.BackColor2, fillElement.BackColor3, fillElement.BackColor4, fillElement.GradientPercentage, fillElement.GradientPercentage2, false);
                break;

            case GradientStyles.Gel:
                g.FillGellRectangle(Rectangle.Round(rect), colorStops, fillElement.GradientPercentage, fillElement.GradientPercentage2);
                break;

            case GradientStyles.Vista:
                g.FillVistaRectangle(Rectangle.Round(rect), fillElement.BackColor, fillElement.BackColor2, fillElement.BackColor3, fillElement.BackColor4, fillElement.GradientPercentage, fillElement.GradientPercentage2);
                break;
            }
        }
Exemplo n.º 8
0
 public void FillRectangle(IFillElement element, RectangleF rect)
 {
     switch (element.GradientStyle)
     {
     case GradientStyles.Glass:
     case GradientStyles.OfficeGlass:
     case GradientStyles.OfficeGlassRect:
     case GradientStyles.Gel:
     case GradientStyles.Vista:
         rect = (RectangleF)Rectangle.Round(rect);
         break;
     }
     using (Path path = this.CreatePath())
     {
         path.AddRectangle(rect.X, rect.Y, rect.Width, rect.Height);
         this.FillPath(element, path);
     }
 }
Exemplo n.º 9
0
 protected override bool InnerHandle(IFillElement element, IReportKey RK)
 {
     List<IFillElement> elements = new List<IFillElement>(1);
     elements.Add(element);
     return InnerHandle(elements, RK);
 }
Exemplo n.º 10
0
 private bool FillElement(IFillElement element, IReportKey RK)
 {
     string sql = GenderSql(element, RK);
     LOG.Info("填充SQL语句:" + sql);
     try
     {
         LOG.Info("数据填充中");
         return this.DAL.Fill(element, sql);
     }
     catch (Exception ex)
     {
         LOG.Error("数据填充异常:" + ex.Message);
         return false;
     }
 }
Exemplo n.º 11
0
 protected bool FillData(IFillElement element, Type type, DataRow dr, DataColumnCollection columns)
 {
     PropertyInfo prop = null;
     foreach (DataColumn dc in columns)
     {
         try
         {
             prop = type.GetProperty(dc.ColumnName);
             if (IsColumn(prop))
             {
                 FillProperty(element, prop, dr[dc]);
             }
         }
         catch (Exception ex)
         {
             LOG.Error("填充" + type.Name + "的" + dc.ColumnName + "属性异常", ex);
             return false;
         }
     }
     return true;
 }
Exemplo n.º 12
0
 //填充对象属性
 protected bool FillData(IFillElement element, DataRow dr, DataColumnCollection columns)
 {
     Type type = element.GetType();
     return FillData(element, type, dr, columns);
 }
Exemplo n.º 13
0
 protected void FillProperty(IFillElement element, PropertyInfo p, object v)
 {
     try
     {
         if (v != DBNull.Value)
         {
             object value = Convert.ChangeType(v, p.PropertyType);
             p.SetValue(element, value, null);
         }
         else
         {
             p.SetValue(element, DefaultForType(p.PropertyType), null);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 14
0
 public FillPrimitiveImpl(IFillElement fillElement, IPrimitiveElement radElement)
 {
     this.fillElement      = fillElement;
     this.primitiveElement = radElement;
     this.shapedElement    = fillElement as IShapedElement;
 }
Exemplo n.º 15
0
 protected string GenderSql(IFillElement element, IReportKey RK)
 {
     return GenderSql(element.GetType(), RK);
 }
Exemplo n.º 16
0
 public void FillRectangle(IFillElement element, RectangleF rect)
 {
     this.surface.FillRectangle(element, rect);
 }
Exemplo n.º 17
0
        public void FillPath(IFillElement element, Path path)
        {
            GradientStyles gradientStyle       = element.GradientStyle;
            int            numberOfColors      = element.NumberOfColors;
            float          gradientPercentage  = element.GradientPercentage;
            float          gradientPercentage2 = element.GradientPercentage2;

            if (gradientStyle == GradientStyles.Gel || gradientStyle == GradientStyles.Radial || gradientStyle == GradientStyles.Linear)
            {
                GradientStop[] colorStops = this.GetColorStops(element);
                switch (gradientStyle)
                {
                case GradientStyles.Linear:
                case GradientStyles.Radial:
                    Color color1 = this.GetColor(element.BackColor);
                    Color color2 = this.GetColor(element.BackColor2);
                    if (numberOfColors < 2 || numberOfColors == 2 && color1 == color2)
                    {
                        this.FillSolid(path, color1);
                        break;
                    }
                    if (gradientStyle == GradientStyles.Linear)
                    {
                        this.FillLinear(path, colorStops, element.GradientAngle);
                        break;
                    }
                    this.FillRadial(path, colorStops);
                    break;

                case GradientStyles.Gel:
                    this.FillGel(path, colorStops, gradientPercentage, gradientPercentage2);
                    break;
                }
            }
            else
            {
                Color color1 = this.GetColor(element.BackColor);
                Color color2 = this.GetColor(element.BackColor2);
                Color color3 = this.GetColor(element.BackColor3);
                Color color4 = this.GetColor(element.BackColor4);
                switch (gradientStyle)
                {
                case GradientStyles.Solid:
                    this.FillSolid(path, color1);
                    break;

                case GradientStyles.Glass:
                    this.FillGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2);
                    break;

                case GradientStyles.OfficeGlass:
                case GradientStyles.OfficeGlassRect:
                    this.FillOfficeGlass(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2, gradientStyle == GradientStyles.OfficeGlass);
                    break;

                case GradientStyles.Vista:
                    this.FillVista(path, color1, color2, color3, color4, gradientPercentage, gradientPercentage2);
                    break;
                }
            }
        }
Exemplo n.º 18
0
 public void FillPath(IFillElement element, Path path)
 {
     this.surface.FillPath(element, path);
 }
Exemplo n.º 19
0
 protected abstract bool InnerHandle(IFillElement element, IReportKey RK);
Exemplo n.º 20
0
 public FillElementPaintBuffer(IFillElement fillElement, FillRepository fillRepository)
 {
     this.fillElement      = fillElement;
     this.bitmapRepository = fillRepository;
     this.bitmapRepository.DisableBitmapCache = true;
 }
Exemplo n.º 21
0
 public FillElementPaintBuffer(IFillElement fillElement, FillRepository fillRepository)
 {
     this.fillElement      = fillElement;
     this.bitmapRepository = fillRepository;
 }
Exemplo n.º 22
0
 protected override bool InnerHandle(IFillElement element, IReportKey RK)
 {
     element.ReportID = RK.ID;
     return true;
 }