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");
            }
        }
Exemplo n.º 4
0
        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");
            }
        }
Exemplo n.º 5
0
        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");
            }
        }
Exemplo n.º 6
0
        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");
            }
        }