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 d'un état d'une table mémoire -> génération d'un rapport pdf


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 34
    Points
    34
    Par défaut Création d'un état d'une table mémoire -> génération d'un rapport pdf
    Bonjour,

    Je suis en train de créer un état qui sera généré en pdf. Cet état sera un rapport comprenant une liste de factures. Les factures en questions se trouvent dans une table mémoire d'une de mes fenêtres.

    Le but est qu'il y ai un bouton sur la fenetre ou se trouve ma table mémoire, et que quand je clique dessus ça me génère le pdf avec la liste des factures. Je ne souhaite pas le faire avec l'assistant, mais par programmation. j'ai donc crée un état vierge, et coché: "je programme la lecture de ma source de données".

    Au sujet des factures: Il y a une dizaines de colonnes, dont une comportant la devise: soit EUR, soit USD, soit YEN....etc.

    Ce que je souhaite obtenir exactement:

    ->Toutes les factures présentes dans ma table mémoire.
    -> Que celles-ci soient triées par devise. L'idéal serais d'ailleurs que j'obtienne un tableau par devise...

    J'ai essayé de suivre ce tuto, mais il n'explique pas comment le faire pour une table mémoire :s: http://doc.pcsoft.fr/fr-FR/?1011034&...ees-programmee

    Merci de m'avoir lu, bonne soirée

  2. #2
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 808
    Points
    1 808
    Par défaut
    Tes données sont dans ta table mémoire, tu dois simplement faire un Etat sur Table.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Pourquoi ne pas créer un état Tableau, basé directement sur ta table mémoire ?
    Ainsi tu n'as pas besoin de programmer la source de données.

    Tatayo.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Le soucis c'est que je ne souhaite pas reprendre tel quel les données de ma table...Je souhaite les trier par devise et en faire différents tableaux si possible (1 par devise...). Je ne peut pas faire ça en créant un état tableau?

  5. #5
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 808
    Points
    1 808
    Par défaut
    L'Etat est la représentation avant impression de tes données. Un Etat sur Table imprime la table telle qu'elle est.

    Ce n'est pas au niveau de l'impression, ou de l'exportation en PDF, que le traitement des données s'effectue mais avant l'affichage.
    C'est ta table que tu dois trier et ensuite l'imprimer.

    Un truc me chiffonne : tu dis vouloir trier par devise.
    Tu mélanges dans un même facturier des factures établies dans des devises différentes ? Et tu veux trier par exemple toutes les factures en €, puis en $, etc. ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Oui, c'est ça l'idée. Etant donné que j'ai de nombreuses devises à prendre en compte, je ne vais pas faire un fichier facture par devise, donc je les met toutes dans le même, et précise juste par une colonne devise à quoi ça correspond.

    Mon fichier facture est ainsi:
    Id_Facture -> Id de la facture
    Account -> numéro client
    Contrat -> Numéro de contrat
    Amount -> Montant de la facture
    Curr -> Devise (Euro, Dollard...)
    ...


    J'ai reussi à m'en sortir finallement. Mon astuce, rajouter une colonne avec des booleens dans ma facture. Quand je selectionne les factures que je souhaite imprimer dans mon état, ça met la valeur du booleen à 1.

    Ensuite, je fait une requete qui me selectionne toutes les factures qui on ce fameux booleens égal à 1. Et en créant un état sur requête, windev propose d'ajouter des rupture, ce qui correspond à un tri. J'ai donc pu trier et avoir un tableau par devise de cette façon. Cela me permet au passage de calculer le montant total des factures pour chaque devise.

    Par contre, j'ai une nouvelle question maintenant . Comme vous voyez, j'ai un numéro de contrat dans ma table facture. Ce que je doit faire maintenant, c'est que lorsque je selectionne un certain nombre de factures, il me les tries par contrat, afin d'en générer un rapport en PDF pour chacun des contrats.

    Je resume:
    Pour toutes les factures selectionnées je doit avoir:
    ->Un rapport en pdf pour chaque contrat. Par exemple, si sur 35 factures, 20viennent du même contrat, et les 15 restantes d'un autre contrat, il me fera un pdf pour le premier contrat, et un autre pdf pour le second, chacun contenant les factures qui lui sont associées.

    ->Ce rapport devrais avoir pour nom "le numéro de contrat.pdf"

    ->A l'interieur de chaque pdf, les factures sont triées par numéro de client, puis par devise. ça c'est bon j'y arrive.

    Help me!

  7. #7
    Membre chevronné Avatar de Guardian
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    820
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 820
    Points : 1 808
    Points
    1 808
    Par défaut
    Je réitère ce que j'ai déjà dit :
    1) pour le PDF tu fais un état sur table en format PDF
    2) pour le tri des données, tout doit se faire dans la requete qui rempli la table.
    Si tu as déjà trié par devises, il te reste à trier par contrat

  8. #8
    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
    Citation Envoyé par vincmer28 Voir le message
    Le soucis c'est que je ne souhaite pas reprendre tel quel les données de ma table...Je souhaite les trier par devise et en faire différents tableaux si possible (1 par devise...). Je ne peut pas faire ça en créant un état tableau?
    Ce que tu veux faire s'appelle des ruptures. Tu fais une rupture par changement de devise, une par changement de contrat. Dans la définition de ta rupture, tu peux (ou non) demander à faire un saut de page).
    Il faut que ta table soit triée par devise et par contrat pour avoir des résultats cohérents.

    Une astuce est d'utiliser une 2° table mémoire de structure identique à la première (vive le copier-coller) mais qui sera invisible. Ainsi tu pourras faire toutes les manips que tu souhaites sans que cela perturbe ou soit perturbé par l'utilisateur.
    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

Discussions similaires

  1. Création colonne au millieu d'une table
    Par bipcpp dans le forum Développement
    Réponses: 16
    Dernier message: 11/01/2016, 22h19
  2. [WD10] Création d'une table mémoire
    Par gilles_akoli2001 dans le forum WinDev
    Réponses: 1
    Dernier message: 05/06/2009, 09h30
  3. Réponses: 5
    Dernier message: 13/03/2007, 19h08
  4. Enreistrement d'un état dans une table
    Par ob1knob dans le forum Access
    Réponses: 4
    Dernier message: 21/07/2006, 16h29
  5. Réponses: 7
    Dernier message: 30/01/2006, 21h36

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