To reproduce: Create a SQL table as per this article - http://www.telerik.com/help/winforms/scheduler-data-binding-using-datasource-property.html . Add the following mappings using EntityFramework or OpenAccess - http://www.telerik.com/help/winforms/scheduler-data-binding-using-datasource-property.html. You will notice that the resources cannot be mapped. Workaround: Implement a One-to-Many relation by adding a ResourceId column in the database and removing the old table. Resolution: Both EF and TDA mappings work. Due to the differences in the mechanisms of the two products there are some slight adjustments that need to be made. Below is how to set up the mappings with EF and in commented code for ORM. SchedulerDataEntities1 entityContext = new SchedulerDataEntities1();
To reproduce: Add an appointment with the text "<html><size=9>Erin Swardz</br><color=Red>PO 2315</html>" the appointment looks formatted in the scheduler, however when in PrintPreview/Print the html code is printed in raw format Workaround: Strip all html in order to print pure text - void scheduler_AppointmentPrintElementFormatting(object sender, PrintAppointmentEventArgs e) { string replaceBr = e.AppointmentElement.Text.Replace("</br>", " "); string result = Regex.Replace(replaceBr, @"<[^>]*>", string.Empty); e.AppointmentElement.Text = result; }
To reproduce: Add a RadScheduler to a form and try the following method : private void Scroll() { SchedulerDayView dayView = radScheduler1.GetDayView(); SchedulerWeekView weekView = radScheduler1.GetWeekView(); dayView.RulerStartScale = 7; dayView.RulerEndScale = 22; if (radScheduler1.ActiveViewType == SchedulerViewType.Day) { if (dayView != null) { dayView.RangeFactor = ScaleRange.QuarterHour; } } else if (radScheduler1.ActiveViewType == SchedulerViewType.Week) { if (weekView != null) { weekView.RangeFactor = ScaleRange.QuarterHour; } } dayView.RulerTimeFormat = RulerTimeFormat.hours24; SchedulerDayViewElement dayViewElement = this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement; if (dayViewElement != null) { dayViewElement.DataAreaElement.Table.ScrollToTime(new TimeSpan(DateTime.Now.Hour, 0, 0)); } } As you can see the scroll is not correct.
To reproduce: - Handle the CellFormatting event. - Set CellElement Text property to a very long text. Workaround: Set CellElement MaxSize property like this: void radScheduler1_CellFormatting(object sender, Telerik.WinControls.UI.SchedulerCellEventArgs e) { e.CellElement.MaxSize = new Size(150,23); }
RadScheduler - there is no way change the style of drag item. Current embedded styling is hard to see in some themes.
Steps to reproduce: 1. Add a scheduler to a form. 2. Add some data and group it by resource. 3. Add a button and on click call the NavigateToNextResource method: this.radSchedulerDemo.SchedulerElement.NavigateToNextResource(); You will see that nothing happens. WORKAROUND: RadScrollBarElement scrollBarElement = this.radScheduler1.SchedulerElement.ViewElement.Children[3] as RadScrollBarElement; this.radScheduler1.SchedulerElement.NavigateToLastResource(); int numberOfBackSteps = scrollBarElement.Maximum - scrollBarElement.Value - (this.radSchedulerDemo.SchedulerElement.View.ResourcesPerView - 1); for (int i = 0; i <= numberOfBackSteps; i++) { this.radScheduler1.SchedulerElement.NavigateToPreviousResource(); }
Steps to reproduce. 1. Add a RadScheduler to a form, add some appointments. 2. Add grouping with at least two groups. 3. Drag an appointment from the second group (top to bottom) and drop it above the scheduler. The drag hint should be for invalid operation (striked red circle) You will see that the appointment will disappear from the scheduler. WORKAROUND AddHandler Me.RadScheduler1.DragDropBehavior.Stopped, AddressOf DragDropBehavior_Stopped Private Sub DragDropBehavior_Stopped(sender As Object, e As EventArgs) Dim element As TimelineGroupingByResourcesElement = Me.RadScheduler1.SchedulerElement.Children(0) For Each timelineViewElement In element.Children If timelineViewElement.GetType() = GetType(SchedulerTimelineViewElement) Then For Each applicationElement As RadElement In CType(timelineViewElement, SchedulerTimelineViewElement).Presenter.Children If applicationElement.GetType() = GetType(AppointmentElement) Then applicationElement.Visibility = ElementVisibility.Visible End If Next End If Next End Sub
RadScheduler printing does not take in consideration the Ruler scale and always print with 30 minutes timescale.
ScrollToWorkHours does not work properly in DayViewGroupedByResource mode
To work around the issue, you can set scheduler's GroupType to None, set the ResourcesPerView property, set the GroupType to Resource: radScheduler1.GroupType = GroupType.None; this.radScheduler1.ActiveView.ResourcesPerView =resourcesPerView radScheduler1.GroupType = GroupType.Resource;
this.radScheduler1.Appointments.EndUpdate(); Does not refresh the Scheduler view element.
Steps to reproduce: radScheduler.ActiveViewType = SchedulerViewType.Timeline; radScheduler.GetTimelineView().ShowTimescale(Timescales.Hours); radScheduler.GetTimelineView().GetTimescale(Timescales.Hours).DisplayedCellsCount = 10;//set 8 for workarround. radScheduler.ActiveView.StartDate = DateTime.Today; radScheduler.GetTimelineView().RangeStartDate = DateTime.Today.AddHours(7); radScheduler.GetTimelineView().RangeEndDate = DateTime.Today.AddDays(1); radScheduler.GetTimelineView().ResourcesPerView = 5; radScheduler.GroupType = GroupType.Resource; radScheduler.SchedulerElement.SetResourceHeaderAngleTransform(SchedulerViewType.Timeline, 0);
Let's say that you have an appoiment that starts at 8:30 and ends at 8:30. RadScheduler will display it as it should, but it will not be considered by the printing functionality. We should also have in mind the case where there are several appointments starting from 8:30 and ending at 8:30.
To reproduce: RadSchedulerLocalizationProvider.CurrentProvider = new CustomSchedulerLocalizationProvider(); radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddDays(-5), DateTime.Now.AddDays(-4))); radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddDays(5), DateTime.Now.AddDays(4))); Workaround: radScheduler1.SchedulerElement.Refresh();
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, a time range of working ours is valid for all days in the week. There could be a rule that sets a specific range for some days of the week, leaving another range of hours for the rest of the days.
Steps to reproduce: 1. Add a RadSchduler to a form (No need to add appointments) 2. Set the active view type to Timeline 3. Set the Appointmentheight property of the timeline view element to 50 4. Run the project, right-click on the scheduler and select Next View You will see a NullReferenceException exception.
The issue is when you drag up or drag down the top or bottom of the appointment i.e extend or decrease the slot. The error I get with that same codebase is Object reference not set to an instance of an object. inner exception null Source: Telerik.WinControls.Scheduler StackTrace: at Telerik.WinControls.UI.DayViewAppointmentsTable.appointment_MouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.DayViewAppointmentsTable.AppointmentMouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.RadSchedulerElement.scheduler_AppointmentElementMouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.RadScheduler.OnAppointmentElementMouseUp(Object sender, MouseEventArgs args)...
1. Create a new project with RadScheduler. 2. Handle the AppointmentFormatting event and change appointment border color. 3. Run the project and add an appointment.
Use GetMultiDayView().Intervals.Add method to add intervals in multi day view. Set the time to be 0:00.