Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Ввод   Найти похожие ветки 

 
b_baranov   (2002-11-27 22:02) [0]

В приложении есть необходимость регистрировать много прошедших событий. Иногда известна полная дата события, иногда - месяц и год, иногда - только год. В последующем данные планируется экспортировать в документы: напр. "В январе 1990 года ..., в 1995 году ..., 12.11.2000 - ..." Какие из визуальных инструментов посоветуете использовать? Если поля ввода, то нужно организовывать довольно сложный контроль вводимых данных, если "календарь" то не отразить отсутствие данных дне или месяце. Если кто-нибудь сталкивался с подобной проблемой, поделитесь пожалуйста опытом.


 
Jeer ©   (2002-11-27 22:10) [1]

Нда, чего только в говолю не полезет.
Один из методов мной применяемых.
В отдельной таблице регистрируется
дата в формате DATE
год
месяц
неделя
день
рабочий день
воскресный
праздник

В документах - ссылка на id этой таблицы

Тебе придется похоже использовать столько компонентов и таких, чтобы позволить выбрать нужные варианты.
В качестве признака неизвестности - ноль например, а отсчет значимых с 1 вести.


 
Jeer ©   (2002-11-27 22:12) [2]

Да, и в некоторых библ-ках, есть комбинированный календарь именного такого рода (но отдельные контролы)
То ли Soho то ли..


 
b_baranov   (2002-11-27 22:16) [3]

Не подскажете хоть приблизительно, где искать?


 
Jeer ©   (2002-11-27 22:17) [4]

Так а кто мешает отделные контролы ввести для года, месяца, дня и даты (или еще чего)


 
b_baranov   (2002-11-27 22:26) [5]

Т.е. предлагается иметь возможность ввести дату или ее составляющие по выбору и фиксировать в зависимости от того, что есть? Наверное нормально, тогда для удобства ввода (дат много и в разных Формах - неск. десятков) наверное нужно сделать какой-ннибудь унифицированный визуальный элемент... Или это сложно и не стоит тратить время, а воспользоваться стандартными?


 
b_baranov   (2002-11-27 22:32) [6]

А как тогда описать целостность базы? Ведь дата должна обязательно присутствовать

День Месяц Год Дата Событие

Кого бы объявить Not Null кроме События?


 
Jeer ©   (2002-11-27 22:35) [7]

Ввести специальные значения для признака отсутствия содержательности данного поля - ноль, например.
Если присутствует хотя бы один не ноль в дне, месяце, годе значит не дата, иначе - дата значима.


 
Jeer ©   (2002-11-27 22:36) [8]

Думаю, что не стоит тратить время на спец. компонент, а сделать на основе фреймов


 
b_baranov   (2002-11-27 22:41) [9]

Для визуализации данных это понятно как сделать, а вот как описать в ограничениях ссылочной целостности пока не представляю (IB6)


 
Jeer ©   (2002-11-27 22:49) [10]

Так это вообще вне алгебры Кодда:))

Да и зачем все усложнять...
В чем проблема-то ?
Скажем есть Combobox с месяцами
Но первым идет знак вопроса ?
Далее Янв...Дек.
В таблицу заносишь индекс Комба.

При выборке указываешь <>0 или наоборот =0
смотря что надо.

Например, легко выбрать данные за нужный квартал, если при занесении даты, вычисляется и заноситься номер квартала.
Впрочем, многое определяется возможностями используемой СУБД (диалектом SQL)


 
b_baranov   (2002-11-27 23:02) [11]

Я имею в виду, что при регистрации записи о событии должна одновременно присутствовать информация о событии и времени его свершения, в противном случае запись не может быть занесена, т.к. без одного из составляющих ее в последующем не оценить...
Похоже решение в том что нужно завести еще одно поле и фиксировать в нем факт занесения "даты". И вводить ограничения по этому полю.

Спасибо за помощь


 
Andrey007   (2002-11-28 10:15) [12]

>Похоже решение в том что нужно завести еще одно поле и фиксировать в нем факт занесения "даты". И вводить ограничения по этому полю.

Если я правильно понял суть проблемы, то при регистрации записи в таблице нужно отдельно заносить информацию о годе, отдельно о месяце, и отдельно о дне. Т.е. надо сделать 3 поля целого типа (можно и вещественного). Ноль (или Null) означает отсутствие данных.



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
3-27801
Serg_zxcvbnm
2002-11-22 11:46
2002.12.09
синхронизация данных у пользователей


1-28048
maxval
2002-11-30 14:48
2002.12.09
Как в DateTimePicker записать дату в формате год/месяц/год?


1-28070
Vagrant
2002-11-27 01:58
2002.12.09
Runtime error 216


1-28077
Павел
2002-11-28 08:53
2002.12.09
RichEdit


1-27991
pavel_ak
2002-11-29 14:21
2002.12.09
TOleContainer не хочет создавать объект