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