This is a migrated thread and some comments may be shown as answers.

Month view Items

11 Answers 206 Views
Scheduler and Reminder
This is a migrated thread and some comments may be shown as answers.
Mike Baldini
Top achievements
Rank 1
Mike Baldini asked on 22 Jun 2010, 11:47 PM
Why is it that when there are more appointments than can be displayed on a single day, the month view does not have scroll bars to view the additional items.... but the timeline view does?

We absolutely love the way that the timeline view has scrollbars to see all the additional items. We are getting an absurd number of complaints from our customers about how the month view forces them into the day view just to see what appointments they have that day.

We deal with accountants, chiropractors, lawyers, and other service representatives that can have 20+ appointments per day. And they want to be able to see all those appointments on the month view without having to switch to different view types.

Is there any possible way we can get an option to display scroll bars on the month view when there are too many appointments to display on one day? This has really turned out to be a critical issue for us....

11 Answers, 1 is accepted

Sort by
0
Dobry Zranchev
Telerik team
answered on 28 Jun 2010, 02:33 PM
Hi Mike Baldini,

Thank you for contacting us.

The current RadScheduler functionality is actually Outlook's default - when the appointments cannot be fitted in a single cell in month view, a small arrow appears notifying the user that there are more appointments, which in turn takes the user to the respective day so that all can be reviewed at once. The day view does have a scrollbar which can be used to review the appointments, if needed.

We are trying to follow Outlook's usability standards, as it is the most used scheduling component in the world. In addition, it is our belief that the screen estate has to be optimized in such a way, that all days in a month are visible at all times, because this is the most optimal view when you are trying to review the tasks in a month.

You are not the first person to request this functionality, however, so we will really appreciate your further feedback on this since we plan to extend this functionality to suit your needs better. Would like to have a scrollbar in the day cell itself (i.e. all days in a month are always shown on the screen, and just the ones that have more events have scrollbars) , or would you prefer a single scroolbar for the whole month view (but not all days visible)? You can also review how Google Calendar takes care of this feature and share your feedback on it as well.

Thank you in advance.
 
All the best,
Dobry Zranchev
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Mike Baldini
Top achievements
Rank 1
answered on 28 Jun 2010, 06:07 PM

this Example Calendar is what our original calendar looked like before we switched to your controls. I authored this calendar using VB and GDI+ early last year. The area on the right of each month cell was reserved for the scroll bars to see more appointments per day. 

We do agree that the all days in the month need to be visible at the same time. With the ability to scroll each day rather than the whole month, you can keep the entire month in view while allowing for the individual days to show more than 2 or 3 appointments.

One of the unique things that our clients use our calendar for is scheduling multiple people at the same time. The appointment descriptions show the start time followed by the staff (or Resource in your terms) initials, followed by the subject of the appointment. With this view (coupled with the ability to scroll individual days), scheduling managers are able to easily view where all their staff are at any given point.

Our beta testers did not like when we switched the standard month view to the 'MonthViewGroupedByResource' view. Their main complaint was that in order to have enough real estate for the appointments, they were only able to show 1 resource per view. With showing only 1 resource per view, they were forced to scroll back and forth to each resource to compare the calendars. 

For our beta testers, we combined the calendar back into one calendar for all staff  (or whatever staff they wanted via a 'select staff' dialog), and gave them a set of very powerful filters (filter by Contact, appointment type, location, color, etc). Even with all these enhancements and filters, our clients still said that they preferred our MS Access Calendars rather than the new ones.
0
Dobry Zranchev
Telerik team
answered on 30 Jun 2010, 12:39 PM
Hi Mike Baldini,

Thank you for the feedback - we have updated your Telerik points for the feedback, and logged your vote for having scrollbars in the MonthView cells.

We will be happy to hear what the community has to say about this feature, so that we can settle on a single implementation.
 

Regards,
Dobry Zranchev
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Ramius
Top achievements
Rank 1
answered on 30 Jun 2010, 11:11 PM
Hi Dobry,

i also want to vote for having scrollbars in the MonthView cells.

Regards,

Ramius
0
Dobry Zranchev
Telerik team
answered on 05 Jul 2010, 08:41 AM
Very well. We have created a new PITS entry for scrollbars in the month views. Please, vote for this here as well: 2611. You can also subscribe for notifications on this item.

Do not hesitate to contact us for further questions.

Sincerely yours,
Dobry Zranchev
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
pramuuu
Top achievements
Rank 1
answered on 20 Apr 2011, 01:50 PM
i also want to vote for having scrollbars in the MonthView cells...
0
Ivan Todorov
Telerik team
answered on 22 Apr 2011, 01:50 PM
Hi pramuu,

In order to vote for this feature, please login to our site and visit the PITS item page. There you can vote, track or comment it. If it gets more votes, we may consider implementing it in some of the future releases.

I hope this helps.

All the best,
Ivan Todorov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Andreas Haeusler
Top achievements
Rank 2
answered on 27 Feb 2014, 10:59 AM
Now that the scroll bars are available in the month view: How would one enable mousewheel - scolling?

Kind regards,
Andreas
0
Dess | Tech Support Engineer, Principal
Telerik team
answered on 03 Mar 2014, 04:09 PM
Hello Andreas,

Thank you for contacting Telerik Support.

Currently, vertical scroll bar is available for the MonthCellElements. However, the mouse wheel will navigate you through the month days in the scheduler view. You can customize this behavior in order to implement scrolling of the MonthCellElements. Here is just a sample approach how to handle the MouseWheel event and stop the basic logic and implement your own. I would like to note that it is necessary to pay attention to finding the correct scroll bar:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        new RadControlSpyForm().Show();
 
        for (int i = 0; i < 10; i++)
        {
            Appointment app = new Appointment(DateTime.Now, TimeSpan.FromMinutes(30), "Sumamry" + i);
 
            this.radScheduler1.Appointments.Add(app);
        }
 
        this.radScheduler1.MouseWheel += radScheduler1_MouseWheel;
    }
 
    private void radScheduler1_MouseWheel(object sender, MouseEventArgs e)
    {
    }
}
 
