Augustin Vidovic
Frank Denis

Projet bases de données : Gestion de parc informatique
Utilisation des TableFrame

L'insertion de données dans une table se fait tres simplement : grace aux boites de dialogue générées par TableFrame .

Les champs qui ne sont ni des clefs primaires ni des clefs étrangères apparaissent sous forme de zones de textes à remplir (le texte est analysé automatiquement par GPI.

Les clefs étrangères apparaissent sous la forme de listes déroulantes listant les identificateurs uniques des enregistrements correspondants dans les tables correspondantes. Il suffit donc de sélectionner l'identificateur dans la liste. Si on désire avoir des détails sur l'enregistrement correspondant, le bouton Details ouvre la TableFrame correspondant à l'enregistrement correspondant à l'identificateur choisi dans la liste.

La TableFrame qui s'affiche possède tous les champs de l'enregistrement de la table correspondant à la clef étrangère pointée par la liste déroulante; Elle est donc aussi puissante que la TableFrame d'ou elle est issue puisqu'elle contient elle-meme des listes déroulantes correspondant à ses propres clefs étrangères, elles-memes dotées de boutons Detail, permettant d'ouvrir à leur tour les TableFrame correspondants aux valeurs des identificateurs uniques qu'elles contiennent, etc... potentiellement à l'infini.

Mais revenons à cette bonne vieille TableFrame que l'on a ouvert à partir de la liste déroulante de la première TableFrame (nous nous limitons donc à un seul niveau de récursivité pour les besoins de la démonstration) .

La puissance de GPI s'exprime en effet entre autres dans ce qui se passe alors :
Si l'on a envie de sélectionner un autre enregistrement dans une TableFrame ouverte en effectuant une recherche grace au bouton approprié de la TableFrame, ou si l'on navigue à l'intérieur de la liste des résultats d'une recherche grace aux boutons flèches, la sélection de la liste déroulante qui correspond au bouton Detail qui a permit d'ouvrir cette TableFrame change aussi en meme temps, de facon transparente, et inversement, si l'on sélectionne une nouvelle valeur dans la liste déroulante, l'enregistrement correspondant s'affiche automatiquement dans la TableFrame qui a été ouverte (si bien sur vous ne l'avez pas refermée entre temps, auquel cas il vous faudra bien évidemment appuyer une nouvelle fois sur le bouton Detail de la liste déroulante) .

Mais ce n'est pas tout !

Si vous ajoutez un enregistrement à la table correspondant à la liste déroulante de la première TableFrame et cela, que vous ajoutiez cet enregistrement à partir de la TableFrame ouverte à partir du bouton Detail de cette liste déroulante ou d'une TableFrame ouverte sur la meme table depuis un autre menu (menu principal, autre liste déroulante dans un autre enregistrement, pour lequel l'identificateur unique de cette table est encore une fois une clef étrangère...), la liste déroulante sera automatiquement mise à jour et intégrera l'identificateur unique de l'enregistrement qui a été ajouté.

Ainsi, la cohérence des données affichées est préservée en toutes circonstances.

Enfin, un identificateur unique est automatiquement généré lors de l'insertion de l'enregistrement dans la table par le moteur de base de données lui-meme, et ceci meme si vous avez tenté de forcer un identificateur, ce qui garantit la cohérence des données.


>>>> Les rapports