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; }
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; }
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); }
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; }
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; }
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; }
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; } }
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); } }
protected override bool InnerHandle(IFillElement element, IReportKey RK) { List<IFillElement> elements = new List<IFillElement>(1); elements.Add(element); return InnerHandle(elements, RK); }
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; } }
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; }
//填充对象属性 protected bool FillData(IFillElement element, DataRow dr, DataColumnCollection columns) { Type type = element.GetType(); return FillData(element, type, dr, columns); }
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; } }
public FillPrimitiveImpl(IFillElement fillElement, IPrimitiveElement radElement) { this.fillElement = fillElement; this.primitiveElement = radElement; this.shapedElement = fillElement as IShapedElement; }
protected string GenderSql(IFillElement element, IReportKey RK) { return GenderSql(element.GetType(), RK); }
public void FillRectangle(IFillElement element, RectangleF rect) { this.surface.FillRectangle(element, rect); }
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; } } }
public void FillPath(IFillElement element, Path path) { this.surface.FillPath(element, path); }
protected abstract bool InnerHandle(IFillElement element, IReportKey RK);
public FillElementPaintBuffer(IFillElement fillElement, FillRepository fillRepository) { this.fillElement = fillElement; this.bitmapRepository = fillRepository; this.bitmapRepository.DisableBitmapCache = true; }
public FillElementPaintBuffer(IFillElement fillElement, FillRepository fillRepository) { this.fillElement = fillElement; this.bitmapRepository = fillRepository; }
protected override bool InnerHandle(IFillElement element, IReportKey RK) { element.ReportID = RK.ID; return true; }