IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Comment j'évite ces warnings [WD23]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 79
    Points : 43
    Points
    43
    Par défaut Comment j'évite ces warnings
    Bonjour

    J'utilise un modèle de champ dans une fenêtre et j'ai des erreurs de compilation et plus précisement des avertissements (Warning) , en revance l'execution de notre application sa tourne bien sans aucun souci.

    Type de Warning est comme ceci

    Warning : Identificateur 'table' inconnu ou inaccessible. Vérifiez que l'identificateur existe bien dans tous les éléments (fenêtres ou pages) qui utilisent le modèle.ModèleChampsBoutons.BoutonConsulter, Clic sur ModèleChampsBoutons.BoutonConsulterligne 5, colonne 24

    NB:
    Indicateur 'table' est traité dans le code existant dans les boutons, mais la table se trouve dans ma fenêtre.

    Avez-vous une idée sur ce type de warning et comment je passe ce problème?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 266
    Points
    5 266
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faut modifier le code du modèle concerné.
    Sans plus d'information, code, nom des champs je ne peu pas en dire plus.

    Docteur, j'ai parfois mal au petit doigt, c'est grave ?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Il faut modifier le code du modèle concerné.
    Sans plus d'information, code, nom des champs je ne peu pas en dire plus.

    Docteur, j'ai parfois mal au petit doigt, c'est grave ?

    Code du bouton consulter qui se trouve dans modèle champ est le suivant :

    LigneTable est un entier= TableSelect(Table) //Erreur signaler ici sur le mot table
    SI LigneTable<1 ALORS
    Info("Veuillez sélectionner la ligne à traiter.")
    RepriseSaisie()
    FIN

    Table se trouve dans la fenêtre et aussi le champ modèle se trouve dans la même fenêtre

    les erreurs warning s'affiche en bas du modèle champ
    Merci

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 054
    Points : 9 394
    Points
    9 394
    Par défaut
    Si tu as ce type de warning, c'est que ton programme n'est pas sain.

    Ton modèle de champ, il va marcher tant qque tu l'utiliseras dans des conditions 'adaptées', et un jour , il ne marchera plus, parce que ta table portera un autre nom.

    Voici une solution qui ne me plait pas complètement , mais qui devrait te permettre d'avancer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sch est une chaine 
    sch = "table"       //   Et si tu pouvais rendre cette ligne paramétrable , ce serait encore mieux.
    LigneTable est un entier
     
    LigneTable= TableSelect( sch) 
    SI LigneTable<1 ALORS
      Info("Veuillez sélectionner la ligne à traiter.")
      RepriseSaisie( sch)
    FIN
    En plus, dans la ligne RepriseSaisie(), j'ajoute le nom de la table, ça me parait plus pertinent.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Si tu as ce type de warning, c'est que ton programme n'est pas sain.

    Ton modèle de champ, il va marcher tant qque tu l'utiliseras dans des conditions 'adaptées', et un jour , il ne marchera plus, parce que ta table portera un autre nom.

    Voici une solution qui ne me plait pas complètement , mais qui devrait te permettre d'avancer :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sch est une chaine 
    sch = "table"       //   Et si tu pouvais rendre cette ligne paramétrable , ce serait encore mieux.
    LigneTable est un entier
     
    LigneTable= TableSelect( sch) 
    SI LigneTable<1 ALORS
      Info("Veuillez sélectionner la ligne à traiter.")
      RepriseSaisie( sch)
    FIN
    En plus, dans la ligne RepriseSaisie(), j'ajoute le nom de la table, ça me parait plus pertinent.
    Merci tbc92 pour ta réponse

    J'ai déjà résolu mon souci en faisant la même proposition comme la tienne.

    Mais j'ai encore même souci pour les procédures locaux, je t'explique:

    J'ai une procédure locale définit dans un modèle de champ, j'essaye d'exécuter cette procédure depuis une fenêtre qui contient ce modèle de champ mais il y a un avertissement, après je trouve 2 solutions qui ne me plait pas, soit de transformer ma procédure en procédure globale, soit je crée une fenêtre modèle qui contient le modèle champ puis je crée ma fenêtre à nouveau depuis la fenêtre modèle.
    Comment trouve tu ces 2 solutions ou bien est ce que tu as une autre idée?

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 266
    Points
    5 266
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Reprenons ce que nous apprend la documentation sur les modèles de champ :
    Un modèle de champs est un ensemble de champs, réutilisables dans plusieurs fenêtres ou pages.

    ...

    Les modèles de champs permettent de :
    regrouper un ensemble de champs dans un but précis.
    rendre des champs indépendants de la fenêtre les accueillant.
    Dans ton cas, la dernière condition n'est pas respectée.
    tcb92 t'a donné une rustine, mais lorsqu'il y a trop de rustines, il faut changer le pneu.

    Dans un premier temps, ton bouton se réfère à un champ table, donc, dans tous les cas, il devra y avoir un champ table dans la fenêtre
    Pourquoi dans ce cas ne pas inclure ton champ table dans ton modèle. Il suffira de surcharger le champ table lors de l'utilisation du modèle.

    En ce qui concerne l'appel de la procédure, il suffit de l'appeler comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMOD_MonModèle.LaProcédureDeMonModèle
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Reprenons ce que nous apprend la documentation sur les modèles de champ :

    Dans ton cas, la dernière condition n'est pas respectée.
    tcb92 t'a donné une rustine, mais lorsqu'il y a trop de rustines, il faut changer le pneu.

    Dans un premier temps, ton bouton se réfère à un champ table, donc, dans tous les cas, il devra y avoir un champ table dans la fenêtre
    Pourquoi dans ce cas ne pas inclure ton champ table dans ton modèle. Il suffira de surcharger le champ table lors de l'utilisation du modèle.

    En ce qui concerne l'appel de la procédure, il suffit de l'appeler comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMOD_MonModèle.LaProcédureDeMonModèle
    Merci de ta réponse
    Merci ça marche

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 266
    Points
    5 266
    Billets dans le blog
    1
    Par défaut
    Il doit y avoir un problème ailleurs alors
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment tester "vite fait, bien fait" ?
    Par =JBO= dans le forum WinDev
    Réponses: 7
    Dernier message: 06/11/2009, 17h24
  2. squid, comment il utilise ces 3 type de memoire
    Par kerkennah dans le forum Réseau
    Réponses: 3
    Dernier message: 30/05/2007, 10h37
  3. Comment mieux écrire ces lignes ?
    Par cobolfingaz dans le forum C#
    Réponses: 5
    Dernier message: 16/02/2007, 10h02
  4. [Tableaux] J'ai pas compris ces warnings !!
    Par adlich dans le forum Langage
    Réponses: 3
    Dernier message: 29/04/2006, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo