Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.12.2010, 17:59
Coverty Coverty вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 2
Репутация: 10
По умолчанию БД для продажи товаров

Делаю БД для продажи товаров, как сделать так что бы при нажатии кнопки(продать) в ячейки количество товаров уменьшалось???
Ответить с цитированием
  #2  
Старый 15.12.2010, 18:13
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Делаю самолет, как сделать чтоб летал?
через что к базе подключаетесь?
На чем База? (MS SQL, InterBase и т.д.)
Таблицу в которой должно уменьшаться кол-во,в студию!

А так, как описали проблему вы, просто уменьшайте.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 15.12.2010, 20:34
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

запросы покажи
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 16.12.2010, 11:29
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

ну что-то примерно такое:
Код:
UPDATE sklad
SET kol_tovara = kol_tovara-'+Edit1.Text+'
WHERE rec_id = '+Table1.FieldByName('rec_id').asInteger+';
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #5  
Старый 16.12.2010, 11:39
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
WHERE rec_id = '+Table1.FieldByName('rec_id').asInteger+';
поправка если это динамический SQL то так наверное правильней будет:
Код:
'WHERE rec_id = '+Table1.FieldByName('rec_id').asString;
тут id в ' брать не надо, т.к. число.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #6  
Старый 16.12.2010, 19:58
Coverty Coverty вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 2
Репутация: 10
По умолчанию

BDE база данных, объясните по подробнее плизз
Ответить с цитированием
  #7  
Старый 24.12.2010, 21:03
smaw1989 smaw1989 вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 14
Репутация: 10
По умолчанию

У меня аналогичная задача что и у автора темы . Надо чтобы при добавлении в DBGrid н-ного кол-ва товара это же кол-во списывалось со склада. Подскажите пожалуйста, как это все реализовать (с чего начать и т.д. алгоритм т.е.)
Ответить с цитированием
  #8  
Старый 24.12.2010, 22:50
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Эта тема уже неоднократно буквально "обсасывалась" на форуме. Воспользуйтесь поиском. Ну а начинать надо с построения жизнеспособной модели данных. Если у вас при ручном заполнении таблиц все замечательно складывается/вычитается, то можно и визуальную часть реализовывать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 24.12.2010, 23:31
smaw1989 smaw1989 вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 14
Репутация: 10
По умолчанию

Страдалецъ
Искал и толком ничего не нашел. Беда.

Мне бы хотя бы сам алгоритм узнать- в один дбгрид я добавляю разные товары и они должнs списываться из списка товаров на складе. С чего начать? /:
Ответить с цитированием
  #10  
Старый 24.12.2010, 23:45
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну а это не подходит?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 24.12.2010, 23:59
smaw1989 smaw1989 вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 14
Репутация: 10
По умолчанию

Страдалецъ
Спасибо, эту тему читал, к сожалению, не очень понял.

Вот у меня есть дбгрид в который товары добавляются и есть справочник с количеством этого товара, который должен меняться. Скажите пожалуйста, с чего начать...?
Ответить с цитированием
  #12  
Старый 25.12.2010, 01:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Начинать с:
1. Изучения реляционной модели БД и 1-3 нормальных форм.
2. Изучения стратегии реализации склада.
Во всех промышленных системах обычно реализуется Document-driven модель, т.е. основной сущностью является документ. А кол-во товара на складе есть сумма соотв. приходных и расходных документов. Документ обычно представляет собой 2 таблицы. Первая - заголовок документа, где указываетя общая для документа информация (номер, дата, тип документа, фигурант и т.д.). Вторая - позиции документа, где указвается товар и кол-во его, товара, единиц.
Ну а далее идем в гугл и ищем соотв. статьи и читаем.
Ответить с цитированием
  #13  
Старый 25.12.2010, 02:01
smaw1989 smaw1989 вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 14
Репутация: 10
По умолчанию

lmikle
Спасибо за ответ. У меня все именно так как вы и сказали: таблицы в 3 НФ, в накладной указаны общие сведения о покупателе, в списке товаров идут товары проданные по этой накладной. Все связано и функционирует. Осталось только разобраться с автоматическим списанием товаров со склада- тут я за неимением опыта незнаю с чего начать. Понял что необходимо использовать sql-запрос update- а дальше как? Строить его таким образом, чтобы обновлялись поля "№ товара" и "количество" из ДБГрида в который происходит добавление?
Ответить с цитированием
  #14  
Старый 25.12.2010, 05:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от smaw1989
lmikle
Спасибо за ответ. У меня все именно так как вы и сказали: таблицы в 3 НФ, в накладной указаны общие сведения о покупателе, в списке товаров идут товары проданные по этой накладной. Все связано и функционирует. Осталось только разобраться с автоматическим списанием товаров со склада- тут я за неимением опыта незнаю с чего начать. Понял что необходимо использовать sql-запрос update- а дальше как? Строить его таким образом, чтобы обновлялись поля "№ товара" и "количество" из ДБГрида в который происходит добавление?

Еще раз говорю - в модели Document-driven у тебя не хранится кол-во товаров. Оно вычисляется как сумма приходных и расходных документов по соотв. товарам.
Ответить с цитированием
  #15  
Старый 25.12.2010, 11:48
smaw1989 smaw1989 вне форума
Прохожий
 
Регистрация: 17.12.2010
Сообщения: 14
Репутация: 10
По умолчанию

lmikle
Ваше сообщение из темы, ссылку на которую выше давал Страдалецъ

Цитата:
Сообщение от lmikle
вообще-то, есть всего 2 модели ведения склада.
1. Модель хранения остатков. Есть таблица, где указаны численные значения остатков товаров на складе. Неудобность этой модели в том, что в случае отмены какой-либо операции тебе надо восстанавливать значения. также, если в процессе выполнения какой-либо сложной операции у тебя что-то отвалилось, то не факт, что там будет правильное значение. Плюс сложность реализации резервирования.
2. Модель прихода-расхода. в этом случае у тебя текущее состояние на складе вычисляется как сумма приходных и расходных накладных. Недостаток - через некоторое время вычисление суммы начинает занимать значительное время. Решается путем введения доп. документа "Инвентаризация". Тогда вычисление проводится от момента последней инвентаризации. Т.е. у нас есть доп. документ.

Исходя из этих моделей, у тебя должен быть документ, реализующий выдачу со склада товара, для сборки некоторого изделия. Кстати, его можно реализовать в виде шаблона, когда ты указываешь изделие, а программа автоматически составляет расходную накладную по некоторому справочнику на отдельные товары/детали.

Вот у меня как раз-таки 1 модель, разве нет?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:08.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025