Obtenir et définir le contenu des cellules dans 4D View Pro

Traduit automatiquement de Deepl

La possibilité d’interagir avec un document par programmation est une partie importante de l’utilisation de 4D View Pro. Vous pouvez désormais remplir vos documents par programmation. Vous pouvez définir des données comme des étiquettes, des champs de base de données ou des formules dans votre document. Bien sûr, si vous pouvez définir, vous pouvez aussi obtenir! Vous pouvez également récupérer des formules de cellules ou des valeurs saisies par vos utilisateurs.

Pour définir et récupérer des valeurs dans 4D View Pro, 4D vous fournit un nouvel ensemble de commandes :

Voici une HDI pour voir ces commandes en action :

HDI Get / Set value

Valeur SET et GET dans les cellules

Valeur SET dans une ou plusieurs cellules

Pour définir une valeur dans une ou plusieurs cellules, vous devez d’abord créer une plage de toutes les cellules que vous souhaitez remplir.

Ensuite, selon le type de valeur (texte, date, heure, etc.), vous avez deux façons de la définir :

Par type : VP SET BOOLEAN VALUE, VP SET DATE TIME VALUE, VP SET DATE VALUE, VP SET TIME VALUE, VP SET NUM VALUE, VP SET TEXT VALUE // Setting "Hello World" in cell G11
VP SET TEXT VALUE (VP Cell ("ViewProArea";6;10) ; "Hello world")

Générique : VP SET VALUE

// Setting "Hello World" text in the cells G11
VP SET VALUE ( ("ViewProArea";6;10) ; ("value" ; "Hello world"))VP CellNew object

Valeur GET dans une ou plusieurs cellules

Pour obtenir une valeur d’une cellule, utilisez la commande VP Get value pour obtenir la valeur d’une cellule. Elle renvoie un objet contenant la valeur de la cellule :

$cell:=VP Cell ("ViewProArea";5;2)
// retrieve value of F3 cell
$value :=VP Get value ($cell)
// Verify if value is a Text
If (Value type($value.value)=Is text)
// set the value in uppercase in the cell
( ; ($value. )) VP SET TEXT VALUE$cellUppercasevalue
end if

Formule Set et Get

Définir une formule

Pour attribuer une formule à une cellule ou à un groupe de cellules, utilisez la commande VP SET FORMULA commande. Par exemple :

// Automatically calculate a total in F26
VP SET FORMULA (VP Cell ("ViewProArea";5;25) ; "SUM($F$21:$F$25)")

Vous pouvez également affecter une méthode 4D déclarée, comme expliqué dans Utiliser des méthodes et des champs de base de données dans 4D View Pro avec la commande VP SET FORMULA command:

// Set the licence information in A1
VP SET FORMULA ( ("ViewProArea";0;0) ; "get_LicenceInfo()")VP Cell

obtenir une formule

Pour obtenir une formule attribuée à une cellule à l’aide de la commande VP Get formula à une cellule :

// Create a cell range: D17
$cell:=VP Cell ("ViewProArea";3;16)
// Get the formula of the cell D17
$formula :=VP Get formula($cell
)
// Returns $formula="SUM($F$21:$F$25)"

Définition des champs de la base de données

Définir un champ

Vous pouvez assigner un champ à une cellule avec la commande VP SET FIELD commande. Bien entendu, vous devez déclarer vos champs comme des structures virtuelles, comme expliqué dans l’article du blog Utiliser des méthodes et des champs de base de données dans 4D View Pro.

// assign the Price1 field to the F21 cell
VP SET FIELD (VP Cell ("ViewProArea1";5;20);->[Invoices]Price1)

Gardez à l’esprit que ce champ apparaît dans la formule liée à la cellule, et que les noms de table et de champ sont remplacés par les noms déclarés dans la structure virtuelle.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.