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 :

Ods tagsets.excelxp : proc report et call define


Sujet :

ODS et reporting

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut Ods tagsets.excelxp : proc report et call define
    Bonjour,

    J'ai un souci avec l'instruction call define de la proc report avec un export sous Excel grâce à l'ods tagsets.excelxp.

    En effet, je souhaite appliquer sur mes variables de classification à la fois un style et un lien hypertexte.
    Pour cela j'utilise la call define.
    Si les résultats sont exportés sous format Word pas de souci les instructions sont respectées. Malheureusement je souhaite les exporter sous Excel. Pour cela j'utilise l'ods tagsets.excelxp. (Ce que je souhaite fonctionne avec l'ods msoffice mais je préférerai garder l’ods tagsets.excelxp).
    J'utilise une vieille version du tagsets mais j'ai essayé avec le nouveau et le problème est le même. Sous Excel le style n'est pas défini alors que le lien hypertexte est crée. Par contre (j'utilise Sas guide) dans la fenêtre de résultat HTML, les instructions fonctionnent.
    Est-ce du à l'ods tagsets.excelxp, faut-il bidouiller le code ?

    Merci par avance.


    Vous trouverez ci-dessous un exemple de code.
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    %LET CHEMIN=C:\temp;
     
    data class;
    set sashelp.class;
    url="http://www.google.fr";
    run;
     
    ods  Tagsets.excelxp file="&chemin\Exemple.xls" 
    options(sheet_interval='none' embedded_footnotes='yes' sheet_name="EXEMPLE"	embedded_titles= 'yes' fittopage='yes'
    ABSOLUTE_COLUMN_WIDTH='50,9,9,9,9,9,9' AUTOFIT_HEIGHT='yes');
    proc report data=class missing;
    	column url name  sex  age name2;
    	define url /' ' noprint ;
    	define name /'NOM' noprint  ;
    	define name2 /'NOM'  computed;
    	define sex /'SEXE' ;
    	define age /'AGE'    ;
    	compute name2/character length=200;
    			if sex="F" then do;
    					name2=name;
    					CALL DEFINE(_COL_, 'URL', url );
    					call define(_col_, "style", "style=[background=yellow foreground=white font_size=10pt FONT_WEIGHT=bold]");	
    			end;
    			else do;
    					name2=name;
    					CALL DEFINE(_COL_, 'URL', url );
    					call define(_col_, "style", "style=[background=red foreground=white font_size=10pt FONT_WEIGHT=bold]");
    			end;
    	endcomp;
    run;
    ods Tagsets.excelxp close;

  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 : 46
    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.
    Sur SAS 9.2 et tagsets v1.127 ça fonctionne.
    Sur SAS 9.1.3 et tagsets v1.28 ça fonctionne.
    Sur SEG 4.3 branché sur SAS 9.2 et tagsets v1.94 ça fonctionne.
    Du coup,
    Je me suis permis de simplifier un peu le code (pourquoi NAME2 ?).
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    %LET CHEMIN=C:\temp;
     
    DATA class;
    SET sashelp.class;
    url="http://www.google.fr";
    run;
    TITLE ;
    ods  Tagsets.excelxp file="&chemin\Exemple.xls" 
    options(sheet_interval='none' embedded_footnotes='yes' sheet_name="EXEMPLE"	embedded_titles= 'yes' fittopage='yes'
    ABSOLUTE_COLUMN_WIDTH='50,9,9,9,9,9,9' AUTOFIT_HEIGHT='yes');
    proc report DATA=class missing nowd ;
    	COLUMN  name  sex  age url;
    	define name /'NOM' ;
    	define sex /'SEXE' ;
    	define age /'AGE'    ;
    	define url / noprint ;
    	compute url ;
    			IF sex="F" then do;
    					CALL DEFINE("name", 'URL', url );
    					call define("name", "style", "style=[background=yellow foreground=white font_size=10pt FONT_WEIGHT=bold]");	
    			end;
    			else do;
    					CALL DEFINE("name", 'URL', url );
    					call define("name", "style", "style=[background=red foreground=white font_size=10pt FONT_WEIGHT=bold]");
    			end;
    	endcomp;
    run;
    ods Tagsets.excelxp close;
    ???
    Olivier
    Bon courage.
    Olivier

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Bonjour Olivier,

    Tout d'abord, merci pour la réponse, je ne savais pas que l'on pouvait mette le nom d'une des variables en premier attribut à un call define. Je croyais que l'on ne pouvait mettre que "_col_" ou "_row_".

    J'ai essayé avec tous les tagsets disponibles sur le support sas, rien n'y fait l'instruction pour les couleurs ne fonctionne pas.

    Pourriez-vous me fournir cette version 1.94?

    Par avance merci.

    Damien.

  4. #4
    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 : 46
    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
    Damien, si tu as essayé avec une version plus récente que la 1.94 il n'y a pas de raison que les résultats diffèrent. Quelle version d'Excel as-tu ? Tu exécutes sur quelle version de SAS et sur quelle plateforme (Windows, Unix) ?
    Bon courage.
    Olivier

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Habituellement, j'utilise la v1.86 je crois mais j'ai essayé avec la dernière la v1.127.
    Je travaille sous windows xp, ma version de sas est sas enterprise guide 4.1 et ma version d'excel est celle de 2003.

  6. #6
    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 : 46
    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
    J'ai fait mes essais avec Excel 2007 : c'est peut-être là la différence. Demain j'aurai un Excel 2003 pour tester.
    Et le SEG 4.1 pointe vers un SAS 9.1 en local ? Sur un serveur ?
    Bon courage.
    Olivier

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Sur un serveur.

    Merci beaucoup de répondre aussi vite.

  8. #8
    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 : 46
    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
    Bon, ça marche aussi avec Excel 2003.
    Il y a un truc pas net là-dedans.
    Comment récupères-tu le fichier produit par SEG sur ton PC pour l'ouvrir ?
    Bon courage.
    Olivier

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Olivier,

    J'exporte mon fichier sur un serveur. Ainsi, il est directement consultable pour ceux qui ont accès à ce serveur. Je l'ouvre donc directement à partir du serveur.

    Une petite précision, il semble que je n'ai pas Excel 2003 mais 2002 (je ne savais pas qu'il existait celui-là). Si je regarde dans Excel la version il est indiqué Microsoft Excel 2002 SP-2.

  10. #10
    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 : 46
    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
    Essaye d'ouvrir le .XLS avec le bloc-notes ou un équivalent. Tu devrais y trouver des indications de style au début : y a-t-il un bloc comme celui-ci (juste avant <worksheet> chez moi) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <Style ss:ID="data__l1" ss:Parent="data__l">
    <Font ss:Size="10" ss:Bold="1" ss:Color="#FFFFFF" />
    <Interior ss:Color="#FF0000" ss:Pattern="Solid" />
    <Protection ss:Protected="1" />
    <NumberFormat ss:Format="General" />
    </Style>
    <Style ss:ID="data__l_1" ss:Parent="data__l">
    <Font ss:Size="10" ss:Bold="1" ss:Color="#FFFFFF" />
    <Interior ss:Color="#FFFF00" ss:Pattern="Solid" />
    <Protection ss:Protected="1" />
    <NumberFormat ss:Format="General" />
    </Style>
    </Styles>
    Si oui, normalement les couleurs devraient être affichées correctement. Et donc c'est un souci de ta version d'Excel. Si non, alors c'est un souci SAS qui n'écrit pas le XML correct.
    Bon courage.
    Olivier

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    En ouvrant le document crée avec bloc-notes j'ai comme bloc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Style ss:ID="data__l__c1" ss:Parent="data__l">
    <Protection ss:Protected="1" />
    <NumberFormat ss:Format="General" />
    </Style>
    </Styles>
    Donc, il n'y a pas de définition de couleur. Cela serait dû à SAS? C'est étrange car en ods msoffice ça marche et si j'ouvre le document HTML crée automatiquement pas SAS dans l'explorateur de projet le code fonctionne.

    Normalement je change de version Excel et de version SAS prochainement. Je pourrais alors retester.

    Un grand merci pour ton aide.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Le problème venait d'une incompatibilité entre mes versions de Sas et d'Excel. En changeant de version Sas et d'Excel, cela fonctionne.

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

Discussions similaires

  1. [ODS] PROC REPORT + ods tagsets.excelxp : aucune bordure sur Excel
    Par alers dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 27/05/2013, 14h44
  2. [ODS] ODS TAGSETS EXCELXP : plusieurs proc pour une sortie dans un classeur
    Par TenenCamara dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 27/08/2012, 10h56
  3. Réponses: 17
    Dernier message: 22/09/2010, 14h44
  4. [Ods tagsets.excelxp]Problème print_footer dans sortie XLS
    Par Filippo dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 20/04/2010, 13h52
  5. Saut de ligne dans une proc report et ODS tagset.ExcelXP
    Par l'breton du 29 dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 22/07/2009, 19h42

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