public class CustomScheduler : RadScheduler
{
    public override string ThemeClassName 
    {
        get
        {
            return typeof(RadScheduler).FullName; 
        }
    }
 
    protected override void OnMouseWheel(MouseEventArgs e)
    {
        List<SchedulerCellElement> cells = SchedulerUIHelper.GetSelectedCells(this);
        MonthCellElement monthCell = null;
 
        foreach (SchedulerCellElement c in cells)
        {
            monthCell = c as MonthCellElement;
            if (monthCell != null)
            {
                break;
            }
        }
 
        if (monthCell != null)
        {
            MonthViewAreaElement el = monthCell.Parent as MonthViewAreaElement;
 
            //Here you should find the correct scrollbar
         
            List<RadElement> scrollbars = el.GetDescendants(
                delegate(RadElement element)
                {
                    return element is RadScrollBarElement;
                },
                TreeTraversalMode.BreadthFirst);
 
            foreach (RadScrollBarElement scrollbar in scrollbars)
            {
                if (monthCell.ControlBoundingRectangle.Y + monthCell.ControlBoundingRectangle.Height >= scrollbar.ControlBoundingRectangle.Y &&
                    monthCell.ControlBoundingRectangle.Y <= scrollbar.ControlBoundingRectangle.Y
                )
                {
                    if (scrollbar != null)
                    {
                        if (e.Delta < 0)
                        {
                            scrollbar.PerformSmallIncrement(1);
                        }
                        else
                        {
                            scrollbar.PerformSmallDecrement(1);
                        }
                    }
                    break;
                }
            }
            return;
        }
        base.OnMouseWheel(e);
    }
}

Note that this is just a sample approach, which purpose is to demonstrates the approach and it may not cover all possible cases. Feel free to modify it on a way which suits your requirement best.

I hope this information helps. Should you have further questions, I would be glad to help.

Regards,
Desislava
Telerik
0
Andreas Haeusler
Top achievements
Rank 2
answered on 05 Mar 2014, 10:52 AM
Thank you Desislava,

your code works once you click onto a monthviewarea and setting focus to that part of the Control. 

As a quick hack i send a mouse click prior to your code - making the search for the correct scrollbar uneccessary.

public class CustomScheduler : RadScheduler
    {
        private Stopwatch swPreventDoubleClick = new Stopwatch();
 
        public override string ThemeClassName
        {
            get { return typeof (RadScheduler).FullName; }
        }
 
 
        #region DoMouseClick Import and Method
        private const int MOUSEEVENTF_LEFTDOWN = 0x02;
        private const int MOUSEEVENTF_LEFTUP = 0x04;
        private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
        private const int MOUSEEVENTF_RIGHTUP = 0x10;
     
 
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
 
        public void DoMouseClick()
        {
            var X = Cursor.Position.X;
            var Y = Cursor.Position.Y;
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint) X, (uint) Y, 0, 0);
        }
        #endregion
        
        protected override void OnMouseWheel(MouseEventArgs e)
        {
            if (!swPreventDoubleClick.IsRunning || swPreventDoubleClick.ElapsedMilliseconds > 500)
            {
                swPreventDoubleClick.Restart();
                DoMouseClick();
            }
            List<SchedulerCellElement> cells = SchedulerUIHelper.GetSelectedCells(this);
 
            MonthCellElement monthCell = null;
 
            foreach (SchedulerCellElement c in cells)
            {
                monthCell = c as MonthCellElement;
                if (monthCell != null) { break; }
            }
 
            if (monthCell != null)
            {
                var el = monthCell.Parent as MonthViewAreaElement;
 
                 if (el != null)
                {
                    List<RadElement> scrollbars = el.GetDescendants(delegate(RadElement element) { return element is RadScrollBarElement; }, TreeTraversalMode.BreadthFirst);
 
                    foreach (RadScrollBarElement scrollbar in scrollbars)
                    {
                        if (monthCell.ControlBoundingRectangle.Y + monthCell.ControlBoundingRectangle.Height >= scrollbar.ControlBoundingRectangle.Y && monthCell.ControlBoundingRectangle.Y <= scrollbar.ControlBoundingRectangle.Y)
                        {
                            if (e.Delta < 0) { scrollbar.PerformSmallIncrement(1); }
                            else
                            { scrollbar.PerformSmallDecrement(1); }
 
                            break;
                        }
                    }
                }
                return;
            }
            base.OnMouseWheel(e);
        }
    }

Thanks again,
Andreas
0
George
Telerik team
answered on 10 Mar 2014, 09:38 AM
Hi Andreas,

I am glad that you were able to find a solution which meets your requirements.

Should you have further questions, do not hesitate to contact us.

Regards,
George
Telerik

DevCraft Q1'14 is here! Watch the online conference to see how this release solves your top-5 .NET challenges. Watch on demand now.

Tags
Scheduler and Reminder
Asked by
Mike Baldini
Top achievements
Rank 1
Answers by
Dobry Zranchev
Telerik team
Mike Baldini
Top achievements
Rank 1
Ramius
Top achievements
Rank 1
pramuuu
Top achievements
Rank 1
Ivan Todorov
Telerik team
Andreas Haeusler
Top achievements
Rank 2
Dess | Tech Support Engineer, Principal
Telerik team
George
Telerik team
Share this question
or