|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.01.2011, 07:04 | #1 |
Пользователь
Регистрация: 25.12.2010
Сообщений: 20
|
Вычитание товара из склада
Краткое описание задачи проги:
Содержание технологических карт приготовления блюд, учёт продуктов имеющихся (непосредственно склад), учёт людей питающихся, калькуляция порций соответственно продуктов затраченных на это количество порций, и вычитание продуктов использованых из таблицы склад... Как то так... Delphi 7, Paradox 7... проблема вот в чём, Есть таблица "Технологическая карта" к ней привязано ещё куча таблиц и справочников, на её основе ведутся все расчёты.. Далее... Примерно всё выглядит так... Человек выбирает блюдо DbLookupCombobox, далле методом фильтрации в дб гриде остаются только те продкты которые исопльзуются в выбранном блюде.. соответственно отображается технология приготовления фото и тд... далее указывается кол во человек на основе этого числа умнажается масса продуктов в дбгриде в отдельное поле калькулэйт созданное мной в Query .... И вот что получается ... Есть отдельная таблица склад... На другой форме (не там где тех карта) дб грид показывает эту таблицу.. Вот в чём вопрос : Нужно взять Наименование продуктов Из таблицы Технологическая карта ... сравнить с наименованием продуктов на складе (так как таких может и не быть) (хотя тут есть и другой вариант разития но эт не так важно) ... и патом взять полученную массу продуктов после ввода кол - ва человек (то есть не одну строку а все - сответственно по наименованию продукта), и эти массы сравнить с количес твом продуктов в таблице склад... И если масса продуктов не привышает количества продуктов на складе , нужно произвести вычитание массы продуктов расчитанных по кол - ву человек из количества продуктов на складе.. Пожалуйста подкиньте идей как это прописать на 1 кнопке... плииз |
08.01.2011, 10:16 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
если Ваша СУБД поддерживает транзакции, то начать транзакцию. дальше в цикле по всем продуктам, выбранным для данного блюда проверить наличие на складе - если достаточно - с помощью операции Код:
ИНАЧЕ (Если же товара недостаочно) - прерывание цикла и ОТКАТ транзакции если цикл завершился без прерываний - подтверждение транзакции. Если транзакции нет. Тогда, в случае недостатка товара, нужно либо производить вручную откат всех сделанных на складе изменений, либо придумывать механизм временного блокирования выдачи товара (например, добавить ещё одно специальное поле-семафор. Если в этом поле есть значение, значит с этим товаром идёт работа по заполнению карты и другим пользователям нельзя брать этот товар. Тогда первым циклом пройтись по нужным товарам, проверить их наличие и необходимое количество, проверить, что флажок не установлен (никто с другого компьютера не работает с этим же товаром) и установить флажок. А вторым циклом уже уменьшать количество и снимать флажок. p.s. как видите, с помощью транзакций всё решается намного проще. p.p.s. если СУБД допускает - я бы вынес операцию на сторону сервера (в хранимые процедуры) |
|
08.01.2011, 14:51 | #3 |
Пользователь
Регистрация: 25.12.2010
Сообщений: 20
|
Всё немного проще... по идеи должно быть... прога расчитана на использование 1 человеком... Я извеняюсь конешно я не гений в этом...
Вот так вот я немного придумал Код:
Последний раз редактировалось Lexovt; 08.01.2011 в 14:53. |
08.01.2011, 15:05 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну так добавьте цикл по всем товарам, имеющимся в техкарте...
только Вам всё равно понадобится два цикла - в первом проверите, что весь необходимый товар в нужном количестве имеется на складе. во втором проходе цикла - отминусуете нужное количество по каждому товару. p.s. без структур таблиц, примера СУБД и кода проекта, конкретные советы не дашь... |
08.01.2011, 16:14 | #5 |
Пользователь
Регистрация: 25.12.2010
Сообщений: 20
|
|
09.01.2011, 08:38 | #6 |
Пользователь
Регистрация: 25.12.2010
Сообщений: 20
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
разработать базу данных для автоматизации учетной информации склада | Student_17 | Фриланс | 6 | 27.11.2010 14:10 |
Проектирование БД для склада | Ivan_32 | SQL, базы данных | 3 | 27.09.2010 14:08 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Пример базы данных магазина,склада и тп | gred | Microsoft Office Access | 1 | 19.06.2009 10:58 |
Посчитать разницу прихода и ухода со склада | bikeeva julia | Microsoft Office Excel | 3 | 01.05.2009 11:50 |