Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь клиентов, Передача сообщений  
:(
    Опции темы
Novichek27
Дата 10.4.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 24.4.2010

Репутация: 1
Всего: 1



Привет всем.

Есть БД Firebird и 5 клиентов(Delphi7+FibPlus7) подключенных к ней, имеющих свою форму и определенные действия.

Как реализовать такое?:
2 из них, выбирая из таблицы определенные записи делают заказ(отправляется сообщение 3-му), остальные по порядку 3-ий подтвердил, сообщение идет дальше 4-ый подтвердил и 5-ый подтверждают его и заказчик получает об этом сообщение(о состоянии заказа).

Также выбранные заказчиком записи должны увидеть и отредактировать их при необходимости 3-ий, 4-ый, и 5-ый.


Буду признателен за ответы.
PM   Вверх
Akella
Дата 10.4.2011, 20:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Наверное можно создать некую таблицу в которую будет записан ID заказа и код состояния: 1, 2, 3, 4 или 5. Дальше, надеюсь, сообразишь, что делать.
PM MAIL   Вверх
cat512
Дата 10.4.2011, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 1
Всего: 15



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

Добавлено через 13 минут и 27 секунд
Цитата(Akella @ 10.4.2011,  20:03)
Наверное можно создать некую таблицу в которую будет записан ID заказа и код состояния: 1, 2, 3, 4 или 5. Дальше, надеюсь, сообразишь, что делать.

Думаю, что через таблички и бизнес-логику на сервере - однозначно. А вот вопрос по поводу структуры актуален.
Тут ещё не понятно о каких сообщениях идёт речь. Если имеется ввиду - сетевые соединения между клиентами, то реализация будет запутанной и трудно-сопровождаемой.
Вообщем будем ждать ответа ТС

Это сообщение отредактировал(а) cat512 - 10.4.2011, 20:09
PM MAIL   Вверх
Novichek27
Дата 10.4.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 24.4.2010

Репутация: 1
Всего: 1



Цитата

Наверное можно создать некую таблицу в которую будет записан ID заказа и код состояния: 1, 2, 3, 4 или 5. Дальше, надеюсь, сообразишь, что делать.


Я думаю да, постараюсь. Если нет, то буду сообщать об этом.

Цитата

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


Совершенно верно, они(2 или м.б. больше оператора) пдтверждают или опровергают заказ, или корректируют его и подтверждают. 

Цитата

Тут ещё не понятно о каких сообщениях идёт речь.


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

Вопрос еще открыт господа...


PM   Вверх
Akella
Дата 10.4.2011, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Novichek27 @  10.4.2011,  20:51 Найти цитируемый пост)
Совершенно верно, они(2 или м.б. больше оператора) пдтверждают или опровергают заказ, или корректируют его и подтверждают. 

Тогда потребуется ещё одно поле, где будет видно состояние заказа: 0 или 1.
PM MAIL   Вверх
cat512
Дата 10.4.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 438
Регистрация: 20.3.2007

Репутация: 1
Всего: 15



Класически, задачи подобного класса решаются в виде кон. автомата.
У нас будут просто проверки трёх условий
Я бы реализовал простой вариант реш. следующим образом
Табличка Orders, и табличка UsersGroups
Код

create table Orders(
Id number,
...
...
...
Changed_Date date,
State number);

create table UserGroups(
Id number,
Parent_Id number,
Name varchar2,
...
...
...);

Хранимая пргоцедура ConfirmOrders()
Код

procedure ConfirmOrders (Order_Id in Orders.Id%type; User_Id in Users.Id%type)
begin
//получаем текущее состояние заказа
//выполняем простой CASE или IF, для проверки возможности перевода заказа в другое состояние 
//текущим пользователем
//если можно то изменяем в другое состояние поле State таб. ORDERS
end;
//конечным сост. например будет State = 3;

На клиентах, выполняем по таймеру (например раз в 10 минут) запрос вида:
Код

Select * from Orders where state = 3 and Changed_Date > :p_last_changed_date

для определения события обновления заказов


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.