VP Run offscreen area
VP Run offscreen area ( parameters : Object) : Mixed
| Paramètres | Type | Description | |
|---|---|---|---|
| parameters | Object | -> | Objet contenant les attributs de la zone hors écran |
| Résultat | Mixed | <- | La propriété .result de l'objet .onEvent, ou Null si aucune valeur n'est retournée |
Description
La commande VP Run offscreen area crée une zone hors écran en mémoire qui peut être utilisée pour traiter les commandes et les fonctions de la zone 4D View Pro.
Dans l'objet parameters, passez une ou plusieurs des propriétés optionnelles suivantes. Ces propriétés seront accessibles via la commande This au sein de la méthode onEvent et feront référence à l'instance :
| Propriété | Type | Description |
|---|---|---|
| area | text | Le nom de la zone hors écran. S'il est omis ou null, un nom générique est assigné (ex : OffscreenArea1). |
| onEvent | objet (formula) | Une méthode callback qui sera lancée lorsque la zone hors écran sera prête. Il peut s'agir soitonEvent d'une classe,Formula.On VP Ready, On Load, On Unload, On End URL Loading, On URL Loading Error, On VP Range Changed ou On Timer. La méthode de rappel peut être utilisée pour accéder à la variable de l'objet de formulaire 4D View Pro. |
| autoQuit | boolean | True (valeur par défaut) si la commande doit interrompre l'exécution de la formule lorsque les événements On End URL Loading ou On URL Loading Error sont générés. Si False, vous devez utiliser les commandes CANCEL ou ACCEPT dans la méthode callback onEvent. |
| timeout | number | Durée maximale (exprimée en secondes) avant la fermeture de la zone si aucun événement n'est généré. Si elle est fixée à 0, aucune limitation n'est appliquée. Valeur par défaut : 60 |
| Résultat | mixte | Résultat du traitement (le cas échéant) |
<customProperty> | mixte | Tout attribut personnalisé qui sera disponible dans la méthode callback onEvent. |
La propriété suivante est automatiquement ajoutée par la commande, si nécessaire :
| Propriété | Type | Description |
|---|---|---|
| timeoutReached | boolean | Ajouté avec la valeur vrai si le timeout a été dépassé |
La zone hors écran n'est disponible que lors de l'exécution de la commande
VP Run offscreen area. Elle sera automatiquement détruite à la fin de l'exécution.
Les commandes suivantes peuvent être utilisées dans la méthode callback (de rétro-appel) :
ACCEPTCANCELSET TIMERWA Evaluate JavaScriptWA EXECUTE JAVASCRIPT FUNCTION
Exemple 1
Vous souhaitez créer une zone 4D View Pro hors écran et lire la valeur d'une cellule :
// Déclaration de la classe cs.OffscreenArea
Class constructor ($path : Text)
This.filePath:=$path
// Cette fonction sera appelée à chaque événement de la zone hors écran
Function onEvent()
Case of
:(FORM Event.code=On VP Ready)
VP IMPORT DOCUMENT(This.area;This.filePath)
This.result:=VP Get value(VP Cell(This.area;6;22))
ALERT("The G23 cell contains the value: "+String(This.result))
End case
La méthode callback OffscreenArea :
$o:=cs.OffscreenArea.new()
$result:=VP Run offscreen area($o)
Exemple 2
Vous souhaitez charger un grand document hors écran, attendre que tous les calculs soient terminés et l'exporter au format PDF :
// Déclaration de la classe cs.OffscreenArea
Class constructor($pdfPath : Text)
This.pdfPath:=$pdfPath
This.autoQuit:=False
This.isWaiting:=False
Function onEvent()
Case of
:(FORM Event.code=On VP Ready)
// Import du document
VP IMPORT DOCUMENT(This.area;$largeDocument4VP)
This.isWaiting:=True
// Démarrer un minuteur pour vérifier si tous les calculs sont terminés.
// Si au cours de cette période, "On VP Range Changed" est exécuté, le minuteur sera redémarré
// L'heure doit être définie en fonction de la configuration de l'ordinateur.
SET TIMER(60)
:(FORM Event.code=On VP Range Changed)
// Fin du calcul détectée. Redémarrer le minuteur
If(This.isWaiting)
SET TIMER(60)
End if
:(FORM Event.code=On Timer)
// Pour être sûr de ne pas redémarrer le minuteur si vous appelez d'autres commandes 4D View après ce point
This.isWaiting:=False
// Stopper le minuteur
SET TIMER(0)
// Démarrer l'export PDF
VP EXPORT DOCUMENT(This.area;This.pdfPath;New object("formula";Formula(ACCEPT)))
:(FORM Event.code=On URL Loading Error)
CANCEL
End case
La méthode callback OffscreenArea :
$o:=cs.OffscreenArea.new()
$result:=VP Run offscreen area($o)