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

SAP Crystal Reports Discussion :

Calculer une moyenne mobile [CR XI]


Sujet :

SAP Crystal Reports

  1. #1
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut Calculer une moyenne mobile
    Bonjour,

    Je souhaite calculer une moyenne mobile sur 12 mois, mes données étant groupées mois par mois. J'ai procédé de la façon suivante :

    Ajout d'une formule @init dans l'entête de groupe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    WhilePrintingRecords;
    //initialise 12 elements... 1 par mois
    if not inrepeatedGroupHeader then 
        (
        numberVar array PreviousMonths := [0,0,0,0,0,0,0,0,0,0,0,0];
        );
    Et ajout d'une formule @MoyenneMobile dans le pied de page du groupe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    numbervar array PreviousMonths; 
    numbervar i; 
    //décalage des 11 élements précédents
    for i := 1 to 11 do
    ( 
    PreviousMonths[i] := PreviousMonths[i+1];
    );
    // Mise à jour du 12e élément
    PreviousMonths[12] := Sum ({Table.ChampAMoyenner}, {Table.ChampDuGroupe}, "monthly") ;
    // Calcul de la moyenne
    Average(PreviousMonths);
    Or, quand je valide ma formule @init, Crystal me dit qu'il manque un "else". Et si je supprime ma condition "if", Crystal me dit qu'un tableau ne peut pas être le résultat d'une formule.

    Pouvez-vous me dire où se situe mon erreur ?
    Y a t-il plus simple ?

    Merci d'avance,

    C.

  2. #2
    Membre actif Avatar de Cereal123
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 414
    Points : 214
    Points
    214
    Par défaut
    A force de tatonnement, j'ai trouvé la réponse :
    Dans la formule d'initialisation, il faut que la dernière ligne ne soit pas l'initialisation du tableau, car une formule Crystal ne peut pas renvoyer un tableau.
    Pour contourner, il suffit de définir une variable inutilisée :
    La formule @init devient donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WhilePrintingRecords;
    //initialise à 12 éléments... 1 par mois
    if not inrepeatedGroupHeader then 
        (
        numberVar array PreviousMonths := [0,0,0,0,0,0,0,0,0,0,0,0];
        // Variable qui ne sert à rien mais qui est indispensable car
        // une formule Crystal ne peut pas renvoyer un tableau. --> La dernière
        // initialisation ne doit donc pas être un tableau
        numberVar VariableQuiNeSertARien;
        );
    ... et ça marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Requete pour calculer une Moyenne mobile exponentielle (qui depend du recordset precedent.)
    Par lukebalthazar dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/06/2014, 01h31
  2. Calculer une Moyenne Mobile
    Par Kostiaannecy dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 24/10/2011, 16h06
  3. Réponses: 2
    Dernier message: 16/02/2011, 15h59
  4. Calcul d'une moyenne mobile
    Par guillaume117 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 08/06/2010, 13h01
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 17h02

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