Файл: ...\Samples\Solution\Forms\Many.scx

Этот образец иллюстрирует основные задачи, связанные с формой ввода данных в таблицы с отношением "один-ко-многим".

Когда вы щелкаете по командной кнопке New рядом с блоками ввода данных в поля родительской таблицы, справа от поля Company, то исполняется приведенный ниже фрагмент программного кода:

  CopyCode imageСкопировать код
SELECT CUSTOMER
APPEND BLANK
THISFORM.Refresh

Когда вы щелкаете по командной кнопке New справа от элемента управления grid, который отображает дочерние записи, то исполнится приведенный ниже фрагмент программного кода.

После выбора таблицы заказов, программный код подсчитывает новое значение order_id для таблицы заказов, добавляет пустую запись, затем сохраняет значение cust_id из родительской таблицы и идентификатор заказа в соответствующих полях.

 CopyCode imageСкопировать код
CALCULATE MAX(order_id) ALL TO lMaxID
lMaxID = ALLTRIM(STR(VAL(lMaxID) + 1))

APPEND BLANK

REPLACE cust_id WITH Customer.Cust_id IN orders
REPLACE order_id with lMaxID in orders
NoteЗамечание

Этот метод создания нового значения идентификатора может быть не является надежным, для случая многопользовательского приложения, когда в одно и то же время добавляются новые заказы. Вместо этого, вы можете создавать новые идентификаторы так, как это показано в образце Создание для поля уникального значения идентификатора по умолчанию.

Смотрите также