Table Edit Sales

www.altova.com Agrandir/Réduire tout Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Tutoriels > Bases de données et graphiques >

Table Edit Sales

La table Edit Sales, comme la table Edit Offices, a été créée sur une page de niveau supérieur séparée. Lorsque la solution est exécutée, cette page est accessible depuis la page principale (capture d'écran en-dessous à gauche). Cliquer sur le bouton Edit Sales Table pour charger la table Edit Sales (capture d'écran en-dessous à droite).  La table Sales a plusieurs lignes, chacune d'entre elles contient une colonne d'ID  (éléments de ventes) non-éditable, des colonnes Office, Month, Year, Licenses éditables et une commande Supprimer (capture d'écran en-dessous à droite). De plus, vous trouverez une commande d'ajout de ligne en-dessous de la dernière ligne, un bouton Soumettre dans la barre Edit Sales Table et un bouton Retour pour retourner à la page précédente (la page principale, dans ce cas).

MTDDBCSimulator01   Click to expand/collapse

Dans le design, les boutons Edit (première capture d'écran ci-dessous) ont tous les deux été attribués à l'action Aller à la page pour leurs événements SurClicDuBouton respectifs (cliquer avec le bouton de droite sur le bouton et choisir Actions de commande pour Sur clic du bouton). Ces actions Aller à la page (deuxième capture d'écran ci-dessous) chargent les pages cibles respectives.

MTDDBCEditButtons

MTDDBCOnButtonPressed

 

Création de la table éditable Sales

La structure de la table Sales de la BD est affichée dans l'arborescence de données de $DB2 (capture d'écran ci-dessous). Puisque l'attribut @id est la clé primaire, il ne peut pas être modifié. Cela signifie qu'à l'ajout d'un nouvel enregistrement, l'utilisateur final ne peut pas saisir une valeur @id via la solution. La valeur @id doit être générée automatiquement en utilisant une expression XQuery. Celle-ci est insérée à l'aide de la commande de menu de contexte. S'assurer de son existence avant le chargement de la page (valeur XPath) :

 

let $all := $DB2/DB/RowSet/Row/@id

let $ids := remove($allindex-of($all""))

let $id := if (empty($ids)) then 1 else max($ids) + 1

return $id

MTDDBCDataScrDB2

Dans le projet, nous allons procéder comme suit :

 

Pour...

Instructions...

Afficher toutes les lignes (Sales)

Ajouter une table répétitive avec la ligne Office en tant qu'élément répétitif

Inclure les commandes de suppression et d'ajout de lignes

Lors de l'ajout de la table, activer l'inclusion automatique des commandes Supprimer/Ajouter

Activer l'édition des valeurs éditables

Ajouter une liste de choix et des commandes d'édition de champs possédant des liens de source de page

Réenregistrer les changements dans la BD

Ajouter une action Enregistrer à l'événement ClicDeBoutonSurSoumettre de la page action ;

De même, cliquer sur le bouton de droite $DB2 et basculer sur Créer OriginalRowSet

Retourner à la page principale

Ajouter une action Aller à la page à l'événement SurClicDeBoutonRetour

 

 

Click to expand/collapseAjouter une table répétitive avec des commandes Ajouter/Supprimer

Le dialogue Nouvelle table apparaîtra en glissant la commande de table depuis le Volet des commandes et en la déposant dans le projet (capture d'écran ci-dessous).

Click to expand/collapse

Spécifier que la table sera répétitive, saisir le nombre de colonnes (5) et de lignes (2), sélectionner la case à cocher Commandes Ajout/Suppression automatique et cliquer sur OK. Les libellés sont ajoutés aux en-têtes des cellules de la première ligne. Un libellé est ajouté pour la valeur @id non-éditable dans la première cellule de la deuxième ligne. Un lien de nœud source vers le nœud @id de $DB2 est créé pour ce libellé (DB:id).

MTDDBCTableRepeating03

 

Click to expand/collapseActiver l'édition des nœuds éditables

Une liste de choix est ajoutée pour le bureau (avec un lien de nœud source vers @Office) et des champs d'édition sont ajoutés pour le mois, l'année, et les cellules de licence avec des liens de sources de page vers les nœuds respectifs.

MTDDBCTableRepeating03

 

Click to expand/collapseActions de page : 'Enregistrer' et 'Aller à la page'

sur Page | Actions de page pour ouvrir le dialogue d'Actions de page (capture d'écran ci-dessous).

MTDDBCEditOfficePageActions

Les actions sont définies pour les événements suivants :

 

ClicDeBoutonSurSoumettre : Enregistre toutes les colonnes de la page sur la BD ($DB1) et retourne à la page principale. Le cas échéant, vous pouvez également ajouter l'action Recharger pour recharger la BD avec les données non modifiées dans les cas où la BD n'est pas enregistrée à la BD (voir capture d'écran ci-dessus).
SurClicDeBoutonRetour : Retourne à la page principale.
 
MTDDBCEditOfficesPageActions02

 

L'arborescence de la source de page doit également inclure un élément OriginalRowSet qui est une copie de l'élément RowSet. Les données originales sont sauvegardées dans l'élément OriginalRowSet, de manière à ce que les colonnes de l'élément RowSet puissent être éditées. L'élément OriginalRowSet est uniquement mis à jour avec la nouvelle valeur si les données sont réenregistrées dans la BD.


 


© 2019 Altova GmbH