Программный файл: ...\Samples\Solution\Controls\Grid\1_many.scx

Рассматриваемый пример демонстрирует согласованное отображение Записей Таблиц, связанных Отношением типа "Один-ко-Многим" в двух соответствующих контролах-контейнерах Grid (двух дочерних таблиц). Достаточно небольшой фрагмент программного Кода обеспечивает выполнение требуемых настроек используемых Контролов, для выполнения поставленной Задачи.

Property Settings (Установка значений Свойств)

Для текстовых полей на стороне "Родителя" определяются источники данных (поля Родительской Таблицы):

  CopyCode imageКопировать Код
ControlSource = Customer.cust_id
ControlSource = Customer.company

Для контрола Grid "Дочерней" таблицы:

  CopyCode imageКопировать Код
ChildOrder = cust_id
LinkMaster = customer
RecordSource = orders
RecordSourceType = 1 - Alias
RelationalExpr = customer.cust_id
ColumnCount = 4
Column1.ControlSource = "orders.order_no"
Column1.Header1.Caption = "Order"
Column2.ControlSource = "orders.order_date"
Column2.Header1.Caption = "Date"
Column3.ControlSource = "orders.to_name"
Column3.Header1.Caption = "Ship To"
Column4.ControlSource = "orders.order_amt"
Column4.Sparse = .F.
Column4.Header1.Caption = "Total"
Column4.Text1.InputMask = "$$999,999.99"

Для второго контрола Grid, второй "Дочерней" таблицы сложного Отношения:

  CopyCode imageКопировать Код
ChildOrder = order_id
LinkMaster = Orders
RecordSource = Orditems
RecordSourceType = 1 - Alias
RelationalExpr =Orders.order_id
ColumnCount = 4
Column1.ControlSource = "orditems.line_no"
Column1.Header1.Caption = "Item"
Column2.ControlSource = "products.prod_name"
Column2.Header1.Caption = "Product"
Column3.ControlSource = "orditems.quantity"
Column3.Header1.Caption = "Qty."
Column4.ControlSource = "orditems.unit_price"
Column4.Sparse = .F.
Column4.Header1.Caption = "Price"
Column4.Text1.InputMask = "$$9,999.99"

В дополнение к функциональности контролов Grids, на тестовой Форме размещается контрол Навигации по Родительской Таблице типа VCR , библиотека классов Buttons.vcx. Значение свойства SkipTable указанного класса Навигации содержит Алиас (псевдоним) родительской таблицы, указатель Записей которой перемещается кнопками Навигации. Пользователь простыми действиями (перемещаясь по записям Родителя) получает отображение соответствующих записей (из дочерних таблиц: Orders и Orditems), свойство SkipTable = "Customer".

См. также