|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Программа для продажи товара (Delphi 7)
Привет всем! Хочу создать программу через которую можно будет продавать товары. Уже создал базу данных в Access подключил ее в DBGrid через ADO теперь могу создавать, редактировать товар и сохранять в эту базу. Сейчас встал вопрос реализации самого момента продажи этого товара, не могу сообразить как это сделать. Вопрос такой, мне надо создать в этой БД еще одну таблицу (промежуточную), чтобы при выборе товара он заносился туда и когда чек будет закрыт все эти товары (точнее их количество) списывалось из первой таблицы? Верно я мыслю? Подскажите пожалуйста я новичок в программировании. Заранее благодарен!
|
#2
|
|||
|
|||
Нет, не верно.
Вообще, если поискать по форуму, то я уже давал расклад по архитектуре подобных систем. Повторю в кратце. Подобные системы бывают 2х типов: Первый тип - основанные на количественном учете, т.е. то, что ты пытаешься сделать. Проблемой этого типа систем является то, что все операции производятся раздельно (можно пытаться объединить в единую транзакцию, но там свои подводные камни). Т.е. у тебя фактически одно и то же число хранится в нескольких местах и требует синхронного обновления. Второй тип - системы основанные на документах. В системах такого типа данные (ну, кроме разных справочников) хранятся в виде приходных-расходных документов. В твоем случае: - У тебя уже есть таблица товаров. Это, фактически, твой справочник товаров. - Теперь тебе надо сделать таблицу документов. Там будет 2 типа документов. Приходные, например, приход товара на склад от поставщика. И расходные, например, отпуск клиенту - чек. Текущее наличие товара считается как (сумма прихода) - (сумма расхода). Кстати, там есть возможность делать быстрое резервирование - созданием документа резервирования и удаления таких документов при окончании редактирования основного расходного документа. PS. У тебя курсач или что-то серьезное? Последний раз редактировалось lmikle, 14.07.2017 в 03:56. |
#3
|
|||
|
|||
Спасибо за ответ! Нет не курсач просто увлекся программированием и стало интересно разобраться как это работает. То есть я создаю еще таблицу с такими же столбцами как в первой? и делать в эту таблицу как бы занесение товара и убирания его от туда? то есть будет работать так: когда я выбираю товар из таблицы1 (которая уже создана и там есть товар) он переносится в таблицу2 когда я товар продаю в таблицу2 заносится еще строка этого товара но с меньшим количеством и потом это передается в таблицу1? так это работает? или я все таки не чего не понял(
|
#4
|
|||
|
|||
нет, не понял.
фактически, у тебя есть таблица-справочник по товарам: - Артикул (уникальный ключ) - Наименовани - Цена для продажи - др. параметры Кол-ва нет. Кстати, тут есть нюанс, если хочется менять цену и хранить историю этого, но это отдельный вопрос. Теперь тебе нужна таблица документов. На самом деле там 2 таблицы - заголовок документа и позиции документа. Но для простоты объяснения будем считать, что по одному документу мы получаем или отпускаем только одно наименование товара. Таблица будет выглядеть примерно так: - номер документа (уникальный ключ) - дата документа - тип документа (ссылка на справочник документов, т.е. еще одна таблица, для простоты будет считать, что тут у нас хранится -1, 0 или 1) - код товара (ссылка на 1ю таблицу) - цена товара по документу (вот это будет копироваться со справочника, но можно править) - кол-во единиц товара купленных/проданных по документу Тогда текущий остаток товаров всегда можно посчитать путем сложения по всем документам с учетом типа документа. тогда резервирование товара реализуется как обычный документ. |
#5
|
|||
|
|||
Ясно, спасибо. Но это больше похоже будет на товара учетную систему, а мне по сути надо только забить товар в базу (и не важно от кого он пришел, куда ушел, какая там закупочная была цена и т.д. и т.п.), потом продать его и чтобы количество просто уменьшалось.
То есть такая концепция: 1. Создать Таблица1 в БД (Поля: код, наименование, цена, остаток), в программе сделать удобную форму (Форма1) для занесения товара в эту таблицу. 2. Создать Форма2 где можно было бы выбирать товар из Таблица1, потом указывать количество продаваемого товара и нажать кнопку [Продать], при нажатии указанное количество вычиталось бы из количества в Таблица1 и все, от программы больше нечего не требуется. Такая схема не будет работать? |
#6
|
|||
|
|||
Для обучения - будет.
Для курсача, а уж тем более для какой-то более серьезной цели - нет. |