Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 22:05   #1
sveta_s
 
Аватар для sveta_s
 
Регистрация: 08.05.2011
Сообщений: 7
Вопрос Значения из ComboBox + Edit поместить в DBGrid

Здравствуйте. Подскажите пожалуйста как осуществить добавление значений из 2-х СomboBox-ов и Edit в DBGrid. При этом, чтобы при выборе строки из списка одного СomboBox-а в другом СomboBox-е отображались дочерние значения. например в CB1 добавляем значения групп продуктов
Код:
procedure TNovRecForm.FormCreate (Sender: TObject);
begin
  ComboBox1.Items.Clear;
  DataModule2.GrQuery.Open;
  try
    while not DataModule2.GrbQuery.Eof do begin
      ComboBox1.AddItem(DataModule2.SbQuery.FieldValues['Nazv_gr'],
                        TObject(DataModule2.GrQuery.FieldByName('ID_gr').AsInteger));
      DataModule2.GrQuery.Next;
    end;
  finally
    DataModule2.GrQuery.Close;
  end;
end;
при этом в другом СomboBox-е должны отображаться все продукты, принадлежащие данной группе.
после этого все выбранные значения СВ + значение в Edit поместить в новый Query, который отразить в DBGrid.
Спасибо всем, кто откликнется.
sveta_s вне форума Ответить с цитированием
Старый 04.06.2011, 11:32   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

При переключении группы в CB1, в CB2 придется подгружать продукты соответствующие текущей группе в CB1. Это не страшно.

Но не зная структуру БД непонятно что подразумевается под фразой "значения СВ + значение в Edit поместить в новый Query".
Прик вне форума Ответить с цитированием
Старый 04.06.2011, 12:27   #3
sveta_s
 
Аватар для sveta_s
 
Регистрация: 08.05.2011
Сообщений: 7
По умолчанию

Цитата:
значения СВ + значение в Edit
Здесь подразумевается, что к названию продукта из СВ2 добавляется значение веса продукта из Edit1. А потом все это заносится в DBGrid.

Последний раз редактировалось sveta_s; 04.06.2011 в 12:57.
sveta_s вне форума Ответить с цитированием
Старый 04.06.2011, 12:52   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Что заносится - это понятно. Не понятно в каком виде.
Для названия и веса есть отдельные поля? Или то и другое плюсуется в строку и записывается в БД в виде этой строки?

К тому же, сто раз писано, в DBGrid ничего нельзя "занести". Компонент только отображает данные из БД.
Отсюда следует, что заносить надо в базу (таблицы), а не DBGrid.

Последний раз редактировалось Прик; 04.06.2011 в 12:55.
Прик вне форума Ответить с цитированием
Старый 04.06.2011, 12:59   #5
sveta_s
 
Аватар для sveta_s
 
Регистрация: 08.05.2011
Сообщений: 7
По умолчанию

Вообще общая задача выглядит следующим образом.
Имеется БД на SQL Server. Необходимо организовать добавление и изменение данных.
Даны таблицы: группы продуктов, продукты, сборники рецептов, рецепты и таблица продукт_рецепт для нормализации связи "многие-ко-многим" между продуктами и рецептами.
Для каждого названия рецепта (который выбирается из соответствующего сборника рецептов) необходимо создать на форме DBGrid со списком входящих в него продуктов, их характеристиками, например вес брутто, вес нетто. При формировании нового рецепта и при редактировании уже имеющегося, продукты вносятся из ComboBox (или DBComboBox) предварительно выбором из группы, а вес из DBEdit, помещенных на отдельную форму.

Последний раз редактировалось sveta_s; 04.06.2011 в 13:02.
sveta_s вне форума Ответить с цитированием
Старый 04.06.2011, 13:04   #6
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Задача обширная и в теме ее вряд ли удастся обговорить. Пишите мне на мыло.

P.S. Картинки не отображаются.
Прик вне форума Ответить с цитированием
Старый 04.06.2011, 13:07   #7
sveta_s
 
Аватар для sveta_s
 
Регистрация: 08.05.2011
Сообщений: 7
По умолчанию

Я так понимаю, для начала надо создать запрос, с помощью которого выдернуть все необходимые поля из соответствующих таблиц. Наверное как-то, так:
Код:
DataModule2.DobRecQuery.SQL.Add('select Sb_recept.ID_Sb, Sb_recept.Nazv_sb,
 Recept.ID_Sb, Recept.ID_rec, Recept.Nazv_rec, Product.ID_prod, Product.ID_gr, Product.NazvP, Prodrec.ID_prodrec,
 Prodrec.ID_rec, Prodrec.ID_prod, Prodrec.Vesbr, Prodrec.Vesnett from Sb_recept, Recept, Product, Prodrec')
.... Хорошо, спасибо.

Последний раз редактировалось sveta_s; 04.06.2011 в 13:09.
sveta_s вне форума Ответить с цитированием
Старый 05.06.2011, 04:38   #8
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

ну и получилась полная каша без WHERE. При этом эту кашу еще и редактировать нельзя. Раскидайте эти таблицы по разным Query, и по необходимости их можно добавить в Query в виде Lookup поля.
Если будут вопросы пиши в асю объясню подробнее как это организовать
Gulik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск,combobox,edit,dbgrid Ravelin БД в Delphi 10 17.06.2010 18:52
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
C++Builder6. Как поместить ComboBox в StringGrid? Igor_M Общие вопросы C/C++ 0 04.06.2009 08:55
Как из колонки DBGrid записать все значения в combobox dolunin БД в Delphi 1 16.03.2009 19:19
Как из двух DBGridов, выбрав необходимые данные, поместить в другой DBGrid Самоучка БД в Delphi 19 09.12.2008 23:23