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 :

Tester si une liste est initialisée ou pas [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Tester si une liste est initialisée ou pas
    Bonjour,

    dans mon interface d'interrogation, j'ai 2 listes alimentées l'une par le fichier article, l'autre par le fichier emplacement de stocks. Avec des sélections sur ces 2 listes combinées, je veux pouvoir filtrer une table de résultats.

    J'ai donc ce code sur sélection de ma première liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    SI LISTE_Articles..Valeur <> 0 ALORS 
     
    	SI LISTE_Emplacements..Valeur <> 0 ALORS
    		HFiltre(REQ_Stocks, "art_id = " + LISTE_Articles..Valeur + " ET empl_id = " + LISTE_Emplacements..Valeur)     	
    	SINON
    		HFiltre(REQ_Stocks, "art_id = " + LISTE_Articles..Valeur + " ET empl_nom ~] '" + SAI_filtre1 + "'")     
    	FIN
     
    SINON
     
    	// on est sur *
    	// on doit filtrer la req à l'aide de ce qui est dans le champs filtre
    	// et en fonction de l'emplacement (choisi ou non)
     
    	SI LISTE_Emplacements..Valeur <> 0 ALORS
    		HFiltre(REQ_Stocks, "art_reference ~] '" + SAI_filtre + "' ET empl_id = " + LISTE_Emplacements..Valeur)     	
    	SINON
    		HFiltre(REQ_Stocks, "art_reference ~] '" + SAI_filtre + "' ET empl_nom ~] '" + SAI_filtre1 + "'")     
    	FIN
     
    FIN
     
    HLitPremier(REQ_Stocks)
    TableAffiche(TABLE_Stocks)
    HDésactiveFiltre(REQ_Stocks)
    Mais quand j'exécute mon appli, j'ai tout de suite une erreur sur la ligne (ligne 16 ici):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HFiltre(REQ_Stocks, "art_reference ~] '" + SAI_filtre + "' ET empl_id = " + LISTE_Emplacements..Valeur)
    Je suppose que la liste Articles déclenche l'événement de sélection, le code est exécuté alors que ma liste Emplacements n'est pas encore créée (quand je survole avec la souris la variable LISTE_Emplacements..Valeur ça m'affiche rien, alors qu'elle devrait au minimum avoir la valeur par défaut 0)... Du coup j'aimerais intégrer dans ce code un test pour savoir si la liste est initialisée ou pas...

    Je ne vais quand même pas mettre une tempo à l'initialisation de ma fenêtre !!

    Merci à vous
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    J'ai juste survolé ton message mais je pense que cette fonction peut te servir : FenInitialisée

    ça permet d'exécuter du code uniquement si tous les traitements d'initialisation (dont les champs) sont terminés

  3. #3
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bonjour,

    j'ai testé, mais non ce n'est pas ça qui va m'aider. Ca ne fonctionne pas.

    Dire que j'avais trouvé une solution dans mon premier projet l'année dernière, mais j'ai tout paumé, alors je recommence tout et je re-rencontre les mêmes problèmes
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  4. #4
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Etrange, parce que si je fais un

    Info(LISTE_Emplacements..Valeur)

    en tout début de mon traitement "sélection d'un ligne de LISTE_Articles", il m'affiche vide

    Alors qu'on voit bien qu'il y a la valeur par défaut *

    C'est juste qu'elle ne semble pas "active", pas sélectionnée quoi....
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  5. #5
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    et Info(LISTE_Emplacements..ValeurAffichée) donne quoi ?

  6. #6
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Citation Envoyé par hpascal Voir le message
    et Info(LISTE_Emplacements..ValeurAffichée) donne quoi ?
    vide aussi

    Je comprends vraiment pas pourquoi il voit cette liste vide
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  7. #7
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    et info(LISTE_Emplacements..Occurence) me donne 1 !!!

    De l'aide svp, je suis à l'arrêt !
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    ça ne pourrait pas venir de ta première partie de filtre ?

    Essayes en mettant en commentaire le AND et la suite pour savoir.

    Si c'est cela, il faut tester la valeur de sai_filtre car si c'est vide il ne faut prendre en compte cette zone.

    bon courage,

    Nicolas

  9. #9
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Finalement voilà le code qui marche (je le mets là à des fins d'archivage, on sait jamais si je reperds mon projet, je serai bien content de retrouver la soluce ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    criteres est une chaîne = ""
     
    SI LISTE_Articles <> 0 ET LISTE_Articles <> "" ALORS 
     
    	SI LISTE_Emplacements <> 0 ET LISTE_Emplacements <> "" ALORS
    		criteres = "art_id = " + LISTE_Articles + " ET empl_id = " + LISTE_Emplacements
    	SINON
    		criteres = "art_id = " + LISTE_Articles + " ET empl_nom ~] '" + SAI_filtre1 + "'"
    	FIN
     
    SINON
     
    	// on est sur *
    	// on doit filtrer la req à l'aide de ce qui est dans le champs filtre
    	// et en fonction de l'emplacement (choisi ou non)
     
    	SI LISTE_Emplacements <> 0 ET LISTE_Emplacements <> "" ALORS
    		criteres = "art_reference ~] '" + SAI_filtre + "' ET empl_id = " + LISTE_Emplacements	
    	SINON
    		criteres = "art_reference ~] '" + SAI_filtre + "' ET empl_nom ~] '" + SAI_filtre1 + "'"     
    	FIN
     
    FIN
     
    HFiltre(REQ_Stocks, art_reference,hValMin, hValMax, criteres)
    HLitPremier(REQ_Stocks)
    TableAffiche(TABLE_Stocks)
    HDésactiveFiltre(REQ_Stocks)
    A noter que dans le cas présent, le hfiltre ne fonctionnait pas si je ne précisais pas la clé de parcours et les bornes, alors que d'habitude je ne les mets pas, ni la clé ni les bornes ...

    Mais au final ça fonctionne
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 91
    Points : 136
    Points
    136
    Par défaut
    bonjour

    essayer tout simplement

    SI LISTE_Emplacements..Valeur > 0 ALORS

    au lieu de

    SI LISTE_Emplacements..Valeur <> 0 ALORS


    bon devs

  11. #11
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Ben merde alors, oui très juste, j'ai perdu une après-midi là dessus

    quel con

    merci
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

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

Discussions similaires

  1. tester qu'une liste est "sorted"
    Par alefriedx dans le forum Général Python
    Réponses: 19
    Dernier message: 19/04/2011, 21h43
  2. fonction tester si une span est vide ou pas en js
    Par sajodia dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/03/2011, 16h02
  3. Réponses: 5
    Dernier message: 27/03/2008, 18h52
  4. Réponses: 4
    Dernier message: 17/12/2007, 14h46
  5. Tester si une liste (SELECT) est ouverte ?
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/07/2007, 18h59

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