PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Erreur d'accès à la WD Source de données que je ne comprends.
Erreur d'accès à la WD Source de données que je ne comprends.
Débuté par Guilhem VIDAL, 13 mar. 2018 09:20 - Aucune réponse
Membre enregistré
3 messages
Posté le 13 mars 2018 - 09:20
Bonjour à toutes et tous,

Je vous explique en quelques lignes l'application Android servant à remonter les rapports d'activité de salariés sur chantier.

1) fenêtre de connexion
2) fenêtre de choix de client selon s'il a un chantier en cours
3) fenêtre du choix du chantier de ce client (en fait un chantier se découpe en parcelles donc forcément il y en a plusieurs)

Maintenant un aperçu rapide du code.

Connexion
- champ login et password, si identification vérifiée j'envoie en paramètre l'ID du salarié aux fenêtres suivantes

Choix client (tout le code est placé dans la fin d'initialisation de la fenêtre pour éviter un chargement de l'ihm dans le désordre).

Initialisation
PROCÉDURE MaFenêtre(sIDSalarie est un entier)

Fin d'initialisation
sCodeSQL est une chaîne = " SELECT DISTINCT chantier.Client AS Client FROM statutchantier, chantier WHERE chantier.IDStatutChantier = statutchantier.IDStatutChantier AND (statutchantier.Description = 'En cours') AND chantier.DateDebut <= GETDATE()"
ReqClient est une Source de Données
// Initialisation de la requête "Client"
HExécuteRequêteSQL(ReqClient, sCodeSQL)
HLitPremier(ReqClient)
TANTQUE PAS HEnDehors(ReqClient)
ListeAjoute(COMBO_Client, ReqClient.Client + gLien(ReqClient.Client))
HLitSuivant(ReqClient)
FIN

Clic sur bouton Valider

OuvreFenêtreMobile(FEN_Chantier,sIDSalarie,COMBO_Client..ValeurMémorisée)

Donc on passe à la fenêtre Choix chantier dont voici le code très similaire

Initialisation
PROCÉDURE MaFenêtre(LOCAL sIDSalarie est un entier,LOCAL sClient est une chaîne)

Fin d'initialisation
sCodeSQL est une chaîne = "SELECT chantier.IDchantier, chantier.CodeChantier, chantier.IDStatutChantier, chantier.DateDebut, statutchantier.IDStatutChantier, statutchantier.Description FROM statutchantier, chantier WHERE chantier.IDStatutChantier = statutchantier.IDStatutChantier AND (statutchantier.Description = 'En cours') AND chantier.DateDebut <= GETDATE() AND (chantier.Client = {Param1})"
ReqChantier est une Source de Données
// Initialisation de la requête "Client"
ReqChantier.Param1 = sClient
HExécuteRequêteSQL(ReqChantier, sCodeSQL)
HLitPremier(ReqChantier)
TANTQUE PAS HEnDehors(ReqChantier)
ListeAjoute(COMBO_Chantier, ReqChantier.CodeChantier + gLien(ReqChantier.IDchantier))
HLitSuivant(ReqChantier)
FIN

Et là j'ai un cas critique. Tout marche dans l'émulateur. Mais sur un device Android, j'ai cette erreur :

Message=Le fichier, la vue ou la requête 'ReqChantier' n'est pas connu.
Fonction WLangage=OuvreFille
Traitement=Initialisation de FEN_Chantier.COMBO_Chantier
Pile WLangage=Initialisation de FEN_Chantier.COMBO_Chantier
Clic gauche sur FEN_Client.BTN_Valider
Pile Java=fr.pcsoft.wdjava.core.erreur.WDErreurManager.a(Unknown Source)
fr.pcsoft.wdjava.core.erreur.WDErreurManager.a(Unknown Source)
fr.pcsoft.wdjava.core.types.database.WDSourceDonnees.getSourceDonnees(Unknown Source)
fr.pcsoft.wdjava.core.types.database.WDSourceDonnees.getElement(Unknown Source)
fr.pcsoft.wdjava.core.WDObjet.get(Unknown Source)
fr.amp09.amp_mobile.wdgen.GWDFFEN_Chantier$GWDCOMBO_Chantier.init(GWDFFEN_Chantier.java:149)
fr.pcsoft.wdjava.ui.q.executerPCode(Unknown Source)
fr.pcsoft.wdjava.ui.champs.rb.executerPCode(Unknown Source)
fr.pcsoft.wdjava.ui.q.appelPCode(Unknown Source)
fr.pcsoft.wdjava.ui.champs.qb.appelPCode(Unknown Source)
fr.pcsoft.wdjava.ui.champs.kb.j(Unknown Source)
fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.activity_onCreate(Unknown Source)
fr.pcsoft.wdjava.ui.activite.h.run(Unknown Source)
android.os.Handler.handleCallback(Handler.java:751)
android.os.Handler.dispatchMessage(Handler.java:95)
fr.pcsoft.wdjava.core.g.r.a(Unknown Source)
fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.ouvre(Unknown Source)
fr.pcsoft.wdjava.ui.champs.fenetre.l.ouvre(Unknown Source)
fr.pcsoft.wdjava.ui.champs.fenetre.l.ouvrirFenetre(Unknown Source)
fr.pcsoft.wdjava.api.WDAPIFenetre_Commun.ouvreFille(Unknown Source)
fr.amp09.amp_mobile.wdgen.GWDFFEN_Client$GWDBTN_Valider.clicSurBoutonGauche(GWDFFEN_Client.java:279)
fr.pcsoft.wdjava.ui.q.executerPCode(Unknown Source)
fr.pcsoft.wdjava.ui.champs.rb.executerPCode(Unknown Source)
fr.pcsoft.wdjava.ui.q.appelPCode(Unknown Source)
fr.pcsoft.wdjava.ui.champs.qb.appelPCode(Unknown Source)
fr.pcsoft.wdjava.ui.q.appelPCode_TLM(Unknown Source)
fr.pcsoft.wdjava.ui.champs.bouton.d.onClick(Unknown Source)
android.view.View.performClick(View.java:5637)
android.view.View$PerformClick.run(View.java:22433)
android.os.Handler.handleCallback(Handler.java:751)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:6186)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Thread=id=1
name=main
priority=5
groupName=main

Je ne comprends pourquoi ma première source de données (fenêtre client) ne pose aucun problème alors que la seconde (fenêtre chantier) oui. La seule différence étant le paramètre il me semble.

Si quelqu'un peut m'éclairer sur ce qu'il se passe je vous remercie.

Cordialement,