Компонент ввода диапазона дат (постановка)

Материал из GedeminWiki
Перейти к: навигация, поиск

В большинстве случаев при построении отчета или фильтрации массива документов пользователь указывает период дат. Сейчас в Гедымине применяются два компонента ввода даты для указания начального и конечного дня периода. Предлагается реализовать простой и удобный визуальный компонент для ввода периода дат как набором с клавиатуры, так и путем выбора мышью. Минимальный период -- один день. Ввод даты окончания периода меньшей даты начала не допускается.

periodedit_1.png

Компонент должен представлять собой поле ввода TEdit справа от которого расположена кнопка для вызова выпадающего окна.

Ввод периода с помощью мыши

Диапазон дат можно указать мышью в выпадающем окне следующими способами:

periodedit_2.png

Выпадающее окно разделено по вертикали на две части. В левой находится список выбора режима указания периода. В зависимости от режима справа располагается:

  • Год. Календарь для выбора года.
  • Квартал. Календарь для выбора года и квартала.
  • Месяц. Календарь для выбора года и месяца.
  • Неделя. Календарь для выбора года, месяца и недели.
  • День. Календарь для выбора года. месяца, дня.
  • Произвольный. Два календаря для выбора первого и последнего дня периода.
  • Шорт-кат. Список доступных шорт-катов.
  • История. Несколько последних периодов, выбранных пользователем.

После выбора периода окно закрывается. Выпадающее окно можно закрыть без выбора периода клавишей Esc, либо кликнув мышью за его пределами.

Ввод периода с помощью клавиатуры

В поле ввода пользователю предоставляется несколько вариантов ввода временного отрезка:

periodedit_3.png

Самый очевидный вариант -- ввод двух дат. Например, 01.01.2009-31.12.2009. Полный формат даты -- когда указан день, месяц и год. Сокращенный -- если хотя бы один из компонентов пропущен.

periodedit_4.png


Сокращенная дата Единственная дата Первый параметр Второй параметр
Год 1 января указанного года - 31 декабря указанного года 1 января указанного года 31 декабря указанного года
Месяц 1-е число указанного месяца текущего года - Последнее число указанного месяца текущего года 1-е число указанного месяца текущего года Последнее число указанного месяца текущего года
День День текущего месяца текущего года День текущего месяца текущего года День текущего месяца текущего года
Год и месяц 1-е число указанного месяца указанного года - Последнее число указанного месяца указанного года 1-е число указанного месяца указанного года Последнее число указанного месяца указанного года
День и месяц День указанного месяца текущего года День указанного месяца текущего года День указанного месяца текущего года
День недели День, соответствующий указанному дню текущей недели Указанный день текущей недели Указанный день текущей недели
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты