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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Ввод периода с помощью клавиатуры)
(Шорткаты)
Строка 94: Строка 94:
 
# пг -- прошлый год
 
# пг -- прошлый год
 
# сг -- следующий год
 
# сг -- следующий год
 +
 +
=== Детали реализации ===
 +
 +
* Имя класса: [[TgsPeriodEdit]]
 +
* Родительский класс: [[TPanel]]
 +
* Имя файла: gsPeriodEdit.pas
 +
* Расположение: gedemin\component
  
 
[[Category:Постановка]]
 
[[Category:Постановка]]

Версия 12:02, 13 августа 2010

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

periodedit_1.png

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

Содержание

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

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

periodedit_2.png

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

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

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

Календарь

Воспользуемся идеями выбора даты календаря из Windows 7.

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

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

periodedit_3.png

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

periodedit_4.png


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

Шорткаты

  1. c -- сегодня
  2. з -- завтра
  3. в -- вчера
  4. н -- текущая неделя
  5. пн -- прошлая неделя
  6. сн -- следующая неделя
  7. м -- текущий месяц
  8. пм -- прошлый месяц
  9. см -- следующий месяц
  10. к -- текущий квартал
  11. пк -- прошлый квартал
  12. ск -- следующий квартал
  13. г -- текущий год
  14. пг -- прошлый год
  15. сг -- следующий год

Детали реализации

  • Имя класса: TgsPeriodEdit
  • Родительский класс: TPanel
  • Имя файла: gsPeriodEdit.pas
  • Расположение: gedemin\component
Персональные инструменты
Пространства имён

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