Skip to main content
A newer version of this page is available. .

SchedulerControl.QueryWorkTime Event

Occurs when the scheduler’s view calculates the work time interval for the specific resource.

Namespace: DevExpress.XtraScheduler

Assembly: DevExpress.XtraScheduler.v18.2.dll

Declaration

public event QueryWorkTimeEventHandler QueryWorkTime

Event Data

The QueryWorkTime event's data class is QueryWorkTimeEventArgs. The following properties provide information specific to this event:

Property Description
Interval Gets the time interval for which the working time is queried.
Resource Gets the resource for which the working time interval is queried.
WorkTime Gets or sets the working time interval.
WorkTimes Provides access to the collection of work times specified for a single day.

Remarks

Handle this event to specify custom work time intervals. They can be set differently for distinct days and resources.

Note

When different work time intervals are specified in the SchedulerControl.QueryWorkTime event handler, the DayView.ShowWorkTimeOnly option has no effect.

Example

The following code illustrates how to set a custom work time for each day and resource. Check the QueryWorkTimeEventArgs.Interval and QueryWorkTimeEventArgs.Resource values, and set the QueryWorkTimeEventArgs.WorkTime as required.

QueryWorkTime

private void SchedulerControl1_QueryWorkTime(object sender, QueryWorkTimeEventArgs e)
{
    if (e.Resource.Id.Equals(1))
    {
        if (e.Interval.Start.Day % 2 == 0)
        {
            List<TimeOfDayInterval> workTimes = new List<TimeOfDayInterval>();
            workTimes.Add(new TimeOfDayInterval(TimeSpan.FromHours(0), TimeSpan.FromHours(3)));
            workTimes.Add(new TimeOfDayInterval(TimeSpan.FromHours(5), TimeSpan.FromHours(8)));
            workTimes.Add(new TimeOfDayInterval(TimeSpan.FromHours(10), TimeSpan.FromHours(11)));
            e.WorkTimes.AddRange(workTimes);
        }
        else
            e.WorkTime = new TimeOfDayInterval(TimeSpan.FromHours(8), TimeSpan.FromHours(20));
    }
    if (e.Resource.Id.Equals(2))
    {
        if (e.Interval.Start.Day % 2 == 0)
            e.WorkTime = new TimeOfDayInterval(TimeSpan.FromHours(14), TimeSpan.FromHours(18));
        else
            e.WorkTime = new TimeOfDayInterval(TimeSpan.FromHours(8), TimeSpan.FromHours(12));
    }
    if (e.Resource.Id.Equals(3))
        e.WorkTime = new TimeOfDayInterval(TimeSpan.FromHours(14), TimeSpan.FromHours(21));
    if (e.Resource.Id.Equals(4))
    {
        List<TimeOfDayInterval> workTimes = new List<TimeOfDayInterval>();
        workTimes.Add(new TimeOfDayInterval(TimeSpan.FromHours(8), TimeSpan.FromHours(11)));
        workTimes.Add(new TimeOfDayInterval(TimeSpan.FromHours(13), TimeSpan.FromHours(17)));
        e.WorkTimes.AddRange(workTimes);
    }
}

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the QueryWorkTime event.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also