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

Formules Discussion :

Somme evolutive : comment faire ?


Sujet :

Formules

  1. #1
    Futur Membre du Club
    Somme evolutive : comment faire ?
    Bonjour

    J'utilise Crystal reports version 14.1

    Je doit faire une somme evolutive, c'est a dire que j'ai une table

    article a . 17/06/15 . 25
    article a . 17/06/15 . 10
    article a . 18/06/15 . -5
    article b . 17/06/15 . 5
    article b . 18/06/15 . 10
    article b . 18/06/15 . -5

    je veux obtenir
    article a . 17/06/15 . 35 . 35
    article a . 18/06/15 . -5 . 30
    article b . 17/06/15 . 5 . 5
    article b . 18/06/15 . 5 . 10

    C'est a dire que la premiere colonne est la somme des mouvements du jour, la seconde est le stock le jour J
    En gros, c'est comme un relevé bancaire.
    La somme des mouvements du jour, pas de probleme.

    Le stock le jour J, je n'ai pas trouvé. Comment faire ?

    Ps , je doit faire ensuite la meme chose avec SQL SERVER DATA TOOLS pour un etat partagé.

    Richard

  2. #2
    Futur Membre du Club
    En fouillant dans l'aide , j'ai trouvé ma réponse. La voici :

    "
    Pour créer des totaux cumulés à l'aide d'une formule

    1- Création d'un rapport à l'aide des exemples de données de Xtreme.mdb. Reliez les tables Clients et Commandes entre elles et placez les champs suivants de gauche à droite dans la section Détails :
    {customer.CUSTOMER NAME}
    {orders.ORDER ID}
    {orders.ORDER AMOUNT}


    Remarque : Xtreme.mdb est disponible sur le site Web de support de SAP Business Objects.

    2- Dans le menu Affichage, cliquez sur Explorateur de champs.

    3- Dans la boîte de dialogue Explorateur de champs, sélectionnez Champs de formule, puis cliquez sur Nouveau.

    4- Affectez le nom "TotalCumulé" à la formule et cliquez sur Utiliser l'éditeur.
    L'Editeur de formule est actif dans l'Atelier de formules qui s'affiche.

    5- Saisissez les données suivantes dans la zone Formule :
    WhilePrintingRecords;
    CurrencyVar Amount;
    Amount := Amount + {Orders.Order Amount};

    6- Cliquez sur le bouton Enregistrer et fermer de l'Atelier de formules.

    7- Placez cette formule dans la section Détails de votre rapport, à droite du champ Commandes.Montant commande.
    Cette formule imprime le total cumulé des valeurs du champ Montant commande.

    8- Dans le menu Insertion, cliquez sur Groupe et regroupez le rapport sur le champ Clients.Nom du client.

    9- Dans l'Atelier de formules, créez "RéinitialiserMontant" :
    WhilePrintingRecords;
    CurrencyVar Amount := 0;
    Cette formule signifie :
    Définir la valeur de la variable Montant sur 0.

    10- Placer cette formule dans la section En-tête de groupe 1 de votre rapport.
    La section En-tête de groupe 1 n'apparaissant qu'une seule fois pour chaque groupe, le paramètre @RéinitialiserMontant s'exécute à chaque changement de groupe. Ainsi, la variable Montant est redéfinie sur 0 pour chaque nouveau groupe.

    11- Sélectionnez la formule @RéinitialiserMontant dans le rapport et utilisez l'Editeur de mise en forme pour la supprimer pour qu'elle n'apparaisse pas lors de l'impression finale.

    12- Dans l'Atelier de formules, créez "AfficherMontant" :
    WhilePrintingRecords;
    CurrencyVar Amount;
    Cette formule affiche simplement la valeur actuelle de la variable Montant à tout moment.

    13- Placez cette formule dans la section Pied de page de groupe 1 de votre rapport.
    La section Pied de page de groupe 1 n'apparaissant qu'une seule fois pour chaque groupe, le paramètre @AfficherMontant s'exécute à chaque fin de groupe. Ainsi, la valeur stockée dans la variable Montant sera imprimée lors de chaque changement de groupe.



    Remarque : Cette formule imprime la même valeur que celle imprimée par @TotalCumulé en tant que total cumulé pour le dernier enregistrement de chaque groupe. Toutefois, comme l'impression se fait dans la section Pied de page de groupe, la formule agit comme un sous-total de groupe et non comme un total cumulé.
    Dans votre rapport, chaque ligne dans la colonne du total cumulé affiche la valeur d'enregistrement en cours ajoutée aux valeurs précédentes. Le total cumulé est réinitialisé pour chaque nouveau groupe ; le total cumulé final de chaque groupe devient le sous-total de ce groupe.
    "

  3. #3
    Membre expérimenté
    Merci
    Merci Richard,
    j'avais le même problème pour calculer le report de bas de page dans les factures à plusieurs pages.
    Sans exemple, il est pratiquement impossible d'inventer ce genre de formule
    il faut bien mettre les trois formules sinon, on a des chiffres bizarres
    et bien faire gaffe à l'endroit ou on les mets

    Encore merci et bravo à developpez.net
    -------------------Simplifi----------comme si tout était simple--------