Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 27.11.2024 16:58

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Как перенести данные...?
СообщениеДобавлено: 10.01.2012 13:28 
Не в сети

Зарегистрирован: 29.10.2011 13:51
Сообщения: 5
Здравствуйте! Прошу помочь решить головоломку со структурой БД
Немного опишу бизнес процесс: Клиент делает нам запрос на расчет стоимости услуг по доставке груза из за рубежа, Менеджер создает проект по доставке (оптимизирует стоимость доставки, определяет маршрут доставки и т.д.) в результате у него получается сумма из нескольких услуг: фрахт, погрузочные работы, стоимость авто доставки и т.д. При этом менеджер делает несколько вариантов, разных по срокам и по цене... После расчета он озвучивает общую стоимость услуг клиенту в нескольких вариантах на выбор, клиент в дальнейшем решает "везем или не везем" и по какому варианту. Если везем, то клиент делает заявку, менеджер создает соответствующую заявку в системе с которой уже работают другие люди...
Как пока реализовано в базе:
Есть таблица "Запрос на расчет" где указывается основные характеристики запроса (данные по грузу, адреса доставки и т.д.) к ней есть несколько подчиненных таблиц основные из которых: Вариант 1, Вариант 2, Вариант 3, каждая таблица содержит одинаковые поля (№, услуга, цена и т.д., естественно по полю цена колонка суммируется). Это все выглядит как 1 проект по доставке груза.
После того как клиент соглашается с каким либо вариантом данные из запроса на расчет путем авто заполнения (значение по умолчанию (формула)) перемещаются в таблицу "Заявка на доставку" где есть подчерненная таблица "Расчет стоимости" аналогичная таблицам Вариант 1,2,3.
В данный момент перенос стоимости делается ручками, то есть если клиент выбрал Вариант 2, то менеджер из вкладки "Запрос на расчет" подчиненной таблицы Вариант 2 переносит в вкладку "Заявка на доставку" в подчиненую таблицу "расчет стоимости" все те услуги которые представлены в таблице Вар 2... этот процесс отнимает много времени, присутствует много ошибок...
Какие варианты можете предложить по решению этого вопроса? хотелось бы, что бы автоматически при выборе варианта в таблицу "Расчет стоимости" попадали данные из нужного варианта?
Если что то не понятно, пожалуйста задавайте вопрос, очень нужно доделать проект БД, так как боссы поставили задачу что то придумать, нашел данную прогу в интернете (правда взломанную, но слава богу есть на чем поучится для принятия решения о покупки лицензии), если все сделаю грамотно, то установим лицензию, и мой геморрой отпадет так как я сам не программист, приходится самому во всем разбираться.... данная прога показалась мне более чем простой и приемлемой для такого рода деятельности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 10.01.2012 14:07 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Здравствуйте! Данный вопрос решается с помощью триггера, срабатывающего при назначении определенного статуса (например, "Согласовано") - т.е. триггер на изменении при условии.
По триггерам смотрите типовой вопрос №36.
Подобные задачи реализованы в программе "Склад и торговля", смотрите туда.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 11.01.2012 18:18 
Не в сети

Зарегистрирован: 29.10.2011 13:51
Сообщения: 5
Да уж, придется все таки учится писать триггеры...
Ещё вопросик!
Столкнулся с проблемой:
У меня есть ,скажем так, 1 глобальная таблица (физическая), и есть 2 представления из этой таблице для 2х сотрудников, данные внесенные одним сотрудником являются информационной частью для другого. Но вот беда, если они одновременно зашли в одну и туже запись ( через форму редактирования), то останутся данные только того, кто нажмет кнопку последний или даже если один просто открыл форму, а второй открыл, да ещё и отредактировал, все равно данные не сохраняются. Надеюсь Вы понимаете о чем я... потому, что мне сначала казалось, что меня глючит, но потом потестил и понял что все плохо...
Может есть какое ни будь решение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 11.01.2012 18:56 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
При одновременном редактировании одной и той же записи прав тот, кто внес изменения последним. Это стандартная практика. (Правда, есть и другие более сложные подходы.)
Давайте все разберем на конкретном примере. Как именно называются ваши три таблицы? И что конкретно вносит каждый пользователь?

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

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 12.01.2012 18:08 
Не в сети

Зарегистрирован: 29.10.2011 13:51
Сообщения: 5
Сразу хочу сказать что я не очень то хорошо знаю SQL и ни когда ничего подобного не делал, всему учился по вашей справке, методом тыка, проб и слез))), когда влез в эту тему, понял, что очень важна структура базы данных, но в интернете научится к сожалению этому нельзя, есть куча книг по проектированию баз данных, но времени на доскональное изучение нет, поэтому пришел к выводу, что может методом тыка добьюсь наиболее оптимального варианта))
Есть физическая таблица tblCargo, она есть олицетворение груза и всей информации о грузе (наименования, габариты, вес, адрес загрузки, адрес выгрузки и т.д.), менеджер, вносит через представление qdfOrders (основанное на tblCargo) все данные поступающие от клиента в эту таблицу, часть этих данных отображается расчетчику в его представление qdfCastom, где расчетчик вносит стоимость оформления данного груза. В итоге в одной записи tblCargo получается не только характеристики груза, но ещё и расчетные данные. Сделано это для того, что бы в форме для редактирования была отображена вся необходимая информация для менеджера (так удобнее). Возможно есть какой ни будь другой способ, что бы форма отображала данные из нескольких таблиц?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 12.01.2012 18:17 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Чтобы форма отображала данные из нескольких таблиц, необходимо создать представление.
Меню "Таблицы" -> "Добавить таблицу" -> Тип: представление.
Также в любую таблицу можно добавить вычисляемое поле с галочкой "вывести поле из другой таблицы" - вот вам еще один способ отображения данных из несколькоих таблиц, не требующий знания SQL. Гланое - осознавать, какая связь между таблицами.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 13.01.2012 13:04 
Не в сети

Зарегистрирован: 29.10.2011 13:51
Сообщения: 5
Точно!!! Первый тест получился))) Спасибо! Оба варианта!
У меня тут ещё проблемка, думаю, что тут, что то не чисто в закрытом коде, ни как не могу сообразить, в чём дело!?. Всё перепробовал, по одному разу переделать... )
В скриншоте (в его часте), при добавлении новой записи в таблице, в поле "Запрос на расчет" по умолчанию стоит значение кусок кода "tblCargo.ID) AS SumC" из таблицы, хотя должно стоять другое значение "список значений, привязка к таблице..." Что скажите, Ivan? ! )
И ещё вопрос к разработчикам, вот у вас есть "модуль" или как он там называется..., в общем "Рассылка"...
Он работает только с smtp сервером, а можно ли сделать что бы ещё и pop сервер работал, и привязка к какому ни будь "модулю" типо "чат" ))) с клиентом? ну например, выбираешь контакт, и видишь всю переписку с ним, не прибегая к сторонним приложениям? Где нить в подчиненной таблице? Такое возможно реализовать?


Вложения:
1.JPG
1.JPG [ 25.87 КБ | Просмотров: 43596 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как перенести данные...?
СообщениеДобавлено: 13.01.2012 13:32 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Прежде всего скчайте и установите последнюю версию.
Затем зайдите в свойства поля "Запрос на расчет" и посмотрите, что там указано в "Значении по умолчанию".
По рассылке - все можно сделать, доделать, автоматизировать, но у нас пока только то, что есть.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB