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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Визуальный интерфейс)
(Визуальный интерфейс)
Строка 18: Строка 18:
 
=== Визуальный интерфейс ===
 
=== Визуальный интерфейс ===
  
Компонента должна представлять собой внешне комбобокс или панель с расположенным на ней комбобоксе, где в окошке редактирования производится ввод диапазона дат. Начальная дата и конечная дата разделяются символом '-'.
+
Компонента должна представлять TCombobox или TPanel с расположенным на ней TCombobox, где в окошке редактирования производится ввод диапазона дат. Начальная дата и конечная дата разделяются символом '-'.
  
Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиш Down), под окошком ввода дат появляется панель со следующими закладками:
+
Для ввода единичной даты, достаточно, чтобы одна из дат диапазона была пустой. После клика мышкой по элементу в правой части окошка редактирования (или при помощи клавиш Ctrl-Down), под окошком ввода дат должен появляться элемент TPageControl со следующими закладками:
  
# История - можно просмотреть и выбрать ранее введённые пользователем данные.
+
# История - можно просмотреть и выбрать ранее введённые пользователем данные из списка TListBox..
# Произвольный выбор дат - можно выбрать даты диапазона из двух календарей.
+
# Произвольный выбор дат - можно выбрать даты диапазона из двух элементов-календарей TMonthCalendar.
# Год - выбор всего года. Год выбирается из списка.
+
# Год - выбор всего года. Год выбирается из списка TListBox.
# Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка.  
+
# Квартал - выбора квартала по году из первой даты, если она есть. Выбирается из списка TListBox.
# Месяц - выбор месяца по году(?) из первой даты, если она есть. выбирается из списка.
+
# Месяц - выбор месяца по году из первой даты, если она есть. выбирается из списка TListBox.
# Неделя - выбор недели по году(?) из первой даты, если она есть. Выбирается из списка.
+
# Неделя - выбор недели по году из первой даты, если она есть. Выбирается из списка TListBox.
# День - выбор дня по году(?) из первой даты, если она есть. Выбирается из списка.
+
# День - выбор дня по году из первой даты, если она есть. Выбирается из списка TListBox.
  
 
=== Детали реализации ===
 
=== Детали реализации ===

Версия 19:39, 25 августа 2008

Требования

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

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

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

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

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

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

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

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

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