Event addline_before

Description

This event is called when an INSERT operation is requested on a (1,N) or (0,N) collection.

Context

In this context, the INSERT operation is not yet done, and the event can reject the creation by returning in ASTATUS an error status ([V]CST_AERROR).

The following variables or properties are available in the context:

Take care that if you want to control the line that will be shifted (except if it is the last one), you have to use the AGETINDBYLINE method to get the physical position. This can be done by the following code:

$ADDLINE_BEFORELocal Integer LCONTROL, POSCONTROLIf ALINE<>[V]CST_ALASTPOSIf ALINE=[V]CST_AFIRST_POSLCONTROL=1ElseLCONTROL=ALINEEndifPOSCONTROL=this.AGETINDBYLINE("COLLECT",LCONTROL)If POSCONTROL>0# Here you can control the properties of this.COLLECT(POSCONTROL) to decide if the insertion can be doneElse# The position sent is not valid, raise an error or ignoreEndifElse# The line is added at the end of the collection, perform a control if necessary hereEndif