UTILISA TION DU DDE (DYNAMIC DATA EXCHANGE) POUR LES TRANSFERTS DE DONNEES ENTRE SAS (6.08 WINDOWS) ET EXCEL



Documents pareils
Dans l'article précédent, vous avez appris

L export de SAS vers Excel expliqué à ma fille

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

La stabilité des prix : pourquoi est-elle importante pour vous? Brochure d information destinée aux élèves

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

INTRODUCTION à Microsoft Dynamics CRM 2013 FR80501

Méthode de préparation du fichier texte d import depuis Excel, via Access jusqu à Drupal.

Tarif des envois de Mails Prix HT, TVA 20 %

Utiliser Access ou Excel pour gérer vos données

MANUEL DE L UTILISATEUR

ECONOMIE. DATE: 16 Juin 2011

1 TD 2 : Construction d'une chier Acrobat et envoi par

Principe de fonctionnement du lanceur d'application "AdisTlsStartCfgLotus"

ENVOI EN NOMBRE DE MESSAGES AUDIO

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

Solution de Fax mailing

FinImportExport Documentation Utilisateur Gestion d'environnement dans Fininfo Market

Documentation Utilisateur

CATALOGUE DES FORMATIONS

Traitement des données avec Microsoft EXCEL 2010

SAS base Introduction à SAS SQL SAS IML

CALC2QIF Conversion de données OpenOffice au format QIF

ENVOYEZ ET RECEVEZ VOS FAX ET SMS PAR !

Guide SEPA Paramétrage Experts Solutions SAGE depuis 24 ans

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Janvier 2005 :FIREFOX PASSE LA BARRE SYMBOLIQUE DES 10%

B o u r s e d e m o b i l i t é B E E p o u r l e s d é p a r t s e n

CATALOGUE DES FORMATIONS

Guide rapide IDEP. Helpdesk

FONCTIONS FINANCIÈRES

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

GUIDE UTILISATEUR ENVOYEZ ET RECEVEZ VOS FAX ET SMS PAR

Manuel du composant CKForms Version 1.3.2

Jexcel. V1.1.4 Manuel d'utilisation. modifié le 16 nov. 2004

TD3 - Facturation avec archivage automatisé

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Mise à jour : Octobre 2011

Le Système SAS et les accès via OLE DB : une introduction

C est quoi un tableur?

Kit Demande de Bourse Etude Erasmus

CONDITIONS GENERALES DE VENTE

I La création d'un compte de messagerie Gmail.

VERSION 64 BITS DE SAS ET VOS FICHIERS MICROSOFT OFFICE 32-BITS

VAMT 3. Activation de produits Microsoft

Algorithmique et programmation : les bases (VBA) Corrigé

Ce logiciel est une mise à jour de l'application FileMaker Pro 9 ou FileMaker Pro 9 Advanced vers la version 9.0v3.

Développez-vous à l'international avec le Compte Vendeur Européen

Se Perfectionner à Excel

CONDITIONS GENERALES DE VENTE

L immobilier de bureaux en Europe 2010 : une parenthèse dans la crise

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Infolettre #12 : Office Live Workspace

Délégation Côte d Azur Formation Geslab 203 module dépenses 1

Progiciel de gestion en Assurance

Utilisation de l'outil «Open Office TEXTE»

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

8 rue Paul Cézanne Neuilly-Plaisance - Tél : 33 (0) Fax : 33 (0) cvm@cvm.

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Traitement de texte : Quelques rappels de quelques notions de base

World Equity II. Compartiment de la SICAV belge Crelan Invest Mai 2012

SOMMAIRE. Chapitre 1 - principe 3 Téléphonique 4 PC/Configuration logicielle 4 PC/Configuration matérielle: 4 Pabx 4

Guide Expert Comptable Production Coala

G.E.D Gestion électronique des documents G.E.D

Table des matières 1. Installation de BOB BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10

Référentiel des Pièces d Identité acceptées dans les bureaux de poste pour effectuer des opérations bancaires REFERENTIEL DES PIECES D IDENTITE

Séquencer une application

SAS de base : gestion des données et procédures élémentaires

Logiciels libres à Anderlecht

é n e r g i e c r é a t i v e Solution ing Renforcez le pouvoir de communication de votre entreprise

Préconisations Portail clients SIGMA

Livre blanc Compta Le SEPA : Comment bien préparer sa migration?

Tsoft et Groupe Eyrolles, 2005, ISBN :

L Europe des consommateurs : Contexte international Rapport Eurobaromètre 47.0

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

