Файл: ...\Samples\Solution\Forms\Many.scx
Этот образец иллюстрирует основные задачи, связанные с формой ввода данных в таблицы с отношением "один-ко-многим".
Когда вы щелкаете по командной кнопке New рядом с блоками ввода данных в поля родительской таблицы, справа от поля Company, то исполняется приведенный ниже фрагмент программного кода:
![]() | |
---|---|
SELECT CUSTOMER APPEND BLANK THISFORM.Refresh |
Когда вы щелкаете по командной кнопке New справа от элемента управления grid, который отображает дочерние записи, то исполнится приведенный ниже фрагмент программного кода.
После выбора таблицы заказов, программный код подсчитывает новое значение order_id для таблицы заказов, добавляет пустую запись, затем сохраняет значение cust_id из родительской таблицы и идентификатор заказа в соответствующих полях.
![]() | |
---|---|
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 |
![]() |
---|
Этот метод создания нового значения идентификатора может быть не является надежным, для случая многопользовательского приложения, когда в одно и то же время добавляются новые заказы. Вместо этого, вы можете создавать новые идентификаторы так, как это показано в образце Создание для поля уникального значения идентификатора по умолчанию. |