PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Problème d'initialisation d'une table/zone répétée
Problème d'initialisation d'une table/zone répétée
Débuté par Yves Barraud, 30 déc. 2019 16:21 - 7 réponses
Membre enregistré
5 messages
Posté le 30 décembre 2019 - 16:21
Bonjour à vous tous,

Je débute sur WINDEV mobile avec la version 25. J’ai suivi le cours d’autoformation Android et regardé quelques exemples mais je ne trouve pas la solution et je m’arrache les cheveux depuis de nombreuses heures…

J’ai un problème d’initialisation d’une table basé sur une requête avec passage d’un paramètre, cette table est contenue dans une fenêtre. J’affecte une variable au paramètre. L’initialisation s’effectue correctement dans le simulateur GO, mais quand je génère l’application et la déploie sur mon téléphone Android. L’initialisation ne se fait pas.
J’ai le même type de problème avec des zones répétées dans des fenêtres.

Pour comprendre et contourner la problématique, j’ai créé un bouton dans ma fenêtre, au click sur le bouton j’exécute un TableAffiche (…, taInit) et là ça fonctionne. La table affiche les bons enregistrements en lien la variable passé en paramètre.
Si j’affecte une valeur directement au paramètre dans l’initialisation de ma table, ça marche. Mais pas si je lui affecte une variable, ça ne fonctionne pas sur le mobile.

Détail du code:
Dans les déclarations globales de ma fenêtre :
gnIDRéclamation=REQ_Reclamation_avec_société.IDRéclamation //récupére l’ID d’une réclamation

Dans la fin d’initialisation de ma fenêtre

FichierVersEcran() // me permet d’afficher les informations concernant la réclamation et j’arrive afficher ma variable gnIDRéclamation avec son contenu

Dans le code d’initialisation de ma table (Table_Proposition), j’ai mentionné
MaSource.ParamIDRéclamation=gnIDRéclamation

J’espère que c’est suffisamment compréhensible.

D’avance merci pour votre aide. Yves
Membre enregistré
5 messages
Posté le 03 janvier 2020 - 23:38
Information complémentaire importante: mon problème est lié aux champs table ( et non à une table). Désolé pour cette imprécision importante.
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 04 janvier 2020 - 09:02
Salut Yves,
As-tu déployer ta base avec ton apk ?
As-tu extrait ta base de ton apk ?
Comment initialise tu ta base ?
Regarde ces liens
https://doc.pcsoft.fr/fr-FR/?3044254
https://doc.pcsoft.fr/fr-FR/?1000019509&name=fExtraitRessource
Regarde la partie intégration de fichier de ce lien https://doc.pcsoft.fr/fr-FR/?9000109
Membre enregistré
5 messages
Posté le 04 janvier 2020 - 11:13
Salut Popoy,

Un grand merci pour ta réponse.
Je ne sais pas si tu as avais vu mon message complémentaire. En effet, j'ai omis une précision importante dans ma description c'est que j'ai un problème d'initialisation d'un champ table (et non d'une table) et de zone répétée. Désolé (PS: j'ai essayé de modifier mon sujet mais j'y arrive pas... raison pour laquelle j'ai rajouté un message).
Je ne sais pas si tu as une autre idée pour m'aider. Je n'arrive pas ou je ne sais pas comment faire pour initialiser un champ table avec une variable globale... c'est comme s'il manque

J'ai beaucoup déclarer:
Dans le code d’initialisation et/ou de fin d'initialisation de me mon champ table (Table_Proposition):

MaSource.ParamIDRéclamation=gnIDRéclamation

Elle n'est pas prise en compte...Est-ce qu'il y a une autre commande à exécuter? dans le simulateur ça fonctionne bien mais pas sur l'appareil mobile.

D'avance merci pour ton aide. Yves
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 05 janvier 2020 - 06:27
Excuse moi Yves,
Mais ton champ table est normalement rempli avec les données de ta base de données.
Si ton champ table est rempli en mode test et pas sur le mobile et tablette c'est que je pense que ta base n'est pas présente.
Il faut donc commencer par vérifier cela avant tout le reste.
Membre enregistré
5 messages
Posté le 05 janvier 2020 - 21:22
Merci Popoy, j'ai pu avancer un bon bout. Je ne comprends pas pourquoi, mais le fait d'avoir changer le nom du package lors de la génération de l'application et contrôler tous les paramètres, ça à résolu beaucoup de problème.
Maintenant mes champs tables sont initialisés avec les bonnes valeurs lors du premier appel de ma fenêtre, mais quand je rappelle ma fenêtre et que le contexte à changer, il me réaffiche les valeurs précédentes! L'initialisation du champ table ne se refait pas automatiquement...alors que si j'utilise le rafraichissement par tirer/relâcher avec ce code
MaSource.ParamIDRéclamation=gnIDRéclamation
TableAffiche(TABLE_Proposition, taCourantBandeau)

Cela fonctionne, il me réaffiche bien les bonnes valeurs. J'ai tenté de mettre ce même code dans l'initialisation de ma table, mais cela ne fonctionne pas.

Je ne comprends pas, mais je vais continuer à chercher. Merci pour ton aide.
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 06 janvier 2020 - 07:58
Le fait d'avoir changé le nom du package fait que tu as 2 versions de ton application sur le mobile.
A l'initialisation de l'application ta base est initialisé
Quand tu rappel ta fenêtre mais que celle-ci n'as pas été fermée
Alors il ne fait que réafficher ta fenêtre
Peut-être que la fonction utilise pourrait résoudre ton problème
De plus , je ne vois pas de code d'exécution de requête
La gestion des sources de données fonctionne bien en windev mais bug un peu sur windev mobile.
Membre enregistré
5 messages
Posté le 06 janvier 2020 - 21:08
Je suis heureux :) j'ai trouvé mon erreur, j'avais oublié dans le code de ma fenêtre contenant le champ table de rajouter
TableAffiche(Table_, tainit) dans la zone de fin d'initialisation.

Maintenant tout est en ordre. Merci infiniment Popoy pour ton aide et ton support!