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 :

Une sorte de WHERE sur Windev Possible ?


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Une sorte de WHERE sur Windev Possible ?
    Bonjour, les amis, je suis nouveau sur Windev Mobile et je cherche encore à prendre mes marques mais je souhaiterais avoir une information, en faite pour l'instant je travaille sur un projet clients + transactions (gestion bancaire en quelques sortes)

    J'ai 2 analyses = 1 client (IDClient, nom, prenom,etc) + 1 transaction (jai crée une relation via IDClient)
    Maintenant je souhaite afficher une zone répétée avec les transactions pour chaque client, par exemple, le client 1 ne doit pas voir les transactions du client 2, j'ai cherche toute la nuit mais rien, j'avais tentée ça (je suis un novice) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SI transactions.IDClient = Client.IDClient ALORS
    	ZoneRépétéeAjoute(ZR_Transactions,transactions.IDClient)
    	ZR_Transactions.DateTransaction..Valeur = transactions.DateTransaction
    	ZR_Transactions.Intituletransaction..Valeur = transactions.Intituletransaction
    	ZR_Transactions.Frais..Valeur = transactions.Frais
    SINON
    	ZR_Transactions = Invisible
    	LIB_AucuneTransaction = toVisible
    FIN
    Existe t'il une solution simple de faire cela, je cherche un peu à faire un WHERE?

    Merci par avance, les amis.
    Nom : Capture d’écran (3).png
Affichages : 244
Taille : 141,2 Ko

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pourquoi ne pas alimenter ta ZR via une requête ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
      *
    FROM 
      Transaction
    WHERE 
      Transaction.FK_Client = {ParamIDClient}
    Rq cette requête peut aussi être crée via l'éditeur.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci de ton message, je trouve dommage qu'on puisse par dire cela via le générateur de RAZ, ce serait plus simple.
    Par exemple, si l'IDClient de la base "table1" n'est pas le même que l'IDClient de la base 2 ont affiche rien.

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    C'est ce que fait la requête.
    Elle n'affiche que les transactions du client passé via le paramètre ParamIDClient.
    Au niveau de l'IHM, on peut même aller plus loin.
    On appellera notre requête REQ_TransacDUnClient. Dans notre fenêtre on crée notre ZR (ZR_Transac) alimentée par REQ_TransacDUnClient et un libellé LIB_NoTransac comportant un message du style "Pas de transaction disponible"

    Dans l'initialisation de la fenêtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    HExécuteRequête(REQ_TransacDUnClient, ParamIDClient)
    Si HNbEnr(REQ_TransacDUnClient)=0 ALORS
         ZR_Transac.Visible=Faux
         LIB_NoTransac.Visible=Vrai
    SINON
         ZR_Transac.Visible=Vrai
         LIB_NoTransac.Visible=Faux
    FIN
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Citation Envoyé par ghosttugastyle Voir le message
    Merci de ton message, je trouve dommage qu'on puisse par dire cela via le générateur de RAZ, ce serait plus simple.
    Par exemple, si l'IDClient de la base "table1" n'est pas le même que l'IDClient de la base 2 ont affiche rien.
    Bonjour;
    Si on peut le dire, on utilisant Hfiltre.

    Bon Dev

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci Voroltinquo, j'ai essayé votre solution mais j'ai un erreur :

    "Identificateur 'ParamIDClient' inconnu ou inaccessible." sur le code la fenetre :
    Nom : Capture d’écran (4).png
