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 :

Dupliquer les données d'un enregistrement sur la page d'un etat [WD17]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut Dupliquer les données d'un enregistrement sur la page d'un etat
    Bonjour j'ai réalisé un état pour l'impression d'un reçu sauf que sur l'aperçu avant impression la page à imprimer à 2 reçu de deux clients différents alors que je voudrais que se soit 2 reçu pour le même client afin qu'un reçu soit restituer au client l'autre pour la comptabilité. J'ai besoin de votre aide, merci d'avance

  2. #2
    Membre du Club Avatar de ptahsokaris
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Pourriez-vous donner un peu plus de précisions s'il vous plait ?
    Par exemple, quel code utilisez-vous actuellement pour générer l'état ? Ou bien quelle requête est utilisée pour sélectionner les données ?
    "Une fois, à une exécution, je m'approche d'une fille. Pour rigoler, je lui fais : « Vous êtes de la famille du pendu ? »... C'était sa sœur. Bonjour l'approche !"

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    d'après ce que je comprends, cela pourrait provenir d'un problème dans votre filtre

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Code de mon etat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ReçuDepot est une Source de Données
    gsRequete est une chaîne
     
    gsRequete="select ReçuDepot.IDReçuDepot,ReçuDepot.IDReçu,ReçuDepot.NumEnvoieDA,ReçuDepot.IntCltE,ReçuDepot.TelCltE,ReçuDepot.NatureCour,ReçuDepot.Poids,ReçuDepot.Montant,ReçuDepot.PaysDest,ReçuDepot.IntCltD,ReçuDepot.TelCltD,ReçuDepot.DateDepot,ReçuDepot.Statut"
    HExécuteRequêteSQL(ReçuDepot,hRequêteDéfaut,gsRequete)
    HLitPremier(ReçuDepot)
     
    RENVOYER PAS HEnDehors(ReçuDepot)

    Code du bloc de mon etat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    rub_IDReçu = ReçuDepot.IDRe��uDepot
    rub_NumEnvoieAB = ReçuDepot.NumEnvoieDA
    rub_IntCltE = ReçuDepot.IntCltE
    rub_TelCltE = ReçuDepot.TelCltE
    RUB_NatureCour = ReçuDepot.NatureCour
    rub_Poids = ReçuDepot.Poids
    rub_Montant = ReçuDepot.Montant
    rub_PaysDest = ReçuDepot.PaysDest
    RUB_DateDepot = ReçuDepot.DateDepot
    rub_IntCltD =  ReçuDepot.IntCltD
    rub_TelCltD = ReçuDepot.TelCltD
     
    HLitSuivant(ReçuDepot)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GAJES Voir le message
    gsRequete="select ReçuDepot.IDReçuDepot,ReçuDepot.IDReçu,ReçuDepot.NumEnvoieDA,ReçuDepot.IntCltE,ReçuDepot.TelCltE,ReçuDepot.NatureCour,ReçuDepot.Poids,ReçuDepot.Montant,ReçuDepot.PaysDest,ReçuDepot.IntCltD,ReçuDepot.TelCltD,ReçuDepot.DateDepot,ReçuDepot.Statut"
    Je ne vois pas de "FROM" ni de "WHERE" dans votre requête

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    En effet il n'y a ni de where ou de From juste pour simple. Pensez vous que cela pourrait résoudre mon problème !

  7. #7
    Invité
    Invité(e)
    Par défaut
    La requête est syntaxiquement incorrecte, toute requête de type sélection doivent contenir les mots clés "SELECT" et "FROM", et pou y appliquer un filtre, le mot clé "WHERE" doit être ajouté.
    Essayez de nouveau votre traitement après avoir corrigé votre requête

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    D'accord merci pour la precision

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Si j'ai bien tout compris de ton état : tu as une page A4 (portrait) divisée en 2. Les données du haut sont dupliquées en bas.

    Rien ne t'empêche de faire un copier coller de tes champs de la partie haute vers la partie basse de ton état. Ton code devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    rub_IDReçu = ReçuDepot.IDRe��uDepot
    rub_IDReçu1 = ReçuDepot.IDRe��uDepot
    rub_NumEnvoieAB = ReçuDepot.NumEnvoieDA
    rub_NumEnvoieAB1 = ReçuDepot.NumEnvoieDA
    ...
    Mais avant toute chose, tu dois vérifier que ta requête est correcte.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  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 393
    Points
    9 393
    Par défaut
    Il y a un autre principe très important en programmation en général ( pas uniquement Windev), c'est de tester les codes retour.

    Il ne faut JAMAIS faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HExécuteRequêteSQL(ReçuDepot,hRequêteDéfaut,gsRequete)
    HLitPremier(ReçuDepot)
    Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    b est un booleen 
    b = HExécuteRequêteSQL(ReçuDepot,hRequêteDéfaut,gsRequete)
    si pas b alors 
       hinfogene(  )
       erreur ( " La requete a planté " , herreur() )
    fin 
    HLitPremier(ReçuDepot)
    Regarde l'aide de HexecuteRequeteSQL() pour avoir la syntaxe précise.

    En tout cas, moi, je suis incapable de débugger mes programmes sans passer systématiquement par ça.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    J'ai fais ce que vous m'avez demandé donc ceci:

    Si j'ai bien tout compris de ton état : tu as une page A4 (portrait) divisée en 2. Les données du haut sont dupliquées en bas.

    Rien ne t'empêche de faire un copier coller de tes champs de la partie haute vers la partie basse de ton état. Ton code devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    rub_IDReçu = ReçuDepot.IDRe��uDepot
    rub_IDReçu1 = ReçuDepot.IDRe��uDepot
    rub_NumEnvoieAB = ReçuDepot.NumEnvoieDA
    rub_NumEnvoieAB1 = ReçuDepot.NumEnvoieDA
    ...
    Pour les autres conseils émis je les prend en compte afin à la longue de palier à d'autres accrochages.Merci à vous tous pour votre aide

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Le problème de mon état réglé, je suis confronté à un soucis. Lors de l'impression des reçus, le classement de ceux ci sont pèles mêles comment puis je faire afin que les reçus soient alignés du plus nouveau au plus anciens pour faciliter l’utilisateur.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GAJES Voir le message
    Le problème de mon état réglé, je suis confronté à un soucis. Lors de l'impression des reçus, le classement de ceux ci sont pèles mêles comment puis je faire afin que les reçus soient alignés du plus nouveau au plus anciens pour faciliter l’utilisateur.
    En faisant un tri? en mettant un order by dans la requête?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    Jai essayé le Order By dans le code de l'etat mais il ne change pas car les reçus sont tjrs peles meles et quand j'ai jété un coup d'oeil dans le tableau TReçuDepot je compris que le problème c'est que le classement des enregistrements depuis le tableau est pele mele donc comment y remedier.

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Tu veux les trier par rapport à quoi ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  16. #16
    Invité
    Invité(e)
    Par défaut
    On peut voir la requête, le résultat obtenu (3 ou 4 lignes de la requête) et le résultat attendu?

  17. #17
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    1- Voici le code de mon etat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ReçuDepot est une Source de Données
    gsRequete est une chaîne
     
    gsRequete="select * FROM ReçuDepot where ReçuDepot.NumEnvoieDA = CourrierDepartAt.NumEnvoieDA ORDER by ReçuDepot.IDReçuDepot DESC"
     
    HExécuteRequêteSQL(ReçuDepot,hRequêteDéfaut,gsRequete)
     
    HLitPremier(ReçuDepot)
    Resultat attendu: Qu'il classe le dernier enregistrement en premier cad decroissant

    2- Je veux les trier par rapport au IDReçuDepot

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GAJES Voir le message
    gsRequete="select * FROM ReçuDepot where ReçuDepot.NumEnvoieDA = CourrierDepartAt.NumEnvoieDA ORDER by ReçuDepot.IDReçuDepot DESC"
    Etonnant que windev ne râle pas, il aurait dû dire que la requête est mal construite, qu'il ne connait pas CourrierDepartAt.NumEnvoieDA...
    Elle doit retourner quoi exactement? Les champs de ReçuDepot, de CourrierDepartAt ou les 2?

    Citation Envoyé par GAJES Voir le message
    2- Je veux les trier par rapport au IDReçuDepot
    S'agit-il d'un champ numérique de type id.automatique?

  19. #19
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2016
    Messages : 54
    Points : 17
    Points
    17
    Par défaut
    1- Elle doit retourner juste les enegistrements de la table ReçuDepot dans l'etat Reçu en ordre decroissant

    2- Oui en effet IDReçuDepot est un champ numérique de type id.automatique.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gsRequete="select * FROM ReçuDepot where NumEnvoieDA in (SELECT NumEnvoieDA  FROM CourrierDepartAt) ORDER by IDReçuDepot DESC"
    Comme IDReçuDepot est un champ de type id.Automatique, cela veut dire que le 1er enregistrement qui sera remonté sera le dernier enregistrement crée, puis, l'avant dernier et ainsi de suite.
    Si ce n'est pas ce genre de tri que vous voulez, faites sur un autre champ, ne connaissant pas précisément la description de votre table ReçuDepot, vous seul pouvez savoir sur quel champ il faut faire le tri

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Imprimer les informations d'un enregistrement sur deux pages
    Par Shalfx dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/03/2016, 20h30
  2. Réponses: 1
    Dernier message: 13/12/2010, 14h31
  3. [MySQL] Enregistrer les données d'un formulaire sur un autre serveur
    Par nixax dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 04/11/2006, 21h36
  4. enregistrer les données d'un FORMULAIRE sur une TABLE
    Par godzinho dans le forum Access
    Réponses: 15
    Dernier message: 11/03/2006, 18h03

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