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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Визуальный интерфейс)
(Требования)
Строка 9: Строка 9:
 
## Месяц;
 
## Месяц;
 
## Неделя;
 
## Неделя;
# Быстрый ввод с клавиатуры с подстановкой текущей даты (текущего дня, месяца, года);
+
# Быстрый ввод с клавиатуры с подстановкой текущей даты (текущего дня, месяца, года), подобно тому, как сейчас подставляются текущий день месяц и год по нажатию на клавишу пробел в [[TxDateEdit]];
# Распознавание произвольно введенной строки. Например: "2007 1 кв" -- "1-й квартал 2007 года", "5 нед" -- "Пятая неделя текущего года", и т.п.
+
# Использование метасимволов:
 +
## c -- сегодня
 +
## з -- завтра
 +
## в -- вчера
 +
## н -- текущая неделя
 +
## пн -- прошлая неделя
 +
## сн -- следующая неделя
 +
## м -- текущий месяц
 +
## пм -- прошлый месяц
 +
## см -- следующий месяц
 +
## к -- текущий квартал
 +
## пк -- прошлый квартал
 +
## ск -- следующий квартал
 +
## г -- текущий год
 +
## пг -- прошлый год
 +
## сг -- следующий год
 +
# Хранение последнего введенного значения. Причем, если был использован метосимвол, то сохранятся должен именно он, а не рассчитанные на основе его значения;
 
# Хранение истории введенных значений;
 
# Хранение истории введенных значений;
# Хранение последнего выбора пользователя: ввод даты, диапазона, квартала, месяца и т.п.
+
# Хранение последнего выбора пользователя (последней активной страницы в выпадающем окошке): ввод даты, диапазона, квартала, месяца и т.п.
 
# Возможность работы только с клавиатуры без помощи мыши;
 
# Возможность работы только с клавиатуры без помощи мыши;
 
# Компонент должен быть реализован ввиде автономного pas файла (группы pas файлов) и не иметь связей с кодом платформы [[Гедымин]].
 
# Компонент должен быть реализован ввиде автономного pas файла (группы pas файлов) и не иметь связей с кодом платформы [[Гедымин]].

Версия 20:33, 27 августа 2008

Требования

  1. Ввод единичной даты;
  2. Ввод произвольного диапазона дат;
  3. Быстрый выбор диапазона:
    1. Год;
    2. Полугодие;
    3. Квартал;
    4. Месяц;
    5. Неделя;
  4. Быстрый ввод с клавиатуры с подстановкой текущей даты (текущего дня, месяца, года), подобно тому, как сейчас подставляются текущий день месяц и год по нажатию на клавишу пробел в TxDateEdit;
  5. Использование метасимволов:
    1. c -- сегодня
    2. з -- завтра
    3. в -- вчера
    4. н -- текущая неделя
    5. пн -- прошлая неделя
    6. сн -- следующая неделя
    7. м -- текущий месяц
    8. пм -- прошлый месяц
    9. см -- следующий месяц
    10. к -- текущий квартал
    11. пк -- прошлый квартал
    12. ск -- следующий квартал
    13. г -- текущий год
    14. пг -- прошлый год
    15. сг -- следующий год
  6. Хранение последнего введенного значения. Причем, если был использован метосимвол, то сохранятся должен именно он, а не рассчитанные на основе его значения;
  7. Хранение истории введенных значений;
  8. Хранение последнего выбора пользователя (последней активной страницы в выпадающем окошке): ввод даты, диапазона, квартала, месяца и т.п.
  9. Возможность работы только с клавиатуры без помощи мыши;
  10. Компонент должен быть реализован ввиде автономного pas файла (группы pas файлов) и не иметь связей с кодом платформы Гедымин.

Визуальный интерфейс

Компонента должна представлять TCombobox или TPanel с расположенным на ней TCombobox, где в окошке редактирования производится ввод диапазона дат. Начальная дата и конечная дата разделяются символом '-'.

Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиши стрелка вниз), под окошком ввода дат должен появляться элемент TPageControl со следующими закладками:

  1. История - можно просмотреть и выбрать ранее введённые пользователем данные из списка TListBox.
  2. Произвольный выбор дат - можно выбрать даты диапазона из двух элементов-календарей TMonthCalendar.
  3. Год - выбор года из списка TListBox.
  4. Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка TListBox.
  5. Месяц - выбор месяца по году из первой даты, если она есть. выбирается из списка TListBox.
  6. Неделя - выбор недели по году из первой даты, если она есть. Выбирается из списка TListBox.
  7. День - выбор дня по году из первой даты, если она есть. Выбирается из списка TListBox.

Детали реализации

Визуальный компонент должен быть наследован от стандартного компонента TPanel.

Персональные инструменты
Пространства имён

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