using DevExpress.XtraCharts; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using HL_FristAidPlatform_Print; using HL_FristAidPlatform_Public; using System; using System.Data; using System.Drawing.Printing; using System.Linq; using System.Windows.Forms; namespace HL_FristAidPlatform_Apoplexy { public partial class Form_ApoplexyHighRiskScreening_WorkloadStatistics : Form { //PrintDocument类是实现打印功能的核心,它封装了打印有关的属性、事件、和方法 PrintDocument printDocument = new PrintDocument(); public Form_ApoplexyHighRiskScreening_WorkloadStatistics() { InitializeComponent(); } private void Form_ApoplexyHighRiskScreening_WorkloadStatistics_Load(object sender, EventArgs e) { timeControl_StratTime.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.ToShortDateString() + " 00:00:00"; timeControl_EndTime.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddDays(-1).ToShortDateString() + " 23:59:59"; Statistics(); } private void simpleButton11_Click(object sender, EventArgs e) { Statistics(); } private void simpleButton6_Click(object sender, EventArgs e) { timeControl_StratTime.TimeValue = new DateTime(DateTime.Now.Year, 1, 1).ToString("yyyy-MM-dd") + " 00:00:00"; timeControl_EndTime.TimeValue = new DateTime(DateTime.Now.Year, 12, 31).ToString("yyyy-MM-dd") + " 23:59:59"; //Statistics(); } private void simpleButton8_Click(object sender, EventArgs e) { timeControl_StratTime.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.ToShortDateString() + " 00:00:00"; timeControl_EndTime.TimeValue = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddDays(-1).ToShortDateString() + " 23:59:59"; //Statistics(); } private void Statistics() { try { chartControl1.Series.Clear(); panelControl4.Controls.Clear(); string startTime = timeControl_StratTime.TimeValue; string endTime = timeControl_EndTime.TimeValue; string Url = string.Format("/api/service/T_Service_FirstAid_ApoplexyHighRiskScreening/GetWorkloadStatistics?startTime={0}&endTime={1}", startTime, endTime); DataTable BindDT = DBHelpClass.Get(Url); DataTable data = new DataTable("table1"); data.Columns.Add("月份", typeof(string)); data.Columns.Add("人数", typeof(int)); if (BindDT != null) { var query = from t in BindDT.AsEnumerable() group t by new { t1 = t.Field("CreateTime").Remove(7, 12) } into m orderby m.Key.t1 ascending select new { name = m.Key.t1, count = m.Count() }; foreach (var item in query.ToList()) { data.Rows.Add(item.name, item.count); } } Series series = new Series("高危筛查总量统计", ViewType.Bar); foreach (DataRow item in data.Rows) { series.Points.Add(new SeriesPoint(item[0] + "", item[1])); } BarSeriesView bsv = (BarSeriesView)series.View; bsv.BarWidth = 0.25; chartControl1.Series.AddRange(new Series[] { series }); XYDiagram xyDia = chartControl1.Diagram as XYDiagram; xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual; xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month; chartControl1.Titles[0].Text = "高危筛查总量统计"; GridControl gridControl = new GridControl(); GridView gridView = new GridView(); gridView.Appearance.Row.Options.UseFont = true; gridView.Appearance.Row.Options.UseTextOptions = true; gridView.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridView.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridControl.MainView = gridView; gridControl.Dock = DockStyle.Fill; gridControl.DataSource = data; panelControl4.Controls.Add(gridControl); } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "高危筛查总量统计:\r\n" + ex); } } private void simpleButton10_Click(object sender, EventArgs e) { try { chartControl1.Series.Clear(); panelControl4.Controls.Clear(); string startTime = timeControl_StratTime.TimeValue; string endTime = timeControl_EndTime.TimeValue; string Url = string.Format("/api/service/T_Service_FirstAid_ApoplexyHighRiskScreening/GetWorkloadStatistics?startTime={0}&endTime={1}", startTime, endTime); DataTable BindDT = DBHelpClass.Get(Url); DataTable data = new DataTable("table1"); data.Columns.Add("科室", typeof(string)); data.Columns.Add("人数", typeof(int)); if (BindDT != null) { var a = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss").Remove(7, 12); var query = from t in BindDT.AsEnumerable() group t by new { t1 = t.Field("ShareUserDepartment") } into m orderby m.Key.t1 descending select new { name = m.Key.t1, count = m.Count() }; foreach (var item in query.ToList()) { data.Rows.Add(item.name, item.count); } } Series series = new Series("高危筛查科室统计", ViewType.Bar); foreach (DataRow item in data.Rows) { series.Points.Add(new SeriesPoint(item[0] + "", item[1] + "")); } BarSeriesView bsv = (BarSeriesView)series.View; bsv.BarWidth = 0.25; chartControl1.Series.AddRange(new Series[] { series }); chartControl1.Titles[0].Text = "高危筛查科室统计"; GridControl gridControl = new GridControl(); GridView gridView = new GridView(); gridView.Appearance.Row.Options.UseFont = true; gridView.Appearance.Row.Options.UseTextOptions = true; gridView.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridView.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridControl.MainView = gridView; gridControl.Dock = DockStyle.Fill; gridControl.DataSource = data; panelControl4.Controls.Add(gridControl); } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "高危筛查科室统计:\r\n" + ex); } } private void simpleButton9_Click(object sender, EventArgs e) { try { chartControl1.Series.Clear(); panelControl4.Controls.Clear(); string startTime = timeControl_StratTime.TimeValue; string endTime = timeControl_EndTime.TimeValue; string Url = string.Format("/api/service/T_Service_FirstAid_ApoplexyHighRiskScreening/GetWorkloadStatistics?startTime={0}&endTime={1}", startTime, endTime); DataTable BindDT = DBHelpClass.Get(Url); DataTable data = new DataTable("table1"); data.Columns.Add("人员", typeof(string)); data.Columns.Add("人数", typeof(int)); if (BindDT != null) { var a = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss").Remove(7, 12); var query = from t in BindDT.AsEnumerable() group t by new { t1 = t.Field("ShareUserName") } into m orderby m.Key.t1 descending select new { name = m.Key.t1, count = m.Count() }; foreach (var item in query.ToList()) { data.Rows.Add(item.name, item.count); } } Series series = new Series("高危筛查人员统计", ViewType.Bar); foreach (DataRow item in data.Rows) { series.Points.Add(new SeriesPoint(item[0] + "", item[1])); } BarSeriesView bsv = (BarSeriesView)series.View; bsv.BarWidth = 0.25; chartControl1.Series.AddRange(new Series[] { series }); chartControl1.Titles[0].Text = "高危筛查人员统计"; GridControl gridControl = new GridControl(); GridView gridView = new GridView(); gridView.Appearance.Row.Options.UseFont = true; gridView.Appearance.Row.Options.UseTextOptions = true; gridView.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridView.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; gridControl.MainView = gridView; gridControl.Dock = DockStyle.Fill; gridControl.DataSource = data; panelControl4.Controls.Add(gridControl); } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "高危筛查人员统计:\r\n" + ex); } } private void simpleButton_Print_Click(object sender, EventArgs e) { chartControl1.Dock = DockStyle.None; chartControl1.Width = 1000; PrintChart printClass = new PrintChart(chartControl1); printClass.LandScape = true; printClass.PaperKind = PaperKind.A4; printClass.PrintHeader = "高危筛查统计图形"; printClass.LoadPageSetting(60); printClass.Preview(); chartControl1.Dock = DockStyle.Fill; } private void simpleButton3_Click(object sender, EventArgs e) { PrintChart printClass = new PrintChart((GridControl)panelControl4.Controls[0]); printClass.LandScape = true; printClass.PaperKind = PaperKind.A4; printClass.PrintHeader = "高危筛查统计数据"; printClass.LoadPageSetting(60); printClass.Preview(); } } }