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 :

Interrupteur et Requête


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Interrupteur et Requête
    Bonjour, je débute avec windev et je ne sais pas comment utiliser un interrupteur afin de sélectionner une valeur dans une requête de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExécuteRequête (RequeteSélection,hRequêteDéfaut,Interrupteur1)
    Ouvre(FEN_RésultatSélection)
    j'ai initialiser l'interrupteur comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI Interrupteur1 = Vrai ALORS
    Mavaleur = Interrupteur1
    FIN
    J'arrive à faire fonctionner cette requête en utilisant un champs de saisie. J'aimerai connaitre la façon d'initialiser l'interrupteur et le code à utiliser . Est-il possible également d'utiliser un interrupteur en le situant à l'intérieur d'une fenêtre interne?

    Merci d'avance pour votre aide.
    Arsène

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 223
    Par défaut
    Bonjour,
    pour ton interrupteur, je ne suis pas sur mais je crois que c'est quelque chose dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SI interrupteur ALORS interrupteur=Faux SINON interupteur=Vrai

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    J'ai donc initialiser l'interrupteur ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI Interrupteur1=0 ALORS Interrupteur1=Faux SINON Interrupteur1=Vrai
    J'utilise maintenant la requête suivante sur un bouton "Valider" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExécuteRequêteSQL(EXPRESS_REQ_RequeteSélection,"SELECT Source FROM EXPRESS_MonFichier WHERE Source = Interrupteur1")
    Ouvre(EXPRESS_FEN_RésultatSélections)
    Lorsque je remplace Interrupteur1 par 'NondelaSource' dans ma requête, ça fonctionne mais ça ne tient pas compte de mon interrupteur.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    À mon avis tu confonds :
    - le sélecteur et l'interrupteur
    - le changement d'état par programmation et la récupération de la valeur

    Pour récupérer l'état d'un interrupteur (savoir si l'option est ou non cochée) tu dois faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaValeur=NomInterrupteur[Option]
    Donc pour attribuer une valeur à une variable si l'option 1 de l'interrupteur est cochée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Si NomInterrupteur[1]= vrai alors
        MaVariable="EstVrai"
    Sinon
        MaVariable="EstFaux"
    Fin

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    C'est en fait au niveau de la requête qu'y a un problème. J'ai saisi le code suivant sur un bouton "Valider" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HExécuteRequêteSQL(EXPRESS_REQ_RequeteSélection,"SELECT Source FROM EXPRESS_MonFichier WHERE Source =  'Interrupteur1[1]..Libellé'")
    Ouvre(EXPRESS_FEN_RésultatSélections)
    ça marche pas, même si je remplace 'Interrupteur1[1]..Libellé' par Interrupteur1[1]

    Merci de votre aide.

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Par défaut
    Bonjour,

    en fait il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HExécuteRequêteSQL(EXPRESS_REQ_RequeteSélection,"SELECT Source FROM EXPRESS_MonFichier WHERE Source = '" + Interrupteur1[1] + "'")

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Interrupteur et Requête
    Bonjour, j'ai essayé le code mais il n'a pas marché.
    j'essaye toutes les combinaisons possibles et ça ne marche pas. J'utilise maintenant HExécuteRequête à la place de HExécuteRequêteSQL :

    HExécuteRequête (EXPRESS_REQ_RequeteSélection,hRequêteDéfaut,Param1)
    Ouvre(EXPRESS_FEN_RésultatSélections)

    Lorsque je ne rajoute pas ",Param1", j'obtiens la table RésultatsSélections avec toutes les valeurs saisies.
    Lorsque je rajoute: "Nomsélectionné", ça marche mais sans tenir compte de l'interrupteur.

    J'essaye de paramétrer juste avant HExécute de plusieurs façons et ça marche pas:

    Param1 est une chaîne
    Param1 = Interrupteur1[1]

    Param1 est une chaîne
    Param1 = Nomsélectionné

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2006
    Messages : 205
    Par défaut
    tu veu donc que dans ta requete SQL il y ai la valeur présente dans Interrupteur1[i]..Libellé où i est la valeur coché ??
    Est-ce que tu as rempli tes libellés par programmation ou a la main ?

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Comment récupérer la valeur d'un interrupteur pour exécuter une requête?
    Bonjour, J'ai crée une fenêtre, dans cette fenêtre j'ai glissé un interrupteur avec une seule case que j'ai libellé. Ensuite j'ai crée un bouton et j'aimerai pouvoir récupérer la valeur de l'interrupteur pour exécuter ma requête. Ma requête fonctionne trés bien si on inscrit manuellement la valeur qui est contenu dans l'interrupteur.

  10. #10
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Par défaut
    Ma requête fonctionne très bien si on inscrit manuellement la valeur qui est contenue dans l'interrupteur.
    On peut la voir cette requête qui fonctionne?

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Description
    J'ai fait une Requête de sélection toute simple :

    La rubrique : EXPRESS_MonFichier.Source
    Egal à : au paramètre
    Nom du paramètre : Param1

    MonFichier contient une rubrique Source dans laquelle plusieurs noms ont été saisie. Lorsque je tape :
    HExécuteRequête (EXPRESS_REQ_RequeteSélection,hRequêteDéfaut,"UnNomdelaRubriqueSource")
    Ouvre(EXPRESS_FEN_RésultatSélections)
    ça fonctionne, ça sélectionne juste la ligne désirée.

  12. #12
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Par défaut
    "UnNomdelaRubriqueSource" peut prendre comme valeur "vrai", "faux, 0,1 ou une chaîne de caractère?

    Je peux avoir des détails de ton interrupteur (nombre d'options, libellés...)?

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Description
    J'ai crée une rubrique "Source" avec plusieurs noms (Source1, Source2,...) qui sont des chaines de caractère. Mon interrupteur comprend 1 seule option : Nom de l'interrupteur: "Interrupteur1" ; Libellé de l'interrupteur : Source1 ; Nom de l'option: "Source1" (Le libellé de l'interrupteur et le nom de l'option sont identiques).

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Requête avec plusieurs interrupteurs
    Bonjour, j'ai fait une requête de sélection avec 3 paramètres qui utilise 3 interrupteurs différents:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Param1 est une chaîne
    Param2 est une chaîne
    Param3 est une chaîne
     
    SI Interrupteur1[1] ALORS Param1 = Interrupteur1[1]..Libellé SINON Param1 = ""
    SI Interrupteur2[1] ALORS Param2 = Interrupteur2[1]..Libellé SINON Param2 = ""
    SI Interrupteur3[1] ALORS Param3 = Interrupteur3[1]..Libellé SINON Param3 = ""
    HExécuteRequête (EXPRESS_REQ_RequeteSélection,hRequêteDéfaut,Param1,Param2,Param3)
    Ouvre(EXPRESS_FEN_RésultatSélections)
    Cela n'affiche que le premier paramètre.

    J'aimerai savoir comment faire pour utiliser plusieurs interrupteurs et afficher plusieurs paramètres en même temps

    Merci d'avance de votre aide

  15. #15
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    Ta syntaxe est erronnée ou ton interrupteur mal conçu.

    Tu dois avoir un interrupteur (Interrupteur1 par ex) avec 3 cases, une par paramètres.
    Ta syntaxe sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI Interrupteur1[1]=vrai ALORS Param1 = Interrupteur1[1]..Libellé SINON Param1 = ""
    SI Interrupteur1[2=vrai  ALORS Param2 = Interrupteur1[2]..Libellé SINON Param2 = ""
    SI Interrupteur1[3]=vrai  ALORS Param3 = Interrupteur1[3]..Libellé SINON Param3 = ""

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Requête avec plusieurs interrupteurs
    Bonjour,
    J'ai crée une fenêtre avec 3 interrupteurs, un bouton VALIDER et un champs de table relié à une requête de sélection avec 3 paramètres.

    Je voudrai donc pouvoir utiliser les interrupteurs pour sélectionner les lignes que je veux voir s'afficher dans ma table.
    J'ai codifié le bouton VALIDER de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //** Paramétrage du paramètre 1 **
    SI Interrupteur1[1] ALORS Param1 = Interrupteur1[1]..Libellé SINON Param1 = null
    //** Paramétrage du paramètre 2 **
    SI Interrupteur2[1] ALORS Param2 = Interrupteur2[1]..Libellé SINON Param2 = null
    //** Paramétrage du paramètre 3 **
    SI Interrupteur3[1] ALORS Param3 = Interrupteur3[1]..Libellé SINON Param3 = null
     
     
    //** Exécution de la requête **
    HExécuteRequête (EXPRESS_REQ_RequeteSélection,hRequêteDéfaut)
    //** Ouverture de la fenêtre **
    Ouvre(EXPRESS_FEN_RésultatSélections)
    Lorsque je clique sur VALIDER toutes les données de la table s'affichent, que je sélectionne ou non un interrupteur.
    Si je rajoute Param1 aprés hRequêteDéfaut, ça fonctionne : Rien ne s'affiche sauf lorsque l'interrupteur1 est sélectionné et ça donne le bon résultat.
    Si je rajouteParam2 aprés Param1, alors plus rien ne s'affiche.

    Merci d'avance de votre réponse.

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Conditions de sélection
    Bonjour, j'ai trouvé la solution à ce problème de débutant. Il suffit juste de remplacer le ET par le OU dans les conditions de sélection de la requête.

  18. #18
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Merci au modo pour la mise en forme des codes. C'est bien plus lisible.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/10/2007, 16h24
  2. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  3. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  4. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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