CONTRAT DE MOBILITE POUR LES MOBILITES D ETUDES DU PROGRAMME ERASMUS+ dans les pays participant au programme (mobilités européennes)

Note technique AbiFire5.2 Export/Import des codes incidents dans AbiDispatch

moveon Conference 2007 moveon pour débutants 1ère partie

SOMMAIRE Thématique : Bureautique

Guide d installation des licences Solid Edge-NB RB

Créer le schéma relationnel d une base de données ACCESS

Mise à jour de version

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

PRÉVIENT QUAND ÇA BOUGE. DIT OÙ ÇA SE RETROUVE.

LES ACCES ODBC AVEC LE SYSTEME SAS

Le langage C. Séance n 4

EPARGNE SELECT RENDEMENT

Plan du cours. Historique du langage Nouveautés de Java 7

Manuel d'utilisation du Journal de bord de Trading

Je suis sous procédure Dublin qu est-ce que cela signifie?

DEMANDE D IMMATRICULATION D UN TRAVAILLEUR notice explicative

Document d architecture

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

Transcription:

UTILISA TION DU DDE (DYNAMIC DATA EXCHANGE) POUR LES TRANSFERTS DE DONNEES ENTRE SAS (6.08 WINDOWS) ET EXCEL LINCOLN SYSTEMS L'arrivee de SAS sur Windows (version 6.08) apporte de nouvelles possibilites aux utilisateurs de solutions SAS. L'integration d'applicatifs SAS sous Windows entraine immanquablement I'interaction entre SAS et les divers logiciels standards utilises de fac;on courante par les utilisateurs (EXCEL, LOTUS,... ). Pour repondre a ce besoin croissant de communication, ii est necessaire de maitriser les inter activites entre SAS et Ie systeme Windows. Apres quelques rappels sur Ie DOE, I'expose abordera les transferts de tables SAS vers EXCEL et les transferts de tableaux EXCEL vers SAS. On illustrera ces procedes par quelques exemples en demonstration. 1253

1. - Rappels sur Ie DDE Le DOE (Dynamic Data Exchange) est Ie principe utilise pour faire communiquer les applications WINDOWS entre elles. Son fonctionnement est base sur un modele CLiENT/SERVEUR. L'application qui demande la communication (initialisation des liens DOE) se definit comme client. L'application qui rec;oit la demande devient, pour la duree de la communication, serveur de I'echange DOE. La communication entre les deux applications se fait par emission et reception de "messages" : Un message, aussi appele DOE_Triplet, est constitue, comme son nom Ie laisse supposer, de 3 elements: Une "Ad resse", c'est a dire, Ie nom de I'application, au sens Windows, a qui s'adresse Ie message. Un "Element" qui determine I'objet, gere par I'application cible (par exemple une feuille de calcul pour EXCEL), que I'on veut prendre en compte. Un "Item" qui determine les donnees de I'objet sur lesquelles vont porter les traitements (par exemple une plage de cellules pour EXCEL), ou I'action a faire executer a I'application cible. Le lien entre les messages et les applications est gere par Ie moteur DOE (kernel) de Windows. Lesapplications telles que SAS, EXCEL, WORD etc... sont prevues pour utiliser Ie DOE. Ceci implique d'une part, que ces applications peuvent echanger leurs donnees, et d'autre part, que n'importe quelle action d'une de ces applications est executable a partir de n'importe quelle autre application, par simple envoi de messages. Attention : Dans Ie cadre d'echanges DOE, SAS ne peut jouer qu'un role de CLIENT. Contraintes: Les applications a faire communiquer doivent etre ouvertes so us Windows. (Par exemple, pour charger un fichier EXCEL sous SAS, il faut que EXCEL et SAS soient lances). Les applications doivent supporter Ie DOE (C'est Ie cas de la majorite des applications prevues pour WINDOWS 3.1) 1254

)' 2. - Pilotage du DDE parle langage SAS La version 6.08 de SAS sous Windows permet la gestion des fonctionnalites DOE, tant en langage SAS de BASE, qu'en SCL. Nous nous proposorls, dans la suite de cet expose, de detailler ces fonctionnalites. Pour que SAS puisse communiquer avec d'autre applications via Ie DOE WINDOWS, il faut lui indiquer quel "chemin" utiliser pour I'envoi de messages. L'envoi de message se fait en declarant un FILENAME avec I'option DDE (ct. exemples suivants). Le fichier ainsi defini est en fait une image du lien entre deux applications. Les envois et receptions de messages se feront alors par ecriture et lecture dans les fichiers DOE ainsi definis. La syntaxe estla suivante : FILENAME filerefdde 'DOE_Triplet I CLIPBOARD' <DOE-Options> fileref DOE_Triplet CLiPOARD <DOE-Options> Nom val ide pour un fichier externe. Nom du fichier DOE associe a I'application. De la forme 'Nom_applicationIElement!item' (cf. Exemples). II est possible de faire communiquer toutes les applications via Ie presse papier de Windows (Clipboard). Dans ce cas, il faudra gerer aussi les selections, et les actions copier/coller dans les deux applications. HOTLlNK, NOTAB et COMMAND (Ces options sont documentees dans Ie SAS Companion for the Windows Environnement) Pour echanger des donnees avec une application, on considere generalement 2 fichiers DOE : Un fichier "cornman des" qui permet Ie pilotage de I'application cible via Ie langage SAS Un fichier "donnees" qui definit la zone ou emettre et/ou recevoir les donnees. Par exemple pour un echange de donnees avec EXCEL J de la fayon suivante : ces fichiers seront definis FILENAME xlcmds FILENAME xldata DDE DDE 'ExcellSYSTEM' 'ExceIITABLEAU.XLS!L 1C1:L 15C10' xldata definit une feuille de calcul EXCEL (TABLEAUXLS) et une zone de cellules (L 1 C1:L 15C10) dans laquelle se feront les echanges. xlcmds est Ie fichier ou seront envoyes les messages pilotant EXCEL depuis SAS..\ La syntaxe des messages depend de I'application cible. Chaque application possede son langage (defini par des "macros" et/ou des fonctions dans Ie cas d'excel par exemple). \ \ 1255 -.,." - -" -,. 0" -'.' " _"'; - 'oj _ ".: 0-

