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