public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { eisEntities ctx = new eisEntities(); var providings = from type in ctx.warrantfundprovidings where type.Year == year select type; var providingList = providings.ToList(); List <string> xValues = new List <string>(); List <decimal> yValues = new List <decimal>(); DateTime lastUpdated = DateTime.MinValue; decimal sum = 0; foreach (var providing in providingList) { xValues.Add(providing.warrantfundprovider.ProviderName); yValues.Add(providing.Amount); sum += providing.Amount; if (providing.LastUpdated > lastUpdated) { lastUpdated = providing.LastUpdated; } } ColumnChart chart = new ColumnChart(xValues.ToArray()); chart.SetLastUpdated(lastUpdated); chart.SetSummary("รวม " + sum.ToString("#,##0") + " ล้านบาท"); chart.AddSeries("จำนวนเงิน (ล้านบาท)", yValues.ToArray()); chart.GetChartArea().Area3DStyle.Enable3D = true; chart.GetChartArea().Area3DStyle.PointDepth = 30; chart.GetChartArea().Area3DStyle.IsRightAngleAxes = true; chart.GetChartArea().Area3DStyle.Rotation = 20; chart.GetChartArea().Area3DStyle.Inclination = 20; chart.GetSeries("จำนวนเงิน (ล้านบาท)")["DrawingStyle"] = "Cylinder"; Series series = chart.GetSeries("จำนวนเงิน (ล้านบาท)"); series.Color = ColorPalette.GetColor(1); byte[] dataArray = chart.Render(); context.Response.ContentType = "image/png"; context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }
public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { eisEntities ctx = new eisEntities(); var types = from type in ctx.numberofemployees where type.Year == year select type; int sum1 = 0; int sum2 = 0; int sum3 = 0; DateTime lastUpdated = DateTime.MinValue; foreach (var type in types) { sum1 += type.GovernmentOfficer; sum2 += type.PermanentContractor; sum3 += type.GeneralOfficer; if (type.LastUpdated > lastUpdated) { lastUpdated = type.LastUpdated; } } string[] xVal = { "ข้าราชการ", "ลูกจ้างประจำ", "พนักงานราชการ" }; double[] yVal = { sum1, sum2, sum3 }; ColumnChart chart = new ColumnChart(xVal); chart.AddSeries("จำนวนอัตรา", yVal); chart.GetChartArea().Area3DStyle.Enable3D = true; chart.GetChartArea().Area3DStyle.PointDepth = 30; chart.GetChartArea().Area3DStyle.IsRightAngleAxes = true; chart.GetChartArea().Area3DStyle.Rotation = 20; chart.GetChartArea().Area3DStyle.Inclination = 20; chart.GetSeries("จำนวนอัตรา")["DrawingStyle"] = "Cylinder"; chart.SetLastUpdated(lastUpdated); chart.SetSummary("*ไม่มีข้อมูลพนักงานราชการ", Color.Red); byte[] dataArray = chart.Render(); string filename = "image.png"; context.Response.ContentType = "image/png"; context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }
public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { eisEntities ctx = new eisEntities(); var types = from type in ctx.estimatedfundmembers where type.Year == year select type; var typeList = types.ToList(); List <string> yValues = new List <string>(); List <int> xValues = new List <int>(); DateTime lastUpdated = DateTime.MinValue; foreach (var type in typeList) { yValues.Add(type.fundmembertype.TypeName); xValues.Add(type.EstimatedValue); if (type.LastUpdated > lastUpdated) { lastUpdated = type.LastUpdated; } } ColumnChart chart = new ColumnChart(yValues.ToArray()); chart.SetLastUpdated(lastUpdated); chart.AddSeries("จำนวนคน", xValues.ToArray()); chart.GetChartArea().Area3DStyle.Enable3D = true; chart.GetChartArea().Area3DStyle.PointDepth = 30; chart.GetChartArea().Area3DStyle.IsRightAngleAxes = true; chart.GetChartArea().Area3DStyle.Rotation = 20; chart.GetChartArea().Area3DStyle.Inclination = 20; chart.GetSeries("จำนวนคน")["DrawingStyle"] = "Cylinder"; byte[] dataArray = chart.Render(); string filename = "image.png"; context.Response.ContentType = "image/png"; context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }
public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { int firstYear = year - 4; eisEntities ctx = new eisEntities(); var types = from type in ctx.numberofemployees where type.Year >= firstYear && type.Year <= year select type; var empTypes = from empType in ctx.employeetypes select empType.TypeName; List <string> xVal = new List <string>(); for (int i = firstYear; i <= year; i++) { int actualYear = ((i - 2500) % 100); xVal.Add(actualYear.ToString()); } Dictionary <string, decimal> dataTable1 = new Dictionary <string, decimal>(); Dictionary <string, decimal> dataTable2 = new Dictionary <string, decimal>(); Dictionary <string, decimal> dataTable3 = new Dictionary <string, decimal>(); DateTime lastUpdated = DateTime.MinValue; decimal maximumValue = 0; foreach (var type in types) { string shortYear = ((type.Year - 2500) % 100).ToString(); if (!dataTable1.ContainsKey(shortYear)) { dataTable1[shortYear] = 0; dataTable2[shortYear] = 0; dataTable3[shortYear] = 0; } dataTable1[shortYear] += type.GovernmentOfficer; dataTable2[shortYear] += type.PermanentContractor; dataTable3[shortYear] += type.GeneralOfficer; if (type.LastUpdated > lastUpdated) { lastUpdated = type.LastUpdated; } maximumValue = Math.Max(maximumValue, dataTable1[shortYear]); maximumValue = Math.Max(maximumValue, dataTable2[shortYear]); maximumValue = Math.Max(maximumValue, dataTable3[shortYear]); } //Series1 List <string> s1x = new List <string>(); List <decimal> s1y = new List <decimal>(); for (int i = 0; i < 5; i++) { s1x.Add(xVal[i]); s1y.Add(dataTable1[xVal[i]]); } //Series2 List <string> s2x = new List <string>(); List <decimal> s2y = new List <decimal>(); for (int i = 0; i < 5; i++) { s2x.Add(xVal[i]); s2y.Add(dataTable2[xVal[i]]); } //Series3 List <string> s3x = new List <string>(); List <decimal> s3y = new List <decimal>(); for (int i = 0; i < 5; i++) { s3x.Add(xVal[i]); s3y.Add(dataTable3[xVal[i]]); } ColumnChart chart = new ColumnChart(xVal, 3, 1, 75); chart.SetLastUpdated(lastUpdated); chart.SetSummary("*ไม่มีข้อมูลพนักงานราชการ", Color.Red); chart.AddLeftAnnotation("จำนวนคน ", 82, 15); chart.SetAxisFont(new Font("Circular", 16, FontStyle.Bold)); chart.AddSeries("0", "0", SeriesChartType.Column, s1x.ToArray(), s1y.ToArray()); chart.AddSeries("1", "1", SeriesChartType.Column, s2x.ToArray(), s2y.ToArray()); chart.AddSeries("2", "2", SeriesChartType.Column, s3x.ToArray(), s3y.ToArray()); chart.GetSeries("0").Color = ColorPalette.GetColor(0); chart.GetSeries("1").Color = ColorPalette.GetColor(0); chart.GetSeries("2").Color = ColorPalette.GetColor(0); chart.GetSeries("0").Points[4].Color = ColorPalette.GetColor(1); chart.GetSeries("1").Points[4].Color = ColorPalette.GetColor(1); chart.GetSeries("2").Points[4].Color = ColorPalette.GetColor(1); for (int i = 0; i < 3; i++) { chart.GetSeries("" + i).SmartLabelStyle.Enabled = false; chart.GetSeries("" + i).LabelAngle = -90; chart.GetSeries("" + i).SmartLabelStyle.MaxMovingDistance = 100; chart.GetSeries("" + i).SmartLabelStyle.MovingDirection = LabelAlignmentStyles.Top; chart.GetSeries("" + i).SetCustomProperty("RenderType", "Cylinder"); } chart.GetChartArea("0").AxisY.LabelStyle.Enabled = false; chart.GetChartArea("0").AxisY.MajorTickMark.Enabled = false; chart.GetChartArea("1").AxisY.LabelStyle.Enabled = false; chart.GetChartArea("1").AxisY.MajorTickMark.Enabled = false; chart.GetChartArea("2").AxisY.LabelStyle.Enabled = false; chart.GetChartArea("2").AxisY.MajorTickMark.Enabled = false; chart.GetChartArea("0").AxisY.Maximum = (double)maximumValue; chart.GetChartArea("1").AxisY.Maximum = (double)maximumValue; chart.GetChartArea("2").AxisY.Maximum = (double)maximumValue; chart.GetChartArea("0").AxisX.CustomLabels.Add(0, 6, "ข้าราชการ", 1, LabelMarkStyle.LineSideMark); chart.GetChartArea("1").AxisX.CustomLabels.Add(0, 6, "ลูกจ้างประจำ", 1, LabelMarkStyle.LineSideMark); chart.GetChartArea("2").AxisX.CustomLabels.Add(0, 6, "พนักงานราชการ", 1, LabelMarkStyle.LineSideMark); chart.GetLegendBox().Enabled = false; byte[] dataArray = chart.Render(); context.Response.ContentType = "image/png"; context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }
public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { int firstYear = year - 4; List <string> xVal = new List <string>(); for (int i = firstYear; i <= year; i++) { int actualYear = ((i - 2500) % 100); xVal.Add(actualYear.ToString()); } eisEntities ctx = new eisEntities(); var usages = from type in ctx.estimatedfundmembers where type.Year >= firstYear && type.Year <= year select type; var usageList = usages.ToList(); var memberTypes = from type in ctx.fundmembertypes select type.TypeName; Dictionary <string, Dictionary <string, decimal> > dataTable = new Dictionary <string, Dictionary <string, decimal> >(); Dictionary <string, Dictionary <string, decimal> > dataTable2 = new Dictionary <string, Dictionary <string, decimal> >(); DateTime lastUpdated = DateTime.MinValue; decimal maximumValue = 0; foreach (var usage in usageList) { string typeName = usage.fundmembertype.TypeName; string shortYear = ((usage.Year - 2500) % 100).ToString(); if (!dataTable.ContainsKey(typeName)) { dataTable[typeName] = new Dictionary <string, decimal>(); dataTable2[typeName] = new Dictionary <string, decimal>(); } dataTable[typeName][shortYear] = usage.EstimatedValue; maximumValue = Math.Max(maximumValue, usage.EstimatedValue); if (usage.LastUpdated > lastUpdated) { lastUpdated = usage.LastUpdated; } } ColumnChart chart = new ColumnChart(xVal.ToArray(), memberTypes.Count()); chart.SetLastUpdated(lastUpdated); chart.AddLeftAnnotation("จำนวนคน", 2, 15); chart.SetAxisFont(new Font("Circular", 16, FontStyle.Bold)); chart.GetLegendBox().Enabled = false; int runner = 0; foreach (var type in memberTypes) { List <decimal> s1y = new List <decimal>(); Dictionary <string, decimal> dataList = dataTable[type]; foreach (string x in xVal) { s1y.Add(dataList[x]); } chart.AddSeries(type, "" + runner, SeriesChartType.StackedColumn, xVal.ToArray(), s1y.ToArray()); chart.GetSeries(type).IsValueShownAsLabel = false; chart.GetSeries(type).IsVisibleInLegend = false; chart.GetSeries(type).Color = ColorPalette.GetColor(0); chart.GetChartArea("" + runner).AxisY.Maximum = (double)maximumValue; chart.GetChartArea("" + runner).AxisY.MajorTickMark.Enabled = false; chart.GetChartArea("" + runner).AxisY.LabelStyle.Enabled = true; chart.GetChartArea("" + runner).AxisX.CustomLabels.Add(0, 6, type, 1, LabelMarkStyle.LineSideMark); runner++; } byte[] dataArray = chart.Render(); context.Response.ContentType = "image/png"; context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }
public void ProcessRequest(HttpContext context) { string yearString = context.Request["year"]; int year = -1; if (yearString != null && int.TryParse(yearString, out year)) { eisEntities ctx = new eisEntities(); var usages = from type in ctx.budgetusages where type.Year == year select type; var usageList = usages.ToList(); List <string> xValues = new List <string>(); List <decimal> yValues = new List <decimal>(); List <decimal> yValues2 = new List <decimal>(); DateTime lastUpdated = DateTime.MinValue; foreach (var usage in usageList) { xValues.Add(usage.budgettype1.TypeName); yValues.Add(usage.BudgetAmount - usage.Used); yValues2.Add(usage.Used); if (usage.LastUpdated > lastUpdated) { lastUpdated = usage.LastUpdated; } } ColumnChart chart = new ColumnChart(xValues.ToArray()); chart.SetLastUpdated(lastUpdated); chart.AddSeries("งบประมาณ (ลบ.)", yValues.ToArray()); chart.AddSeries("เบิกจ่าย (ลบ.)", yValues2.ToArray()); chart.GetChartArea().Area3DStyle.Enable3D = true; chart.GetChartArea().Area3DStyle.PointDepth = 30; chart.GetChartArea().Area3DStyle.IsRightAngleAxes = true; chart.GetChartArea().Area3DStyle.Rotation = 20; chart.GetChartArea().Area3DStyle.Inclination = 20; chart.GetSeries("งบประมาณ (ลบ.)").ChartType = SeriesChartType.StackedColumn; chart.GetSeries("เบิกจ่าย (ลบ.)").ChartType = SeriesChartType.StackedColumn; chart.GetSeries("งบประมาณ (ลบ.)")["DrawingStyle"] = "Cylinder"; chart.GetSeries("เบิกจ่าย (ลบ.)")["DrawingStyle"] = "Cylinder"; chart.GetSeries("งบประมาณ (ลบ.)").Color = ColorPalette.GetColor(0); chart.GetSeries("เบิกจ่าย (ลบ.)").Color = ColorPalette.GetColor(1); Series series = chart.GetSeries("เบิกจ่าย (ลบ.)"); int runner = 0; foreach (var usage in usageList) { decimal percent = (usage.Used / usage.BudgetAmount) * 100m; series.Points[runner].Label = "#VALY{N0}\n(" + percent.ToString("N2") + "%)"; runner++; } series = chart.GetSeries("งบประมาณ (ลบ.)"); runner = 0; foreach (var usage in usageList) { series.Points[runner].Label = usage.BudgetAmount.ToString("N0"); runner++; } byte[] dataArray = chart.Render(); string filename = "image.png"; context.Response.ContentType = "image/png"; context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); context.Response.OutputStream.Write(dataArray, 0, dataArray.Length); } else { context.Response.ContentType = "text/plain"; context.Response.Write("Error: Year was not specified"); } }