Компонент ввода диапазона дат (постановка)
SYSDBA (обсуждение | вклад) (→Ввод периода с помощью клавиатуры) |
SYSDBA (обсуждение | вклад) (→Ввод периода с помощью клавиатуры) |
||
| Строка 41: | Строка 41: | ||
|1 января указанного года | |1 января указанного года | ||
|31 декабря указанного года | |31 декабря указанного года | ||
| + | |- valign="top" | ||
| + | |Месяц | ||
| + | |1-е число указанного месяца текущего года - Последнее число указанного месяца текущего года | ||
| + | |1-е число указанного месяца текущего года | ||
| + | |Последнее число указанного месяца текущего года | ||
| + | |День | ||
| + | |День текущего месяца текущего года | ||
| + | |День текущего месяца текущего года | ||
| + | |День текущего месяца текущего года | ||
| + | |Год и месяц | ||
| + | |1-е число указанного месяца указанного года - Последнее число указанного месяца указанного года | ||
| + | |1-е число указанного месяца указанного года | ||
| + | |Последнее число указанного месяца указанного года | ||
| + | |День и месяц | ||
| + | |День указанного месяца текущего года | ||
| + | |День указанного месяца текущего года | ||
| + | |День указанного месяца текущего года | ||
| + | |День недели | ||
| + | |День, соответствующий указанному дню текущей недели | ||
| + | |Указанный день текущей недели | ||
| + | |Указанный день текущей недели | ||
|} | |} | ||
Версия 21:41, 10 марта 2009
Необходимо создать простой и удобный визуальный компонент для ввода периода дат как набором с клавиатуры, так и путем выбора мышью.
Компонент должен представлять собой поле ввода TEdit справа от которого расположены три кнопки-пиктограмки для вызова выпадающих окон.
Ввод периода с помощью мыши
Диапазон дат можно указать мышью в выпадающих окнах следующими способами:
В окне выбора двух дат располагаются горизонтально два календаря. Календарь слева показывает начальную дату, справа -- конечную. Пользователь выбирает день сначала на одном календаре, затем на другом. Сразу после указания второго дня окно закрывается, а введенный период переносится в поле ввода. Если в поле ввода указан некоторый период, то при открытии выпадающего окна дни начала и окончания периода устанавливаются на соответствующих календарях.
В выпадающем окне стандартных периодов располагаются: список лет (вертикально); список месяцев (вертикально); список кварталов; список недель (матрица). Пользователь может кликнуть мышью по любому элементу, при этом соответствующий период (год, месяц, квартал, неделя) подставится в поле ввода. После выбора -- окно закрывается.
Третье выпадающее окно вертикально разделено на две части. В левой находится история периодов, которые выбирал пользователь. В правой части список шорткатов с подсказкой по каждому. Щелчек мышью по шорткату приводит к его срабатыванию.
Любое выпадающее окно можно закрыть без выбора периода клавишей Esc, либо кликнув мышью за его пределами.
Ввод периода с помощью клавиатуры
В поле ввода пользователю предоставляется несколько вариантов ввода временного отрезка:
Самый очевидный вариант -- ввод двух дат. Например, 01.01.2009-31.12.2009. Полный формат даты -- когда указан день, месяц и год. Сокращенный -- если хотя бы один из компонентов пропущен.
| Сокращенная дата | Единственная дата | Первый параметр | Второй параметр | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Год | 1 января указанного года - 31 декабря указанного года | 1 января указанного года | 31 декабря указанного года | ||||||||||||||||
| Месяц | 1-е число указанного месяца текущего года - Последнее число указанного месяца текущего года | 1-е число указанного месяца текущего года | Последнее число указанного месяца текущего года | День | День текущего месяца текущего года | День текущего месяца текущего года | День текущего месяца текущего года | Год и месяц | 1-е число указанного месяца указанного года - Последнее число указанного месяца указанного года | 1-е число указанного месяца указанного года | Последнее число указанного месяца указанного года | День и месяц | День указанного месяца текущего года | День указанного месяца текущего года | День указанного месяца текущего года | День недели | День, соответствующий указанному дню текущей недели | Указанный день текущей недели | Указанный день текущей недели |