示例#1
0
 public Tablix(String name, DataSet dataSet, String caption, TablixBody tablixBody,
               TablixHeader tablixHeader, TablixFooter tablixFooter, String style,
               Boolean dynamic, Boolean paginate, TablixColumns tablixColumns)
     : this(name, dataSet, caption, tablixBody, tablixHeader, tablixFooter, style,
                        dynamic, paginate, tablixColumns, null)
 {
 }
示例#2
0
 public DataSet(DataSet dataSet)
 {
     Name = dataSet.Name;
     FieldDescriptors = new FieldDescriptors(dataSet.FieldDescriptors);
     Fieldss = new Fieldss(dataSet.Fieldss);
     Stats = new Stats(dataSet.Stats);
     Statss = new Statss(dataSet.Statss);
 }
示例#3
0
 private void addReportButton_Click(Object sender, EventArgs e)
 {
     var report = new Report(addTitleTextBox.Text);
     var dataSet = new DataSet();
     var fields = new Fields();
     fields.AddData(new Field(nameTextBox.Text));
     fields.AddData(new Field(typeTextBox.Text));
     dataSet.Fieldss.AddData(fields);
     report.DataSets.AddData(dataSet);
     Reports.AddData(report);
     RefreshReportForm();
 }
示例#4
0
 public Chart(String name, String style, String tag, Seriess seriess, String imagesDirectoryPath,
              System.Windows.Forms.DataVisualization.Charting.Chart winFormsChart, DataSet dataSet,
              String xLabel, String yLabel)
 {
     Name = name;
     Style = style;
     Tag = tag;
     Seriess = seriess;
     ImagesDirectoryPath = imagesDirectoryPath;
     WinFormsChart = winFormsChart;
     DataSet = dataSet;
     XLabel = xLabel;
     YLabel = yLabel;
 }
示例#5
0
 public static Report Convert(List<List<Object>> objectsList, Report report)
 {
     if (report == null) return null;
     var dataSet = new DataSet();
     foreach (var objectList in objectsList)
     {
         var fields = new Fields();
         foreach (object o in objectList)
             fields.AddData(!o.Equals(DBNull.Value) ? new Field(o) : new Field("No Value :/"));
         dataSet.Fieldss.AddData(fields);
     }
     report.DataSets.AddData(dataSet);
     return report;
 }
示例#6
0
 private void modifyButton_Click(Object sender, EventArgs e)
 {
     var report = new Report(modifyTitleTextBox.Text);
     var dataSet = new DataSet();
     var fields = new Fields();
     fields.AddData(new Field(newNameTextBox.Text));
     fields.AddData(new Field(newTypeTextBox.Text));
     dataSet.Fieldss.AddData(fields);
     report.DataSets.AddData(dataSet);
     Reports.ModifyData(oldNameTextBox.Text, report);
     RefreshReportForm();
 }
示例#7
0
 public Tablix(String name, DataSet dataSet, String caption, TablixBody tablixBody,
               TablixHeader tablixHeader, TablixFooter tablixFooter, String style, Boolean dynamic)
     : this(name, dataSet, caption, tablixBody, tablixHeader, tablixFooter, style, dynamic, true)
 {
 }
示例#8
0
 public Tablix(String name, DataSet dataSet, String caption, TablixBody tablixBody,
               TablixHeader tablixHeader, TablixFooter tablixFooter)
     : this(name, dataSet, caption, tablixBody, tablixHeader, tablixFooter, null)
 {
 }
示例#9
0
 public Tablix(String name, DataSet dataSet, String caption, TablixBody tablixBody)
     : this(name, dataSet, caption, tablixBody, new TablixHeader())
 {
 }
示例#10
0
 public Tablix(String name, DataSet dataSet, String caption)
     : this(name, dataSet, caption, new TablixBody())
 {
 }
示例#11
0
 public Chart(String name, String style, String tag, Seriess seriess, String imagesDirectoryPath,
              DataSet dataSet, String xLabel, String yLabel)
     : this(name, style, tag, seriess, imagesDirectoryPath,
                       new System.Windows.Forms.DataVisualization.Charting.Chart(), dataSet, xLabel, yLabel)
 {
 }