Affichages : 213
Taille : 166,7 Ko

    Merci.

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    ParamIDClient est un paramètre qui doit être passé en paramètre (comme c'est étrange) de la fenêtre transaction.
    Ce qui nous donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FEN_Transaction(ParamIDClient est entier su 8 octets)
    Et pour l'appel, à l'issue du processus de login je suppose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HLitRecherche(Client,Nom,SAI_Login)
    SI SAI_MDP=Client.MotDePasse ALORS
         Ouvre(FEN_Transaction,Client.IDClient)
    .....
    Autre méthode qui ferme la fenêtre de login:
    On ne touche pas à l'initialisation de FEN_Transaction.
    On déclare ParamIDClient comme variable globale au projet
    Le code du login devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    HLitRecherche(Client,Nom,SAI_Login)
    SI SAI_MDP=Client.MotDePasse ALORS
         ParamIDClient=Client.IDClient
         Utilise(FEN_Transaction)
    .....
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Juste une question : ça marche pas comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    POUR TOUT Transaction AVEC IdClient = Client.IdClient
          ZoneRépétéeAjouteLigne(.......)
    Fin
    Bon Dev.

  9. #9
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Cela dépend de la manière dont est alimlentée la ZR, par prog ou via un fichier/requête
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    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 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Si tu parles de Where, c'est que tu 'aimes' travailler avec la syntaxe SQL.

    Windev permet assez bien de travailler avec SQL. Cf les fonction HExecuteRequeteSQL, SQLTable() ... ...

    Sinon, tu parles de Générateur de RAD (RAD, et non RAZ j'imagine). Le RAD est à éviter. Le RAD permet d'aller très vite, il permet à des gens qui n'ont pas de culture informatique de faire des choses, mais pour un vrai informaticien, le RAD va vite te décevoir.
    Le RID est pas mal, le A de RAD veut dire Application, le I de RID veut dire Interface. Autrement dit, Le RID t'aide à faire l'interface, mais ne met pas le code derrière. Ainsi, tu gardes le controle sur tout.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    J'ai essayé de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    POUR TOUT transactions AVEC IDClient = Client.IDClient
    	ZoneRépétéeAjouteLigne(ZR_transactions.LIB_Libellé1,transactions.Intituletransaction)
    FIN
    Mais le soucis, c'est que toutes les transactions s'affiche, peu importe l'utilisateur, je comprends plus rien.
    Pourtant j'ai 2 transactions test, avec 2 idclients différents dont 2 utilisateurs.

  12. #12
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Où est placé ton code, d'où reçoit-il client.idClient ?
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bon, les amis, finalement je suis arrivée, mais avec un champ table + code sql, je dois pas encore maitrisé les zones répétées.
    Je vous remercie de votre aide, il me reste plus qu'a révisé encore un peu.

  14. #14
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Où est placé ton code, d'où reçoit-il client.idClient ?
    1 - : Avant l'appel de la fenêtre Transaction on doit sélectionner un client

    le code est placé dans déclaration de la fenêtre transactions.
    La zone répétée est remplie par programmation


    ----------

    Dans le cas où la zone répétée est liée au Fichier Transactions la clé de parcours doit être l'IdClient et le code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         Hfiltre(transactions,idclient,client.idclient)
         ouvre(Fen_Transactions)
         hdesactivefiltre(transactions)
    le code est placé juste après sélection du client.


    Bon Dev.

  15. #15
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    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 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ghosttugastyle Voir le message
    Bon, les amis, finalement je suis arrivée, mais avec un champ table + code sql, je dois pas encore maitrisé les zones répétées.
    Je vous remercie de votre aide, il me reste plus qu'a révisé encore un peu.
    Avec un champ ZR, le principe est le même
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Avec un champ ZR, le principe est le même
    J'imagine, je vais ressayerais plus tard, merci à toi.

Discussions similaires

  1. Insérer une sorte de rollover sur site weebly
    Par siegekhol dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 03/10/2014, 08h26
  2. Réponses: 4
    Dernier message: 20/11/2008, 15h16
  3. Requête SQL sur une base Access, where sur un champ date
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/05/2008, 16h47
  4. Clause Where sur une Date
    Par Zebulonn dans le forum Installation
    Réponses: 31
    Dernier message: 20/10/2005, 11h56
  5. Gestion OnChange sur une sorte d'éditeur de propriétés
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 29/09/2004, 09h59

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