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;