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 :

Créer une fiche avec ODS PDF


Sujet :

ODS et reporting

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut Créer une fiche avec ODS PDF
    Bonjour, le programme suivant me permet de créer une fiche par observation.
    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
    18
    19
    data T1;
       input X Y $ Z;
       datalines;
    1 ze 3
    4 fsdf 6
    7 dsgg 9
    ;
    data _null_;
       set T1;
       length NomVar $32 VarCar $ 500;
       put @1 "Ceci est un essai" @80 "Observation " _N_;
       do until(NomVar='NomVar');
          call vnext(NomVar);
          if NomVar eq 'NomVar' then leave;
          if vtype(NomVar) eq 'N' then do; VarNum=vvaluex(NomVar); put @1 NomVar @20 VarNum; end;
          if vtype(NomVar) eq 'C' then do; VarCar=vvaluex(NomVar); put @1 NomVar @20 VarCar; end;
       end;
       put _page_;
    run;
    Mais le résultat est dans la LOG !

    Je souhaiterai obtenir ce même résultat dans un fichier PDF à l'aide du programme suivant et en remplaçant put par put _ODS_ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       ods listing close;
       ods pdf file='d:\temp\X.pdf' notoc startpage=no;
       data _null_;
          set T1 end=FinTable;
          file print ods;
          ...
       run;
       ods pdf close;
       ods listing;
    Ca ne me donne pas du tout un résultat correct.

    Quelqu'un saurait-il comment procéder ?

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 41
    Points : 57
    Points
    57
    Par défaut
    Je crois que tu dois utiliser une procédure pour générer l'output, dans ce cas-ci, un proc print suffira

  3. #3
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Je crois que je me suis mal fait comprendre.

    Avec mon programme initial, j'obtiens ce que je veux lorsque je n'utilise pas ODS.
    Mon problème est de savoir comment obtenir une sortie via ODS, avec le même type de programme.

    Dans ce que tu dis, une proc print va générer le type d'output suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     X    Y       Z
     1    ze      3
     4    fsdf    6
     7    dsgg    9
    Ce n'est pas ce que je souhaite.
    Je voudrais obtenir 3 fiches avec pour la 1ère fiche dans mon exemple :
    idem pour les fiches 2 et 3

    C'est un peux ce qu'on pourrait obtenir avec une proc tranpose, en bidouillant un peu, mais mon problème de départ n'aura pas trouvé sa solution.

  4. #4
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 549
    Points : 243
    Points
    243
    Par défaut
    Mon problème de fiche n'est toujours pas résolu. Voici une version qui fonctionne, sans ODS :
    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
    data T1; input X Y $ Z; datalines;
    1 ze 3
    4 fsdf 6
    7 dsgg 9
    ;
    data _null_;
       set T1;
       file 'd:\temp\x.txt';
       length NomVar $32 VarCar $ 500;
       put "Observation " _N_;
       do until(NomVar='NomVar');
          call vnext(NomVar);
          if vtypex(NomVar) eq 'N' then do; VarNum=vvaluex(NomVar); put @1 NomVar @20 VarNum; end;
          if vtypex(NomVar) eq 'C' then do; VarCar=vvaluex(NomVar); put @1 NomVar @20 VarCar; end;
       end;
    run;
    J'imprime dans un fichier texte quelconque (ici, X.txt). J'obtiens bien mes observations sous forme de fiches.
    La même chose ne fonctionne pas avec ODS. Voici le programme :
    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
    18
    19
    20
    data T1; input X Y $ Z; datalines;
    1 ze 3
    4 fsdf 6
    7 dsgg 9
    ;
    ods listing close;
    ods pdf file='d:\temp\X.pdf';
    data _null_;
       set T1;
       file print ods;
       length NomVar $32 VarCar $ 500;
       put _ODS_ "Observation " _N_;
       do until(NomVar='NomVar');
          call vnext(NomVar);
          IF vtype(NomVar) eq 'N' then do; VarNum=vvaluex(NomVar); put _ODS_ @1 NomVar @20 VarNum; end;
          IF vtype(NomVar) eq 'C' then do; VarCar=vvaluex(NomVar); put _ODS_ @1 NomVar @20 VarCar; end;
       end;
    run;
    ods pdf close;
    ods listing;
    La LOG affiche des remarques pour chaque observation lue dans T1 :
    NOTE: Invalid numeric data, 'Observation' , at line 12 column 4.
    NOTE: Invalid numeric data, NomVar='X' , at line 15 column 65.
    NOTE: Invalid numeric data, NomVar='Y' , at line 16 column 65.
    NOTE: Invalid numeric data, VarCar='ze' , at line 16 column 65.
    NOTE: Invalid numeric data, NomVar='Z' , at line 15 column 65.
    NOTE: Invalid numeric data, NomVar='NomVar' , at line 16 column 65.
    NOTE: Invalid numeric data, VarCar='NomVar' , at line 16 column 65.
    X=1 Y=ze Z=3 NomVar=NomVar VarCar=NomVar VarNum=3 _ERROR_=1 _N_=1
    Quelqu'un saurait-il débrouiller cette question ?

Discussions similaires

  1. Créer une fiche avec des procédures et fonctions
    Par ibrahim26 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/12/2008, 02h54
  2. Créer une vue avec des requêtes UNION ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2005, 13h37
  3. Réponses: 4
    Dernier message: 09/02/2005, 11h44
  4. Créer une grille avec centage
    Par lil_jam63 dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 16/08/2004, 17h21
  5. [Image]Créer une image avec JAVA 1.1
    Par burno dans le forum 2D
    Réponses: 4
    Dernier message: 11/08/2004, 10h19

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