Notre collègue Yannick V. nous a décelé un bug dans Windev Mobile 17 version 06F170078n avec les zones répétées sous Android. Pourquoi ne pas avoir utilisé un tableau alors ? Parce que, comme il est précisé dans la documentation de l’AGL, il est impossible d’utiliser ceux-ci pour des questions de sécurité et de gestion du tactile qui ne serait pas adéquate.
Créer une zone répétée et la tester
Dans l’exemple, nous allons créer une zone répétée très simple qui contiendra un libellé. Nous allons ensuite, dans la description, définir un nouvel attribut sur le champ « Libellé » et choisir la propriété « Valeur », comme dans l’aperçu écran ci-dessous.
Dans l’onglet détail, il est important de spécifier le nombre de colonne de la zone répétée pour que les données soient affichées correctement (Il faut donc connaitre le nombre de rubriques que contient la table à afficher). N’hésitez pas à jouer sur les tailles et à tester sur différents appareils (tablettes, GSM).
Pour remplir la zone répétée, notre cher collègue a utilisé un code très simple, à placer dans une boucle par exemple. Il insère, dans chaque zone, une chaine appelée « sResultat », qui est mise à jour à chaque tour de boucle avec un ExtraitChaine sur une chaine de base (par exemple, « sBaseChaine« ) dont les valeurs sont séparées par des retours chariots (caractère <RC>).
Si tout va bien, voici le résultat que l’on obtient à la fois dans l’émulateur et à la fois sur un smartphone Samsung Galaxy Ace. Il ne reste plus qu’à manipuler la zone et les différents indices pour personnaliser l’affichage (couleurs, hauteur, largeur, etc).
Le bug rencontré
Mais venons-en au fameux problème rencontré les jours précédents. En fait, dans les versions récentes d’Android (4+), lorsqu’on se rend dans les paramètres, puis dans l’onglet « Options pour développeurs« , on peut activer l’option « Forcer le rendu GPU pour les applications 2D« .
Le fait d’activer cette option entraine le phénomène suivant : l’utilisation de l’indice sur la zone n’a pas d’effet et la valeur de chaque élément sera écrasée par l’ajout de la suivante, et ce jusqu’en fin de boucle. On se retrouve donc, dans notre exemple, avec des libellés valant « ROBERT » dans chacune des cases. Il faut donc désactiver cette option dans les paramètres du système. Ce problème s’est produit sur une tablette Asus TF101 et a été signalé au support technique gratuit de PC SOFT.
Merci à notre collègue Yannick V. d’avoir trouvé la source du problème. En effet, c’est en bidouillant dans les options et en essayant divers paramètres qu’il en est arrivé à cette solution. Espérons qu’un correctif soit assez rapidement mis en place. La patience est de mise…