AVANT_OUVRE
Description
Cette action est la première appelée lorsqu'on entre en gestion d'un OBJet ; elle n'est appelée qu'une seule fois. La table principale déclarée en gestion d'OBJet est ouverte mais les tables secondaires ne le sont pas encore.
Type d'OBJet
Simple, Tableau, Combiné
Transaction
Non
Utilisation
Le besoin d'utiliser cette action est très rare.
Cette action donne la possibilité d'arrêter le traitement en positionnant OK=0
et éventuellement d'afficher un message dans GMESSAGE.
Exemple : dans l'OBJet des factures de ventes ( SUBSIHA )
Dans l'action AVANT_OUVRE, on récupère le niveau de localité des tables secondaires ouvertes. Ceci est nécessaire, lorsqu'il y a picking sur une même table dans l'OBJet appelant et l'OBJet courant. Ensuite, l'OBJet ouvre les tables secondaires. Puis, dans l'action OUVRE, on force l'ouverture de la table utilisée dans le picking, si celle-ci n'a pas été ouverte par l'OBJet.
$AVANT_OUVREGlobal Integer GFILELEVSOP
Raz GFILELEVSOP
If clalev([F:SOP])<>0 GFILELEVSOP=filelev([F:SOP]) Endif
Return
$OUVRE
# La table SOP a été ouverte dans un autre sous-prog (niveau différent)
# Il faut la réouvrir pour pouvoir faire un nouveau 'Link'
If filelev([F:SOP]) = GFILELEVSOP
Local File SORDERP [SOP]
Endif
Return