Contents

# Database Form Events

The Events tab page, allows you to assign a macro to certain events which occur in a database form.

若要使用此指令...

Open context menu of a selected form element - choose Form Properties - Events tab.

Open Form Design toolbar, click Form Properties icon - Events tab.

若要將事件與巨集連結，請先編寫包含此事件發生時所要執行的所有指令的巨集。然後按一下對應事件旁的 [...] 按鈕，將此巨集指定至對應的事件。[指定巨集] 對話方塊開啟，在此處您可以選取該巨集。

下述動作可以針對使用者自由配置，也就是說可以使用自訂對話方塊，以便能顯示動作：

1. 顯示錯誤報告、

2. 確認刪除過程 (從資料條目)、

3. 查詢參數，

4. 以及在儲存資料條目時檢查輸入。

例如，在刪除資料條目時，可以發出「確定刪除」請求，例如「確定要刪除客戶 xyz 嗎？」。

The events that are shown in the Events dialog cannot be edited directly. You can remove an event from the list by pressing the Del key.

下面列出並介紹了表單中可以與巨集連結的所有事件：

## 在更新之前

The Before update event occurs before the control content changed by the user is written into the data source. The linked macro can, for example, prevent this action by returning FALSE.

## 更新之後

The After update event occurs after the control content changed by the user has been written into the data source.

## 在重設之前

The Prior to reset event occurs before a form is reset. Returning True approves the reset, returning False cancels the operation.

如果進入下述條件之一，則會重設表單：

1. 使用者按下一個定義為「Reset」的 (HTML) 按鈕

2. 在連結至資料源的表單中建立新的空白資料條目。例如，在最後一個資料條目中按[下一個資料條目]按鈕。

## 重設之後

The After resetting event occurs after a form has been reset.

## 在載入時

The When loading event occurs directly after the form has been loaded.

## 在退卸之前

The Before unloading event occurs before the form is unloaded; that is, separated from its data source.

## 在退卸時

The When unloading event occurs directly after the form has been unloaded; that is, separated from its data source.

## 在重新載入前

The Before reloading event occurs before the form is reloaded. The data content has not yet been refreshed.

## 在重新載入時

The When reloading event occurs directly after the form has been reloaded. The data content has already been refreshed.

## 填入參數

The Fill parameters event occurs when the form to be loaded has parameters that must be filled out. For example, the data source of the form can be the following SQL command:

SELECT * FROM address WHERE name=:name

Here :name is a parameter that must be filled out when loading. The parameter is automatically filled out from the parent form if possible. If the parameter cannot be filled out, this event is called and a linked macro can fill out the parameter. Return True when the execution of the parametrized statement should continue, False otherwise.

## 提交之前

The Before submitting event occurs before the form data is sent. Returning True approves the submission, False stops it.

## 發生一個錯誤

The Error occurred event is activated if an error occurs when accessing the data source. This applies to forms, list boxes and combo boxes.

## 確認刪除

The Confirm deletion event occurs as soon as data has been deleted from the form. Return True to allow row deletion, False otherwise. For example, the linked macro can request confirmation in a dialog.

## 記錄指標變更前

The Before record change event occurs before the current record pointer - SQL cursor - is changed. Return True when moving is allowed, otherwise False.

## 記錄指標變更後

The After record change event occurs directly after the current record pointer has been changed.

## 資料條目變更之前

The Before record action event occurs before the current record or record set are changed. Return True when changing is allowed, otherwise False. For example, the linked macro can request confirmation in a dialog.

## 資料條目變更之後

The After record action event occurs directly after the current record has been changed.

## Vetoable events

Macros can interrupt event execution when they return a boolean value: True allows the execution of the event to continue and False stops the event execution.

The following events are interruptable by returning False:

- Before record action

- Before record change

- Before submitting

- Before update

- Fill parameters