示例#1
0
 public static Report Convert(DataRowCollection dataRowCollection, Report report)
 {
     if (dataRowCollection == null || report == null) return null;
     var dataSet = new Data.DataSet();
     foreach (DataRow dataRow in dataRowCollection)
     {
         var fields = new Fields();
         foreach (object o in dataRow.ItemArray)
             fields.AddData(!o.Equals(DBNull.Value) ? new Field(o) : new Field("N/A"));
         dataSet.Fieldss.AddData(fields);
     }
     report.DataSets.AddData(dataSet);
     return report;
 }
示例#2
0
 public static Report Convert(DataRowCollection dataRowCollection, Report report, String columnNameGroup)
 {
     if (dataRowCollection == null || report == null || columnNameGroup == null) return null;
     var dataSet = new Data.DataSet();
     var columnValues = new List<Object>();
     foreach (object columnValue in dataRowCollection.Cast<DataRow>()
                                                     .Select(dataRow => dataRow[columnNameGroup])
                                                     .Where(columnValue => !columnValues.Contains(columnValue)))
         columnValues.Add(columnValue);
     foreach (object columnValue in columnValues)
     {
         var sums = new List<Double>();
         for (int index = 0; index < dataRowCollection[0].ItemArray.Count(); index++)
             sums.Add(0d);
         foreach (DataRow dataRow in dataRowCollection)
         {
             if (dataRow[columnNameGroup] != columnValue) continue;
             var fields = new Fields();
             int index = 0;
             foreach (object o in dataRow.ItemArray)
             {
                 fields.AddData(!o.Equals(DBNull.Value) ? new Field(o) : new Field("N/A"));
                 if (o is Decimal)
                     sums[index] += Decimal.ToDouble((Decimal) o);
                 else if (o is Int32)
                     sums[index] += (Int32) o;
                 index++;
             }
             dataSet.Fieldss.AddData(fields);
         }
         var sumFields = new Fields();
         foreach (double sum in sums)
             sumFields.AddData(new Field(sum));
         dataSet.Fieldss.AddData(sumFields);
     }
     report.DataSets.AddData(dataSet);
     return report;
 }