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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Ввод периода с помощью клавиатуры)
(Ввод периода с помощью клавиатуры)
Строка 46: Строка 46:
 
|1-е число указанного месяца текущего года
 
|1-е число указанного месяца текущего года
 
|Последнее число указанного месяца текущего года
 
|Последнее число указанного месяца текущего года
 +
|- valign="top"
 
|День
 
|День
 
|День текущего месяца текущего года
 
|День текущего месяца текущего года
 
|День текущего месяца текущего года
 
|День текущего месяца текущего года
 
|День текущего месяца текущего года
 
|День текущего месяца текущего года
 +
|- valign="top"
 
|Год и месяц
 
|Год и месяц
 
|1-е число указанного месяца указанного года - Последнее число указанного месяца указанного года
 
|1-е число указанного месяца указанного года - Последнее число указанного месяца указанного года
 
|1-е число указанного месяца указанного года
 
|1-е число указанного месяца указанного года
 
|Последнее число указанного месяца указанного года
 
|Последнее число указанного месяца указанного года
 +
|- valign="top"
 
|День и месяц
 
|День и месяц
 
|День указанного месяца текущего года  
 
|День указанного месяца текущего года  
 
|День указанного месяца текущего года  
 
|День указанного месяца текущего года  
 
|День указанного месяца текущего года  
 
|День указанного месяца текущего года  
 +
|- valign="top"
 
|День недели
 
|День недели
 
|День, соответствующий указанному дню текущей недели
 
|День, соответствующий указанному дню текущей недели

Версия 21:42, 10 марта 2009

Необходимо создать простой и удобный визуальный компонент для ввода периода дат как набором с клавиатуры, так и путем выбора мышью.

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-е число указанного месяца указанного года Последнее число указанного месяца указанного года
День и месяц День указанного месяца текущего года День указанного месяца текущего года День указанного месяца текущего года
День недели День, соответствующий указанному дню текущей недели Указанный день текущей недели Указанный день текущей недели
Персональные инструменты
Пространства имён

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