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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2020, 13:26   #1
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Вопрос и снова lookup поле в в dbgrid (не отображает выбранные значения)

добрейшего денька!

сама БД создаваться должна в программе, грузиться и сохраняться в XML
если создать два TClientDataSet в дизайнере и заполнить их необходимыми полями со связями, то после запуска программы всё отображается как надо
но если создавать всё то же самое в Run-Time то LookUp поле первого TClientDataSet не показывает выбранное значение из второго TClientDataSet
Код:
procedure TForm.Create(Sender: TObject);
var
    Field1, Field2, Field3, Field4: TField

begin
      { +++++ ClientDataSet2 +++++ }
      { авто добавляемое поле порядкового номера }
      Field1 := TAutoIncField.Create(nil);
      Field1.FieldName := 'id';
      Field1.Visible := True;
      Field1.FieldKind := fkData;
      Field1.DataSet := ClientDataSet2;
      ClientDataSet2.Fields.Add(Field1);

      { текстовое поле с данными }
      Field2 := TStringField.Create(nil);
      Field2.FieldName := 'name';
      Field2.Visible := True;
      Field2.FieldKind := fkData;
      Field2.Size := 5;
      Field2.DataSet := ClientDataSet2;
      ClientDataSet2.Fields.Add(Field2);
      { ----- ClientDataSet2 ----- }

      { +++++ ClientDataSet1 +++++ }
      { номер выбранного значения из  ClientDataSet2 }
      Field3 := TIntegerField.Create(nil);
      Field3.FieldName := 'id_izmer';
      Field3.Visible := True;
      Field3.FieldKind := fkData;
      Field3.DataSet := ClientDataSet1;
      ClientDataSet1.Fields.Add(Field3);

      { текстовое поле с данными из  ClientDataSet2 }
      Field4 := TStringField.Create(nil);
      Field4.FieldName := 'izmer';
      Field4.Visible := True;
      Field4.FieldKind := fkLookup;
      Field4.Size := 5;
      Field4.DataSet := ClientDataSet1;
      { заполнение данных для LookUp }
      Field4.KeyFields := 'id_izmer';
      Field4.LookupKeyFields := 'id';
      Field4.LookupResultField := 'name';
      Field4.LookupDataSet := ClientDataSet2;
      ClientDataSet1.Fields.Add(Field4);
      { ----- ClientDataSet1 ----- }

      ClientDataSet2.CreateDataSet;
      ClientDataSet2.Active := True;
      ClientDataSet1.CreateDataSet;
      ClientDataSet1.Active := True;
end;
после запуска заполняю некоторыми значениями DBGrid2 с привязанным ClientDataSet2
делаю выбор в LookUp поле DBGrid1 - и значение в поле id_izmer меняется, а в самом поле izmer пустота

подскажите что я сделал не так?
woojin вне форума Ответить с цитированием
Старый 10.02.2020, 17:54   #2
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
По умолчанию

вот... блин!!!!!!
чуть мозг не расплавился

не надо было КЭШ включать для этого поля
woojin вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент СПИСОК. Выбираю несколько значений. Как получить выбранные значения? vldmlt Microsoft Office Access 1 15.05.2018 22:41
Как сделать чтобы выбранные из списка значения накапливались в поле формы? klim8 Microsoft Office Access 5 29.08.2017 09:40
Lookup поле, DbGrid и выпадающие списки Бегущая вдаль БД в Delphi 1 17.05.2013 17:36
Как удалить данные выбранные в DbGrid'е из БД BioNoob БД в Delphi 3 18.06.2012 11:45
lookup-поле freez1992 БД в Delphi 4 25.02.2010 20:38