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 :

Création et utilisation d'un distancier [WD20]


Sujet :

WinDev

  1. #21
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    peut être une requete.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM KM WHERE (KM.lieu1={param_lieu1} AND KM.lieu2={param_lieu2}) OR (KM.lieu1={param_lieu2} AND KM.lieu2={param_lieu1})

    regarde un peut la doc sur les requêtes.
    si tu arrive à afficher une distance, il ne te restera plus qu'à ajouter les autres combos et faire de même, et ensuite, une petite fonction qui calcule la somme des distance.

  2. #22
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Ok, je vais essayer ca ;-)

    Par contre, le résultat s'affichera dans quoi? une fenêtre info ?
    Je fais un bouton qui active la requête pour le calcul?

    Merci a toi, ton aide m'a été vraiment précieuse en tout cas

    Amicalement
    Gecko

  3. #23
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    tu peut faire l'affichage dans un libellé ou un champs de saisi c'est comme tu veut. je te laisse découvrir comment leur affecter une valeur.
    pour le lancement de la requête, à toi de voir si tu veut le mettre dans un bouton mais il y a mieux. tu peut y arriver.

  4. #24
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bon, ben je t'avoue que j'ai du mal la... lol

    J'ai installé une requete SQL, avec le code que tu m'a donné, mais malgré les infos super bien faites sur le form de PC sotf, j'arrive pas .

    Voici ce que j'ai fais:

    1) Création d'une requête sql nomée "REQ_cherche" avec le code => SELECT * FROM KM WHERE (KM.lieu1={param_lieu1} AND KM.lieu2={param_lieu2}) OR (KM.lieu1={param_lieu2} AND KM.lieu2={param_lieu1})


    2) Sur la fenetre distancier, j'ai 2 combo qui reprennent la base de donnée "lieu"

    3) Création d'un bouton d'appel de la requete avec le code => HExécuteRequête (REQ_cherche)


    Pour le rste je suis bloqué, je n'arrive pas a appeler la donnée que j'ai besoin. j'avoue que je suis dépassé...
    Peux tu me donner une direction pour que j'oriente mes recherches?

    bien a toi

    Gecko

  5. #25
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Jusqu'à HexecuteRequeteSQL, ok.
    Après, quand tu exécutes une requête, tu dois récupérer le résultat.
    En général, le résultat contient plein d'enregistrements. Le résultat est en fait un pseudo-fichier.
    Dans ton cas, le résultat est un pseudo-fichier d'une ligne et d'une colonne.
    Pour lire un pseudo fichier, tu peux passer par des HlitPremier() et HlitSuivant() , mais comme tu sais que ton fichier contient au maximum une ligne, HLitSuivant ne sera pas utile.

    Ou tu peux passer par des SQLFetch()

    Pour une version V0, ça suffit.
    Pour une version V1, il va falloir gérer les cas d'erreurs, et en particulier, gérer le cas où la distance demandée ne figure pas dans la base de données.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #26
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bon, ben je n'y arrive pas. en fait je bloque sur l'affichage de la réponse.

    Sur mon bouton, j'ecris le code => HExécuteRequête(REQ_cherches)
    et j'ai créé sur la fenetre distancier un SAI "Résultat" => SAI_résultat.
    Sur celui-ci, dans le code initialisation, je place le code => HExécuteRequête(REQ_cherches).

    Mais quand je lance l'application, et que je teste il ne me donne rien, je pense que j'ai du mal avec le code, mais je me trompe peut etre.

    Pas évident, mais grand merci pour ton aide
    Gecko

  7. #27
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 133
    Points : 204
    Points
    204
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HExécuteRequête(REQ_cherches)
    HlitPremier()
    SAI_résultat=REQ_cherches.distance

  8. #28
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    C'est exactement ce que j'avais mi, mais malheureusement, il ne me donne pas un bon résultat.
    Lorsque j'ai encodé les lieux de départ et d'arrivée, par ex: Centrale Jumet et CNDG, j'ai donné un valeur à 4 KM
    Lorsque j'utilise ce code, il me donne un valeur à 2. c'est ca que je ne comprends pas lol.
    Le problème ne viendrait il pas de ma Requete?

  9. #29
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Il y a une bonne habitude de programmation à prendre dès le début.
    Souvent, par fainéantise, on ne le fait pas, mais après, on se retrouve avec des problèmes.

    Il faut TOUJOURS tester les codes retour des fonctions qu'on utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    b0 = hexecuteRequeteSQL( ReqCherches)
    si b0 = faux alors 
       Erreur ( " Plantage ", herreurinfo() )
       Retour
    fin
    hlitpremier(ReqCherches)
    si hendehors() alors 
       warning ( " Aucun Enreg correspondant dans le fichier ")
       Retour
    fin
    Sai_resultat = reqCherches.distance
    Essaie cette discipline, peut-être que tu auras un message d'erreur explicite.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #30
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Bonjour à toi,


    Effectivement, c'est un réflex que je n'ai pas encore acquit. De plus, je ne savais pas que je devais le faire lol. Mais ton conseil n'est pas tombé dans l'oreille d'un sourd.

    Par contre, je ne sais pas comment cela se fait, mais je ne sais pas appliquer cette vérification. Il me dit que "b0" ne fonctionne pas. alors bien entendu, je ne sais pas pourquoi mdr.

    Je vais recommencer depuis le début sur base de toutes les informations que tu m'a données.
    Je te remercie encore mille fois pour ton aide.

    Amicalement
    Gecko

  11. #31
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Au début du traitement, tu dois déclarer la variable b0 :
    b0 est un entier
    ou encore
    b0 est un booleen
    ... puis le traitement précédent.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #32
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    LOL, oui, en effet, maintenant je comprend mieux.

    J'ai mi ce code la sur le bouton, et voici l'erreur que j'ai ;-)


    Nom : erreur.png
