/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Reporting.Field"/>. /// </summary> public Field() { this.v_groupedvalue = false; this.v_row = 0; this.v_format = "###,###,###,###,##0.00"; this.v_border = null; this.v_blank = ""; this.v_font = null; }
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Reporting.Object"/>. /// </summary> public Object() { this.v_type = Spartacus.Reporting.ObjectType.TEXT; this.v_column = ""; this.v_value = ""; this.v_posx = 0.0; this.v_posy = 0.0; this.v_align = Spartacus.Reporting.FieldAlignment.LEFT; this.v_pdfobject = null; this.v_font = null; }
/// <summary> /// Inicializa uma nova instância da classe <see cref="Spartacus.Reporting.Field"/>. /// </summary> public Field(string p_column, string p_title, Spartacus.Reporting.FieldAlignment p_align, double p_fill, Spartacus.Database.Type p_type) { this.v_groupedvalue = false; this.v_row = 0; this.v_format = "###,###,###,###,##0.00"; this.v_border = null; this.v_blank = ""; this.v_font = null; this.v_column = p_column; this.v_title = p_title; this.v_align = p_align; this.v_fill = p_fill; this.v_type = p_type; }
/// <summary> /// Lê fonte. /// </summary> /// <param name="p_font">Objeto fonte, onde vai guardar as informações.</param> /// <param name="p_reader">Objeto XML.</param> private void ReadFont(Spartacus.Reporting.Font p_font, System.Xml.XmlReader p_reader) { while (p_reader.Read()) { if (p_reader.IsStartElement()) { switch (p_reader.Name) { case "family": p_font.SetFamily(p_reader.ReadString()); break; case "size": p_font.SetSize(p_reader.ReadString()); break; case "bold": if (p_reader.ReadString() == "TRUE") { p_font.v_bold = true; } else { p_font.v_bold = false; } break; case "italic": if (p_reader.ReadString() == "TRUE") { p_font.v_italic = true; } else { p_font.v_italic = false; } break; default: break; } } } }
/// <summary> /// Renderiza um rótulo de número de página no Bloco. /// </summary> /// <param name="p_object">Objeto a ser renderizado.</param> /// <param name="p_posx">Posição X.</param> /// <param name="p_posy">Posição Y.</param> /// <param name="p_rightmargin">Margem direita.</param> /// <param name="p_font">Fonte.</param> /// <param name="p_pdf">Objeto PDF.</param> /// <param name="p_page">Página onde será renderizado.</param> private void RenderPageNumber(Spartacus.Reporting.Object p_object, double p_posx, double p_posy, double p_rightmargin, Spartacus.Reporting.Font p_font, PDFjet.NET.PDF p_pdf, PDFjet.NET.Page p_page) { PDFjet.NET.TextLine v_text; v_text = new PDFjet.NET.TextLine(p_font.GetFont(p_pdf)); v_text.SetText(p_object.v_value); switch (p_object.v_align) { case Spartacus.Reporting.FieldAlignment.LEFT: v_text.SetPosition(p_posx + p_object.v_posx, p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.RIGHT: v_text.SetPosition(p_page.GetWidth() - p_rightmargin - v_text.GetWidth(), p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.CENTER: v_text.SetPosition(p_posx + ((p_page.GetWidth() - p_rightmargin - p_posx) / 2) - (v_text.GetWidth() / 2), p_posy + p_object.v_posy); break; default: break; } v_text.DrawOn(p_page); p_object.v_pdfobject = v_text; }
/// <summary> /// Renderiza o Bloco em uma Página. /// </summary> /// <param name="p_font">Fonte.</param> /// <param name="p_posx">Posição X.</param> /// <param name="p_posy">Posição Y.</param> /// <param name="p_rightmargin">Margem direita.</param> /// <param name="p_pdf">Objeto PDF.</param> /// <param name="p_page">Página onde o Bloco será renderizado.</param> public void Render(Spartacus.Reporting.Font p_font, double p_posx, double p_posy, double p_rightmargin, PDFjet.NET.PDF p_pdf, PDFjet.NET.Page p_page) { PDFjet.NET.Line v_line; int k; // renderizando objetos do bloco for (k = 0; k < this.v_objects.Count; k++) { switch (this.v_objects[k].v_type) { case Spartacus.Reporting.ObjectType.IMAGE: this.RenderImage(this.v_objects[k], p_posx, p_posy, p_rightmargin, p_pdf, p_page); break; case Spartacus.Reporting.ObjectType.PAGENUMBER: if (this.v_objects[k].v_font != null) { this.RenderPageNumber(this.v_objects[k], p_posx, p_posy, p_rightmargin, this.v_objects[k].v_font, p_pdf, p_page); } else { this.RenderPageNumber(this.v_objects[k], p_posx, p_posy, p_rightmargin, p_font, p_pdf, p_page); } break; case Spartacus.Reporting.ObjectType.TEXT: if (this.v_objects[k].v_font != null) { this.RenderText(this.v_objects[k], p_posx, p_posy, p_rightmargin, this.v_objects[k].v_font, p_pdf, p_page); } else { this.RenderText(this.v_objects[k], p_posx, p_posy, p_rightmargin, p_font, p_pdf, p_page); } break; default: break; } } // borda superior if (this.v_border.v_top) { v_line = new PDFjet.NET.Line(p_posx, p_posy, p_page.GetWidth() - p_rightmargin, p_posy); v_line.DrawOn(p_page); } // borda inferior if (this.v_border.v_bottom) { v_line = new PDFjet.NET.Line(p_posx, p_posy + this.v_height, p_page.GetWidth() - p_rightmargin, p_posy + this.v_height); v_line.DrawOn(p_page); } // borda esquerda if (this.v_border.v_left) { v_line = new PDFjet.NET.Line(p_posx, p_posy, p_posx, p_posy + this.v_height); v_line.DrawOn(p_page); } // borda direita if (this.v_border.v_right) { v_line = new PDFjet.NET.Line(p_page.GetWidth() - p_rightmargin, p_posy, p_page.GetWidth() - p_rightmargin, p_posy + this.v_height); v_line.DrawOn(p_page); } }