Компонент ввода диапазона дат (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Визуальный интерфейс) |
VK (обсуждение | вклад) (→Визуальный интерфейс) |
||
| Строка 18: | Строка 18: | ||
=== Визуальный интерфейс === | === Визуальный интерфейс === | ||
| − | Компонента должна представлять | + | Компонента должна представлять TCombobox или TPanel с расположенным на ней TCombobox, где в окошке редактирования производится ввод диапазона дат. Начальная дата и конечная дата разделяются символом '-'. |
| − | Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиш Down), под окошком ввода дат | + | Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиш Ctrl-Down), под окошком ввода дат должен появляться элемент TPageControl со следующими закладками: |
| − | # История - можно просмотреть и выбрать ранее введённые пользователем данные. | + | # История - можно просмотреть и выбрать ранее введённые пользователем данные из списка TListBox.. |
| − | # Произвольный выбор дат - можно выбрать даты диапазона из двух календарей. | + | # Произвольный выбор дат - можно выбрать даты диапазона из двух элементов-календарей TMonthCalendar. |
| − | # Год - выбор всего года. Год выбирается из списка. | + | # Год - выбор всего года. Год выбирается из списка TListBox. |
| − | # Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка. | + | # Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка TListBox. |
| − | # Месяц - выбор месяца по году | + | # Месяц - выбор месяца по году из первой даты, если она есть. выбирается из списка TListBox. |
| − | # Неделя - выбор недели по году | + | # Неделя - выбор недели по году из первой даты, если она есть. Выбирается из списка TListBox. |
| − | # День - выбор дня по году | + | # День - выбор дня по году из первой даты, если она есть. Выбирается из списка TListBox. |
=== Детали реализации === | === Детали реализации === | ||
Версия 19:39, 25 августа 2008
Требования
- Ввод единичной даты;
- Ввод произвольного диапазона дат;
- Быстрый выбор диапазона:
- Год;
- Полугодие;
- Квартал;
- Месяц;
- Неделя;
- Быстрый ввод с клавиатуры с подстановкой текущей даты (текущего дня, месяца, года);
- Распознавание произвольно введенной строки. Например: "2007 1 кв" -- "1-й квартал 2007 года", "5 нед" -- "Пятая неделя текущего года", и т.п.
- Хранение истории введенных значений;
- Хранение последнего выбора пользователя: ввод даты, диапазона, квартала, месяца и т.п.
- Возможность работы только с клавиатуры без помощи мыши;
- Компонент должен быть реализован ввиде автономного pas файла (группы pas файлов) и не иметь связей с кодом платформы Гедымин.
Визуальный интерфейс
Компонента должна представлять TCombobox или TPanel с расположенным на ней TCombobox, где в окошке редактирования производится ввод диапазона дат. Начальная дата и конечная дата разделяются символом '-'.
Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиш Ctrl-Down), под окошком ввода дат должен появляться элемент TPageControl со следующими закладками:
- История - можно просмотреть и выбрать ранее введённые пользователем данные из списка TListBox..
- Произвольный выбор дат - можно выбрать даты диапазона из двух элементов-календарей TMonthCalendar.
- Год - выбор всего года. Год выбирается из списка TListBox.
- Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка TListBox.
- Месяц - выбор месяца по году из первой даты, если она есть. выбирается из списка TListBox.
- Неделя - выбор недели по году из первой даты, если она есть. Выбирается из списка TListBox.
- День - выбор дня по году из первой даты, если она есть. Выбирается из списка TListBox.
Детали реализации
Визуальный компонент должен быть наследован от стандартного компонента TPanel.