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

SAS Base Discussion :

Générer des rapports sur des paths différents


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Générer des rapports sur des paths différents
    Bonjour à tous,
    je souhaite générer des rapports sur des chemins différents, j'ai utilisé pour cela un chemin déjà existant et qui fonctionne. Je récupèrer pour cela l'identifiant (agr) avec la function call symput, ensuite je fais une boucle en vue de parcourir ma liste et chaque element de la liste devenant l'argument de la macro %lignetest qui se chargerait d'éditer le path du fichier à générer.
    Tout se passe comme je l'aurais souhaité, à la seule deception que c'est toujours mon 1 er fichier qui est généré dans les différentes destinations. Je ne comprends pas l'origine de ce probleme. Merci d'avance pour votre aide.
    Voici mon code:


    %macro macropath();
    data _NULL_;
    set Mylib.Liste_Fr;
    call symput("fin",_n_); /*nombre de lignes de la table c'est la variable numérique 'fin'*/
    CALL SYMPUT(COMPRESS("agr_ligne"||_N_),agr); /*Créer autant de macro-variables qu’il y a d’observations dans une table.*/
    run;
    %do i = 1 %to &fin;
    %let save_nom = &&agr_ligne&i; /*Nom de macro-variable indicé */
    %lignetest (&save_nom);
    %end;
    %mend;
    %macropath ();


    %macro lignetest(charAGR);
    %let p1 = G:\DG1 BOEKHOUDING\Healthaccount\BMF_Outputs\BMF Outputs 2018-1\Hospital\CalculBMF\&charAGR\B4_&charAGR;
    %let p2 = _A_B4_2018_1.pdf;
    %let p1p2 = &p1&p2;
    %let lepath = %sysfunc(quote(&p1p2)); /*mettre des quotes aux extrêmes de la macro-variable*/
    %lerapport(&lepath);
    %mend;

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2017
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Novembre 2017
    Messages : 63
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Je ne vois pas d'erreur problématique dans votre code, il est possible que quelque chose m'échappe.

    Vous avez oublié de donner le code de la macro %lerapport. L'erreur pourrait se situer dans cette macro.

    Pensez à utiliser les balises [ CODE] pour mettre en forme votre code, c'est plus lisible pour les personnes qui voudront prendre un peu de temps pour vous aider.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    JQuen, je vous remercie déjà pour votre intervention.

    Voici ma macro lerapport(...) dont vous avez demandé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    %macro lerapport(charlepath);
    ods pdf file = &charlepath style=report_pdf ;
     
    ods layout gridded; 
     
    proc report data=mylib.data_L0 nowd
    style(report)={rules = none frame = void  background = white just=l}
    style(header)={rules = none frame = void background = white just=l foreground=black};
    columns sous_titre;
    define sous_titre / style(column)=[ foreground=blue cellwidth=17cm font_size=12pt font_style=italic font_weight=bold] display '';
    run;
     
    ods layout end;
    ods pdf close;    
    ods listing;
     
    %mend;

Discussions similaires

  1. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26
  2. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  3. [Débutant] Générer des courbes sur des graphes différents
    Par halyins dans le forum MATLAB
    Réponses: 2
    Dernier message: 29/07/2009, 11h22
  4. [MySQL] Exclusion sur des champs de 2 tables différentes
    Par bermu01 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 14/11/2006, 23h25
  5. rapport sur des données spécifiques
    Par oops1980 dans le forum Access
    Réponses: 9
    Dernier message: 27/10/2006, 13h30

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