using DevExpress.Utils; using DevExpress.XtraCharts; using DevExpress.XtraEditors; using HL_FristAidPlatform_DTO; using HL_FristAidPlatform_Public; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HL_FristAidPlatform_ChestPain_Statistics { public partial class Form_llnessLevelStatistics : XtraForm { public Form_llnessLevelStatistics() { InitializeComponent(); } private void Form_llnessLevelStatistics_Load(object sender, EventArgs e) { time_starTime.TimeValue = DateTime.Now.AddMonths(-5).ToString(); time_endTime.TimeValue = DateTime.Now.ToString(); GetStatisticsData(); } private void simpleButton5_Click(object sender, EventArgs e) { time_starTime.TimeValue = DateTime.Now.AddMonths(-2).ToString(); time_endTime.TimeValue = DateTime.Now.ToString(); GetStatisticsData(); } private void simpleButton1_Click(object sender, EventArgs e) { time_starTime.TimeValue = DateTime.Now.AddMonths(-5).ToString(); time_endTime.TimeValue = DateTime.Now.ToString(); GetStatisticsData(); } private void simpleButton4_Click(object sender, EventArgs e) { time_starTime.TimeValue = DateTime.Now.AddMonths(-11).ToString(); time_endTime.TimeValue = DateTime.Now.ToString(); GetStatisticsData(); } private void simpleButton2_Click(object sender, EventArgs e) { GetStatisticsData(); } public void GetStatisticsData() { if (string.IsNullOrEmpty(time_starTime.TimeValue)) { XtraMessageBox.Show("查询起始时间不能为空"); return; } if (string.IsNullOrEmpty(time_endTime.TimeValue)) { XtraMessageBox.Show("查询结束时间不能为空"); return; } chartControl1.Series.Clear(); chartControl1.Titles.Clear(); Series series1 = new Series("濒危", ViewType.Bar); Series series2 = new Series("危重", ViewType.Bar); Series series3 = new Series("急症", ViewType.Bar); Series series4 = new Series("非急症", ViewType.Bar); Series series5 = new Series("已死亡", ViewType.Bar); ChartTitle chartTitle1 = new ChartTitle(); chartTitle1.Text = "近六月病情程度趋势"; chartControl1.Titles.Add(chartTitle1); IllnessLevelDTO model = DBHelpClass.GetDateModel(string.Format("api/service/T_Service_IllnessLevel/GetIllnessLevelStatistics?hospitalGuid={0}&systemModuleID={1}&startTime={2}&endTime={3}&flag={4}", Information.Hospital.GUID, long.Parse(PublicClassForDataBase.Config10001), Convert.ToDateTime(time_starTime.TimeValue).ToString("yyyy-MM") + "-01", Convert.ToDateTime(time_endTime.TimeValue).ToString("yyyy-MM") + "-01", 0)); if (model != null) { lbl_EndangeredCount.Text = model.Endangered.ToString(); lbl_CriticalCount.Text = model.Critical.ToString(); lbl_EmergencycaseCount.Text = model.Emergencycase.ToString(); lbl_NoEmergencycaseCount.Text = model.NoEmergencycase.ToString(); lbl_DeadCount.Text = model.Dead.ToString(); chartControl2.Series.Clear(); chartControl2.Titles.Clear(); Series series = new Series("占比统计", ViewType.Pie); series.Points.Add(new SeriesPoint("濒危", model.Endangered)); series.Points.Add(new SeriesPoint("危重", model.Critical)); series.Points.Add(new SeriesPoint("急症", model.Emergencycase)); series.Points.Add(new SeriesPoint("非急症", model.NoEmergencycase)); series.Points.Add(new SeriesPoint("已死亡", model.Dead)); ChartTitle chartTitle11 = new ChartTitle(); chartTitle11.Text = "占比统计"; chartControl2.Titles.Add(chartTitle1); series.Label.TextPattern = "{A}: {VP:p0}"; ((PieSeriesLabel)series.Label).Position = PieSeriesLabelPosition.TwoColumns; ((PieSeriesLabel)series.Label).ResolveOverlappingMode = ResolveOverlappingMode.Default; chartControl2.Series.AddRange(series); if (model.monthvalue != null && model.monthvalue.Count() > 0) for (int j = 0; j < model.monthvalue.Count(); j++) { for (int i = 0; i < model.monthvalue.Count; i++) { series1.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Endangered)); series2.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Critical)); series3.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Emergencycase)); series4.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].NoEmergencycase)); series5.Points.Add(new SeriesPoint(model.monthvalue[i].Month, model.monthvalue[i].Dead)); } } } BarSeriesView bsv = (BarSeriesView)series1.View; bsv.BarWidth = 0.2; BarSeriesView bsv1 = (BarSeriesView)series2.View; bsv1.BarWidth = 0.2; BarSeriesView bsv2 = (BarSeriesView)series3.View; bsv2.BarWidth = 0.2; BarSeriesView bsv3 = (BarSeriesView)series4.View; bsv3.BarWidth = 0.2; BarSeriesView bsv4 = (BarSeriesView)series5.View; bsv4.BarWidth = 0.2; chartControl1.Series.AddRange(new Series[] { series1, series2, series3, series4, series5 }); XYDiagram xyDia = chartControl1.Diagram as XYDiagram; xyDia.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Manual; int max = 0; for (int i = 0; i < model.monthvalue.Count(); i++) { if (model.monthvalue[i].Endangered > max) max = model.monthvalue[i].Endangered; if (model.monthvalue[i].Critical > max) max = model.monthvalue[i].Critical; if (model.monthvalue[i].Emergencycase > max) max = model.monthvalue[i].Emergencycase; if (model.monthvalue[i].NoEmergencycase > max) max = model.monthvalue[i].NoEmergencycase; if (model.monthvalue[i].Dead > max) max = model.monthvalue[i].Dead; } int tempone = max / 5; int temptwo = max % 5; if (temptwo == 0) { max = tempone * 5; } else { max = (tempone + 1) * 5; } if (max == 0) max = 10; xyDia.AxisY.WholeRange.MaxValue = max; xyDia.AxisY.NumericScaleOptions.GridOffset = 0; xyDia.AxisY.NumericScaleOptions.GridSpacing = max / 5; xyDia.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month; ((XYDiagram)(chartControl1.Diagram)).EnableAxisXScrolling = true;//启用横轴滚动条 } } }