Помогите разобраться
Ситуация следующая :
Есть 2 таблицы :
1)Расходная накладная шапка
Код_документа_шапки
Дата
Код_контрагента
Код_фирмы
Код_склада
Код_машины
Код_экспедитора
Номер_развозки
Комментарии
Итого
2)Расходная_накладная_табличная_часть
Код_документа_табличной_части
Код_документа_шапки
Код_товара
Код_единицы_измерения
Количество
Цена
Сумма
Пытался сделать следующее. Есть форма на которой расположены 2 DBGRIDa . В верхней части должна отображаться информация о накладных (т.е вся информация из 1) ). В нижней части должна отображаться информация о всех товарах , которые были куплены по этой накладной.
Мои соображения по этому поводу. Чтобы в нижнем Dbgrid отображалась информация о каждой позиции из верхнего Dbgrid нужно написать SQL запрос типа " select * from table2 where Расходная накладная шапка.Код_документа_Шапки = Расходная_накладная_табличная_часть.Код_документа_ шапки.
Соответственно атрибут Код_документа_шапки является первичным ключом для таблицы 1) и внешним для таблицы 2) . Объединил таблицы через MS SQL SERVER.
Далее.На главной форме где отображается информация о накладных вверху и о товарах внизу, есть кнопка ДОБАВИТЬ НАКЛАДНУЮ. При этом появляется еще одна форма, на которой сверху добавляются данные о накладной,в основном из Dbedit и DblookupCombobox , а снизу соответственно еще один Dbgrid и кнопка добавить товар.Появляется еще одна форма с выбором товаров,производителя и т.п. После успешного добавления возвращаемся к форме где сверху информация о накладной, а снизу добавленные товары которые должны быть куплены по этой накладной и кнопка сформировать накладную.
После нажатия кнопки сформировать накладную , на главной форме должна сохраниться информация о добавленной накладной, а снизу при выделении накладной сверху , должна отображаться информация о товарах купленных по этой накладной, и так для каждой накладной.
Т.е каждой записи из DbGrid1(таблица(Расходная накладная шапка) должна соответствовать запись Dbgrid2 о добавленных товарах для этой накладной из таблицы(Расходная_накладная_табличная_часть).
Таблицы связаны по полю Код_документа_шапки, но при добавлении информации в таблицу 1 , это же поле в таблице 2 не заполняется тем же значением.
Я вообщем совсем запутался. Помогите,пожалуйста. И , извиняюсь,если слишком много и занудно обо всем расписал.
Немного о том,как пытался сделать я :
ГЛАВНАЯ ФОРМА
Dbgrid - 2шт
AdoConnection - 1шт
AdoQuery - 2шт
(AdoQuery1 SQL = " Select * from Расходная накладная шапка")
(AdoQuery2 SQL = " Select * from Расходная_накладная_табличная_часть ")
DataSource - 2шт
Соответственно они все нормально связанны и Insert - Post нормально работает, кроме поля Код_документа_шапки для таблицы 2)
ВТОРАЯ ФОРМА
открывается при нажатии ДОБАВИТЬ НАКЛАДНУЮ
DBgrid - 1шт (связь по DATASOURCE через главную форму, т.е Datasource 2 ( для нижнего DBgrid(информация о товарах) )
ТРЕТЬЯ ФОРМА
Открывается по нажатию кнопки ДОБАВИТЬ ТОВАР
Здесь обычные DbEdit и Dblookupcombobox и кнопка ОК.
Я так подозреваю что надо как-то через Datasource объединить AdoQuery,но уже от количества компонентов просто запутался что где куда надо...
Вообщем я по-моему нагородил тут непонятного чего...Но помогите пожалуйста,как-нибудь...
|