....::""..c:-=,""",-",-;::-,,:-::c-c,,, c... -.-.-..., 3. - Importation de donnees EXCEL dans SAS Programme d'exemple : XL2SAS.SAS (Annexe 1) Le programme propose en annexe 1 realise les actions suivantes : Lancement d'excel Chargement dans EXCEL d'un tableau a importer Importation du tableau dans une table SAS Fermeture d'excel Options generales NOXWAIT et NOXSYNC permettent la poursuite du programme SAS apres I'ouverture d'excel, sans attendre I'intervention de I'utilisateur. Si elles sont omises, Ie programme SAS' lance EXCEL et rend la main a I'utilisateur. Le programme ne pourra alors continuer son execution que lorsque EXCEL aura ete ferme de fac;on manuelle (rupture du lien DOE). i-, Definition des fichiers DOE Les deux fichiers "commandes" et "donnees" sont definis comme precedemment pour I'echange de donnees. Lancement de EXCEL EXCEL est lance par la ligne de commande SAS (Display Manager) : X 'EXCEL' Ceci n'est valable que pour un systeme ou EXCEL a ete installe par une procedure normale d'installationet ou les chemins par defaut sont correctement assignes. Dans Ie cas contraire, il faut preciser Ie chemin complet d'acces a EXCEL. Par exemple, si EXCEL est installe dans Ie repertoire C:\APPIS\EXCEL, la commande de lancement d'excel sera : X 'C:\APPLlS\EXCEL\EXCEL' Pour certaines configurations, H peut s'averer necessaire d'inserer une temporisation de quelques secondes pour poursuivre Ie traitement apres I'ouverture d'excel, afin de laisser a celui-ci Ie temps de se charger. Chargement dans EXCEL du tableau a importer Le chargement d'un fichier dans EXCEL se fait en envoyant un message a EXCEL, precisant I'action "OUVRIR(fichier)" et Ie nom du tableau a charger. L'envoi du message se fait par un simple PUT dans Ie fichier DOE de "commandes". 1256. -.' -- - -. '_"-J_::-:f;'.--".:.",. :"-:: ;:"V J 'J_'-" '--".

Lecture d" un fichier EXCEL dans une table SAS La lecture du fichier EXCEL se fait par un INFILE sur Ie fichier DOE 'donnees'. II do it y avoir une parfaite correspondance entre Ie format des donnees EXCEL et la definition des variables SAS definies dans I'etape DATA de lecture. Pour des traitements complexes (nombre et types des variables non connus,... ) il est possible de recuperer, via des commandes EXCEL, ces definitions. Ce traitement implique une connaissance du macro langage d'excel (cf. Documentation Fonctions et Macros de Microsoft EXCEL) Contraintes d'utilisation : Options de la commande INFILE MISSOVER Si la ligne lue est trap grande, SAS genere des valeurs manquantes sans corrampre les informations des lignes suivantes. NOTAB Cette option est prapre a I'utilisation du DOE. Jumelee avec I'option DLM, elle permet d'ecrire et de lire chaque variable dans des cellules differentes (y compris les chaines de caracteres contenant des espaces, etc... ). Son utilisation implique la redefinition du caractere TAB comme delimiteur. DLM=I09"x Redefinition du caractere TAB ('09'x) comme delimiteur. INFORMAT La commande INFORMAT est necessaire pour les variables de type caractere ou numerique a virgule. Type caractere Utiliser $x. ou $CHARx. Type numerique (Facultatif) Utiliser x. Type numerjque flottant Utiliser commax. si la version de EXCEL est une version fran9aise, utiliser x.y sinon. INPUT Precise I'ordre de lecture des variables. Fermeture d"excel La fermeture d'excel se fait en envoyant un message a EXCEL, precisant I'action "QUITTERO". L'envoi du message se fait par un simple PUT dans Ie fichier DOE de "commandes". 1257

4. - Exportation de donnees SAS vers EXCEL Programme d'exemple : SAS2XL.SAS (Annexe 2) Le programme propose en annexe 2 realise les actions suivantes : Lancement de EXCEL. Ecriture dans Ie fichier charge par defaut par EXCEL (FeuiI1) Sauvegarde du fichier EXCEL Fermeture de EXCEL \.' Options generales I Definition des fichiers ODE I Lancement d'excel Meme remarques que precedemment. Ecriture d'une table SAS dans Ie fichier EXCEL Feuil1 L'ecriture dans Ie fichier EXCEL se fait par une commandefile dans Ie fichier DOE "donnees". Comme precedemment, I'option NOTAB jumelee avec I'utilisation du caractere de tabulation '09'x com me separateur de variables permet d'ecrire chaque variable SAS dans une cellule EXCEL sans tenir compte des espaces et autres caracteres delimiteurs. Comme precedemment, la correspondance entre la zone definie et la structure de la table SAS do it etre respectee. Contraintes d'utilisation : FORMAT Les contraintes sont les memes que celles vues precedemment pour I'INFORMAT. Sauvegarde du fichier EXCEL La sauvegarde se fait en envoyant un message a EXCEL, precisant I'action "ENREGISTRER.SOUS(fichier)" et Ie noma donner au fichier. L'envoi du message se fait par un simple PUT dans Ie fichier DOE de "commandes". Fermeture d'excel La fermeture d'excel se fait en envoyant un message a EXCEL, precisant I'action "QUITTERO". L'envoi du message se fait par un simple PUT dans Ie fichier DOE de "commandes". 1258

f 1 " : : 5. - Integration d'echanges DDE dans un applicatif AF Dans Ie cadre de developpement d'applications SAS interactives sous Windows, I'ouverture vers EXCEL, ou vers d'autres produits Windows, constitue un apport considerable. L'integration des techniques de gestion des liens DDE se fait de fac;on similaire aux exemples precedents. If, 1 l f 1 :;) m, 1< ;, i. n r '(..(' 1i 1; } i x f :r l: J. : t. J:, l La definition des liens DDE est assuree par I'instruction FILENAME du langage SCL. Les lectures et ecritures dans les fichiers ainsi definis seront integres dans des "Blocs SUBMIT", les fonctions SCL associes a la gestion de fichiers externes n'offrant pas une assez grande souplesse Q'utilisation. Rappel des points importants SAS ne peut pas etre SERVEUR d'un echange DDE. II ne peut jouer qu'un role de CLIENT. La correspondance entre la table SAS et la plage de cellules EXCEL ou s'effectuent les traitements, do it imperativement etre respectee. Cette correspondance s'exprime de la fayon suivante: Autant de lignes EXCEL que d'observations dans la table SAS Autant de colonnes EXCEL que de variables dans la table SAS Les types des variables SAS doivent etre definis de fac;on a decrire strictement Ie type des valeurs du tableau EXCEL, lors de I'export ou de I'import des donnees (FORMAT IINFORMAT) ; \, \, 1259

Annexes - Exemples d'illustration des echanges DDE Les programmes SAS etudies dans les chapitres precedents sont decrits en annexes 1 et 2. Les donnees prises en compte dans ces programmes sont : Un fichier EXCEL: C:\EXCEL\EUROPE.XLS Une table SAS: WORK.EUROPE Contenu du fichier EXCEL C:\EXCEL\EUROPE.XLS Pays Capitale Population Cours Devise (1 ECU) ALLEMAGNE Berlin 78000000 1,94 OM BELGIQUE Bruxelles 9834000 39,92 FB OANEMARK Copen hague 5146469 7,44 DKK ESPAGNE Madrid 38832000 11388,81 Pta FRANCE Paris 58000000 6,58 Francs GRECE Athanes 9994000 IRLANOE Dublin 3543000 0,79 L ITALIE Rome 57331000 1941,00 Lire LUXEMBOURG Luxembourg 385317 41,98 FL PAYS-BAS Amsterdam 2,17 FF PORTUGAL Lisbonne 10388000 180,27 Esc ROYAUME UNI Londres 55500000 0,79 Contenu de /a table SAS PAYS CAPITALE POPUL COURS DEVISE ALLEMAGNE Berlin 78000000 1,94 OM BELGIQUE Bruxelles 9834000 39,92 FB OANEMARK Copen hague 5146469 7,44 OKK ESPAGNE Madrid 38832000 11388,81 Pta FRANCE Paris 58000000 6,58 Francs GRECE Athanes 9994000 IRLANDE Dublin 3543000 0,79 L ITALIE Rome 57331000 1941,00 Lire LUXEMBOURG Luxembourg 385317 41,98 FL PAYS-BAS Amsterdam 2,17 FF PORTUGAL Lisbonne 10388000 180,27 Esc ROYAUME UNI Londres 55500000 0,79 1260

Annexe 1 - Programme XL2SAS.SAS (Export de SAS vers EXCEL) *******************************************************************., * XL2SAS.SAS * ---------------------------------------------------------------- * Test d'echanges EXCEL vers SAS via Ie DDE * Lecture d'un fichier EXCEL a partir de SAS via Ie DDE (Dynamic * Data Exchange) de WINDOWS. * L'ouverture, la fermeture et Ie chargement du fichier EXCEL est * pilote a partir de SAS. * --------------------------------------------------------------- * LINCOLN SYSTEMS - SEUGI/Club SAS 94 ; *******************************************************************., *===( Options Generales )==========================================; OPTIONS NOXWAIT NOXSYNC *===( Definition des filename )====================================; FILENAME xl data DDE 'ExceIIEUROPE.XLS!LIC1:L12C5' FILENAME xl-cmds DDE 'Excel I SYSTEM' ; *===( Lancement de EXCEL et ouverture du tableau )=================; x 'excel' ; DATA NULL FILE xl-cmds put' [OUvRIR("C:\EXCEL\EUROPE.XLS")]' RUN; *===( Lecture du fichier excel avec DDE )=========================; DATA WORK. EUROPE ; INFILE xl data MISSOVER NOTAS DLM='09'x ; INFORMAT pays $20. capitale $20. popul 8. cours devise commax. $6. INPUT pays capitale popul cours devise RUN ; *===( Fermeture de EXCEL )=========================================; DATA NULL FILE xl-cmds ; put' [QUITTER()]' RUN ; *===( Visu de la table )===========================================; PROC FSVIEW DATA=WORK.EUROPE ; RUN ; *===( Liberation des fichiers )====================================; FILENAME xl cmds CLEAR FILENAME xl-data CLEAR ; 1261

Annexe 2 - Programme SAS2XL.SAS (Export de EXCEL vers SAS) *******************************************************************., * SAS2XL.SAS * ---------------------------------------------------------------- * Test d'echanges SAS vers EXCEL via le DDE * Creation d'un fichier EXCEL a partir de SAS via le DDE (Dynamic * Data Exchange) de WINDOWS. * L'ouverture, la fermeture d'excel et le chargement du fichier * sont pilotes a parrtir de SAS. ---------------------------------------------------------------- * LINCOLN SYSTEMS - SEUGI/Club SAS 94 *******************************************************************; *===( Options Generales )==========================================; OPTIONS NOXWAIT NOXSYNC *===( Definition des filename )====================================; FILENAME xl data DDE 'ExcelIFeuil1!L1Cl:L12CS' FILENAME xl cmds DDE 'Excel I SYSTEM' ; *===( Lancement de EXCEL )========================================; x 'excel' ; *===( Ecriture dans le fichier excel avec DDE )====::=::=====::=::=====; DATA NULL SET WORK. EUROPE ; FILE xl data NOTAB FORMAT pays $20. capitale $20. popul 8. cours 8.2 devise $6. PUT pays '09'x capitale '09'x popul '09'x cours '09'x devise RUN ; *=::=( Sauvegarde et Fermeture de EXCEL )===========================; DATA NULL FILE xl-cmds ; PUT '[ENREGISTRER. SOUS ("C: \EXCEL\EUROPE2.XLS")], PUT '[ QUITTER () ]' ; RUN ; *===( Liberation des fichiers )====================================; FILENAME xl cmds CLEAR FILENAME xl-data CLEAR; 1262