QuantumGrid Мастер-деталь

У меня есть QuantumGrid с двумя уровнями (скажем, lvCountries и lvCities) и двумя представлениями (tvCountries и tvCities соответственно). Все свойства в обоих представлениях установлены правильно, и сетка отображается следующим образом:

  • Франция
    • Париж
    • Марсель
    • Лион
  • Германия
    • Дрезден
    • Гамбург

и т.п.

До этого момента все было хорошо.

Но у меня также есть форма редактирования (активируется кнопкой на форме с сеткой основных деталей). Я хотел бы отобразить в этой форме новую сетку с данными из текущей детализации. Если в основной форме выбрана Франция, форма редактирования должна отображать только французские города в своей сетке:

  • Париж
  • Марсель
  • Лион

Я добавил тот же источник данных для редактирования сетки формы, который использовал для подробного просмотра в основной форме, но он отображает все города из всех стран.

  • Париж
  • Марсель
  • Лион
  • Дрезден
  • Гамбург

Как я понимаю, это происходит потому, что подробные данные фильтруются не в их источнике данных, а в их представлении, и источник данных отображает все значения из своего набора данных (кстати, я использую ADODatasets).

Есть ли способ отобразить подробные данные в другой форме только для текущей основной записи?

1 ответ

Добавьте в форму сведений подробное свойство, для которого установлено значение ключа выбранной записи. например

TFormDetail= Class(TForm)
..
Public
  Property CountryID : String Read FCountryID Write FCountryID;
End;

В FormShow

Procedure TFormDetail.FormShow(Sender : TObject);
Begin
// Add your filter/where clause to CountryID
  End;

Когда вы звоните FormDetail:-

    lFrm := TFormDetail.Create(Nil);
    Try
      lFrm.CountryID := // whatever
      lFrm.ShowModal;
    Finally
      FreeAndNil(lFrm);
    End;
Другие вопросы по тегам