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

ODS et reporting Discussion :

Proc report et plusieurs formats dans une colonne


Sujet :

ODS et reporting

  1. #1
    Membre régulier
    Homme Profil pro
    SAS automation
    Inscrit en
    Juin 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SAS automation
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 87
    Points : 84
    Points
    84
    Par défaut Proc report et plusieurs formats dans une colonne
    Bonsoir,

    Après avoir laissé pas mal de cheveux je me retourne vers vous, car j'ai un soucis avec une procédure report.
    J'essaye pour une colonne données, d'affecté deux formats différents pour mes valeurs(pas sur que ce soit possible), bien sur je peux sélectionner le format à appliquer suivant la valeur d'un autre colonne.

    Voici le bout de code que j'ai essayé d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    compute offre_comp / character ;
    				if offre_comp in ('MDD') then do;
    					call define ("montant_offre",'style','style= [tagattr="format:0.0%] )');
    				end;
    				if offre_comp not in ('MDD') then do;
    					call define ("montant_offre",'style','style= [tagattr="format:currency"]');
    				end;
    	endcomp;
    offre_comp est un varaible caractère qui va me permettre de définir le format à utiliser.

    malheureusement cela ne marche pas, est ce que vous aves une idée qui pourrais m'aider?

    Merci d'avance, mes cheveux aussi vous remercie

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Une remarque déjà : dans le 1er CALL DEFINE, il manque un guillemet fermant dans ton TAGATTR.
    Ensuite une question : est-ce que la colonne à habiller, MONTANT_OFFRE, se trouve à gauche ou à droite de OFFRE_COMP dans le rapport ? Si elle est à gauche d'OFFRE_COMP, pas de souci mais si elle est à droite il faudrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTE montant_offre ;
    en tête du bloc COMPUTE.
    La raison ? Ce qu'on précise après COMPUTE n'est pas la variable sur laquelle on fait des calculs, mais le moment où on fait des calculs. La proc REPORT remplit ses lignes de tableau de gauche à droite, il est donc recommandé de faire les blocs COMPUTE en fin de ligne, c'est à dire concrètement en indiquant après COMPUTE le nom de la variable la plus à droite du rapport (la dernière citée dans COLUMNS).

    Une dernière chose si les points précédents n'ont pas résolu le souci : OFFRE_COMP existe déjà dans ta table SAS j'imagine. Elle ne doit donc pas avoir un rôle COMPUTED dans son DEFINE, et quand tu écris tu n'as pas à préciser car il me semble qu'on ne doit faire ça que quand on crée une colonne texte. Une fois encore, après COMPUTE, on indique un moment, pas une source d'information.

    J'espère que parmi ces remarques, il y aura quelque chose pour te mettre sur la bonne piste.
    Bon courage.
    Olivier

  3. #3
    Membre régulier
    Homme Profil pro
    SAS automation
    Inscrit en
    Juin 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SAS automation
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 87
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Merci pour la réponse.

    L'oublie du guillement en une erreur lors de mes nombreux tests, mais cela ne résouds pas le problème.

    Dans la ligne column ma variable offre_comp est à gauche, mais lorsque je mettais computed pour montant offre dans le define, la valeurs ne s'affichait pas et je ne voyais que des point au lieu des valeurs numérique.

    C'est pour cela que j'ai mis en compute ma variable offre_comp mais elle ne s'afiche pas elle est en noprint. Elle est juste là pour faire le tri pour le format ensuite.

    Les deux variables offre_comp et montant_offre existe déjà dans la table.

    Voici pour plus de détails la partie define et column.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    column offre gencod libelle categorie_produit offre=offre2 offre_comp montant_offre (p1, (ca_p1 qty_p1 valeur_dist_p1 mag_p1 tot_p1 dn1) p2, (ca_p2 qty_p2 valeur_dist_p2 mag_p2 tot_p2 dn2) evolution, ( indice_dn indice_ca));
     
    define gencod / GROUP style(column) = {tagattr='format:@'} style(header)={BACKGROUND = VLIGB } "Code article";
    define libelle/ GROUP  style(header)={BACKGROUND = VLIGB } "Libellé";
    define categorie_produit / group style(header)={BACKGROUND = VLIGB } "Catégorie de produit";
    define offre / group noprint;
    define offre2 / group style(header)={BACKGROUND = VLIGB } "Offre";
    define offre_comp / COMPUTED noprint;
    define montant_offre / GROUP  style(header)={BACKGROUND = VLIGB } "Montant de l'offre (en euros)";
    j'ai mis computed car pour moi il était obligatoire pour pouvoir faire des compute sur les varaibles. Car si je ne le mets pas j'ai un erreur dans ma log qui me dit qu'il manque un ;

    Encore merci

  4. #4
    Membre régulier
    Homme Profil pro
    SAS automation
    Inscrit en
    Juin 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SAS automation
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 87
    Points : 84
    Points
    84
    Par défaut
    Re-bonjour,

    Finalement j'ai trouvé mon erreur une parenthèse mal placé et plus rien ne marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call define ("montant_offre",'style','style= [tagattr="format:0.0%] )');
    la parantèse après la simple quote.

    Donc finalement la synthaxe qui marche est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    compute montant_offre;
     
    	if offre2 in ('MDD') then do;
    			call define ("montant_offre",'style','style= {tagattr="format:0.0%"} ');
    	end;
     
    	if offre2 not in ('MDD') then do;
    			call define ("montant_offre",'style','style= {tagattr="format:currency"}');
    	end;
     
    endcomp;
    Ce fut un grand moment de solitude après avoir trouvé

    Encore Merci Olivier pour l'aide.

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

Discussions similaires

  1. [ODS] Proc report avec plusieurs onglets dans une feuille excel
    Par tdiallo dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 28/06/2012, 16h37
  2. regrouper plusieurs lignes dans une colonne
    Par Satch dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/08/2009, 11h39
  3. SQL / Inserer plusieurs champs dans une Colonne(ATTRIBUT)
    Par cedill23 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/07/2009, 11h03
  4. Insérer plusieurs valeurs dans une colonne
    Par hadjiphp dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2009, 03h14
  5. [PHP 5.0] Insertion avec plusieurs mots dans une colonne
    Par cyrilherve dans le forum Langage
    Réponses: 4
    Dernier message: 21/03/2009, 08h41

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