Skip to main content
Version: 11.0

Actions Example 8: Automatic insert in child table and Related Box

This Info Window has bookings in a parent box and participants in an embedded child box.

Assume that it is frequent that the customer booking the reservation (parent box) is also a person included in the reservation as a participant (child box).

A button "Add Person Booking..." automates the action of including the booker as a participant.

1. Insert the new button and set its label to "Add Person Booking ...".

2. Set the Action property of the Add Person Booking button to:

RecordStore(QUIET)
SqlScript
(
INSERT INTO participant( person_id, res_id, insurance )
VALUES( :MADE_BY, :RES_ID, 'N' )
)
Participants_taking_part_in_Reservation.QueryExecute()
Participants_taking_part_in_Reservation.query.person_id.esd_int.ControlSetFocus()

3. Use the Object Activator to compose this action statement script. The RecordStore action statement acts at the top-level info box (the parent box) and therefore does not need an explicit object identifier. This action statement is necessary to make sure the parent record is completed and a customer is known. :MADE_BY and :RES_ID are embedded action statements.

The INSERT statement can also be spelled as follows; in which case the action statements can be produced by using the Object Activator as a stand-alone editor:

INSERT INTO participant
(
   person_id
,   res_id
,   insurance
)
VALUES
(
    :"query.made_by()"
,    :"query.res_id()"
,    'N'
)

4. After the INSERT action, all the Participant records for this Reservation are retrieved (including the newly added INSERT), and the cursor jumps to the first field of the Participants box.