private List <ChartAttribute> GenerateReport(ReportType type, List <invoice> items, DateTime start, DateTime finish) { //kamus List <ChartAttribute> chart = new List <ChartAttribute>(); ChartAttribute temp = new ChartAttribute(); DateTime tempDate; //algoritma if (type.Equals(ReportType.DAILY)) { tempDate = start; //kondisi startnya berdasarkan tanggal awal inputan buat pembanding while (tempDate <= finish) //dibandingkan dengan tanggal akhir inputan { temp = new ChartAttribute(); temp.Category = tempDate; temp.Value = items.Where(n => n.invoice_date == tempDate).Sum(m => m.total); chart.Add(temp); tempDate = tempDate.AddDays(1); } } else { tempDate = start; while (tempDate <= finish) { temp = new ChartAttribute(); temp.Category = tempDate; temp.Value = items.Where(n => n.invoice_date.Month == tempDate.Month).Sum(m => m.total); chart.Add(temp); tempDate = tempDate.AddMonths(1); } } return(chart); }
public void DrawPolarPlot(double[] mag1, double[] ang1) { try { RemovePreviousObjects(); chartVu = this; Font theLabelFont = new Font("Courier", 10, FontStyle.Regular); string[] sarrxlab = new string[mag1.Length]; int nump1 = mag1.Length; for (int i = 0; i < nump1; i++) { sarrxlab[i] = "Mag " + mag1[i].ToString() + ", Angle " + ang1[i].ToString(); ang1[i] = ChartSupport.ToRadians((double)ang1[i]); } theFont = new Font("Microsoft Sans Serif", 10, FontStyle.Bold); chartVu = this; SimpleDataset Dataset1 = new SimpleDataset("First", mag1, ang1); pPolarTransform = new PolarCoordinates(); pPolarTransform.SetGraphBorderDiagonal(0.25, .2, .75, 0.8); background = new Background(pPolarTransform, ChartObj.GRAPH_BACKGROUND, GraphBG1, GraphBG2, GraphBGDir); chartVu.AddChartObject(background); plotbackground = new Background(pPolarTransform, ChartObj.PLOT_BACKGROUND, ChartBG1, ChartBG2, ChartBGDir); chartVu.AddChartObject(plotbackground); pPolarTransform.AutoScale(Dataset1); pPolarAxis = pPolarTransform.GetCompatibleAxes(); pPolarAxis.SetColor(_AxisColor); chartVu.AddChartObject(pPolarAxis); pPolarGrid = new PolarGrid(pPolarAxis, PolarGrid.GRID_MAJOR); pPolarGrid.SetColor(_AxisColor); chartVu.AddChartObject(pPolarGrid); pPolarAxisLabels = (PolarAxesLabels)pPolarAxis.GetCompatibleAxesLabels(); pPolarAxisLabels.SetColor(_AxisColor); chartVu.AddChartObject(pPolarAxisLabels); ChartAttribute attrib1 = new ChartAttribute(Color.Blue, 2, 0); ChartAttribute attrib2 = new ChartAttribute(Color.Red, .5, 0, Color.Red); attrib2.SetFillFlag(true); thePlot2 = new PolarScatterPlot(pPolarTransform, Dataset1, ChartObj.CIRCLE, attrib2); chartVu.AddChartObject(thePlot2); PolarLinePlot thePlot1 = new PolarLinePlot(pPolarTransform, Dataset1, attrib1); chartVu.AddChartObject(thePlot1); findObj = new CustomFindObj1(chartVu, sarrxlab); findObj.SetDataToolTipFormat(ChartObj.DATA_TOOLTIP_CUSTOM); findObj.SetEnable(true); chartVu.SetCurrentMouseListener(findObj); if (_ChartFooter != null) { ChartTitle footer = new ChartTitle(pPolarTransform, theFont, _ChartFooter); footer.SetColor(Color.Black); footer.SetTitleType(ChartObj.CHART_FOOTER); footer.SetTitlePosition(ChartObj.CENTER_GRAPH); footer.SetTitleOffset(8); chartVu.AddChartObject(footer); } this.SetResizeMode(ChartObj.NO_RESIZE_OBJECTS); } catch (Exception ex) { } }
private List <ChartAttribute> GenerateReport(List <rent> items, DateTime start, DateTime finish) { //kamus List <ChartAttribute> result = new List <ChartAttribute>(); ChartAttribute oneMonthData; List <rent> rentsPerMonth, rentsPerDay; int totalUsage; double utilization; List <Guid> carInOneDay; int ownerCarsCount; DateTime iteration; int daysInMonth; DateTime dtStartMonth, dtEndMonth, dtStartDay, dtEndDay; DateTimeOffset dtoStartMonth, dtoEndMonth, dtoStartDay, dtoEndDay; Guid? idOwner = (User as CustomPrincipal).IdOwner; //algoritma //Business.Infrastructure.FilterInfo filters = new Business.Infrastructure.FilterInfo { Field = "id_owner", Operator = "eq", Value = idOwner.ToString() }; // fungsi semacam where Business.Infrastructure.FilterInfo filters = new Business.Infrastructure.FilterInfo(); if (filters.Filters == null) { filters.Filters = new List <Business.Infrastructure.FilterInfo>(); filters.Logic = "and"; } filters.Filters.Add(new Business.Infrastructure.FilterInfo { Field = "id_owner", Operator = "eq", Value = idOwner.ToString() }); filters.Filters.Add(new Business.Infrastructure.FilterInfo { Field = "is_active", Operator = "eq", Value = true.ToString() }); ownerCarsCount = RepoCar.Count(filters); iteration = new DateTime(start.Year, start.Month, 1); finish = new DateTime(finish.Year, finish.Month, 1); while (iteration <= finish) { //koding //List<rent> tempRent = items.Where(n => (n.start_rent <= iteration && n.finish_rent >= iteration) || (n.start_rent >= start && n.start_rent <= finish)).ToList(); oneMonthData = new ChartAttribute(); totalUsage = 0; utilization = 0; //mengecek hari dalam sebulan daysInMonth = System.DateTime.DaysInMonth(iteration.Year, iteration.Month); //mengambil data rent dalam 1 bulan dtStartMonth = new DateTime(iteration.Year, iteration.Month, 1, 0, 0, 0); dtStartMonth = DateTime.SpecifyKind(dtStartMonth, DateTimeKind.Local); dtoStartMonth = dtStartMonth; dtEndMonth = new DateTime(iteration.Year, iteration.Month, DateTime.DaysInMonth(iteration.Year, iteration.Month), 23, 59, 59); dtEndMonth = DateTime.SpecifyKind(dtEndMonth, DateTimeKind.Local); dtoEndMonth = dtEndMonth; rentsPerMonth = items.Where(n => (n.start_rent <= dtoStartMonth && n.finish_rent >= dtoStartMonth) || (n.start_rent <= dtoEndMonth && n.finish_rent >= dtoEndMonth) || (n.start_rent >= dtoStartMonth && n.finish_rent <= dtoEndMonth) || (n.start_rent <= dtoStartMonth && n.finish_rent >= dtoEndMonth) ).ToList(); //iteration for eachday for (int j = 1; j <= daysInMonth; j++) { //DateTime dateStartTemp = new DateTime(iteration.Year, iteration.Month, j); //DateTime dateFinishTemp = new DateTime(iteration.Year, iteration.Month, j); //rentPerDay = rentPerMonth.Where(n => (n.start_rent <= dateStartTemp && n.finish_rent >= dateStartTemp) || (n.start_rent >= dateStartTemp && n.finish_rent <= dateFinishTemp) || (n.finish_rent >= dateStartTemp && n.finish_rent <= dateFinishTemp) || (n.start_rent.Day <= dateStartTemp.Day && n.finish_rent.Day >= dateStartTemp.Day) || (n.start_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day) || (n.finish_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day) || (n.start_rent.Day <= dateStartTemp.Day && n.finish_rent.Day >= dateStartTemp.Day && n.start_rent.Month <= dateStartTemp.Month && n.finish_rent.Month >= dateStartTemp.Month) || (n.start_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day && n.start_rent.Month >= dateStartTemp.Month && n.finish_rent.Month <= dateFinishTemp.Month) || (n.finish_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day && n.finish_rent.Day >= dateStartTemp.Day && n.finish_rent.Month <= dateFinishTemp.Month) || (n.start_rent <= dateStartTemp && n.start_rent <= dateFinishTemp)).ToList(); //rentPerDay = rentPerMonth.Where(n => (n.start_rent <= dateStartTemp && n.finish_rent >= dateStartTemp) || (n.start_rent >= dateStartTemp && n.finish_rent <= dateFinishTemp) || (n.finish_rent >= dateStartTemp && n.finish_rent <= dateFinishTemp) || (n.start_rent.Day <= dateStartTemp.Day && n.finish_rent.Day >= dateStartTemp.Day) || (n.start_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day) || (n.finish_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day)).ToList(); //List<rent> daysMonth = tempRent.Where(tempRent.GetRange().ToList(); //rentsPerDay = rentsPerMonth.Where(n => // (n.start_rent <= dateStartTemp && n.finish_rent >= dateFinishTemp) || // (n.start_rent >= dateStartTemp && n.start_rent <= dateFinishTemp) || // (n.finish_rent >= dateStartTemp && n.finish_rent <= dateFinishTemp) || // (n.start_rent.Day <= dateStartTemp.Day && n.finish_rent.Day >= dateStartTemp.Day) || // (n.start_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day) || // (n.finish_rent.Day >= dateStartTemp.Day && n.finish_rent.Day <= dateFinishTemp.Day) //).ToList(); dtStartDay = new DateTime(iteration.Year, iteration.Month, j, 0, 0, 0); dtStartDay = DateTime.SpecifyKind(dtStartDay, DateTimeKind.Local); dtoStartDay = dtStartDay; dtEndDay = new DateTime(iteration.Year, iteration.Month, j, 23, 59, 59); dtEndDay = DateTime.SpecifyKind(dtEndDay, DateTimeKind.Local); dtoEndDay = dtEndDay; rentsPerDay = rentsPerMonth.Where(n => (n.start_rent <= dtoStartDay && n.finish_rent >= dtoStartDay) || (n.start_rent <= dtoEndDay && n.finish_rent >= dtoEndDay) || (n.start_rent >= dtoStartDay && n.finish_rent <= dtoEndDay) || (n.start_rent <= dtoStartDay && n.finish_rent >= dtoEndDay) ).ToList(); carInOneDay = new List <Guid>(); foreach (rent r in rentsPerDay) { if (r.id_car.HasValue) { if (!carInOneDay.Contains(r.id_car.Value)) { ++totalUsage; carInOneDay.Add(r.id_car.Value); } } } } utilization = ((double)(totalUsage * 100)) / ((double)(daysInMonth * ownerCarsCount)); oneMonthData.Value = utilization; oneMonthData.Category = new DateTime(iteration.Year, iteration.Month, 1); result.Add(oneMonthData); iteration = iteration.AddMonths(1); } return(result); }
internal void CommonFunctionality(SimpleDataset3D[] arrSimpleDS) { int iCount = 0; Background objCBGND = null; ChartAttribute objWallAttribute = null; Wall3D objxyMinZWall = null; Wall3D objyzMinXWall = null; Wall3D objxzMinYWall = null; LinearAxis xAxis = null; LinearAxis yAxis = null; AxisTitle objXAxisTitle = null; AxisTitle objYAxisTitle = null; NumericAxisLabels XAxisLabel = null; NumericAxisLabels YAxisLabel = null; Grid xGrid = null; Grid yGrid = null; ChartAttribute objAttribute = null; try { iCount = arrSimpleDS.Length; m_objChartView = m_obj3DGraphControl; if (m_obj3DGraphControl != null) { m_objChartView = m_obj3DGraphControl; } string[] sarrLabels = m_sUnits.Split(new char[] { ',' }); m_objFont = new Font("Microsoft Sans Serif", 5, FontStyle.Regular); m_objCartesianCordinates = new CartesianCoordinates(); m_objCartesianCordinates.AutoScale(arrSimpleDS, ChartObj.AUTOAXES_EXACT, ChartObj.AUTOAXES_EXACT); m_objCartesianCordinates.AbsRotateCoordinateSystem(new Point3D(5, 3, 0)); m_objChartView.SetFractionalZViewportDepth(4); objCBGND = new Background(m_objCartesianCordinates, ChartObj.GRAPH_BACKGROUND, Color.FromArgb(241, 241, 247)); m_objChartView.AddChartObject(objCBGND); objWallAttribute = new ChartAttribute(Color.Beige, 0.5, DashStyle.Solid, Color.LightGray); objxyMinZWall = new Wall3D(m_objCartesianCordinates, ChartObj.XY_MAXZ_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxyMinZWall); objyzMinXWall = new Wall3D(m_objCartesianCordinates, ChartObj.YZ_MINX_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objyzMinXWall); objxzMinYWall = new Wall3D(m_objCartesianCordinates, ChartObj.XZ_MINY_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxzMinYWall); m_objCartesianCordinates.SetGraphBorderDiagonal(0.15, .15, .90, 0.75); xAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.X_AXIS); xAxis.CalcAutoAxis(); m_objChartView.AddChartObject(xAxis); XAxisLabel = new NumericAxisLabels(xAxis); XAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(XAxisLabel); switch (m_sTimeAxis) { case "Sec": objXAxisTitle = new AxisTitle(xAxis, m_objFont, "Sec"); m_objChartView.AddChartObject(objXAxisTitle); break; case "Others": objXAxisTitle = new AxisTitle(xAxis, m_objFont, sarrLabels[0]); m_objChartView.AddChartObject(objXAxisTitle); break; } yAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.Y_AXIS); yAxis.CalcAutoAxis(); m_objChartView.AddChartObject(yAxis); YAxisLabel = new NumericAxisLabels(yAxis); YAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(YAxisLabel); objYAxisTitle = new AxisTitle(yAxis, m_objFont, sarrLabels[1]); m_objChartView.AddChartObject(objYAxisTitle); switch (iCount) { case 1: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFirstText); break; case 2: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objNewFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objNewFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objSecondText); break; case 3: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objThirdFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objThirdSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0025, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objThirdThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdThirdText); break; case 4: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFourthFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[3], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0075, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objFourthSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objFourthThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthThirdText); objAttribute = new ChartAttribute(Color.DarkViolet, 0.5, DashStyle.Solid); m_objFourthLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[3], objAttribute); m_objChartView.AddChartObject(m_objFourthLinePlot); ChartText objFourthFourthText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFourthLinePlot.DisplayDataset.XData[m_objFourthLinePlot.DisplayDataset.XData.Length - 60], m_objFourthLinePlot.DisplayDataset.YData[m_objFourthLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFourthText); break; } } catch { throw; } }