На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> и снова lookup поле в в dbgrid , не отображает выбранные значения
    добрейшего денька!

    сама БД создаваться должна в программе, грузиться и сохраняться в XML
    если создать два TClientDataSet в дизайнере и заполнить их необходимыми полями со связями, то после запуска программы всё отображается как надо
    но если создавать всё то же самое в Run-Time то LookUp поле первого TClientDataSet не показывает выбранное значение из второго TClientDataSet
    ExpandedWrap disabled
      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 пустота

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

      не надо было КЭШ включать для этого поля
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0166 ]   [ 16 queries used ]   [ Generated: 16.04.24, 18:07 GMT ]