|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите разобраться
Ситуация следующая :
Есть 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,но уже от количества компонентов просто запутался что где куда надо... Вообщем я по-моему нагородил тут непонятного чего...Но помогите пожалуйста,как-нибудь... |