Le composant Web Table IBM® i permet d'afficher des enregistrements de base de données tels qu'ils apparaissent dans un sous-fichier sur l'hôte.
Pour afficher les enregistrements de base de données dans un composant Web Table IBM i, vous devez effectuer les opérations suivantes :
Lorsque vous créez un composant Web Table IBM i dans votre fichier JSP, l'un des attributs défini est le nom du programme de service appelé par la table. Pour indiquer le nom et l'emplacement du programme de service sur l'hôte, vous devez d'abord cocher la case Extraire les données à partir d'un programme de serviceIBM i (dans l'onglet Paramètres de la vue Attributs). Cette opération permet d'activer les zones Bibliothèque et Objet où vous pouvez indiquer le nom de la bibliothèque contenant le programme de service et le nom du programme de service.
Lorsque vous créez le composant Web Table IBM i, vous spécifiez le Mode de sélection à savoir Aucun, Simple ou Multiple. Si vous spécifiez Aucun, les données de sous-fichier qui sont affichées ne peuvent pas être sélectionnées. Si vous spécifiez Simple, un bouton d'option apparaît en regard de chaque enregistrement de sous-fichier, autorisant la sélection d'un enregistrement unique. Si vous spécifiez Multiple, une case à cocher est placée en regard de chaque enregistrement de sous-fichier, autorisant la sélection de plusieurs enregistrements. Pour déterminer l'enregistrement qui a été sélectionné, créez une interaction Web, avec la page de sous-fichier comme page d'entrée. Dans la procédure définie pour cette interaction, codez un appel à l'API QdtsReadcSF. L'API renverra le numéro d'enregistrement relatif de l'enregistrement sélectionné, ou 0 si aucun enregistrement n'a été sélectionné. Par exemple :
DGetRec B D info likeDS(rec) * C Eval rc = QdtsReadcSF(SFLName: %Addr(Rec): %Size(Rec): 1) C If rc > 0 C Eval info.name = SFLName *.. process record C Else * .. no record selected
Le composant Web Table IBM i utilise les procédures suivantes dans le programme de service qu'il appelle. Les noms de procédure sont soumis à la distinction majuscules/minuscules.
Deux paramètres du composant Web Table IBM i sont transférés dans chaque procédure. Le premier paramètre est une chaîne de 10 caractères représentant le nom du composant Web Table IBM i. Le deuxième paramètre est un paramètre facultatif qui correspond à une structure de données. Les zones de cette structure sont définies dans la section Paramètres du programme de service (voir Composant Web Table).
Il est important que les longueurs et les types de colonnes définis dans la vue Attributs de la table correspondent exactement à la longueur et au type des zones définies dans la structure des enregistrements de sous-fichier de votre programme, et qu'ils se trouvent dans l'ordre prévu. En cas de non-concordance, le sous-fichier ne s'affichera pas correctement. Pour examiner le contenu de l'objet Sous-fichier *USRSPC de la bibliothèque QTEMP, vous pouvez utiliser la commande DMPSYSOBJ. Toutefois, auparavant, une interaction au moins doit avoir été exécutée, afin de créer un travail sur le serveur IBM i. Pour obtenir le nom qualifié du travail, recherchez une ligne similaire à celle-ci sur la console de l'environnement de test Rational :
IBM i host job id [964666/QUSER/QZRCSRVS]
Dans une ligne de commande IBM i, lancez ce travail en mode Service en utilisant la commande STRSRVJOB :STRSRVJOB 964666/QUSER/QZRCSRVSLorsque le travail est en mode Service, utilisez la commande DMPSYSOBJ pour vider le contenu de l'espace dans un fichier spoule :
DMPSYSOBJ OBJ(ITEMLIST) CONTEXT(QTEMP) OBJTYPE(*USRSPC)Utilisez la commande WRKSPLF et affichez le fichier spoule QPSRVDMP. Vous visualiserez le contenu de l'espace dans un format DUMP.
Votre programme de service interagit avec le composant Web Table IBM i par codage aux API de sous-fichier. Les données d'un sous-fichier sont stockées dans un objet espace utilisateur (type d'objet *USRSPC) sur l'hôte. Cet espace utilisateur est créé dans la bibliothèque QTEMP pour le travail en cours qui exécute le programme.
Les API de sous-fichier dans votre programme de service manipulent les enregistrements dans l'objet espace utilisateur qui apparaissent dans le composant Web Table IBM i d'une page JSP. Les noms de ces API et les opérations effectuées par chacune d'entre elles sont présentés ci-dessous.
| Nom | Opération |
|---|---|
| QdtsAppendSF | Ajout d'un enregistrement |
| QdtsChainSF | Chaînage à un enregistrement |
| QdtsClearSF | Effacement d'un sous-fichier |
| QdtsCountSF | Décompte des enregistrements de sous-fichier |
| QdtsDeleteSF | Suppression d'un enregistrement de sous-fichier |
| QdtsInitSF | Initialisation du sous-fichier |
| QdtsReadcSF | Lecture d'un enregistrement sélectionné |
| QdtsSetDspAtrSF | Définition des attributs d'affichage pour chaque cellule de sous-fichier |
| QdtsSetNxtCgSF | Définition du prochain enregistrement modifié |
| QdtsSetRcdNbrSF | Définition du numéro d'enregistrement en cours |
| QdtsUpdateSF | Mise à jour d'un enregistrement |
Lorsque vous sélectionnez Récupérer les données à partir d'un programme de service i dans l'onglet Paramètres de la vue Attributs, les boutons d'option relatifs au Comportement du programme de service peuvent être sélectionnés.
L'option par défaut Ecrit une page à la fois indique que le programme de service efface l'espace utilisateur lorsque les procédures PGUP et PGDN sont appelées. Les procédures INIT, PGUP et PGDN doivent être codées dans le programme de service. Cette option indique également que la section de pied de page affiche uniquement les boutons Haut de Page et Bas de Page.
L'option Ecrit une page sur demande indique que le programme de service n'effacera pas l'espace utilisateur à chaque appel de la procédure PGDN. Cette option requiert que les procédures INIT et PGDN soient codées dans le programme de service. La section de pied de page affiche uniquement les boutons Haut de Page et Bas de Page.
L'option Ecrit le sous-fichier complet indique qu'une section de pied de page est affichée dans la table pour des raisons de pagination. Les boutons Haut de Page et Bas de Page, ainsi que les informations de pagination, apparaissent dans ce pied de page sous la forme "page x sur y" (Page 5 sur 10, par exemple.) Cette option indique également que ces enregistrements représentent l'ensemble d'enregistrements qui apparaîtra dans la table, quel que soit le nombre d'enregistrements lus dans l'espace utilisateur pour être affichés dans la table. Cette option requiert également le codage de la procédure INIT dans le programme de service. Les procédures PGUP et PGDN ne sont pas requises, étant donné qu'elles ne sont pas appelées dans ce cas.