To reproduce : 1. Add a RadScheduler and a RadToggleButton. 2. Use the following code snippet: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.RadScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Timeline Dim colors As Color() = New Color() {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange, Color.Pink, _ Color.Purple, Color.Peru, Color.PowderBlue} Dim names As String() = New String() {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"} For i As Integer = 0 To names.Length - 1 Dim resource As New Resource() resource.Id = New EventId(i) resource.Name = names(i) resource.Color = colors(i) Me.RadScheduler1.Resources.Add(resource) Next Me.RadScheduler1.ActiveView.ResourcesPerView = 2 Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView() Dim scale As Timescales = Timescales.Hours timelineView.ShowTimescale(scale) timelineView.StartDate = DateTime.Now.Date.AddHours(5) timelineView.RangeStartDate = DateTime.Now.Date.AddHours(5) timelineView.RangeEndDate = DateTime.Now.Date.AddHours(15) timelineView.CurrentScale.DisplayedCellsCount = 10 End Sub Private Sub RadToggleButton1_ToggleStateChanged(sender As Object, args As StateChangedEventArgs) Handles RadToggleButton1.ToggleStateChanged If args.ToggleState = Telerik.WinControls.Enumerations.ToggleState.On Then Me.RadScheduler1.GroupType = GroupType.Resource Else Me.RadScheduler1.GroupType = GroupType.None End If End Sub Initially, the timeline view start from the correct hour (5 AM). However, the horizontal scroll bar allows you to navigate in right direction as the RangeEndDate is currently visible in the view. When you click the toggle button, the scheduler is grouped by resources and the timeline start is reset.
Add support for parsing hourly recurrence rules from a database.
The AppointmentResizeEnd event fires in cases where there was no resize done (for example when selecting appointments) To workaround: public Form1() { InitializeComponent(); this.radScheduler1.SchedulerElement.ResizeBehavior = new MyResizeBehavior(this.radScheduler1); } class MyResizeBehavior : AppointmentResizingBehavior { public MyResizeBehavior(RadScheduler scheduler) :base(scheduler) { } public override bool EndResize(IEvent appointment) { if (!this.IsResizing) { return false; } return base.EndResize(appointment); } }
RadScheduler the ruler is not displayed correctly with the office2010 themes.
To reproduce: public Form1() { InitializeComponent(); for (int i = 0; i < 10; i++) { Appointment appointment = new Appointment(DateTime.Now.AddHours(i), TimeSpan.FromMinutes(30), "Summary", "Description"); appointment.StatusId = 2; appointment.BackgroundId = 6; this.radScheduler1.Appointments.Add(appointment); } this.radScheduler1.ActiveViewType = SchedulerViewType.Day; SchedulerDayView dayView = this.radScheduler1.GetDayView(); dayView.RangeFactor = ScaleRange.FiveMinutes; dayView.RulerStartScale = DateTime.Now.Hour - 1; this.radScheduler1.EnableExactTimeRendering = true; }
The tooltip is displayed in in wrong position when it contains several lines.
To reproduce: public Form1() { InitializeComponent(); this.radScheduler1.GetDayView().RangeFactor = Telerik.WinControls.UI.ScaleRange.HalfHour; this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 11, 0, 0, 0), new DateTime(2014, 7, 21, 12, 0, 0, 0))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 30, 45, 137 ), new DateTime(2014, 7, 21, 15, 30, 58, 600 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 10, 0, 0, 0 ), new DateTime(2014, 7, 21, 11, 0, 0, 0 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 30, 19, 633 ), new DateTime(2014, 7, 21, 15, 30, 31, 253 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 29, 20, 337 ), new DateTime(2014, 7, 21, 15, 29, 52, 767 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 13, 0, 0, 0 ), new DateTime(2014, 7, 21, 14, 0, 0, 0 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 0, 0, 0 ), new DateTime(2014, 7, 21, 16, 0, 0, 0 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 28, 15, 500 ), new DateTime(2014, 7, 21, 15, 28, 37, 310 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 14, 0, 0, 0 ), new DateTime(2014, 7, 21, 15, 0, 0, 0 ))); this.radScheduler1.Appointments.Add(new Appointment(new DateTime(2014, 7, 21, 15, 27, 19, 123 ), new DateTime(2014, 7, 21, 15, 27, 57, 357 ))); }
To reproduce: - Add a recurrence appointment with a reminder to a blank RadScheduler. - Delete single occurrence and wait for the reminder form to show. - You will notice that the deleted occurrence still exist in the form's grid.
Check out the Weekly calendar style in Outlook Resolution: In Q2 2014 we introduced new feature: WeeklyCalendarPrintStyle. More information you can find in our help: http://www.telerik.com/help/winforms/scheduler-print-support-schedulerprintstyle.html, section WeeklyCalendarStyle
The request is covered here - http://feedback.telerik.com/Project/154/Feedback/Details/107090-fix-radscheduler-monthly-print-style-does-not-take-into-consideration-the-week Resolution: In Q2 2014 we introduced new feature: WeeklyCalendarPrintStyle. More information you can find in our help: http://www.telerik.com/help/winforms/scheduler-print-support-schedulerprintstyle.html, section WeeklyCalendarStyle
To reproduce scroll to the working hours in the ActiveViewChanged event: void radScheduler1_ActiveViewChanged(object sender, Telerik.WinControls.UI.SchedulerViewChangedEventArgs e) { if (e.OldView.ViewType == SchedulerViewType.Month && (e.NewView.ViewType == SchedulerViewType.Day || e.NewView.ViewType == SchedulerViewType.Week)) { SchedulerDayViewBase dayView = radScheduler1.ActiveView as SchedulerDayViewBase; dayView.AutoScrollToWorkTime = true; } } Workaround: public class MyScheduler : RadScheduler { public override string ThemeClassName { get { return typeof(RadScheduler).FullName; } } protected override void SetValuesToViewElement(SchedulerVisualElement viewElement, ViewData viewData) { if (viewElement is SchedulerDayViewElement) { return; } base.SetValuesToViewElement(viewElement, viewData); } }
To reproduce: - Open an appointment with the open item button from the alarm form. - Change the appointment start time and close it. - The "Due in' column in the grid is not properly updated.
To reproduce: Add a RadScheduler and a database with appointments. Set the recurrence rule to the following: FREQ=WEEKLY;UNTIL=20140102;BYDAY=TH;WKST=SU A first chance exception will be thrown and the appointments will not show correctly. Workaround: Before setting the recurrence rule make sure that the UNTIL keyword's value is in the following format: 20140102T235959Z or more specifically - yyyyMMdd\\THHmmss\\Z
To reproduce: Add a RadScheduler with a database with appointments. In the recurrence rule of the appointments add the keyword FREQ with value MONTHLY- FREQ=MONTHLY;UNTIL=20140102T235959Z;BYDAY=TH;WKST=SU You will notice that despite that the frequency of the recurrence is weekly.
To reproduce: Sub New() InitializeComponent() Dim colors() As Color = {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange} Dim names() As String = {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"} For i As Integer = 0 To names.Length - 1 Dim resource As New Telerik.WinControls.UI.Resource() resource.Id = New EventId(i) resource.Name = names(i) resource.Color = colors(i) Me.RadScheduler1.Resources.Add(resource) Next i Me.RadScheduler1.GroupType = GroupType.Resource Me.RadScheduler1.ActiveView.ResourcesPerView = 2 Dim rand As New Random For index = 1 To 20 Dim appointment As New Appointment(Date.Now.AddHours(index), TimeSpan.FromMinutes(30), "Summary", "Description") appointment.StatusId = RadScheduler1.Statuses(rand.Next(0, RadScheduler1.Statuses.Count)).Id appointment.BackgroundId = RadScheduler1.Backgrounds(rand.Next(0, RadScheduler1.Backgrounds.Count)).Id appointment.ResourceId = RadScheduler1.Resources(rand.Next(0, RadScheduler1.Resources.Count)).Id Me.RadScheduler1.Appointments.Add(appointment) Next RadSchedulerLocalizationProvider.CurrentProvider = New CustomSchedulerLocalizationProviderInglese() End Sub Public Class CustomSchedulerLocalizationProviderInglese Inherits RadSchedulerLocalizationProvider Public Overrides Function GetLocalizedString(id As String) As String Return MyBase.GetLocalizedString(id) End Function End Class
DECLINED: This is a limitation of the DataSet model. The last section "Updating the database" of this help article http://www.telerik.com/help/winforms/scheduler-data-binding-data-binding-walkthrough.html explains how you can overcome this. 1. Create a new project with RadScheduler. 2. Follow the instructions in our sample-database example help article to create a sample database. 3. Set GroupType property to Resource. 4. Add some resources 5. Run the application, try to add some appointments and to save them.
DECLINED: This is a limitation of the DataSet model. The last section "Updating the database" of this help article http://www.telerik.com/help/winforms/scheduler-data-binding-data-binding-walkthrough.html explains how you can overcome this. Steps to reproduce: 1. Bind RadScheduler to a database with appointments and resources. 2. Add a few appointments, save and close the form. 3. Delete the last added appointment, save and close the form. 4. When you add a new appointment and try to save, an SQL exception will be thrown.
The width of a resource does not always match the column(s) underneath it, resulting in the resources shifting to the left in relation to the column(s) below. It appears to be about 1 pixel difference per resource which becomes more noticeable with multiple resources .If you resize the form the resources will come close to matching the column(s) before jumping back to the full difference again. This issue can be demonstrated in the Scheduler->Grouping demo
Currently, the Sunday item appears before the Monday item. For some cultures the Sunday item should appear after the Saturday item.
Add the possibility to set vertical spacing between appointments in RadScheduler.