示例#12
0
 public Tablix(Tablix tablix)
 {
     Name = tablix.Name;
     DataSet = new DataSet(tablix.DataSet);
     Caption = tablix.Caption;
     TablixBody = new TablixBody(tablix.TablixBody);
     TablixHeader = new TablixHeader(tablix.TablixHeader);
     TablixFooter = new TablixFooter(tablix.TablixFooter);
     Style = tablix.Style;
     Dynamic = tablix.Dynamic;
     Paginate = tablix.Paginate;
     TablixColumns = new TablixColumns(tablix.TablixColumns);
     TablixChart = new TablixChart(tablix.TablixChart);
     Tag = tablix.Tag;
     PaginationType = tablix.PaginationType;
     TablixColumnHierarchy = tablix.TablixColumnHierarchy;
 }
示例#13
0
 public Tablix(String name, DataSet dataSet, String caption, TablixBody tablixBody,
               TablixHeader tablixHeader, TablixFooter tablixFooter, String style,
               Boolean dynamic, Boolean paginate, TablixColumns tablixColumns,
               TablixChart tablixChart, String tag, String paginationType,
               TablixColumnHierarchy tablixColumnHierarchy)
 {
     Name = name;
     DataSet = dataSet;
     Caption = caption;
     TablixBody = tablixBody;
     TablixHeader = tablixHeader;
     TablixFooter = tablixFooter;
     Style = style;
     Dynamic = dynamic;
     Paginate = paginate;
     TablixColumns = tablixColumns;
     TablixChart = tablixChart;
     Tag = tag;
     PaginationType = paginationType;
     TablixColumnHierarchy = tablixColumnHierarchy;
 }
