private void radioGroup1_SelectedIndexChanged(object sender, EventArgs e) { int iValue = Convert.ToInt32(rgViewMode.EditValue); TimeColumnInfo infoColumn = GetColumnInfo(gridView.FocusedColumn); _LastSelectedTime = -1; if (infoColumn != null) { _LastSelectedTime = infoColumn.FromTime; } _LastSelectedRowHandle = gridView.FocusedRowHandle; if (iValue == 0) { CurrentView = DailyViewStyle.View15; } else if (iValue == 1) { CurrentView = DailyViewStyle.View30; } else if (iValue == 2) { CurrentView = DailyViewStyle.View60; } MakeVisibleSelectedTime(); _LastSelectedTime = -1; _LastSelectedRowHandle = -1; }
public void BuildColumns() { gridView.BeginDataUpdate(); try { DeleteColumns(); GridColumn column = null; int iStep = (int)m_currentView; int iMax = Utills.MinutesInDay; int iCount = iMax / iStep; int iHour = 0; int iMinute = 0; m_columnsInfo = new TimeColumnInfo[iCount]; for (int i = 0; i < iCount; i++) { column = gridView.Columns.Add(); column.Name = "gcHour_" + i; column.Caption = TextParser.BuildColumnCaption(iHour, iMinute, iStep); //String.Format("{0}:{1}", iHour.ToString("00"), iMinute.ToString("00")); column.MinWidth = 40; column.Visible = true; //column.VisibleIndex = i;// 1 + i; column.Width = 45; //column.AppearanceHeader.Options.UseTextOptions = true; column.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; column.AppearanceHeader.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center; //column.AppearanceHeader.TextOptions.WordWrap = DevExpress.Utils.WordWrap.NoWrap; column.OptionsColumn.ReadOnly = true; column.OptionsColumn.AllowEdit = false; column.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Custom; column.SummaryItem.Tag = i; m_columnsInfo[i] = new TimeColumnInfo(iHour * 60 + iMinute, iHour * 60 + iMinute + iStep, true); column.Tag = m_columnsInfo[i]; m_columnsDiction[m_columnsInfo[i]] = column; iMinute += iStep; if (iMinute == 60) { iHour++; iMinute = 0; } } PrepareColumnsView(); } finally { gridView.EndDataUpdate(); } }
private void DrawHourlyFooter(TimeColumnInfo columnInfo, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e) { int value = (m_dailyView != null) ? m_dailyView.GetTotals(columnInfo.FromTime, CurrentView) : 0; RectangleF oldClipBounds = e.Graphics.ClipBounds; Rectangle newClipBounds = Rectangle.Round(oldClipBounds); newClipBounds.Height = e.Bounds.Height * 2 + 1; DevExpress.Utils.Paint.Clipping clip = null; System.Drawing.Drawing2D.GraphicsState GState = null; bool bClipping = false; try { if (newClipBounds.Height > oldClipBounds.Height)// if need change clip region { GState = e.Graphics.Save(); e.Graphics.Clip = new System.Drawing.Region(newClipBounds); clip = new DevExpress.Utils.Paint.Clipping(); clip.SetClipAPI(new GraphicsInfoArgs(e.Cache, newClipBounds), newClipBounds); bClipping = true; } e.Info.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center; e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; e.Info.DisplayText = DateTimeHelper.IntTimeToStr(value); e.Painter.DrawObject(e.Info); Rectangle oldBounds = e.Info.Bounds; string oldText = e.Info.DisplayText; e.Info.Bounds = new Rectangle(e.Info.Bounds.Left, e.Info.Bounds.Bottom + 1, e.Info.Bounds.Width, e.Info.Bounds.Height); e.Info.DisplayText = FooterHoursAsString(value); e.Painter.DrawObject(e.Info); e.Info.Bounds = oldBounds; e.Info.DisplayText = oldText; } finally { if (bClipping) { clip.RestoreClipAPI(e.Graphics); e.Graphics.Restore(GState); e.Graphics.SetClip(oldClipBounds); GState = null; clip = null; } } e.Handled = true; }
private void gridView_CustomDrawFooterCell(object sender, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e) { TimeColumnInfo columnInfo = e.Column.Tag as TimeColumnInfo; if (columnInfo != null) { DrawHourlyFooter(columnInfo, e); } else if (e.Column == gc_Employee /*|| e.Column == gc_HWGR*/) { DrawHeaderFooter(e); } else if (e.Column == gc_AllreadyPlannedWorkingHours) { DrawAllreadyPlannedFooterCells(e); } }
private void mi_MarkAsAbsence_Click(object sender, EventArgs e) { using (FormSelectAbsence formSelectAbsence = new FormSelectAbsence()) { formSelectAbsence.IsPlanning = true; formSelectAbsence.Absences = Context.Absences.ToList; StoreDay sd = Context.StoreDays[ViewDate]; formSelectAbsence.ShowTimePanel = false; formSelectAbsence.SetDayInfo(sd.OpenTime, sd.CloseTime, Context.StoreDays.AvgDayInWeek); if (formSelectAbsence.Execute()) { if (gridView.SelectedRowsCount == 1) { EmployeeDayView dayView = GetEmployeeDayView(); //m_dailyView.GetByEmployeeId(empl.EmployeeId); TimeColumnInfo info = null; GridCell[] cells = gridView.GetSelectedCells(); if (dayView != null && cells != null && cells.Length > 0) { foreach (GridCell cell in cells) { info = GetColumnInfo(cell.Column); if (info != null) { dayView.SetAbsence(formSelectAbsence.SelectedAbsence, info.FromTime, info.ToTime); } } if (dayView.Modified) { Context.Modified = true; } UpdateEmployeePlanningDays(); } } } } }
private void gridViewHalfHour_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e) { // if cell focused or selected do nothing if (gridView.IsCellSelected(e.RowHandle, e.Column) && e.Column.Tag != null)// != gc_Employee) { e.Appearance.BackColor = Color.Gold; e.Handled = false; return; } // if is not hour column return if (e.Column.Tag == null) { //e.Handled = false; DrawFixedCells(e); return; } StoreDay storeday = Context.StoreDays[Context.ViewDate]; TimeColumnInfo infoColumn = GetColumnInfo(e.Column); if (infoColumn == null) { return; } EmployeeDayView dayView = GetEmployeeDayView(e.RowHandle); if (dayView == null) { return; } int index = infoColumn.FromTime / 15; Painters.DrawDailyViewCell(e, index, CurrentView, storeday, dayView); }
private void gridControl_MouseDoubleClick(object sender, MouseEventArgs e) { if (ReadOnly) { return; } GridHitInfo info = gridView.CalcHitInfo(e.X, e.Y); if (info.InRow) { TimeColumnInfo timeinfo = GetColumnInfo(info.Column); if (timeinfo != null) { EmployeeDayView dayView = GetEmployeeDayView(); if (dayView != null) { if (dayView.IsBuzyByTimeRange(timeinfo.FromTime, timeinfo.ToTime)) { dayView.RemoveWorkingTime(timeinfo.FromTime, timeinfo.ToTime); } else { dayView.AddWorkingTime(timeinfo.FromTime, timeinfo.ToTime); } if (dayView.Modified) { Context.Modified = true; } UpdateEmployeePlanningDays(); } } } }
private void ProcessFixedTimeAbsence(Absence absence) { if (absence.Value > 0) { int count = (int)(absence.Value * 60); if (gridView.SelectedRowsCount == 1) { EmployeeDayView dayView = GetEmployeeDayView(); TimeColumnInfo info = GetColumnInfo(gridView.FocusedColumn); if (dayView != null && info != null) { dayView.SetAbsence(absence, info.FromTime, info.FromTime + count); if (dayView.Modified) { Context.Modified = true; } UpdateEmployeePlanningDays(); } } } }
private void ProcessCountAliquotAbsence(Absence absence) { if (absence.IsFixed) { if (gridView.SelectedRowsCount == 1) { EmployeeDayView dayView = GetEmployeeDayView(); TimeColumnInfo info = GetColumnInfo(gridView.FocusedColumn); if (dayView != null && info != null) { int count = DateTimeHelper.RoundToQuoter((short)((dayView.ContractHoursPerWeek / Context.StoreDays.AvgDayInWeek))); dayView.SetAbsence(absence, info.FromTime, info.FromTime + count); if (dayView.Modified) { Context.Modified = true; } UpdateEmployeePlanningDays(); } } } }
private IEnumerable<OutputColumnInfo> GetColumnInfo() { var columnInfoList = new List<OutputColumnInfo>(); var widths = GetColumnWidths(); if (_data.ShowStation) { var columnInfo = new StationColumnInfo { Width = widths["station"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionStation : _data.PositionStation) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowProgram) { var columnInfo = new ProgramColumnInfo { Width = widths["program"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionProgram : _data.PositionProgram) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowDay) { var columnInfo = new DayColumnInfo { Width = widths["day"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionDay : _data.PositionDay) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowTime) { var columnInfo = new TimeColumnInfo { Width = widths["time"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionTime : _data.PositionTime) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowSpots) { var columnInfo = new SpotsColumnInfo(_data.SpotType) { Width = widths["spots"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionSpots : _data.PositionSpots) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowRate) { var columnInfo = new RateColumnInfo { Width = widths["rate"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionRate : _data.PositionRate) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowLenght) { var columnInfo = new LengthColumnInfo { Width = widths["length"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionLenght : _data.PositionLenght) + 1 }; columnInfoList.Add(columnInfo); } if (_data.ShowCost) { var columnInfo = new CostColumnInfo { Width = widths["cost"], Index = (_data.DefaultColumnPositions ? OptionSet.DefaultPositionCost : _data.PositionCost) + 1 }; columnInfoList.Add(columnInfo); } return columnInfoList; }
private void workingTimeToolStripMenuItem_Click(object sender, EventArgs e) { if (ReadOnly) { return; } EmployeeDayView dayView = GetEmployeeDayView(); if (gridView.SelectedRowsCount == 1) { GridCell[] cells = gridView.GetSelectedCells(); if (cells.Length > 1) { bool ignore = false; for (int i = 0; i < cells.Length; i++) { if (cells[i].Column.Tag == null) { ignore = true; } } if (!ignore) { if (dayView != null) { foreach (GridCell cell in cells) { TimeColumnInfo infocolumn = GetColumnInfo(cell.Column); if (infocolumn != null) { dayView.AddWorkingTime(infocolumn.FromTime, infocolumn.ToTime); } } if (dayView.Modified) { Context.Modified = true; } } UpdateEmployeePlanningDays(); } } else { if (cells != null && cells.Length == 1) { TimeColumnInfo info = GetColumnInfo(cells[0].Column); StoreDay sd = Context.StoreDays[Context.ViewDate]; if (info != null) { using (FormEnterWorkingTime form = new FormEnterWorkingTime()) { if (sd.OpenTime == 0) { form.BeginTime = 9 * 60; } else { form.BeginTime = sd.OpenTime; } form.EndTime = sd.CloseTime; if (sd.CloseTime == 0) { form.EndTime = 18 * 60; } else { form.EndTime = sd.CloseTime; } form.BeginTime = info.FromTime; if (form.ShowDialog() == DialogResult.OK) { int bt = form.BeginTime; int et = form.EndTime; if (dayView != null) { dayView.AddWorkingTime(bt, et); if (dayView.Modified) { Context.Modified = true; } } UpdateEmployeePlanningDays(); } } } } } } }
private void gridView_MouseDown(object sender, MouseEventArgs e) { GridHitInfo info = gridView.CalcHitInfo(e.Location); if (e.Button == MouseButtons.Left && info.InColumn) { GridColumn column = info.Column; if (column == gc_HWGR || column == gc_Employee) { column.SortMode = ColumnSortMode.DisplayText; if (column.SortOrder == ColumnSortOrder.Ascending) { column.SortOrder = ColumnSortOrder.Descending; } else { column.SortOrder = ColumnSortOrder.Ascending; } if (column == gc_HWGR) { gridView.SortInfo.ClearAndAddRange(new GridColumnSortInfo[] { new GridColumnSortInfo(gc_HWGR, gc_HWGR.SortOrder), new GridColumnSortInfo(gc_Employee, gc_Employee.SortOrder) }); } else { gridView.SortInfo.ClearAndAddRange(new GridColumnSortInfo[] { new GridColumnSortInfo(gc_Employee, gc_Employee.SortOrder), new GridColumnSortInfo(gc_HWGR, gc_HWGR.SortOrder) }); } } } if (e.Button == MouseButtons.Left && info.InRowCell) { if (selectedCell != null && selectedCell.Length > 1) { if (selectedCell[0].RowHandle == info.RowHandle) { bool bOk = false; foreach (GridCell cell in selectedCell) { if (cell.Column == info.Column) { bOk = true; break; } } if (bOk && !ReadOnly) { EmployeeDayView dayView = GetEmployeeDayView(info.RowHandle); //m_dailyView.GetByEmployeeId(empl.EmployeeId); TimeColumnInfo columninfo = null; if (dayView != null) { foreach (GridCell cell in selectedCell) { columninfo = GetColumnInfo(cell.Column); if (columninfo != null) { dayView.AddWorkingTime(columninfo.FromTime, columninfo.ToTime); } } if (dayView.Modified) { Context.Modified = true; } UpdateEmployeePlanningDays(); } selectedCell = null; } } } } }