123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraPrinting;
- using GCAS.Code;
- using GCAS.Dto;
- using GCAS.Localization;
- using GCAS.Model;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace GCAS
- {
- public partial class ReportForm : XtraForm
- {
- private List<NameValue> L;
- private RecordRepository recordRepository;
- private DeviceRepository deviceRepository;
- public OperatorModel currentUser;
- private EntranceRepository entranceRepository;
- private TeamRepository teamRepository;
- private ActionsRepository actionsRepository;
- private DateTime startTime;
- private DateTime endTime;
- private List<DeviceModel> devices;
- private List<TeamModel> teams;
- private TeamModel teamNext;
- private List<EntranceModel> entrances;
- private string range;
- private string type;
- public ReportForm()
- {
- InitializeComponent();
- L = LocalizationHelper.GetSource(Thread.CurrentThread.CurrentUICulture);
- range = "day";
- type = L.GetString("team");
- }
- private async void ReportForm_LoadAsync(object sender, EventArgs e)
- {
- recordRepository = new RecordRepository();
- deviceRepository = new DeviceRepository();
- devices = deviceRepository.GetList();
- actionsRepository = new ActionsRepository();
- entranceRepository = new EntranceRepository();
- entrances = entranceRepository.GetList();
- teamRepository = new TeamRepository();
- teams = teamRepository.GetList();
- teamNext = teams.Where(c => c.NextDay == 1).FirstOrDefault();
- cb_range.SelectedIndex = 0;
- cb_types.SelectedIndex = 0;
- await BindGridAsync();
- }
- private async Task BindGridAsync()
- {
- DataTable dt = new DataTable();
- dt.Columns.Add(new DataColumn("Time", typeof(string)));
- dt.Columns.Add(new DataColumn("TotalCount", typeof(int)));
- dt.Columns.Add(new DataColumn("TotalWeight", typeof(double)));
- gridView1.LoadingPanelVisible = true;
- if (teamNext != null && cb_range.SelectedIndex >= 1)
- {
- endTime = Convert.ToDateTime(endTime.AddDays(1).ToShortDateString() + " " + teamNext.EndTime);
- }
- var query = await recordRepository.GetList(null, 0, 0, 0, startTime, endTime);
- if (teamNext != null && cb_range.SelectedIndex >= 1)
- {
- foreach (var item in query)
- {
- if (item.Team == teamNext.Id)
- {
- var tempTime = Convert.ToDateTime(item.Time.ToShortDateString() + " " + teamNext.EndTime);
- if (item.Time < tempTime)
- {
- item.Time = item.Time.AddDays(-1);
- }
- }
- }
- }
- ArrayList tempList = new ArrayList();
- switch (cb_range.SelectedIndex)
- {
- case 0:
- switch (cb_types.SelectedIndex)
- {
- case 0:
- var tGroup = query.GroupBy(c => c.Time.Hour);
- dt.Columns.AddRange(teams.Select(c => new DataColumn("team" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(g.Key.ToString().PadLeft(2, '0') + ":00:00-" + g.Key.ToString().PadLeft(2, '0') + ":59:59");
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in teams)
- {
- tempList.Add(Math.Round(g.Where(c => c.Team == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 1:
- tGroup = query.GroupBy(c => c.Time.Hour);
- dt.Columns.AddRange(devices.Select(c => new DataColumn("device" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(g.Key.ToString().PadLeft(2, '0') + ":00:00-" + g.Key.ToString().PadLeft(2, '0') + ":59:59");
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in devices)
- {
- tempList.Add(Math.Round(g.Where(c => c.Device == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 2:
- tGroup = query.GroupBy(c => c.Time.Hour);
- dt.Columns.AddRange(entrances.Select(c => new DataColumn("entrance" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(g.Key.ToString().PadLeft(2, '0') + ":00:00-" + g.Key.ToString().PadLeft(2, '0') + ":59:59");
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in entrances)
- {
- tempList.Add(Math.Round(g.Where(c => c.Entrance == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- }
- break;
- case 1:
- switch (cb_types.SelectedIndex)
- {
- case 0:
- var tGroup = query.GroupBy(c => c.Time.DayOfWeek);
- dt.Columns.AddRange(teams.Select(c => new DataColumn("team" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetWeek(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in teams)
- {
- tempList.Add(Math.Round(g.Where(c => c.Team == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 1:
- tGroup = query.GroupBy(c => c.Time.DayOfWeek);
- dt.Columns.AddRange(devices.Select(c => new DataColumn("device" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetWeek(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in devices)
- {
- tempList.Add(Math.Round(g.Where(c => c.Device == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 2:
- tGroup = query.GroupBy(c => c.Time.DayOfWeek);
- dt.Columns.AddRange(entrances.Select(c => new DataColumn("entrance" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetWeek(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in entrances)
- {
- tempList.Add(Math.Round(g.Where(c => c.Entrance == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- }
- break;
- case 2:
- switch (cb_types.SelectedIndex)
- {
- case 0:
- var tGroup = query.GroupBy(c => c.Time.Month + "-" + c.Time.Day);
- dt.Columns.AddRange(teams.Select(c => new DataColumn("team" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetDay(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in teams)
- {
- tempList.Add(Math.Round(g.Where(c => c.Team == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 1:
- tGroup = query.GroupBy(c => c.Time.Month + "-" + c.Time.Day);
- dt.Columns.AddRange(devices.Select(c => new DataColumn("device" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetDay(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in devices)
- {
- tempList.Add(Math.Round(g.Where(c => c.Device == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 2:
- tGroup = query.GroupBy(c => c.Time.Month + "-" + c.Time.Day);
- dt.Columns.AddRange(entrances.Select(c => new DataColumn("entrance" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetDay(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in entrances)
- {
- tempList.Add(Math.Round(g.Where(c => c.Entrance == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- }
- break;
- case 3:
- switch (cb_types.SelectedIndex)
- {
- case 0:
- var tGroup = query.GroupBy(c => c.Time.Month);
- dt.Columns.AddRange(teams.Select(c => new DataColumn("team" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetMonth(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in teams)
- {
- tempList.Add(Math.Round(g.Where(c => c.Team == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 1:
- tGroup = query.GroupBy(c => c.Time.Month);
- dt.Columns.AddRange(devices.Select(c => new DataColumn("device" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetMonth(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in devices)
- {
- tempList.Add(Math.Round(g.Where(c => c.Device == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- case 2:
- tGroup = query.GroupBy(c => c.Time.Month);
- dt.Columns.AddRange(entrances.Select(c => new DataColumn("entrance" + c.Id, typeof(double))).ToArray());
- foreach (var g in tGroup)
- {
- tempList.Clear();
- tempList.Add(Tools.GetMonth(g.Key));
- tempList.Add(g.Count());
- tempList.Add(Math.Round(g.Sum(e => e.NetWeight), 2));
- foreach (var item in entrances)
- {
- tempList.Add(Math.Round(g.Where(c => c.Entrance == item.Id).Sum(c => c.NetWeight), 2));
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- break;
- }
- break;
- }
- gridControl1.DataSource = dt;
- gridView1.FocusedRowHandle = -1;
- gridView1.LoadingPanelVisible = false;
- }
- private void gridControl1_Load(object sender, EventArgs e)
- {
- if (File.Exists(Application.StartupPath + @"\" + Text + ".xml"))
- {
- gridView1.RestoreLayoutFromXml(Application.StartupPath + @"\" + Text + ".xml"); //加载布局
- }
- }
- private void gridView1_Layout(object sender, EventArgs e)
- {
- gridView1.SaveLayoutToXml(Application.StartupPath + @"\" + Text + ".xml");//保存布局
- }
- private void rg_type_SelectedIndexChanged(object sender, EventArgs e)
- {
- switch ((sender as ComboBoxEdit).SelectedIndex)
- {
- case 0:
- range = "day";
- btn_pre.Text = L.GetString("prevDay");
- btn_next.Text = L.GetString("nextDay");
- btn_cur.Text = L.GetString("today");
- startTime = DateTime.Today;
- endTime = startTime.AddDays(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " 24:00";
- break;
- case 1:
- range = "week";
- btn_pre.Text = L.GetString("prevWeek");
- btn_next.Text = L.GetString("nextWeek");
- btn_cur.Text = L.GetString("thisWeek");
- startTime = Tools.GetTimeStartByType("Week", DateTime.Now).Value.Date;
- endTime = startTime.AddDays(7).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 2:
- range = "month";
- btn_pre.Text = L.GetString("prevMonth");
- btn_next.Text = L.GetString("nextMonth");
- btn_cur.Text = L.GetString("thisMonth");
- startTime = Tools.GetTimeStartByType("Month", DateTime.Now).Value.Date;
- endTime = startTime.AddMonths(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 3:
- range = "year";
- btn_pre.Text = L.GetString("prevYear");
- btn_next.Text = L.GetString("nextYear");
- btn_cur.Text = L.GetString("thisYear");
- startTime = Tools.GetTimeStartByType("Year", DateTime.Now).Value.Date;
- endTime = startTime.AddYears(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- }
- }
- private void btn_range_Click(object sender, EventArgs e)
- {
- SimpleButton btn = sender as SimpleButton;
- switch (btn.Name)
- {
- case "btn_pre":
- switch (cb_range.SelectedIndex)
- {
- case 0:
- startTime = startTime.AddDays(-1);
- endTime = startTime.AddDays(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " 24:00";
- break;
- case 1:
- startTime = startTime.AddDays(-7);
- endTime = startTime.AddDays(7).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 2:
- startTime = startTime.AddMonths(-1);
- endTime = startTime.AddMonths(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 3:
- startTime = startTime.AddYears(-1);
- endTime = startTime.AddYears(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- }
- break;
- case "btn_next":
- switch (cb_range.SelectedIndex)
- {
- case 0:
- startTime = startTime.AddDays(1);
- endTime = startTime.AddDays(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " 24:00";
- break;
- case 1:
- startTime = startTime.AddDays(7);
- endTime = startTime.AddDays(8).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 2:
- startTime = startTime.AddMonths(1);
- endTime = startTime.AddMonths(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 3:
- startTime = startTime.AddYears(1);
- endTime = startTime.AddYears(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- }
- break;
- case "btn_cur":
- switch (cb_range.SelectedIndex)
- {
- case 0:
- startTime = DateTime.Today;
- endTime = startTime.AddDays(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " 24:00";
- break;
- case 1:
- startTime = Tools.GetTimeStartByType("Week", DateTime.Now).Value.Date;
- endTime = startTime.AddDays(7).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 2:
- startTime = Tools.GetTimeStartByType("Month", DateTime.Now).Value.Date;
- endTime = startTime.AddMonths(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- case 3:
- startTime = Tools.GetTimeStartByType("Year", DateTime.Now).Value.Date;
- endTime = startTime.AddYears(1).AddSeconds(-1);
- lbl_range.Text = startTime.ToString("yyyy-MM-dd") + " 0:00 " + L.GetString("to") + " " + endTime.ToString("yyyy-MM-dd") + " 24:00";
- break;
- }
- break;
- }
- }
- private async void btn_search_ClickAsync(object sender, EventArgs e)
- {
- await BindGridAsync();
- }
- private void cb_types_SelectedIndexChanged(object sender, EventArgs e)
- {
- int index = 0;
- gridView1.Columns.Clear();
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_time", FieldName = "Time", Caption = "时间", Width = 200, VisibleIndex = index, SortOrder = DevExpress.Data.ColumnSortOrder.Ascending });
- index++;
- switch (cb_types.SelectedIndex)
- {
- case 0:
- type = L.GetString("team");
- foreach (var item in teams)
- {
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_team" + item.Id, Caption = item.Name, FieldName = "team" + item.Id, Width = 200, VisibleIndex = index });
- index++;
- }
- break;
- case 1:
- type = L.GetString("device");
- foreach (var item in devices)
- {
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_device" + item.Id, Caption = item.Name, FieldName = "device" + item.Id, Width = 200, VisibleIndex = index });
- index++;
- }
- break;
- case 2:
- type = L.GetString("entrance");
- foreach (var item in entrances)
- {
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_entrance" + item.Id, Caption = item.Name, FieldName = "entrance" + item.Id, Width = 200, VisibleIndex = index });
- index++;
- }
- break;
- }
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_totalCount", FieldName = "TotalCount", Caption = "斗数小计", Width = 200, VisibleIndex = index });
- index++;
- gridView1.Columns.Add(new DevExpress.XtraGrid.Columns.GridColumn { Name = "col_totalWeight", FieldName = "TotalWeight", Caption = "重量小计", Width = 200, VisibleIndex = index });
- index++;
- }
- private void btn_export_Click(object sender, EventArgs e)
- {
- SaveFileDialog fileDialog = new SaveFileDialog
- {
- Title = "Export Excel",
- Filter = "Excel 97-2003(*.xls)|*.xls|Excel(*.xlsx)|*.xlsx"
- };
- switch (range)
- {
- case "day":
- fileDialog.FileName = L.GetString("dailyReport");
- break;
- case "week":
- fileDialog.FileName = L.GetString("weeklyReport");
- break;
- case "month":
- fileDialog.FileName = L.GetString("monthlyReport");
- break;
- case "year":
- fileDialog.FileName = L.GetString("annualReport");
- break;
- default:
- break;
- }
- if (fileDialog.ShowDialog() == DialogResult.OK)
- {
- try
- {
- gridControl1.ExportToXls(fileDialog.FileName);
- XtraMessageBox.Show(L.GetString("ExportSucceeded"), L.GetString("notification"), MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- catch (Exception ex)
- {
- XtraMessageBox.Show(L.GetString("WeighingFailed") + " Info:" + ex.Message, L.GetString("notification"), MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- private void btnPrint_Click(object sender, EventArgs e)
- {
- gridView1.SelectRow(-1);
- PrintableComponentLink link = new PrintableComponentLink(new PrintingSystem())
- {
- Component = gridControl1,
- Landscape = true,
- PaperKind = System.Drawing.Printing.PaperKind.A4,
- };
- link.CreateMarginalHeaderArea += new CreateAreaEventHandler(Link_CreateMarginalHeaderArea);
- link.CreateDocument();
- link.ShowPreview();
- }
- private void Link_CreateMarginalHeaderArea(object sender, CreateAreaEventArgs e)
- {
- string title = "";
- switch (range)
- {
- case "day":
- title = L.GetString("dailyReport");
- break;
- case "week":
- title = L.GetString("weeklyReport");
- break;
- case "month":
- title = L.GetString("monthlyReport");
- break;
- case "year":
- title = L.GetString("annualReport");
- break;
- }
- PageInfoBrick brickTitle = e.Graph.DrawPageInfo(PageInfo.None, title, Color.Black, new RectangleF(0, 0, 100, 30), BorderSide.None);
- brickTitle.LineAlignment = BrickAlignment.Center;
- brickTitle.Alignment = BrickAlignment.Center;
- brickTitle.AutoWidth = true;
- brickTitle.Font = new Font("Tahoma", 16f, FontStyle.Bold);
- PageInfoBrick brickSubtitle = e.Graph.DrawPageInfo(PageInfo.None, L.GetString("dateRange") + lbl_range.Text, Color.Black, new RectangleF(0, 10, 100, 20), BorderSide.None);
- brickSubtitle.LineAlignment = BrickAlignment.Far;
- brickSubtitle.Alignment = BrickAlignment.Far;
- brickSubtitle.AutoWidth = true;
- brickSubtitle.Font = new Font("Tahoma", 9f, FontStyle.Regular);
- PageInfoBrick brickType = e.Graph.DrawPageInfo(PageInfo.None, L.GetString("statisticType") + type, Color.Black, new RectangleF(0, 0, 100, 20), BorderSide.None);
- brickType.LineAlignment = BrickAlignment.Near;
- brickType.Alignment = BrickAlignment.Near;
- brickType.AutoWidth = true;
- brickType.Font = new Font("Tahoma", 9f, FontStyle.Regular);
- }
- public static DataTable ToDataTable(List<Dictionary<string, object>> collection)
- {
- var dt = new DataTable();
- if (collection.Count() > 0)
- {
- dt.Columns.AddRange(collection.First().Select(p => new DataColumn(p.Key, typeof(object))).ToArray());
- for (int i = 0; i < collection.Count(); i++)
- {
- ArrayList tempList = new ArrayList();
- foreach (var item in collection[i])
- {
- tempList.Add(item.Value);
- }
- dt.LoadDataRow(tempList.ToArray(), true);
- }
- }
- return dt;
- }
- }
- }
|