![]() |
|
Модераторы: gambit |
![]()
|
|
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Привет всем!
Прошу помощи. В БД есть обычные таблицы Товары, Клиенты и т.д. Нужно в приложении, хотябы как то примитивно, реализовать продажу товаров.. Я бы хотел сделать какойто документ "Реализация" использующий Данные таблиц из БД.. Помогите кто чем может... (ой прям как попрошайка.. --------------------
namespace informatik |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
informatik,
Приветствую. Сейчас иду в школу, вечером вернусь вышлю примерчик. И напиши более подробно ТЗ Успехов. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Привет thomas!
Есть простенькая БД. Тыблицы БД: 1. Products - Товары; 2. Clients - Клиенты; 3. Emoloyees - Сотрудники; 4. Departments - Отделы Вот схемка в VS. ![]() В нее наверняка надо что-то добавить.. Цели: 1. В программе должен быть создаваемый документ "Реализация", для реализации товаров. В этом документе должны указываться: клиент, сотрудник и список товаров из соответствующих таблиц. 2. Ну и далее соответственно должна быть возможность выбирать данные по продажам. Меня интересует конкретно как реализовать документ "Реализация"?? Заранее благодарен --------------------
namespace informatik |
|||
|
||||
| thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
informatik,
Приветствую.
Для этого нужно в БД создать две таблицы: первая содержит общие данные об этом документе, вторая сожержит детальные данные. В первую таблицу заносим следующие данные: -клиент, кому продан товар(поле client_id - связь с таблицей данных на клментов); -сотрудник, кто продал товар (поле emp_id - связь с таблицей сотрудники); -дата, когда произошла продажа - поле типа datetime; -оплачено/не оплачено - поле типа boolean, для контроля оплаты; -номер документа - поле типа string, для хранения номеров, если не предусмотрена специальная система нумерации, когда номер можно использовать как id записи в таблице; (*) -собственно id записи, логично использовать автонумерацию. * Для специальной нумерации можно, к примеру, применить формат уууу00001, где первые 4-ре знака год, а последующие номер в году. Т.е. с первого января каждого года отсчет возобновляется с 200800001, 20080002, 200800003, ... ,200900001, 200900002, ... . Такая нумерация уникальна, нет повторяющихся значений, может быть использована в качестве первичного ключа в таблице. Во вторую таблицу заносим данные отражающие содержание документа: - id записи - поле автонумерации; - товар, который продан - поле p_id (связь с таблицей товаров); - количество, сколько товара отпущено - поле типа int; - цена, по какой цене отпущен товар - поле типа money(SQL server); - id записи из предыдущей таблицы(номер документа) - поле соответствующего типа(int или string) для связи таблиц(главный-подчиненный).
Это делается через запросы к таблице содержащей данные на "шапку" документа реализации. Записи фильтруются по дате, по клиентам, по сотрудникам, комбинации из дата + клиент, дата + сотрудник, дата + клиент + сотрудник. Из связанной таблицы (данные о деталях) получаешь данные о суммарной стоимости проданного товара - для каждого отдельного документа или по группе или по всем. Вот собственно, если кратенько. В зависимости от конкретного предприятия(бизнеспроцесса) можно добавить те или иные поля в таблицы. Например если разрешена частичная оплата, то нужно в таблицу детали добавить поле, отображающего оплату каждого товара. Плюс завести таблицу истории проплат, связав в ней данные о клиенте, документе реализации(или записи в таблице деталей документов реализации), возможно о сотруднике, указать дату проплат. С дополнительными вопросами милости просим. Успехов. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Большое спасибо thomas!!!
А вопросы у меня конечно же еще есть.. Я создам форму "Реализация". В ней будет шапка и таблица с товарами. Товары должны выбираться из открываемой формы со списком товаров. Вопрос в том: Как лучше и проще организовать данную функциональность?? И еще вопросик: Товары будут делиться по группам. Как реализовать деление по группам и подгруппам, а также отобразить все это дело на форме..??? Хелп ми.... --------------------
namespace informatik |
|||
|
||||
| thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
informatik,
Приветствую.
Для этого создаешь еще две таблицы и добавляешь еще одно поле idподгруппы в таблицу товаров, для связи с таблицей подгрупп. Первая таблица группы: id, name Вторая таблица подгруппы: id, name, idgroup(для связи с родительской таблицей) Все. На форме для групп и подгрупп можно использовать комбобокс. Загружаешь группы в первый комбобокс. Пишешь для него обработчик события выделения, в котором для выбранной группы загружаешь её подгруппы во второй комбобокс. Пишешь обработчик события для выделения, в котором выбираешь товары данной подгруппы и отображаешь их в datagridview. Выбрал товар в гриде и передаешь его в форму реализации. Только вместо этого
Использовать лучше одну форму. Иначе пользователю каждый раз надо открывать форму для выбора товаров. А в одной форме гораздо удобнее: слева поместил комбобоксы один под другим и грид подними, а справа вверху поля для ввода данных шапки документа, ниже контролы для ввода строки с выбранным товаром. Все что выбрал отображается в гриде, а внизу контролы для отображения суммы и кнопка для сохранения документа. Примерно так. Это как вариант. Можно конечно и по другому, в зависимости от предпочтений пользователя. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Еще раз тебе огромное спасибо!!!
Я хочу в одном документе продавать много товаров(т.е. в нижней части документа будет таблица), именно для этого хочется выбирать товары из другой формы, и именно в форме выбора товаров нужно реализовать многогрупность.. --------------------
namespace informatik |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
thomas, ты страшно давишь своим интелектом... становится трудно дышать... тебе намекают, что хватит уже, хватит, а ты не успокаиваешься все +1 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Да я на него недавил, и тем более не намекал
thomas, монстр!!! <-------------- Monster LINK и плюсы ему по заслугам, была бы возможность то сам бы добавил... Это сообщение отредактировал(а) informatik - 16.1.2008, 23:30 --------------------
namespace informatik |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
informatik,
то что я описывал выше может выглядеть примерно так: ![]() Там слева выбор группы, для нее выбор подгруппы, для подгруппы ниже отображаются товары. Если там выбрать товар, то его данные отображаются справа в "Данные документа реализации". Проставил кол-во, указал скидку и жми кнопку "Добавить" в заказ. Ниже грид, для отображения этих строк. (Грид привязан к временной таблице в ДатаСет, для хранения строк текущего "заказа", после сохранения их в базу таблица обнуляется для следующего "заказа") Снова выбрал товар в списке(надо поменял подкатегорию или даже категорию) проставил ко-во, указал скидку жми кнопку, товар добавился в список и отобразился в гриде. Под гридом сразу же отображается общая сумма. Добавил в заказ не тот товар жми кнопку "Возврат" и нет строки с этим товаром в заказе и в гриде. Закончил набирать товары, жми кнопку "Сохранить" данные сохраняются в таблицы БД. Шапка документа реализации в свою таблицу, строки(детали) в свою таблицу. Нажал на кнопку "Следующий" все текстбоксы и надписи очистились, таблица(временная, в памяти) заказа обнулилась, грид очистился. Выбирай клиента, вводи код в текстбокс и жми Энтер, данные на клиента из базы отображаются в контролах на верху. Дата документа сегодня, номер присвоился автоматически(при нажатии кнопки "Следующий") и отобразился. Выбирай товар, набивай заказ. И не надо двух форм. Одной вполне хватит. Все видно, и не надо передавать данные между формами.(код писать удобнее) Надеюсь примерчик пригодиться. Успехов. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Усе понятно! Благодарствую thomas!
--------------------
namespace informatik |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |