private void GeneraSezioneTabella(SezioneTabella sezione, XmlWriter writer, DataTable dt, Padding padding, float height) { string nomeSezione = "", templateValore = "", valore = ""; CellColors colors = null; switch (sezione) { case SezioneTabella.Header: { nomeSezione = "Header"; templateValore = "{0}"; colors = new CellColors(Color.Black, Color.White); break; } case SezioneTabella.Details: { nomeSezione = "Details"; templateValore = "=Fields!{0}.Value"; break; } case SezioneTabella.Footer: { nomeSezione = "Footer"; templateValore = "{0}"; break; } } writer.WriteStartElement(nomeSezione); { if (sezione == SezioneTabella.Header) writer.WriteElementString("RepeatOnNewPage", "true"); writer.WriteStartElement("TableRows"); { writer.WriteStartElement("TableRow"); { writer.WriteElementString("Height", height.ToString(ci) + "cm"); writer.WriteStartElement("TableCells"); { for (int i = 0; i < dt.Columns.Count; i++) { writer.WriteStartElement("TableCell"); { writer.WriteStartElement("ReportItems"); { valore = String.Format(templateValore, dt.Columns[i].ColumnName); GeneraTextBox(writer, "textbox" + nomeSezione + i, RectangleF.Empty, padding, colors, valore); } writer.WriteEndElement(); } writer.WriteEndElement(); } } writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); }
private void GeneraTextBox(XmlWriter writer, string textboxName, RectangleF dimensioni, Padding padding, CellColors colors, string value) { writer.WriteStartElement("Textbox"); writer.WriteAttributeString("Name", textboxName); { writer.WriteElementString("rd", "DefaultName", nsRd, textboxName); if (dimensioni != RectangleF.Empty) { writer.WriteElementString("Top", dimensioni.Top.ToString(ci) + "cm"); writer.WriteElementString("Left", dimensioni.Left.ToString(ci) + "cm"); writer.WriteElementString("Width", dimensioni.Width.ToString(ci) + "cm"); writer.WriteElementString("Height", dimensioni.Height.ToString(ci) + "cm"); } writer.WriteElementString("CanGrow", "true"); writer.WriteElementString("Value", value); if (padding != null) { writer.WriteStartElement("Style"); { writer.WriteStartElement("BorderStyle"); { writer.WriteElementString("Default", "Solid"); } writer.WriteEndElement(); if (colors != null) { writer.WriteElementString("Color", colors.ForegroundColor.Name); writer.WriteElementString("BackgroundColor", colors.BackgroundColor.Name); } writer.WriteElementString("PaddingLeft", padding.Left.ToString(ci) + "pt"); writer.WriteElementString("PaddingRight", padding.Right.ToString(ci) + "pt"); writer.WriteElementString("PaddingTop", padding.Top.ToString(ci) + "pt"); writer.WriteElementString("PaddingBottom", padding.Bottom.ToString(ci) + "pt"); } writer.WriteEndElement(); } } writer.WriteEndElement(); }