|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.05.2012, 22:21 | #1 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 19
|
Как Сделать Организовать покупку
Есть 2 таблицы Товары и заказы. Допустим в магазине 100 единиц. Надо добавить в таблицу товары так чтобы от товаров в магазине отнялось же количество которое заказали и если это количество достигнет 0 писалось в спец. поле "нет в наличии''.
Связь Delphi + Access 2007 через ADOTable В Бд 2 таблицы "Товары в Магазине" и "Корзина" Отображено через DBGrid1 и DBGrid2 . Поля "Товары в Магазине" ID название товара цена количеств Поля "Корзина " ID заказа название товара количество заказанного Нужен код на кнопку так чтоб поля название товара переместилось в таблицу "Корзина " . И самое главное от количество "Товары в Магазине" отняло то количество которое добавили в таблицу "Корзина" Последний раз редактировалось Black_Wolf; 03.05.2012 в 00:13. |
02.05.2012, 23:13 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ты принял товары от поставщика в определенном количестве - этот документ (накладная) записывается как очередная запись в базу склада. Суммарная цифра по принятым накладным от поставщика даст общий остаток товара на складе.
Далее ты продаешь - так же формируется накладная на передачу определенного колва товаров получателю. Получается новая запись со статусом продажи и количеством проданного товара. И вот что у тебя записано в базе: 01 05 2012 Чупачупс 20шт розница 5 баксов 02 05 2012 Сникерс 80шт розница 15 баксов 02 05 2012 Чупачупс 8шт розница 5 баксов Это принято на складе. Запрос типа Код:
Чупачупс - 28 Сникерс - 80 Далее ты продаещь - делаешь запись в БД 02 05 2012 Покупатель 1 Чупачупс 1шт 02 05 2012 Покупатель 2 Чупачупс 3шт 02 05 2012 Покупатель 2 Сникерс 1шт При этом получив кол-во товаров на складе прибавляешь к этому числу (запросом конечно же) проданное - Если оно меньше нуля проводка отменяется, покупателю предлагается купить товар в меньшем количестве. Сам запрос зависит от того как ты построишь свою базу. Т.е он может выглядеть типа: Код:
Сразу скажу - не стоит корректировать кол-во товара на складе напрямую. Лучше формировать документы прихода-расхода, а уже после группируя их добиваться своей цели. Если станешь изменять (отнимать кол-во товара остатка на складе) при продаже, то после можешь просто концы с концами не свести а что же и как было продано. Каждая продажа должна отражаться в базе в виде документа, характеризующуего эту продажу Все должно проводиться как совокупность документов на приход и расход. И не волнуйся за запутанность - если правильно построишь реляции, ты ее просто не заметишь. И в товарном отчете твое сальдо будет выглядеть правдоподобнее Теория ясна?
I'm learning to live...
|
03.05.2012, 00:19 | #3 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 19
|
Есть ли варианты организовать через всё через Delphi ? без SQL
|
03.05.2012, 07:47 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Есть. Чем SQL не угодил?
I'm learning to live...
|
03.05.2012, 18:20 | #5 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 19
|
|
03.05.2012, 21:27 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Так ведь SQL можно и в программе Делфи использовать. В компонентах типа Query.
Я просто никак не могу представить как этопроще сделать обычными методами компонентов... Дале lookUp возможности тут придется наворачивать до тонны кода (имхо)
I'm learning to live...
|
03.05.2012, 23:42 | #7 |
Пользователь
Регистрация: 24.04.2012
Сообщений: 24
|
У меня немножко по другому, можете помочь)
есть 2 таблицы "Доступный товар"(Название,Модель, Цена, Количество) и "Окно заказа"(Название,Модель, Цена). Обе размещены на форме через DBGrid, а в проекте через ADOQuery. Я не могу сделать, чтобы при выборе товара с таблицы "Доступный товар", запись появлялась в в таблице "Окно заказа", при этом с уменьшалось кол-во с доступного товара. На кнопке выбрать я прописал код, но он только перемещает с таблицы в таблицу, но не отнимает кол-во( вот код: Код:
Последний раз редактировалось Stilet; 04.05.2012 в 07:59. |
04.05.2012, 08:02 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну если ты все же хочешь именно отнимать из базы склада цифру, то:
Код:
Причем учти вместо -1 ты можешь поставить кол-во товара, который продал
I'm learning to live...
|
05.05.2012, 06:40 | #9 |
Пользователь
Регистрация: 27.08.2011
Сообщений: 10
|
http://basicsprog.ucoz.ru/publ/3-2-2
Урок 1.1 Пишем программу складского учета. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как организовать? (C++) | Jеня | Помощь студентам | 2 | 20.11.2011 18:43 |
требуется разработчик онлайн-системы учета заявок на покупку авиа и ж/д билетов, Symfony + postgreSQL | unicomm | Фриланс | 2 | 14.10.2011 11:29 |
Как организовать хеш? | Utkin | Общие вопросы по программированию, компьютерный форум | 12 | 04.01.2011 09:31 |
как организовать цикл? | Aqil_f | Microsoft Office Excel | 3 | 03.06.2009 10:13 |
Как лучше организовать базу данных типо как в ICQ | Руслантус | БД в Delphi | 3 | 09.08.2008 23:57 |