Les feuilles de calcul sont de formidables outils polyvalents. Des tableaux de bord aux interfaces utilisateur d’entrée/sortie, les feuilles de calcul fournies par 4D View Pro peuvent résoudre rapidement un grand nombre de situations rencontrées par vos utilisateurs finaux.
Nous avons expliqué précédemment l’utilisation de la fonctionnalité de tableau de 4D View Pro pour afficher et modifier des collections de données. En utilisant les tableaux 4D View Pro, vous pouvez avoir besoin d’ajouter ou de supprimer des colonnes ultérieurement, en fonction des besoins des utilisateurs finaux. Pour ce faire, à partir de 4D v19 R7, 4D View Pro dispose de plusieurs nouvelles commandes pour gérer les colonnes et les lignes de vos tableaux. Voyons comment cela fonctionne.
La première étape avant d’ajouter ou de supprimer certaines colonnes est de créer une table 4D View Pro. Pour les exemples ci-dessous, nous utiliserons une table 4D View Pro qui affiche certaines données d’une table de base de données nommée « People » :
$context:=New object
$context.people:=ds.People.all().toCollection()
VP SET DATA CONTEXT("ViewProArea"; $context)
$parameter:=New object
$parameter.tableColumns:=New collection
$parameter.tableColumns.push(New object("name"; "Phone"; "dataField"; "Phone"))
$parameter.tableColumns.push(New object("name"; "Email"; "dataField"; "email"))
$parameter.tableColumns.push(New object("name"; "Country"; "dataField"; "Country"))
VP CREATE TABLE(VP Cells("ViewProArea"; 2; 1; 3; 1); "PeopleTable"; "people"; $parameter)
Insérer des colonnes dans une table
La commande VP INSERT TABLE COLUMNS vous permet d’insérer une colonne quand vous en avez besoin dans votre tableau. Par exemple, si vous souhaitez afficher 2 nouvelles colonnes avant la première colonne du tableau 4D View Pro :
VP INSERT TABLE COLUMNS("ViewProArea"; "PeopleTable"; 0; 2;vk table insert before)
// 0 indicate the first column of the table.
2 colonnes vides sont maintenant ajoutées au tableau. Nous allons donc les remplir avec les champs Firstname et Lastname grâce à la commande VP SET TABLE COLUMN ATTRIBUTES:
$param:=New object
// Bind the column to the Firstname field from the datacontext
$param.dataField:="Firstname"
// Change the default name of the column to "First name"
$param.name:="First name"
VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 0; $param)
$param:=New object
// Bind the column to the Lastname field from the datacontext
$param.dataField:="Lastname"
// Change the default name of the column to "Last name"
$param.name:="Last name"
VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 1; $param)
Insérer et supprimer des lignes
De la même manière, vous pouvez utiliser la commande VP INSERT TABLE ROWS pour insérer des lignes vides dans votre tableau :
VP INSERT TABLE ROWS("ViewProArea"; "PeopleTable"; 1; 2)
Rappelez-vous que VP INSERT TABLE ROWS ne fait pas qu’ajouter des éléments graphiques comme VP INSERT TABLE COLUMNS. Lorsque VP INSERT TABLE COLUMNS ajoute seulement des colonnes dans la feuille, VP INSERT TABLE ROWS ajoute des lignes dans la feuille et crée 2 nouvelles lignes dans la collection de votre contexte de données.
Dans notre exemple, si vous utilisez VP Get data contextvous obtenez votre collection de personnes avec 2 nouvelles lignes vides, people[1] et people[2] :
$data:=VP Get data context("ViewProArea")
Et si vous écrivez des informations dans vos cellules vides :
Les attributs correspondant à vos nouvelles informations sont automatiquement ajoutés. Ici, people[1] a été rempli avec des détails :
$data:=VP Get data context("ViewProArea")
Si vous supprimez certaines lignes, cela fonctionne de la même manière. Par exemple, si vous supprimez toutes les lignes sauf les 2 premières, les lignes disparaîtront graphiquement et dans le contexte de données :
VP REMOVE TABLE ROWS("ViewProArea"; "contexttest"; 2; 10)
$data:=VP Get data context("ViewProArea")
L’association entre le contexte de données et la table est donc un moyen facile de gérer vos collections dans 4D View Pro !
Découvrez cette fonctionnalité avec l’IDH ci-dessus et la documentation pour plus de détails !