Свойства Master / Child в QuantumGrid в основном предназначены для размещения нескольких элементов в сетке. Если вы настроите связь в компонентах данных, вы можете просто подключить элементы управления к нужному источнику данных, и все будет работать.
Так что, если у вас есть два DataSets Customer и Invoice. Основной источник данных счета-фактуры является источником данных клиента. Затем в ваших элементах управления редактирования вы указываете на источник данных клиента, а сетку указывает на источник данных счета.
Если вы думаете о том, что делает отношение Master / Detail, то на самом деле просто фильтрует записи в Detail DataSet для соответствия текущей записи в Master DataSet. Отдельные элементы управления Edit всегда отображают «текущую» запись в наборе данных, к которому они подключены. Сетки покажут все видимые записи в наборе данных, к которым они подключены.
У меня есть тенденция не использовать отношения Мастер / Деталь в форме редактирования, как показано здесь. Я предполагаю, что есть какой-то способ на другом экране выбрать счет для редактирования. Я обычно создаю копию необходимых DataSets только с записями, необходимыми для этого редактирования. Если я редактирую существующий счет, я копирую текущие записи. Если это новый счет, я могу начать с пустого набора записей. Это больше работы - у меня есть несколько общих библиотечных функций, которые будут копировать структуру DataSet, а затем копировать одну или несколько записей в этот набор данных. В зависимости от вашей настройки вы также можете запросить вашу базу данных, чтобы просто получить интересующие вас записи. Очевидно, что это следует делать не во всех случаях. Еще одна проблема, связанная с этим подходом, заключается в том, что вам нужен способ обновления любых других наборов данных, которые могут у вас быть, с этими данными, т.е. ваш главный экран поиска.
Однако, как только я попадаю на экран редактирования, я нахожу, что все становится проще. Теперь мне не нужно беспокоиться об отношениях мастер-детали на верхнем уровне. Если в счете-фактуре есть внутренние отношения Мастер / Сведения, вы можете просто справиться с ними, но вы знаете, что в наборах данных есть данные только для этого одного счета - не все в базе данных.
В случае вашей формы, если вы ограничиваете Данные в DataSets, вы можете просто подключить все напрямую, и все должно работать так, как вы ожидаете. У вас будет только одна запись в Customer DataSet, а в счете будет только записи для этого счета.