Affichages : 123
Taille : 7,6 Ko

    J'ai vraiment du mal, je pense que j'ai peut être été trop vite en besogne. J'aurais du commencer avec quelque chose de plus simple...

    Par contre, je ne comprend pas l'erreur car j'ai testé ma requête et elle fonctionne, mais avec les param 1et 2, il ne me donne aucuns résultat dans ma requète.

  13. #33
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    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 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Il y avait plusieurs méthodes pour ton besoin.

    Passer par les requêtes est bien, mais à mon avis, ce n'est pas le plus simple. Les requêtes ont un gros avantage : si un jour tu quittes Windev pour un autre environnement, la notion de Requête est standard.


    Pour quelqu'un qui est archi-débutant, je ferais autrement.

    L'étape n°1, c'est de s'assurer que l'analyse est bien conçue.
    Dans ton fichier 'km' , il faut déclarer une clé composée unique sur les colonnes Départ et Arrivée .... qu'est-ce que ça veut dire clé composée unique ? Ca veut dire que pour un lieu de départ donné, et un lieu de d'arrivée donné, tu peux avoir au MAXIMUM 1 ligne.
    Cette clé va porter un nom que tu vas choisir. Disons cle_depart_arrivee

    Et ensuite tu vas faire un code qui devrait commencer comme ça :
    hLitRecherche(jm, cle_depart_Arrivee, hconstruitvalcle( lieu_depart, lieu_arrivee) )

    Regarde bien l'aide sur les clés composées, sur les fonctions HlitRecherche, HConstruitValCle ... tu vas apprendre plein de choses.



    Mais ceci-dit, les requêtes marchent très bien, il doit juste y avoir un détail que tu n'as pas fait.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #34
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Hé bien, je voudrais te remercier pour ton aide précieuse.
    J'ai pas mal de choses à apprendre avant d'aller plus loin, je ne désespère pas, mais ca fait 5 jours que je suis dessus et j'avoue que je ne comprend plus rien.
    Je viens d'essayer avec le code que tu me donne, mais je vais apprendre par le liais de l'aide avant d'aller plus loin. Je suis complètement perdu.
    Ca avait l'air de bien fonctionner en effet avec la Requète, mais je ne pige pas pourquoi ca plante, je vais faire des recherches approfondies.


    Malgré tout, je te remercie mille fois pour le temps que tu a passé à m'expliquer.
    J'espère ne pas t avoir " pris la tete" lol

    Je continue a travailler dessus et ne manquerai pas de te tenir informé de la réalisation de mon projet.
    Au plaisir te te lire.

    bien amicalement

    Gecko

  15. #35
    Membre à l'essai
    Homme Profil pro
    iesca
    Inscrit en
    Octobre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : iesca

    Informations forums :
    Inscription : Octobre 2015
    Messages : 27
    Points : 16
    Points
    16
    Par défaut Merci à tbc92
    tbc92 ,

    je voudrais te remercier, je suis arrivé à mes fins avec mon distancier.

    J'ai travaillé avec des champ de table et ca fonctionne à merveille ;-)

    voici une image de mon ttrvail.

    Encore merci pour ton aide.
    A très bientôt.

    Gecko

    Nom : travail.png
Affichages : 132
Taille : 223,6 Ko

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  3. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45
  4. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57
  5. Réponses: 4
    Dernier message: 27/03/2002, 11h03

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