Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Структура таблиц сроков исполнения


toropoff ©   (2011-11-08 18:50:00) 

необходимо написать мелкую программу по документообороту.

- на входящий документ может быть несколько ответственных за исполнение.
- у каждого могут быть свои сроки.
- сроки могут быть как определенная дата, так и ежемесячно (каждый квартал, каждый понедельник и т.п.)

входящие: кодВх, ..
ответственные: кодОтв, ..

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


KilkennyCat   (2011-11-09 02:44:00) [1]


> Таблица "Расписания" :
> 1. Однократно
> 2. Раз в неделю
> 3. Раз в месяц


я бы проще и универсальнее сделал

(начать в TDateTime)(повторять N раз)(каждые NN секунд)
а уж секунды визуализировать как угодно, еженедельно, ежеквартально...


toropoff   (2011-11-09 00:19:00) [2]

спасибо Ega23 ©!
правда после первого прочтения почти ничего не понял..
попробую завтра с утра переварить..


Ega23   (2011-11-08 21:28:00) [3]


> А, я понял.:)


Я, кажется, тоже. Но, свят-свят-свят, с 1Ц работать не  приходилось. Ни разу. :)


Inovet   (2011-11-08 21:23:00) [4]

> [6] Dennis I. Komarov ©   (08.11.11 21:17)
> ...не бери в голову ;)

А, я понял.:)


Dennis I. Komarov   (2011-11-08 21:17:00) [5]


> "Следующий_Понедельник(date)", "Начало_Следующего_Квартала(date)",
>  "Каждый_Сцуко_чОтный_День(date)"

...не бери в голову ;)


Ega23   (2011-11-08 21:10:00) [6]


> Ты не понял, я не про это... :)


А про что?


Dennis I. Komarov   (2011-11-08 20:46:00) [7]


> Ega23 ©   (08.11.11 20:42) [3]

Ты не понял, я не про это... :)


Ega23   (2011-11-08 20:42:00) [8]


> 1С-кой пахнет...


Ничуть.
a-la "Планировщик задач" aka Scheduler

Просто надо очень аккуратно бизнес-логику прописать.

Таблица "Расписания" :
1. Однократно
2. Раз в неделю
3. Раз в месяц
....
В общем, те самые F(date)

Таблица "Статусы задания"
1. Не начато
2. В процессе
3. Завершено
4. Просрочено
5. Удалено (например, в основной выборке такие скрываются, но по желанию - можно показать)
6. Приостановлено
И т.д.

Для статусов очень аккуратно расписать конечный автомат по переходам из одного статуса в другой.

Таблица "Задания"
Атрибуты:
1. Расписание
2. Автопродление
3. Дата начала
4. Дата окончания
5. Автоудаление
6. Какой-нибудь "тип"
7. Ответственный(е)
8. Статус задания
9. Что-то ещё.

Как-то так.


Dennis I. Komarov   (2011-11-08 19:57:00) [9]


> Ega23 ©   (08.11.11 19:44) [1]

1С-кой пахнет...


Ega23   (2011-11-08 19:44:00) [10]


>  так и ежемесячно (каждый квартал, каждый понедельник и
> т.п.)


Даю подсказку: каждый понедельник - это тоже дата. Каждый квартал (начало и конец) - тоже.

Т.е. ДатаСрокаИсполнения_N = F(ДатаСрокаИсполнения_N-1);

Дальше заводишь таблицу (можно и без таблицы, я условно) этих самых F(date).
Например "Следующий_Понедельник(date)", "Начало_Следующего_Квартала(date)", "Каждый_Сцуко_чОтный_День(date)"
И т.д.


Наверх

Титульная страница Поиск, карта сайта Написать письмо