示例#14
0
 public void Parse()
 {
     int cptReport = -1;
     int cptDataSet = -1;
     Body body = null;
     PageHeader pageHeader = null;
     PageFooter pageFooter = null;
     Box box = null;
     Tablix tablix = null;
     TablixBody tablixBody = null;
     TablixHeader tablixHeader = null;
     TablixFooter tablixFooter = null;
     TablixRow tablixRow = null;
     TablixCell tablixCell = null;
     TablixColumns tablixColumns = null;
     TablixColumnsGrouping tablixColumnsGrouping = null;
     TablixChart tablixChart = null;
     TablixColumnHierarchy tablixColumnHierarchy = null;
     Group group = null;
     TextBox textBox = null;
     Chart chart = null;
     bool inBody = false;
     bool inPageHeader = false;
     bool inPageFooter = false;
     bool inBox = false;
     bool inTablixBody = false;
     bool inTablixHeader = false;
     bool inTablixFooter = false;
     bool inTablixCell = false;
     bool inTablixColumnHierarchy = false;
     while (XmlReader.Read())
         switch (XmlReader.NodeType)
         {
             case XmlNodeType.Element:
                 switch (XmlReader.LocalName)
                 {
                     case "Report":
                         cptReport++;
                         if (XmlReader.HasAttributes)
                         {
                             Reports.DataList[cptReport].Name = XmlReader.GetAttribute("Name");
                             Boolean displayTitle;
                             Boolean.TryParse(XmlReader.GetAttribute("DisplayTitle"), out displayTitle);
                             Reports.DataList[cptReport].DisplayTitle = displayTitle;
                         }
                         break;
                     case "DataSets":
                         cptDataSet = -1;
                         break;
                     case "DataSet":
                         cptDataSet++;
                         if (XmlReader.HasAttributes)
                             Reports.DataList[cptReport].DataSets.DataList[cptDataSet].Name =
                                 XmlReader.GetAttribute("Name");
                         break;
                     case "Field":
                         if (XmlReader.HasAttributes)
                             Reports.DataList[cptReport].DataSets.DataList[cptDataSet].
                                 FieldDescriptors.AddData(new FieldDescriptor(
                                                              XmlReader.GetAttribute("Id"),
                                                              XmlReader.GetAttribute("Type")));
                         break;
                     case "Body":
                         inBody = true;
                         inPageHeader = false;
                         inPageFooter = false;
                         inBox = false;
                         body = new Body();
                         if (XmlReader.HasAttributes)
                         {
                             body.Name = XmlReader.GetAttribute("Name");
                             body.Style = XmlReader.GetAttribute("Style");
                             body.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "PageHeader":
                         inBody = false;
                         inPageHeader = true;
                         inPageFooter = false;
                         inBox = false;
                         pageHeader = new PageHeader();
                         if (XmlReader.HasAttributes)
                         {
                             pageHeader.Name = XmlReader.GetAttribute("Name");
                             pageHeader.Style = XmlReader.GetAttribute("Style");
                             pageHeader.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "PageFooter":
                         inBody = false;
                         inPageHeader = false;
                         inPageFooter = true;
                         inBox = false;
                         pageFooter = new PageFooter();
                         if (XmlReader.HasAttributes)
                         {
                             pageFooter.Name = XmlReader.GetAttribute("Name");
                             pageFooter.Style = XmlReader.GetAttribute("Style");
                             pageFooter.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "Box":
                         inBox = true;
                         box = new Box();
                         if (XmlReader.HasAttributes)
                         {
                             box.Name = XmlReader.GetAttribute("Name");
                             box.Style = XmlReader.GetAttribute("Style");
                             box.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "Tablix":
                         inTablixBody = false;
                         inTablixHeader = false;
                         inTablixFooter = false;
                         inTablixColumnHierarchy = false;
                         if (XmlReader.HasAttributes)
                         {
                             Boolean dynamic;
                             Boolean.TryParse(XmlReader.GetAttribute("Dynamic"), out dynamic);
                             Boolean paginate;
                             Boolean.TryParse(XmlReader.GetAttribute("Paginate"), out paginate);
                             tablix = new Tablix(XmlReader.GetAttribute("Name"),
                                                 XmlReader.GetAttribute("Caption"),
                                                 XmlReader.GetAttribute("Style"),
                                                 dynamic, paginate, XmlReader.GetAttribute("Tag"),
                                                 XmlReader.GetAttribute("PaginationType"));
                             foreach (DataSet t in Reports.DataList[cptReport].DataSets.DataList.Where(
                                 t => t.Name.Equals(XmlReader.GetAttribute("DataSet"))))
                                 tablix.DataSet = t;
                         }
                         break;
                     case "TablixBody":
                         inTablixBody = true;
                         inTablixHeader = false;
                         inTablixFooter = false;
                         tablixBody = new TablixBody();
                         if (XmlReader.HasAttributes)
                         {
                             Boolean linked;
                             Boolean.TryParse(XmlReader.GetAttribute("Linked"), out linked);
                             tablixBody.Linked = linked;
                         }
                         break;
                     case "TablixHeader":
                         inTablixBody = false;
                         inTablixHeader = true;
                         inTablixFooter = false;
                         tablixHeader = new TablixHeader();
                         if (XmlReader.HasAttributes)
                         {
                             Boolean linked;
                             Boolean.TryParse(XmlReader.GetAttribute("Linked"), out linked);
                             tablixHeader.Linked = linked;
                         }
                         break;
                     case "TablixFooter":
                         inTablixBody = false;
                         inTablixHeader = false;
                         inTablixFooter = true;
                         tablixFooter = new TablixFooter();
                         if (XmlReader.HasAttributes)
                         {
                             Boolean linked;
                             Boolean.TryParse(XmlReader.GetAttribute("Linked"), out linked);
                             tablixFooter.Linked = linked;
                         }
                         break;
                     case "TablixRow":
                         tablixRow = new TablixRow();
                         if (XmlReader.HasAttributes)
                         {
                             tablixRow.Name = XmlReader.GetAttribute("Name");
                             tablixRow.Style = XmlReader.GetAttribute("Style");
                             tablixRow.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "TablixCell":
                         inTablixCell = true;
                         tablixCell = new TablixCell();
                         if (XmlReader.HasAttributes)
                         {
                             Boolean header;
                             Boolean.TryParse(XmlReader.GetAttribute("Header"), out header);
                             tablixCell.Header = header;
                             tablixCell.Id = XmlReader.GetAttribute("Id");
                             tablixCell.RowSpan = XmlReader.GetAttribute("RowSpan");
                             tablixCell.ColSpan = XmlReader.GetAttribute("ColSpan");
                             tablixCell.Name = XmlReader.GetAttribute("Name");
                             tablixCell.Style = XmlReader.GetAttribute("Style");
                             tablixCell.Tag = XmlReader.GetAttribute("Tag");
                         }
                         break;
                     case "TablixColumns":
                         if (XmlReader.HasAttributes)
                         {
                             Boolean reorderable;
                             Boolean.TryParse(XmlReader.GetAttribute("Reorderable"), out reorderable);
                             Boolean hideable;
                             Boolean.TryParse(XmlReader.GetAttribute("Hideable"), out hideable);
                             tablixColumns = new TablixColumns(XmlReader.GetAttribute("Sorting"),
                                                               reorderable, hideable);
                         }
                         break;
                     case "TablixColumnsGrouping":
                         if (XmlReader.HasAttributes)
                             tablixColumnsGrouping = new TablixColumnsGrouping(
                                 XmlReader.GetAttribute("ColumnIndex"),
                                 XmlReader.GetAttribute("ColumnSortDirection"),
                                 XmlReader.GetAttribute("OrderByColumnIndex"),
                                 XmlReader.GetAttribute("Class"),
                                 XmlReader.GetAttribute("GroupBy"),
                                 XmlReader.GetAttribute("Expandable"),
                                 XmlReader.GetAttribute("ExpandSingle"),
                                 XmlReader.GetAttribute("DateFormat"));
                         break;
                     case "TablixChart":
                         if (XmlReader.HasAttributes)
                             tablixChart = new TablixChart(XmlReader.GetAttribute("Type"),
                                                           XmlReader.GetAttribute("Subtitle"),
                                                           XmlReader.GetAttribute("Inverted"),
                                                           XmlReader.GetAttribute("Height"),
                                                           XmlReader.GetAttribute("Container"),
                                                           XmlReader.GetAttribute("FillOpacity"),
                                                           XmlReader.GetAttribute("LegendDisabled"),
                                                           XmlReader.GetAttribute("LegendLayout"),
                                                           XmlReader.GetAttribute("LegendWidth"),
                                                           XmlReader.GetAttribute("LegendX"),
                                                           XmlReader.GetAttribute("LegendY"));
                         break;
                     case "TablixColumnHierarchy":
                         inTablixColumnHierarchy = true;
                         tablixColumnHierarchy = new TablixColumnHierarchy();
                         break;
                     case "Group":
                         if (XmlReader.HasAttributes)
                         {
                             group = new Group(XmlReader.GetAttribute("Name"), XmlReader.GetAttribute("On"));
                             var dataSet = new DataSet
                                 {
                                     FieldDescriptors = tablix.DataSet.FieldDescriptors,
                                     Name = tablix.DataSet.Name,
                                     Stats = tablix.DataSet.Stats
                                 };
                             int groupColumnIndex = dataSet.FieldDescriptors.ContainsDataById(group.On);
                             if (groupColumnIndex == -1) continue;
                             var columnValues = new List<Object>();
                             foreach (Fields fields in tablix.DataSet.Fieldss.DataList.Where(
                                 fields => fields != null && !fields.IsDataListEmpty() &&
                                           !columnValues.Contains(fields.DataList[groupColumnIndex].Value)))
                                 columnValues.Add(fields.DataList[groupColumnIndex].Value);
                             foreach (object columnValue in columnValues)
                             {
                                 var groupStats = new Stats();
                                 var sums = new List<Double>();
                                 int counter = 0;
                                 for (int index = 0; index < dataSet.FieldDescriptors.DataList.Count(); index++)
                                     sums.Add(0d);
                                 foreach (Fields fields in tablix.DataSet.Fieldss.DataList)
                                 {
                                     if (fields.DataList[groupColumnIndex].Value != columnValue) continue;
                                     var fieldsCopy = new Fields();
                                     int index = 0;
                                     foreach (Field field in fields.DataList)
                                     {
                                         fieldsCopy.AddData(new Field(field));
                                         if (field.Value is Decimal)
                                             sums[index] += Decimal.ToDouble((Decimal) field.Value);
                                         else if (field.Value is Int32)
                                             sums[index] += (Int32) field.Value;
                                         index++;
                                     }
                                     dataSet.Fieldss.AddData(fieldsCopy);
                                     counter++;
                                 }
                                 foreach (double sum in sums)
                                 {
                                     groupStats.Sums.AddData(sum);
                                     groupStats.Avgs.AddData(sum/counter);
                                 }
                                 dataSet.Statss.DataList.Add(groupStats);
                                 dataSet.Statss.GroupList.Add(columnValue);
                                 var endGroupFields = new Fields();
                                 for (int index = 0; index < dataSet.FieldDescriptors.DataList.Count(); index++)
                                     endGroupFields.AddData(new Field("_END_GROUP_"));
                                 dataSet.Fieldss.AddData(endGroupFields);
                             }
                             tablix.DataSet = dataSet;
                         }
                         break;
                     case "TextBox":
                         if (XmlReader.HasAttributes)
                             textBox = new TextBox(XmlReader.GetAttribute("Name"),
                                                   XmlReader.GetAttribute("Value"),
                                                   XmlReader.GetAttribute("Style"),
                                                   XmlReader.GetAttribute("Tag"), XmlReader.GetAttribute("Type"));
                         break;
                     case "Chart":
                         if (XmlReader.HasAttributes)
                         {
                             chart = new Chart(XmlReader.GetAttribute("Name"),
                                               XmlReader.GetAttribute("Style"), XmlReader.GetAttribute("Tag"),
                                               null, XmlReader.GetAttribute("ImagesDirectoryPath"), null,
                                               XmlReader.GetAttribute("XLabel"), XmlReader.GetAttribute("YLabel"));
                             foreach (DataSet t in Reports.DataList[cptReport].DataSets.DataList.Where(
                                 t => t.Name.Equals(XmlReader.GetAttribute("DataSet"))))
                                 chart.DataSet = t;
                             string xSerieColumnName = XmlReader.GetAttribute("XSerieColumnName");
                             int xSerieColumnIndex =
                                 chart.DataSet.FieldDescriptors.ContainsDataById(xSerieColumnName);
                             string ySerieColumnName = XmlReader.GetAttribute("YSerieColumnName");
                             int ySerieColumnIndex =
                                 chart.DataSet.FieldDescriptors.ContainsDataById(ySerieColumnName);
                             if (xSerieColumnIndex > -1 && ySerieColumnIndex > -1)
                             {
                                 var seriess = new Seriess
                                     {
                                         Name =
                                             String.Format("Seriess{0}{1}", xSerieColumnIndex, ySerieColumnIndex)
                                     };
                                 var series = new Series
                                     {
                                         Name =
                                             String.Format("Series{0}{1}", xSerieColumnIndex, ySerieColumnIndex),
                                         Type = XmlReader.GetAttribute("Type")
                                     };
                                 var xSerie = new Serie();
                                 var ySerie = new Serie();
                                 foreach (Fields fields in chart.DataSet.Fieldss.DataList)
                                 {
                                     xSerie.DataList.Add(fields.DataList[xSerieColumnIndex].Value);
                                     ySerie.DataList.Add(fields.DataList[ySerieColumnIndex].Value);
                                 }
                                 series.DataList.Add(xSerie);
                                 series.DataList.Add(ySerie);
                                 seriess.AddData(series);
                                 chart.Seriess = seriess;
                             }
                         }
                         break;
                 }
                 break;
             case XmlNodeType.EndElement:
                 switch (XmlReader.LocalName)
                 {
                     case "Body":
                         Reports.DataList[cptReport].Body = body;
                         break;
                     case "PageHeader":
                         Reports.DataList[cptReport].PageHeader = pageHeader;
                         break;
                     case "PageFooter":
                         Reports.DataList[cptReport].PageFooter = pageFooter;
                         break;
                     case "Box":
                         if (inBody)
                             body.AddData(box);
                         else if (inPageHeader)
                             pageHeader.AddData(box);
                         else if (inPageFooter)
                             pageFooter.AddData(box);
                         inBox = false;
                         break;
                     case "Tablix":
                         if (inBox)
                             box.AddData(tablix);
                         else if (inBody)
                             body.AddData(tablix);
                         else if (inPageHeader)
                             pageHeader.AddData(tablix);
                         else if (inPageFooter)
                             pageFooter.AddData(tablix);
                         break;
                     case "TablixBody":
                         tablix.TablixBody = tablixBody;
                         inTablixBody = false;
                         break;
                     case "TablixHeader":
                         if (inTablixColumnHierarchy)
                             tablixColumnHierarchy.TablixHeader = tablixHeader;
                         else
                             tablix.TablixHeader = tablixHeader;
                         inTablixHeader = false;
                         break;
                     case "TablixFooter":
                         if (inTablixColumnHierarchy)
                             tablixColumnHierarchy.TablixFooter = tablixFooter;
                         else
                             tablix.TablixFooter = tablixFooter;
                         inTablixFooter = false;
                         break;
                     case "TablixRow":
                         if (inTablixBody)
                             tablixBody.TablixRows.AddData(tablixRow);
                         else if (inTablixHeader)
                             tablixHeader.TablixRows.AddData(tablixRow);
                         else if (inTablixFooter)
                             tablixFooter.TablixRows.AddData(tablixRow);
                         break;
                     case "TablixCell":
                         tablixRow.TablixCells.AddData(tablixCell);
                         inTablixCell = false;
                         break;
                     case "TablixColumns":
                         tablix.TablixColumns = tablixColumns;
                         break;
                     case "TablixColumnsGrouping":
                         tablixColumns.TablixColumnsGrouping = tablixColumnsGrouping;
                         break;
                     case "TablixChart":
                         tablix.TablixChart = tablixChart;
                         break;
                     case "TablixColumnHierarchy":
                         tablix.TablixColumnHierarchy = tablixColumnHierarchy;
                         break;
                     case "Group":
                         tablixColumnHierarchy.Group = group;
                         break;
                     case "TextBox":
                         if (inTablixCell)
                             tablixCell.TextBox = textBox;
                         else if (inBox)
                             box.AddData(textBox);
                         else if (inBody)
                             body.AddData(textBox);
                         else if (inPageHeader)
                             pageHeader.AddData(textBox);
                         else if (inPageFooter)
                             pageFooter.AddData(textBox);
                         break;
                     case "Chart":
                         if (inBox)
                             box.AddData(chart);
                         else if (inBody)
                             body.AddData(chart);
                         else if (inPageHeader)
                             pageHeader.AddData(chart);
                         else if (inPageFooter)
                             pageFooter.AddData(chart);
                         break;
                 }
                 break;
         }
 }
示例#15
0
 public Chart(Chart chart)
 {
     Name = chart.Name;
     Style = chart.Style;
     Tag = chart.Tag;
     Seriess = new Seriess(chart.Seriess);
     ImagesDirectoryPath = chart.ImagesDirectoryPath;
     WinFormsChart = chart.WinFormsChart;
     DataSet = new DataSet(chart.DataSet);
     XLabel = chart.XLabel;
     YLabel = chart.YLabel;
 }
示例#16
0
 public Tablix(String name, DataSet dataSet)
     : this(name, dataSet, null)
 {
 }
示例#17
0
 public Chart(String name, String style, String tag, Seriess seriess, String imagesDirectoryPath,
              DataSet dataSet)
     : this(name, style, tag, seriess, imagesDirectoryPath, dataSet, null)
 {
 }