Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
30 Septembre 2007
30 Septembre 2007
Remerciements
Remercions tout dabord : Les diffrents contributeurs de ce document, et en tout premier lieu les diffrents diteurs de logiciels cits dans ce livre blanc. La socit RL Consulting qui collabore rgulirement avec SoftFluent et a ralis lintgration de SharePoint 2007 pour le compte dILOG. Les diffrentes quipes de Microsoft qui ont su faire preuve de ractivit pour rpondre nos questions lorsque ncessaires.
Avertissement
Ce document est fourni titre dinformation. SOFTFLUENT NE DONNE PAS DE GARANTIE, IMPLICITE NTIE, OU EXPLICITE, CONCERNANT LES INFORMATIONS FOURNIES DANS CE DOCUMENT. SoftFluent et les socits cites dans ce livre blanc peuvent disposer de brevets, marques, des droits t de copie ou de proprit intellectuelle sur des sujets couverts dans ce document. Sauf mention expresse faisant partie dun contrat de licence sign avec ces socits, la fourniture de ce document , ne vous donne aucune licence particulire et aucun droit dutilisation sur ces brevets, marques, droits de copie ou proprit intellectuelle. ntellectuelle. Les noms des socits et produits mentionns dans ce document sont des marques dposes de dpos leurs propritaires respectifs. 2007 SOFTFLUENT. Tous droits rservs. .
30 Septembre 2007
I.
Rduire les cots Innover Se diffrentier Sappuyer sur un march Garantir lvolution
30 Septembre 2007
Dun point de vue stratgique, construire son dveloppement sur Office 2007 est un moyen de : d 1. Rduire les cots car on bnficie ainsi des fonctionnalits dOffice moyennant un effort de dveloppement rduit, y compris leffort ergonomique, particulirement affirm dans la leffort version 2007, 2. Se positionner sur le terrain de linnovation et tre peru comme la pointe par les l utilisateurs de vos applications, 3. Se diffrentier par rapport la concurrence et pouvoir effectuer un marketing diffrent en marketing jouant la carte de la simplicit, de lexprience intgre et du service rendu aux utilisateurs, 4. Sappuyer sur la part de march dOffice, une application qui dispose de centaines de millions dutilisateurs dans le monde, 5. Bnficier de la prennit des informations non structures grce au nouveau format standardis Open XML propos par Office 2007.
Sur ce dernier point, on notera le rle prpondrant que joue Open XML dans la poursuite de prpondra lobjectif de connexion des diffrents types de donnes de lentreprise. Ce format permet une relle rents sparation entre les donnes structures selon un schma mtier et les autres donnes, comme le dmontrent les prototypes exposs en dernire partie de ce livre blanc. On ne saurait en outre out minimiser limportance du processus de standardisation en cours autour de ce format, approche soutenue bien sr par Microsoft mais galement par un nombre croissant dacteurs du march.
30 Septembre 2007
II.
Les premires parties sont donc rdiges pour tout public informaticien, en se concentrant sur le , Pourquoi ? , et en vitant de rentrer trop dans les considrations techniques du Comment ? . le omment La partie Prototypes est destine plus spcifiquement aux dveloppeurs, qui sont dexprience plus rceptifs aux exemples quils peuvent reproduire. Notons que ces prototypes ont t dvelopps par SoftFluent dans le cadre dune mission dassistance aux diteurs de logiciels mene pour le compte de Microsoft France Ils correspondent donc une compilation de rponses France. techniques des besoins rels exprims par les diteurs de logiciels du march. Enfin, nous avons compil en fin de document une slection de liens utiles pour qui souhaite creuser le sujet au-del de ce livre blanc.
30 Septembre 2007
Tendance
Utilisateurs
Informaticiens
Information structure
Informaticiens
Les versions rcentes dOffice et en particulier ldition 2007 rapproche la bureautique du monde de linformation structure, et comble une partie du foss entre les utilisateurs et les informaticiens
Applications dentreprises
On pourrait disserter longtemps sur les responsabilits respectives des informaticiens et des ourrait utilisateurs, mais le fait est que la bureautique apporte la flexibilit quil est difficile de prvoir totalement dans les applications manipulant de linformation structure. s
30 Septembre 2007
Ds lors, le rle de linformaticien est aussi de fournir ses clients, qui sont les autres services de lentreprise, les moyens de mettre en uvre cette flexibilit, tout en proposant des applications applic mtiers suffisamment adaptes et souples pour que linformation critique termine dans les our structures de stockage prvues par ces applications. Cela suppose de faire converger des mondes historiquement trs diffrents, les applications mtiers provenant de lhistorique des mainframes et la bureautique tant issu de lavnement de autique lordinateur personnel. Bien sr, la convergence entre ces deux mondes a dj commenc il y a bien ce longtemps. Mais certaines limites des versions prcdentes des applications bureautiques font que ltat de lart en matire dintgration bureautique avec les applications se rsume : intgration
Des exports de donnes notamment vers les tableurs, Des publipostages pilots sur le poste client par automatisation directe, Parfois des publipostages raliss sur le serveur avec des difficults dexploitation ou la mise difficults en place spcifique dune logique de gestion de file dattente, De lenvoi de messages lectroniques pour sous tendre un processus de workflow. sous-tendre
30 Septembre 2007
Illustrons ces quelques scnarios thoriques non exhaustifs par des exemples concrets. s
Scnario 1 : Sur le site de sa banque, un client peut consulter son compte et, dun simple clic, gnrer sur son PC une feuille de calcul contenant toutes les donnes historiques de ses comptes & portefeuilles, ou un tableau damortissement de prt ; il peut ensuite travailler sur ces donnes (par exemple faire varier la dure damortissement de son prt) avec les outils bureautiques sur son PC personnel. La gnration de feuille de calcul au format Open XML est possible partir dun applicatif . c mtier de type Tenue de Compte, fonctionnant dans tout type denvironnement (Windows/SQL, Unix/Linux-Oracle, ). Open XML permet notamment la spcification prcise des formules de calcul qui doivent tre utilises.
La structure XML permet galement de rduire les risques de corruption de fichiers, et de renforcer la scurit de ces changes via Internet.
Scnario 2 : Un constructeur davions veut mettre en place un systme de gestion de la maintenance sophistiqu, permettant aux oprateurs daccder trs facilement la documentation pertinente pour des milliers de pices dtaches. La recherche dinformation et la mise jour scurise sont facilites par lutilisation du format Open XML pour lensemble de cette documentation bureautique ; par exemple, les documents peuvent tre automatiquement mis jour lorsquune modification est faite dans le systme de conception des pices. Le caractre normalis d dOpen XML est galement un facteur important pour la prennit de cette documentation critique. Enfin, les spcifications Open XML prcisent comment mettre en uvre des fonctionnalits de recherche avance, et permettent la gestion de versions multiples dun document. v
Le workflow de travail sur ces documents et les diffrentes versions est sous-tendu par la brique sous tendu SharePoint dOffice 2007.
Scnario 3 : Un directeur dagence Banque Prive souhaite adresser ses clients un document de synthse prsentant de faon attractive lvolution de leur patrimoine. Open XML permet de gnrer partir des applicatifs mtiers un document de qualit professionnelle de type Powerpoint ou Word, et de mettre celui-ci la disposition du Conseiller Financer pour que celui-ci y ajoute ses ci celui ci commentaires personnaliss de faon structure, tout en protgeant les zones non modifiables (voir notamment les prototypes plus loin pour des exemples de mise en uvre). Les auteurs de ces . documents recourent frquemment aux notes de bas de page / rfrence, pour en faciliter la lecture. lecture On peut imaginer un workflow permettant plusieurs acteurs de collaborer pour mettre jour ce document. Plus simplement, Open XML permet de raliser des oprations de publipostage plus industrielles quauparavant. Scnario 4 : Un grand groupe franais, leader mondial de la pharmacie, change rgulirement des informations avec les autorits de contrle des diffrents pays, sur lavancement des tests cliniques de nouveaux produits, mais aussi sur le contrle qualit de ses fabrications. En interne, ce groupe a choisi de convertir lensemble de son patrimoine bureautique au format Open XML ( laide dutilitaires automatisant la migration qui sont fournis en standard avec Office), pour garantir la ilitaires ), prennit long terme de ces documents importants. Open XML permet galement de mettre en uvre des mtadonnes de protection de la proprit intellectuelle (citations, rfrences) (citations, essentielles pour protger le travail des chercheurs.
30 Septembre 2007
De nombreux rapports sont de type semi-structur, avec des commentaires des mdecins traitants, semi structur, et des donnes chiffres issues des tests. Un applicatif mtier extrait les donnes pertinentes, en utilisant un schma XML mtier spcifique la pharmacie1, pour les communiquer sous forme de fichier Open XML aux autorits sanitaires, qui peuvent les reconnatre automatiquement dans leurs systmes.
Scnario 5 : Un groupe de gestion immobilire souhaite permettre ces gestionnaires dditer des documents concernant les biens quil administre. Dans Office Word, le gestionnaire peut rapidement , diter une fiche de bien en appelant un service web mtier de lapplication qui renseigne automatique des parties du document, aprs saisie dans le volet Office de lidentifiant du bien. Par ailleurs, le gestionnaire utilise des tableaux croiss dynamiques Excel pour suivre lactivit, et effectue des requtes directement sur le systme mtier, grce un complment dvelopp en .NET et disponible directement dans un ruban Office 2007.
Enfin, le directeur commercial et les chefs de groupe, ditent automatiquement des prsentations Powerpoint gnres partir des tableaux de bords consolids.
Utilisateurs
Applications dentreprises
Les diteurs de logiciels jouent en effet un rle dterminant dans lavnement des plates-formes de plates par leur position de dmultiplication du dploiement vers les utilisateurs. utilisateurs
Par exemple CDISC, schma XML cr pour grer les Donnes Cliniques (www.cdisc.org)
30 Septembre 2007
Il y a 15 ans, Windows a pris le pas sur OS/2 principalement grce la cration dun cosystme un dapplications plus grand que son concurrent. Ces applications apparaissent pour satisfaire des besoins fonctionnels prcis, pour les particuliers ou les entreprises. Ils jouent un rle de dmultiplication entre les plates-formes et outils et les applications disponibles aux utilisateurs. formes outils En ce sens, il est difficile de revendiquer une volution dOffice 2007 vers un positionnement de plate-forme sans sintresser lcho quil recueille auprs des diteurs de logiciels, ces socits qui forme investissent en amont dans la technologie pour satisfaire un nouveau besoin lchelle dun march. De plus, lvolution de linformatique amne mcaniquement une standardisation des couches dites basses puis horizontales , et les diteurs de logiciels, notamment dentreprise, sont iciels, amens verticaliser leur offre pour rpondre des besoins de plus en plus spcialiss. Ds lors, leur diffrenciation passe par la capacit couvrir ces besoins de plus en plus pointus, tout en tirant parti au mieux de ltat de lart technologique, mais sans forcment devoir crer cet tat de lart que quelques grands acteurs amnent sur un nombre limit de standards. amne Pour parler de plate-forme, il est donc intressant de constater que des entreprises dveloppent forme, effectivement des applications sappuyant sur Office 2007, mais il est encore plus notable dobserver fectivement les investissements raliss par les diteurs de logiciels pour dvelopper des applications quils proposeront au march. Cest la raison pour laquelle laccent est mis dans ce livre blanc sur lusage et laccueil dOffice 2007 cent par des diteurs de logiciels reprsentatifs de diffrents domaines, que ceux-ci soient verticaux ou domaines ci horizontaux. On notera tout de mme que lorientation entreprise, voulue par Microsoft, correspond Microsoft, la typologie dditeurs que nous observons.
30 Septembre 2007
30 Septembre 2007
Mis au point linitiative de Microsoft, afin de rpondre notamment des lois de ce type dans diffrents pays et au niveau europen mais aussi pour assurer la prservation du patrimoine immatriel des entreprises et des tats au cours du temps, Open XML a t conu pour assurer aux temps utilisateurs une compatibilit optimale avec le patrimoine existant de documents bureautiques et viter les pertes de donnes/prsentation lors des migrations. Il est reconnu par de nombreux outils bureautiques du march, dont notamment les suites Microsoft Office 2007, 2003, XP et 2000 (un add-on en tlchargement gratuit permet en effet ces anciennes version dOffice de pouvoir lire et on crire des documents au format Open XML), mais aussi OpenOffice, NeoOffice (OO pour Macin XML), Macintosh), ou WordPerfect. Avec les formats Open XML, les documents Office sintgrent aisment des solutions mtier, et les donnes de gestion trouvent naturellement place dans les fichiers proprement dits. Les schmas personnaliss2 permettent dinclure des vocabulaires XML spcifiques dans des documents Office de des type Word ou Excel facilitant ainsi lintgration des donnes dentreprise dans lenvironnement de travail quotidien des utilisateurs. Les spcifications ouvertes dOpen XML permettent galement des applications mtier de gnrer, Open depuis un serveur (quel quen soit le systme dexploitation), des documents bureautiques destins tre consomms par des utilisateurs.
Un schma XML mtier permet dindiquer dans un document des zones comme Nom de client ou montant dachat, et dchanger entre ces zones du document et le reste du systme dinformation des donnes en es conservant leur signification, et permettant de les prsenter dans des documents classiques.
30 Septembre 2007
Le schma ci-dessous illustre cette nouvelle approche centre sur lutilisateur. Celui-ci agrge en fait tte Celui ci des services fournis par diffrentes applications.
Les utilisateurs combinent les services pour construire des applications composites
Outils pour construire et exploiter les services qui tirent parti de la plateforme
Ce phnomne se retrouve dans le grand public (avec les mashups du web 2.0) mais se dveloppe galement trs fortement dans lentreprise pour faciliter les processus de gestion. ement Ds lors, au lieu dinvestir dans des interfaces utilisateurs spcifiques, il devient intressant dinscrire les interfaces mtier au sein de celle dOffice. Ceci est rendu possible grce lvolution de possible linterface dont nous avons parl prcdemment et la possibilit de crer des rubans spcialiss. En allant au bout du raisonnement, Office 2007 devient alors un client universel dapplications mtiers et le point central de travail de lutilisateur (voir le livre blanc Office Business Applications, avail Building Composite Applications using the Microsoft platform mentionn dans les liens utiles en fin de document).
Les contrles de contenu dans Office Word qui permet de sparer les donnes de la les prsentation, Le formattage conditionnel dOffice Excel qui permet de mettre en exergue des valeurs dans ormattage d un tableau de bord (reprsentation visuelle, coloration, icne), icne)
30 Septembre 2007
Lintelligence mise dans linterprtation de linformation (par exemple les tableaux dont la structure est automatiquement dduite) qui permet dappliquer des modles visuels de dduite es manire globale, par exemple sur des plages de cellules Excel ou des prsentations cellule Powerpoint, SharePoint 2007 qui stoffe encore de nouvelles fonctions et dont la convergence avec ASP.NET 2.0 en matire de Webparts permet une relle intgration de type portail dapplications mtiers, Infopath 2007 qui devient dans sa deuxime version un outil puissant de formulaire avec formula galement une dimension serveur pour grer les flux, Les bibliothques de visuels qui sont trs riches ds la version livre de base, Des fonctions moins visibles par lutilisateur mais importantes telles que lamlioration de la scurit diffrents niveaux (citons par exemple lutilisation du format Open XML qui vite le ents risque de Fuzzing).
30 Septembre 2007
V.
Fonctionnement en rseau avec utilisation dune base de donnes structure ; Centralisation possible des donnes sur des environnements extrieurs aux collectivits environnements locales, incluant le mode hberg, par exemple pour les communauts de commune ; hberg, communes Intgration tendue la bureautique ; Facilit dvolution pour disposer en permanence dune application en phase avec lvolution de la donne nergtique
Cette application Calypteo repose sur une architecture robuste et volutive base sur Microsoft SQL Server 2005, le .NET Framework 2.0 (avec les composants mtiers fabriqus par le produit CodeFluent), Windows Server 2003/IIS 6.0 pour le site et les services Web, et enfin Office 2007 site comme frontal volu, alternative la version basique fonctionnant sur un navigateur :
30 Septembre 2007
Concernant la partie Office 2007, Calypteo intgre de nombreuses fonctionnalits commencer par une interface graphique totalement base sur un ruban spcifique au mtier :
Des rapports Excel 2007 sont gnrs en Open XML pour les tats de synthse :
30 Septembre 2007
Des rapports Word 2007 sont gnrs selon le mme principe pour certains documents de type fiche :
En outre, de nombreuses donnes sont mises jour sous forme tabulaire grce aux listes synchronises dExcel, qui sont mises en uvre automatiquement par le producteur de CodeFluent en prenant en compte les rgles mtiers. Notons ici la combinaison possible de ces fonctionnalits possible avec la mise en forme conditionnelle qui permet de disposer dindicateurs visuels fort utiles :
30 Septembre 2007
Enfin, lenvironnement programmatique dExcel permet de mettre en uvre de nombreux menus et outils offrant des fonctionnalits propres au produit au sein mme dOffice Excel 2007, comme le propres montre un exemple ci-dessous :
Calypteo est le parfait exemple dapplication mtier conue de faon rpondre toutes les exigences actuelles des clients tout en pousant la philosophie dOffice 2007 qui devient rellement dOffice le frontal utilisateur de services applicatifs. Pour plus dinformations sur la solution Calypteo voici une prsentation vido : http://www.microsoft.com/France/Temoignages/Fiche-Temoignage-avechttp://www.microsoft.com/France/Temoignages/Fiche webcast.aspx?EID=bb003a96-cf46-46a6 46a6-8749-a8397d34ecec
30 Septembre 2007
B. Esker
Esker est un diteur reconnu internationalement dans le domaine des logiciels de communication. Son produit FlyDoc est le premier bureau de poste lectronique qui permet denvoyer courriers postaux, lettres recommandes et fax, lunit ou en nombre directement depuis un ordinateur. direc Il suffit simplement de crer son document, de choir les options denvois et FlyDoc soccupe de tout: limpression, la mise sous pli, laffranchissement et la remise en poste. Lintgration de FlyDoc Office Word 2007 est particulirement saisissante et permet daugmenter encore la productivit des utilisateurs dans leur envoi de courriers postaux et de fax. Flydoc se prsente comme une cible possible dans le menu Envoyer de Office Word 2007 :
Une fois le menu slectionn, on dispose dun ruban spcifique lapplication : ectionn,
30 Septembre 2007
Lutilisateur dispose de lassistant de publipostage classique et slectionne son fichier cible de la manire habituelle :
Loption de faire un envoi de son publipostage par le service Flydoc apparat directement dans le Flydoc volet Office au sein de lassistant qui active le service en ligne de Flydoc sur Internet :
30 Septembre 2007
La dmonstration est simplifie dans ce livre blanc, mais le service est riche de trs nombreuses options pour lenvoi qui peuvent tre choisies directement sur le site du service sur lequell on droule les tapes sans mme quitter Office Word 2007.
Flydoc est le parfait exemple dune application cible sur un besoin utilisateur prcis et proposant cible une solution simple, productive et intgre leur environnement quotidien.
30 Septembre 2007
C. ILOG
ILOG est lun des plus grands diteurs de logiciels du march franais et le leader mondial de la LOG gestion des rgles mtiers. Son offre permet en particulier de grer des rgles mtier en les sparant s. des applications de faon permettre de grer un cycle de vie et dvolution plus rapide pour les rgles au travers dune mise jour par les utilisateurs. ILOG a fortement investi autour dOffice 2007 sur plusieurs axes. Les documents dcrivant les rgles sti mtiers dans Rules for .NET 3.0 utilisent le format Open XML et les contrles de contenu pour dcrire les mta-donnes sur les rgles, en complment des informations textuelles qui dtaillent la donnes textuelles rgle. Par ailleurs, ILOG utilise Office SharePoint 2007 pour sous-tendre le workflow dapprobation des tendre rgles. En effet, dans la mise en uvre des rgles mtiers, ce sont les gestionnaires (policy managers) qui approuvent les rgles proposes par les dveloppeurs. s Dcrivons ci-dessous un scnario dexemple : dessous
30 Septembre 2007
Sur le portail, en fonction de son profil, lutilisateur voit les tches qui lui incombent.
Lorsquil ouvre le document, les mta-donnes des rgles sont visibles dans le volet Office et le mta donnes document est un document structur de rgle, contenant des contrles de contenu. Le gestionnaire saisit les informations des endroits prcis avec des contrles.
30 Septembre 2007
Dans lexemple complet du scnario, qui sera disponible en vido sur le site dILOG, on dcrit plusieurs tapes avec des refus et validation. On comprend aisment le principe et il nest pas le ncessaire de tout dtailler dans ce livre blanc. Contentons-nous de montrer ce qui se passe lors de Contentons nous la validation finale par le gestionnaire.
Le processus est toujours sous-tendu par SharePoint. Lcran ci-dessus montre par exemple la revue tendu xemple par un peer policy manager , car cette tape a t prvue au niveau du workflow dcrit dans SharePoint 2007.
Dans SharePoint, on peut voir le suivi de lensemble du processus et des tapes suivies. , Lintgration de Rules for .NET avec Office 2007 est un bon exemple dintgration de plusieurs lments de la suite Office : Word 2007 et Open XML ainsi que SharePoint 2007 ct serveur.
30 Septembre 2007
D. MGDIS
1. La socit
Editeur de solutions informatiques, MGDIS ddie son activit aux besoins des collectivits locales, collectivit petites et grandes, aux tablissements hospitaliers, aux organismes publics, aux ports de plaisance. Afin de se concentrer sur ces domaines de spcialit, MGDIS est spcialis dans les solutions de gestion administrative et de pilotage. Ces doma domaines sont insparables : piloter pour bien grer, connatre et simuler pour dcider. La dmarche de la socit est de fournir des solutions ouvertes et volutives, prennes par leur qualit et garantissant la libert des choix des clients. Les solutions sont dune part standardises sont pour bien rpondre aux attentes mtier des utilisateurs, dautre part elles permettent ladaptation et le paramtrage quand il faut prendre en compte les spcificits. Les choix, construits avec des composants propritaires savent intgrer la voie du logiciel libre l o cela apparat pertinent. nt Cette grande adaptabilit impose aux diffrentes solutions MGDIS gnrant des documents de ne pas dpendre de technologies utilises sur les serveurs. La possibilit de gnrer un documen document partir de fichiers XML zipps permet dune part de sadapter nimporte quelle technologie prsente sur le serveur, et dautre part de fournir des documents dont la compatibilit avec les applications futures est assure par la normalisation du format format. Cest donc naturellement que MGDIS a investi dans le support du nouveau format Open XML dOffice 2007 pour la gnration de documents Word et Excel ct serveur.
2. Le progiciel Progos
PROGOS est un progiciel offrant des solutions de gestion et de pilotage permettant dinstruire, de grer et de matriser les aides, les subventions percevoir et les oprations. Les donnes quil manipule sont exportes dans divers formats. Louverture du nouveau format de fichier dOffice 2007 fournit PROGOS un outil pour lui permettre de gnrer des documents complexes partir de plusieurs sources de donnes laide dun simple Dataset sans aucune technologie extrieure. PROGOS gnre un nouveau document laide dun modle spcialement balis dune part et dun Dataset contenant lensemble des donnes dautre part. Les balises du document Office 2007 contiennent non seulement le champ utiliser pour la fusion mais aussi la table de laquelle il doit tre extrait. Les sources de donnes peuvent ainsi tre multiples et de nature diffrente sans pour autant gner la gnration du document, seul un Dataset bien form est requis. Contrairement une fusion classique, la gnration dun document par PROGOS ne produit quun seul document. Au lieu de gnrer un nouveau document par ligne du Dataset, les champs dsignant un champ de cette ligne sont dupliqus et leur copie est remplace par la valeur du champ dans la ligne du Dataset.
3. La solution Office 2007
Sous Word 2007, les possibilits de formatage des donnes sont bien plus pousses que pour une simple fusion. Des balises permettent de dlimiter des zones de fusion lintrieur dun document.
30 Septembre 2007
Une zone dclare une table sur toute sa surface et contient un ou plusieurs champs de fusion dsignant des champs de cette dernire. Ils peuvent tre inclus dans des paragraphes de texte Ils format, des lignes dun tableau ou simplement afficher du texte brut. Lors de la gnration du document, une zone est traite comme un seul champ de fusion. Elle est copie entirement pour chacune des lignes de la table correspondante dans le Dataset, en remplaant les champs quelle contient. Sous Excel 2007, un systme de marqueurs analogue placer dans des cellules permet deffectuer des fusions multi sources. Une unique gnration de document permet ainsi dutiliser des donnes permet provenant de diffrentes sources, regroupes dans un Dataset. De simples options de formatage permettent dagencer les donnes de manire leur donner un sens, telles que lorientation du texte ou le type de donnes utilis. Les marqueurs utiliss sont des simples commandes de texte places dans des champs de fusion sous Word et dans des cellules sous Excel. Exemple :
2007-DEBUT{table} Les champs de fusion dclars ici seront rattachs la table dfinie. Cette zone de texte sera duplique pour chaque ligne du dataset. 2007-FIN{table}
On place des balises dans le document Word pour dfinir les zones et leurs champs.
30 Septembre 2007
de
Duplication paragraphes
de
Duplication de lignes dun tableau Le document fusionn contient les informations du tiers, certaines zones tant dupliques lorsquune information tait reprsente plus dune fois. Les possibilits offertes par le format Open XML vont au-del de lassociation dun cha au del champ de fusion avec une ligne de Dataset. MGDIS prvoit de continuer dvelopper son support dOffice 2007 en ajoutant de nouvelles fonctions son gnrateur de documents telles que la fusion conditionnelle de champs pour permettre de contrler les donnes utilises.
30 Septembre 2007
4.
Pour pouvoir sadapter aux solutions dj installes chez ses clients, MGDIS a dvelopp sa solution adapter de gnration de documents entirement en C# sur le Framework 2.0. Cette brique est intgre la ntirement solution Progos WEB et ne ncessite lajout daucune bibliothque supplmentaire. Il na cependant pas t possible dutiliser le SDK fourni par Microsoft (le Framework 3.0 nest pas enc encore diffus en masse sur les postes des clients de MGDIS contrairement au Framework 2.0) mais ce problme a facilement pu tre contourn grce la documentation de lOpen XML. La gnration dun document se droule en trois phases : ment
Le modle utiliser est tout dabord extrait dans un rpertoire temporaire. Il suffit pour cela st dutiliser nimporte quelle bibliothque grant le format ZIP, comme SharpZipLib qui est celle utilise par Progos WEB. La spcification de lOpen XML dfinit ensuite ce que contiennent contien les fichiers du ZIP, et modifier le contenu revient donc charger un simple fichier XML. Point important et capital dans le produit, lutilisateur final doit rester matre de ses modles, sans avoir recours un profil de type informaticien pour la mise en forme de celui-ci. m ci. La fusion dun document avec son Dataset revient ensuite de la manipulation de DOM. La spcification indique encore une fois o chercher ce qui nous intresse, en loccurrence les champs de fusion placs par lutilisateur dans le modle. Ils servent de repres pour les le paragraphes et tableaux dupliquer et fusionner. leaux Une fois les champs remplacs par leur contenu, le fichier XML modifi est crit la place de celui du modle, et le rpertoire est zipp pour obtenir le vritable fichier Open XML gnr.
Une batterie de tests Nunit est utilise pour prouver la fiabilit de la solution, et ainsi valider le code XML produit en sortie. Ceci permet de gnrer des documents de plus en plus complexes et donc mieux adaptables aux besoins des clients. Il ne reste qu apprcier le rendu lil nu pour ajuster s ventuellement les balises du modle mais ce nest ce point quun souci cosmtique. La principale difficult est forcment la manipulation du DOM. Malgr le fait quil soit spcif le ment spcifi, modle reste complexe et pas toujours adapt aux modifications que lon souhaite apporter. Les champs de fusion par exemple qui malgr leur apparence sont des objets complexes la syntaxe htrogne prvus lorigine pour afficher un champ et non servir le balises de marquage. Le remplacement de ces balises ncessite donc une analyse attentive du DOM afin premirement de trouver ce que lon recherche et deuximement de le remplacer correctement. Une fois cette comptence acquise, la manipulation du DOM reste cependant simple. Mis part cette contrainte, la gnration dun document Open XML partir dun modle ne pose aucun souci technique et ne ncessite pas le SDK (gnrer un document partir de rien serait plus complexe, mais ne nest pas notre objectif ici). Leffort peut donc tre port sur les fonctionnalits dveloppes plutt que comment elles le sont, et MGDIS compte bien profiter de cette opportunit et continuer dans cette direction.
30 Septembre 2007
E. Symtrax
Symtrax est une socit qui produit et distribue des logiciels de reporting multiplateformes et d'ouput management. Grce l'interactivit avec les utilisateurs, les logiciels Symtrax permettent la cration professionnelle de rapports pour une meilleure analyse et une prise de dcision efficac efficace. Symtrax offre une famille de produits comprenant des solutions logicielles complmentaires. Le grand avantage de ces solutions est qu'elles sont facilement intgres dans votre systme d'information existant et n'exigent pas d'investissements supplmentaires en matriels et logiciels. supplmentaires Pour en savoir plus sur Symtrax veuillez vous rendre ici : www.symtrax.com Le produit StarQuery est une solution de Business Intelligence totalement intgre Office Excel qui olution permet d'exploiter les donnes partir dun systme mtier ou dune base de donnes es relationnelles. La version Office Excel 2007 prsente une interface totalement revue avec un ruban respectant la nouvelle interface utilisateur dOffice 2007 :
L'extraction, la distribution et la mise en forme des donnes se font dans l'environnement familier de traction, Microsoft Office Excel et peuvent tre aisment automatises. L'interface Web de StarQuery permet automatis s. galement d'extraire et de prsenter les donnes via Internet. Voici le lien vers la prsentation du Intern . produit, qui est un trs bon exemple de solution horizontale venant enrichir la valeur dExcel : http://www.symtrax.fr/index.asp?file=fr/Solutions/Product/../project/business/StarQuery.htm&mer p://www.symtrax.fr/index.asp?file=fr/Solutions/Product/../project/business/StarQuery.htm&mer e=1
30 Septembre 2007
F. Medasys
Medasys est un diteur de logiciels leader dans le secteur des progiciels pour les hpitaux. Lun de pitaux. ses produits phare est le produit DxCare de gestion des dossiers patients, quipe de nombreux hpitaux en France et gre depuis longtemps des publipostages de compte-rendus mdicaux laide compte rendus de Office Word. Pour tirer parti de la nouvelle interface utilisateur dOffice 2007, Medasys a dvelopp deux nouveaux rubans qui facilitent la manipulation des donnes du progiciel directement depuis ux linterface de Office Word.
Le ruban utilisateur permet de slectionner le patient traiter depuis le dossier patient dans le systme progiciel, de slection la lettre pe et dutiliser les diffrentes donnes du dossier dans le lettre-type document trait.
De plus, un autre ruban a t cr pour assurer le paramtrage des courriers par les administrateurs de lapplication. Medasys est un bon exemple dditeur qui applique la stratgie de compatibilit voque plus haut stratgie ce livre blanc, en investissant en premier lieu dans une nouvelle interface utilisateur spcifique Office 2007. Cette stratgie permet la compatibilit immdiate avec les diffrentes extensions dj crites pour Office Word au fil des annes, malgr un investissement important. fice Pour autant, Medasys a identifi de nombreuses fonctions intressantes dans Office Word 2007 qui vont leur permettre daller plus loin dans les versions actuellement en cours de dveloppement dveloppement. Lutilisation dOpen XML et des contrles de contenu, comme illustr dans lun des prototypes, est lune de ces directions, sur laquelle Medasys est galement en train de travailler pour ses logiciels de radiologie.
30 Septembre 2007
G. SoftFluent
En tant quauteurs de ce livre blanc, et ayant nous-mmes beaucoup investi sur Office 2007, nous nous mmes nous devons bien videmment de mentionner le support dOffice 2007 dans notre offre produit. Rappelons que SoftFluent est une socit spcialise en gnie logiciel, la pointe dans l domaine de le l'industrialisation des applications de gestion sur lensemble de la plate-forme de dveloppement de plate forme Microsoft. SoftFluent dite le produit CodeFluent, une usine logicielle qui permet de raliser des composants logiciels prts l'emploi partir dune technique de modlisation simple et pragmatique. Cette usine tir sintgre avec Office 2007 de plusieurs faons.
1. Format des fichiers modles de CodeFluent
Tout dabord, notons que la dmarche de CodeFluent part dune modlisation du mtier par une description des entits, de leurs proprits et de leurs relations de diffrentes natures. Ce modle est dcrit dans un flux XML qui peut tre rparti dans plusieurs fichiers, mais ces fichiers sont plusieurs consolidables en une archive qui implmente le format Open XML. Le format .CFX des fichiers de CodeFluent nest donc rien dautre quune archive respectant le format Open XML et dont les parts sont les lments du modle CodeFluent. Cest ce fichier qui peut tre envoy au service en ligne http://www.codefluent.com , un service gratuit de gnration de composants mtier la demande.
2. Support des listes Office Excel
Tout dabord, CodeFluent est la premire offre de gnie logiciel avoir investi fortement sur deFluent lutilisation dOffice Excel comme frontal applicatif. CodeFluent a fait le choix ds sa version 1.0 de proposer la fabrication de Services Web ddis pour la saisie laide de listes synchronises Excel. En effet, depuis Office Excel 2003, lutilisateur avait la possibilit de synchroniser des donnes de type liste avec une source de donnes fournie par un service web. Cette fonctionnalit a t web. introduite en particulier avec SharePoint et ses listes personnalises, qui fournissent directement une harePoint possibilit dexport vers les listes Excel. La synchronisation depuis Office Excel 2003 est possible grce aux Internet Query Files (fichier extension : iqy), permettant la lecture et lcriture en relation directe avec la source de donnes. Cependant, la synchronisation en criture nest plus possible par dfaut avec Office Excel 2007. En effet, cette fonction a t inhibe par dfaut (mais Microsoft a sorti un complment pour le faire faire, voir le lien en fin de document). La possibilit de saisir directement depuis Office Excel en vue dune mise jour apportant une relle a valeur aux clients que nous avons rencontrs (saisie de masse, application de formules de calcul, saisie rplication de donnes par glisser tirer,), nous avons automatis la ractivation de cette n glisser-tirer,), fonctionnalit par un composant gratuit Wss Excel 2007 Tables synchronizer fourni sur notre site (voir lien vers larticle en fin de livre blanc).
30 Septembre 2007
Pour les dveloppeurs, il peut tre intressant de comprendre comment les listes Excel peuvent tre utilises pour fournir des solutions de collaboration autour de donnes dapplications. Cest ce que nous prsentons dans cette partie, au travers de ce que nous mettons en uvre dans notre usine logicielle CodeFluent. CodeFluent permet de raliser des applications de gestion multicouches, conformes au modle SOA, partir dune simple description abstraite dun modle mtier. CodeFluent est conu pour gnrer des applications web, client-riche, mobiles ou centres autour dOffice, et en particulier Excel. Dans riche, ce dernier schma souvent utilis en combinaison avec dautres interfaces utilisateur Office Excel devient le frontal de manipulation des donnes au travers de listes synchronisables. sy Considrons par exemple une application de gestion de vhicules en location. Ce modle exemple CarRental comprend des entits telles que des voitures, des clients, des agences, des contrats Et lapplication expose ces entits en liste sous forme de vues similaires aux listes SharePoint Ces vues SharePoint. peuvent tre rendues accessibles au travers dun site Web avec des liens vers des fichiers .IQY qui provoque un fonctionnement similaire celui dune liste SharePoint.
Les listes fabriques par CodeFluent vous permettent donc dexporter vos donnes vers une feuille deFluent dexporter de calcul et saisir des donnes de la mme faon que pour une liste SharePoint. Ceci vous permet de mettre en uvre les mmes scnarios (mode dconnect, saisie de masse, calculs dans la feuille, tableau crois dynamique construit sur la liste) mais en utilisant un lien vers une base de donnes applicative et les couches mtier associs, incluant la mise en uvre des rgles de gestion et la localisation.
30 Septembre 2007
3.
CodeFluent dispose dun moteur de Template intgr. Celui-ci dans ltat actuel permet : deFluent ci 1. 2. 3. 4. La gnration de code pour tout type de langage bas sur du texte, La mise en cache des templates pour une meilleure performance de gnration, Un moteur de template 100% rutilisable, Le support exclusif du format Microsoft RTF (permet de crer des modles de document directement sous Office Word, approche trs apprcie des utilisateurs).
Il est prvu une mise jour prochaine du moteur de template pour quil prenne en charge la gnration de document Open XML.
4. Gnration dapplications OBA
Enfin, dans la mesure o CodeFluent gnre dj les services web applicatifs ct serveur, et permet la fabrication dinterface utilisateurs de diffrents type, avec une description remonte un niveau dabstraction plus lev, il est prvu dans la roadmap de gnrer des interfaces Office 2007 (Word, Excel, PowerPoint). Lutilisateur disposera ainsi de rubans par domaine avec les diffrentes fonctions qui activer activeront les services web applicatifs. CodeFluent devrait donc constituer un acclrateur dapplications de type OBA.
En conclusion, SoftFluent en tant que socit investit trs fortement sur Office 2007 comme plate plateforme de dveloppement et lment diffrentiateur des autres offres de gnie logiciel plus diffrentiateur classiques , qui jouent plutt la portabilit que la valeur ajoute maximale. Cest un lment de plus qui dmontre lvolution dOffice 2007 vers le positionnement en plate plateforme de dveloppement.
H. Autres diteurs
De nombreux autres diteurs travaillent en ce moment sur des dveloppements Office 2007. Nous ferons probablement une mise jour de ce livre blanc afin de vous donner des exemples additionnels dici la fin de lt 2007. Citons quelques exemples :
Archimed, diteur dune solution de gestion de collection pour les muses, qui intgre une fabrication automatique de prsentations Powerpoint, BlueKiwi, qui dite un produit de gestion de blogs en entreprise, en cours dintgration avec Office Word 2007 et SharePoint, 7 Micro-Concept, qui dite une solution de tlphonie intgre Microsoft Outlook, Concept, Sylogis, qui dite des logiciels pour les collectivits locales et dveloppe un volet assez riche intgr Office Word 2007.
30 Septembre 2007
Le complment MyAddIn ajoute longlet MyTab Office Excel 2007. La personnalisation du ruban ute se fait dans le fichier Ribbon.xml contenu dans le projet MyAddIn. Pour ajouter un onglet il suffit dajouter un lment tab dans le nud tabs, comme ceci :
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab id="MyTab" label label="MyTab"> () </tab> </tabs> </ribbon> </customUI>
Il est parfaitement possible de sintgrer un onglet dj existant, bien que ce comportement est contraire aux directives de Microsoft car lutilisateur pourrait alors difficilement diffrencier ce qui provient dOffice ou des complments. Pour faire ceci, il suffit dutiliser un lidentifiant dun onglet vient ceci, Office au lieu de dfinir le notre, et dutiliser lattribut idMso au lieu did :
<tabs> <tab idMso="TabHome"> > <group id="TestGroup label="TestGroup"> Group" <button id="TestButton label="TestButton"/> TestButton" </group> </tab> </tabs>
Enfin si lon veut que seul notre ruban apparaisse, il suffit dajouter lattribut startFromScratch llment ribbon tel que : <ribbon startFromScratch="true"> ribbon Pour plus de dtail sur les lments possibles et leurs attributs, veuillez-vous reporter la veuillez vous documentation mise disposition par Microsoft (http://msdn2.microsoft.com/en (http://msdn2.microsoft.com/enus/library/aa338199.aspx).
30 Septembre 2007
2.
Voici une description des contrles disponibles dans Office 2007 (lensemble de ces contrles sont reprsents dans le prototype : pour savoir le type du contrle utilis, garder votre souris au au-dessus, et le type apparatra dans laide) : Button : un bouton ToggleButton : un bouton que lon peut presser et qui reste enfonc. Correspond au smiley dans le complment. Box : une bote de contrles pouvant tre verticale ou horizontale. Ce contrle correspond aux deux colonnes de couleurs dans le complment. nes Separator : un sparateur. SplitButton : un bouton avec un menu droulant contenant dautres boutons ou menus. ButtonGroup : un groupement de boutons horizontal. LabelControl : du texte. CheckBox : une case cocher. EditBox : une bote de saisie. ComboBox : une bote de saisie et liste mais ne contenant que des contrles item. Item : un lment dune liste. DropDown : une liste contenant des lments et/ou des boutons. Menu : un menu. MenuSeparator : un sparateur dans un menu. DynamicMenu : un menu rempli dynamiquement. Gallery : une galerie. La galerie est la grande nouveaut dans les contrles. Cest un menu volu, cest--dire que la galerie tout comme le menu dire contient dautres contrles, mais contrairement au menu o tout ces contrles sont dans une colonne, la galerie a de multiples colonnes.
3. Utilisation des astuces
Les astuces (traduction de tips ) sont des panneaux daide qui apparaissent lorsque lutilisateur garde son curseur plus dune seconde immobile au-dessus dun contrle (lquivalent dun tooltip au dessus en .NET). Il est trs facile den dfinir pour ses contrles puisquils constituent deux attributs ). ajouter dans le nud XML de llment : screentip et supertip. Screentip correspond au titre de p laide et supertip son contenu. Exemple :
<button id="monBouton" label label="Bouton" screentip="Bouton" supertip supertip="Ceci est un bouton."/>
N.B. : Il est recommand de mettre [nom du complment] : [texte du screentip] dans les screentips de manire ce que les utilisateurs savent que cest une fonctionnalit du complment et non sateurs dOffice 2007.
30 Septembre 2007
Dans le complment MyAddIn, vous trouverez des informations sur les contrles utiliss dans ces astuces.
4. Utilisation de lexistant
En gnral, partir du moment o lon utilise une ressource dOffice 2007, lattribut utiliser est du utilise type : [nom de lattribut]Mso = nom de la commande . Comme nous lavons vu tout lheure, pour utiliser un onglet existant le XML est :
<tab idMso="TabHome">
Reste maintenant connatre les identifiants des images, commandes, ou autres fonctionnalits existant dans Office 2007. Vous trouverez dans ce lien la liste de tous les imageMso : http://www.sunflowerhead.com/msimages/Office2007IconsGallery.zip Pour les identifiants des commandes il suffit daller dans le menu Office > Option Word > Personnalisation. Une fois dans ce menu, vous aurez la liste de toutes les commandes disponible disponibles dans Office 2007. Si vous positionnez votre souris sur une commande plus dune seconde, une a astuce va apparatre avec entre parenthse lidentifiant de la commande. parenthses Pour les onglets, cest le nom anglais de longlet auquel on ajoute le prfixe Tab tel que pour personnaliser longlet Accueil , qui est longlet Home en anglais, ce sera TabHome .
30 Septembre 2007
5.
Contrairement aux versions prcdentes o toutes les ressources dOffice et de ses plug plug-ins taient charges au dmarrage, elles sont maintenant charges uniquement lorsque Office 2007 en a beso besoin, permettant ainsi de conserver un temps de chargement identique et indpendant du n nombre de complments installs. Pour cela, il a t implment un systme de callback . Cest--dire que vous devrez spcifier une dire mthode qui sera appele au moment o Office aura besoin dafficher votre bouton (ou menu, ou r galerie, etc.) pour charger votre ressource. Voici concrtement quoi cela ressemble :
<button id="buttonId" label label="Bouton" getImage="GetImage"/>
Dans lexemple ci-dessus, Office Excel va appeler la mthode GetImage lorsquil aura besoin dafficher limage du bouton. Il faut maintenant du ct de votre code implmenter la mthode qui va rcuprer votre ressource correspondant ce bouton :
public stdole.IPictureDisp GetImage(Office. GetImage(Office.IRibbonControl control) { stdole.IPictureDisp pictureDisp = null; switch (control.Id) { case "Button": pictureDisp = ImageConverter.Convert(GetResourceBitmap("cards.png")); ImageConverter.Convert(GetResourceBitmap( break; default: break; } return pictureDisp; }
IPictureDisp est linterface utilise par Office pour les images. La classe AxHost contient une
mthode qui permet de convertir System.Drawing.Image en IPictureDisp, mais cette mthode est protge. Il faut donc obligatoirement hriter de cette classe pour pouvoir lutiliser, do la classe ImageConverter contenue dans le projet MyAddIn : contenu
internal class ImageConverter : System.Windows.Forms.AxHost { private ImageConverter() : base(null) { } public static stdole.IPictureDisp Convert(System.Drawing.Image image) IPictureDisp { return (stdole.IPictureDisp IPictureDisp)AxHost.GetIPictureDispFromPicture(image); .GetIPictureDispFromPicture(image); } }
30 Septembre 2007
6.
Tout comme pour les images, les vnements se grent grce un systme de callback. Chaque vnement possible pour un contrle correspond un attribut de ce contrle (tel que onAction, getPressed, getVisible, etc.) et il suffit daffecter lattribut le nom de la callback voulue. Pour connatre lensemble des signatures des callbacks ainsi que des attributs possibles, veuillez vous reporter la documentation fournie par Microsoft : http://msdn2.microsoft.com/en http://msdn2.microsoft.com/enus/library/aa338199.aspx. Voici par exemple comment grer lvnement dun clic sur un bouton :
<button id="monBouton" label label="Bouton" tag="Exemple" onAction="OnAction OnAction"/>
Ce code mis en action aura pour effet dafficher une bote de message avec lidentifiant du contrle en titre, et la chane affecte lattribut tag en texte.
7. Peuplement dynamique de menus
On retrouve le mme principe pour le peuplement dynamique du menu. Parmi les attributs du menu n dynamique, il est obligatoire de spcifier lattribut getContent, qui va permettre de rcuprer le , contenu du menu. La mthode que prend getContent prend un paramtre un contrle du ruban et retourne une chane XML dcrivant le contenu du menu. Voici un exemple :
<dynamicMenu id="DynamicMenu DynamicMenu" getContent="GetDynamicMenuContent /> GetDynamicMenuContent" label="My My Dynamic Menu" Menu
public string GetDynamicMenuContent(Office. GetDynamicMenuContent(Office.IRibbonControl control) { Random random = new Random(); int nbMenus = random.Next(1, 8); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<menu xmlns=\"http://schemas.microsoft.com/office/2006/01/customui "http://schemas.microsoft.com/office/2006/01/customui\">"); for (int i = 1; i <= nbMenus; i++) { "<button id= "DynamicButton{0}\" stringBuilder.AppendFormat("<button id=\"DynamicButton{0}\" label=\"DynamicButton{0} tag=\"Ceci est un bouton gnr dynamiquement dynamiquement\" onAction=\"OnAction\" />", i); , } stringBuilder.AppendLine("</menu>" "</menu>"); return stringBuilder.ToString(); }
Le code gnr aura pour effet de peupler dynamiquement mon menu avec un nombre alatoire de n boutons.
30 Septembre 2007
8.
Un volet Office est en ralit un UserControl C#. Il suffit donc de crer son propre contrle en hritant de la classe .NET UserControl, puis dajouter son contrle dans la collection de volet (le volets volet est la traduction de langlais de task pane ). Concrtement :
public partial class ThisAddIn { internal CustomTaskPane myTaskPane; private void ThisAddIn_Startup( ThisAddIn_Startup(object sender, System.EventArgs e) EventArgs { ClockControl clockControl = new ClockControl(); myTaskPane = this.CustomTaskPanes.Add(clockControl, "Horloge" .CustomTaskPanes.Add(clockControl, "Horloge"); myTaskPane.Visible = false; myTaskPane.VisibleChanged += new EventHandler(myTaskPane_VisibleChanged); (myTaskPane_VisibleChanged); } }
Lutilisateur, dans Office 2007, doit pouvoir contrler la visibilit de tout ce qui saffiche dans son environnement depuis le ruban. Nous allons par exemple contrler la visibilit de ce volet via un visibilit toggleButton dans le ruban : quand le bouton est enfonc, le volet saffiche, et vice versa. Pour faire cela, il suffit de lier la visibilit du volet un vnement clic dun contrle. Dans la , fonction de callback de lvnement clic , il suffira de changer la visibilit du volet en mettant la ment proprit Visible vrai ou faux. Vous trouverez dans MyAddIn la mise en place de ce systme entre un toggleButton et le volet.
9. Autres personnalisations
Bien que peu ou pas document, il est possible de personnaliser dautres lments de document, lenvironnement Office 2007 tel que le menu Office, ou encore surcharger des commandes. Malgr le fait que ce ne soit pas encourag par Microsoft, il est parfois bien pratique et mme ncessa ncessaire davoir recours ces personnalisations. Ces personnalisations ont aussi lieu dans le fichier XML de description de linterface, la diffrence tant quau lieu dtre entre llment tabs elles ont lieu entre les balises officeMenu pour le menu Office, et les balises commands pour personnaliser les commandes. Pour insrer un bouton SoftFluent dans le menu Office, et juste aprs le bouton Sauvegarder , voici quoi va ressembler la description XML :
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" http://schemas.microsoft.com/office/2006/01/customui onLoad="OnLoad"> <ribbon> <officeMenu> <button id="SoftFluentSave SoftFluentSave" label="Bouton Bouton SoftFluent" SoftFluent insertAfterMso="FileSave" onAction onAction="OnAction"/> </officeMenu> </ribbon> </customUI>
30 Septembre 2007
Cela aura donc pour effet de cacher le vrai bouton Sauvegarder , pour nafficher que le n ntre. Nous retrouvons les mmes principes pour la surcharge de commandes :
<commands> <command idMso="Open" onAction="MyOpen"/> " <command idMso="Save" onAction="MySave"/> " <command idMso="SaveAs onAction="MySaveAs"/> SaveAs" </commands>
Nous allons donc surcharger les commandes Ouvrir , Sauvegarder , Sauvegarder sous , pour que lors de lutilisation de celles celles-ci, elles appellent nos callback MyOpen , MySave , MySaveAs .
10. Dploiement
Jusqu rcemment il y avait trs peu dinformations sur la manire de dployer son complment. Depuis, Microsoft a publi un article en deux parties trs complet sur la manire de dployer un soft complment Office avec les VSTO SE : 1. http://msdn2.microsoft.com/en http://msdn2.microsoft.com/en-us/library/bb332051.aspx 2. http://msdn2.microsoft.com/en http://msdn2.microsoft.com/en-us/library/bb332052.aspx Nous allons quand mme voir ensemble succinctement les grandes lignes du dploiement. Pour dployer son complment il faut : 1. Vrifier les pr-requis a. Installer le Framework 2.0 sil nest pas install. b. Installer la VSTO Runtime si elle nest pas installe. c. Installer les PIAs Office 2007 si elles ne sont pas installes. 2. Copier les fichiers 3. Mettre en place les valeurs dans les registres 4. Mettre en place les scurits lace a. Le complment et toutes ses dlls doivent tre signs. b. Configurer sur la machine cliente le Code Access Security Policy (CasPol) pour que le complment soit excuter en FullTrust (cela est fait linstallation dans le projet SetSecurity du complment MyAddIn, mais cela peut aussi tre aprs fait la main aprs linstallation, dans la configuration du Framework 2.0). Le dtail de toutes ces tapes se trouve dans larticle mis en lien ci-avant, et tout ceci est fait dans le ci avant, projet MyAddinSetup du prototype MyAddIn. jet
30 Septembre 2007
30 Septembre 2007
1.
Pr-requis
Avant de pouvoir utiliser le complment BookStoreSample, il faut bien videmment que vo ayez vous Office 2007 install sur votre poste, et plus particulirement Excel. De plus, il faut les Office 2007 particul Primary Interop Assemblies . Elles sont normalement installes par dfaut linstallation dOffice 2007, mais si pour des raisons obscures elles ne sont pas installes sur le vtre, elles peuvent tre rcupres ici : http://www.microsoft.com/downloads/details.aspx?familyid=59daebaa http://www.microsoft.com/downloads/details.aspx?familyid=59daebaa-bed4-4282a28c-b864d8bfa513&displaylang=en b864d8bfa513&displaylang=en Le complment est BookStoreSample est un complment pour Excel 2007, dvelopp avec les Visual ment Studio Tools for Office Second Edition (VSTO SE), ce qui fait que vous aurez besoin dinstaller ceux ceux-ci avant de pouvoir compiler les sources. Les VSTO SE sont disponible disponibles ici : http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3-6fd6-4955-b979 http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3 b979e1676db6b3cb&displaylang=en )
2. Utilisation a) Utilisation du complment ilisation
Lexemple tel quil vous est livr contient deux parties : le code source, et un installeur. Linstalleur va dployer le binaire sur votre machine et il nest pas ncessaire davoir Visual Studio 2005 dinstall pour utiliser le complment. Une fois le complment install, il vous suffit de lancer Excel 2007, et vous verrez quun nouvel onglet lextrme droite du ruban est apparu, ainsi quun nouveau menu dans le menu Office. Le complment permet dinterroger un service web dune librairie virtuelle. Via un volet Office vous pourrez obtenir par exemple la liste des livres proposs par cette librairie.
b) Utilisation de la solution
BookStoreSample.Design : contenan les fichiers XML ncessaires la gnration par contenant ration CodeFluent des sources, BookStoreSample.Model : contenant les sources C# gnres par CodeFluent, BookStoreSample.WebService : contenant les sources du Web Service gnr par CodeFluent, BookStoreSample.Excel : projet correspondant au complment proprement dit, cest dans oprement celui-ci quest contenu le ruban et autres fonctionnalits du complment, ci BookStoreSample : le projet pour le msi SetSecurity : un autre projet ncessaire au dploiement dont nous verrons lutilit plus tard t dans ce document.
3.
Ce prototype reprend beaucoup de points dintrts du prcdent. Nous ne redveloppons pas ces points ici, mme sils sont dtaills dans la documentation du prototype (car chaque prototype peut prototype tre vu indpendamment des autres).
30 Septembre 2007
Comme expos plus haut, nous allons crer le service web de gestion des donnes avec CodeFluent. Pour cela il faut modliser les entits manipules et leur relation. Cela se fait trs simplement en relation. utilisant une syntaxe XML dcrivant directement les entits mtiers que notre application va utiliser (se rfrer la documentation de CodeFluent disponible en ligne pour en savoir plus) :
<Author> <Id/> <Name/> <Books typeName="BookCollection relationPropertyName="Authors BookCollection" Authors"/> </Author> <Book> <Id/> <Name /> <Authors typeName="AuthorCollection relationPropertyName=" AuthorCollection" "Books"/> <Editor typeName="Editor /> Editor" <BookStore typeName=" "BookStore"/> </Book> <Editor> <Id /> <Name /> <Books typeName="BookCollection BookCollection"/> </Editor> <BookStore> <Id/> <Name/> <Books typeName="BookCollection BookCollection"/> </BookStore>
rs Ces entits vont devenir, aprs production, nos tables et nos objets. Lensemble des lments ncessaires cette tape sont regroups dans le projet BookStoreSample.Design. Le fichier principal est le fichier nomm BookStoreSample.xml qui contient la description des entits et importe deux sous-fichiers BookStoreSample.Instances.xml, et BookStoreSample.Producers.xml. reSample.Instances.xml
<cf:import path="{0}.Producers.xml /> {0}.Producers.xml" <cf:import path="{0}.Instances.xml /> {0}.Instances.xml" Note : {0} prcise CodeFluent dutiliser le namespace par dfaut.
Dans notre cas nous navons que trois producteurs : le producteur de notre base SQL Server, le producteur de notre code C# et enfin le producteur de notre Web Service.
30 Septembre 2007
Le fichier BookStoreSample.Instances.xml est optionnel, il sert instancier par dfaut nos tables ou el, objets de manire avoir des donnes et une application utilisable directement aprs sa gnra gnration. Une fois lapplication modlise puis nos producteurs spcifis et configurs, il suffit de lancer CodeFluent avec le modle en paramtre et il va nous produire lensemble de lapplication. Les composants utiliss dans la solution BookStoreSample ont t gnrs 100% par CodeFluent et aucune modification na t ncessaire pour pouvoir consommer les services web produits depuis notre complment Excel 2007. Le service web est dploy sur notre serveur ladresse suivante (voir mot de passe dans le t tableau des liens utiles en fin de livre blanc) :
La consommation du service Web dans le complment est chose trs aise puisque ce nest ni plus ni moins que du .Net, avec la diffrence nanmoins quil est possible insrer les donnes sortantes o nous le dsirons dans lenvironnement Office.
Dans lexemple BookStoreSample nous permettons depuis s un volet Office, de lister les livres dun auteur, les livres dune maison ddition, lauteur partir dun livre et enfin tous les livres disponibles dans une librairie. Le complment interroge un service Web, et affiche les e donnes dans la premire colonne de la feuille de calcule courante. Pour consommer le service Web dans le complment, il ny a rien dextraordinaire faire, la procdure effectuer est absolument identique celle que lon appliquer appliquerait dans une application .Net. La mthode la plus simple tant dajouter une rfrence Web son projet, ce qui va faire que Visual Studio 2005 va automatiquement gnrer les classes proxy correspondantes. Puis il vous suffira dutiliser ces classes comme nimporte quelle autre classe de votre application. Cest cette mthode que nous avons utilis dans ce prototype, je vous invite donc consulter les sources pour avoir un exemple concret de consommation dun service Web, et/ou bien sur la MSDN pour plus dinformation sur les services Web en gnral. Une fois les donnes rcupres, il nous manque donc la dernire brique qui est donc leur affichage. Pour cela rien de nouveau, lon utilise toujours lautomation pour manipuler les feuilles de calculs dExcel 2007.
30 Septembre 2007
Voici un bout de code issu du prototype qui illustre la rcupration des donnes depuis un service Web et leur affichage dans la premire colonne de la feuille de calcul courante :
Book[] bookResults = _bookStoreSampleWebService.BookCollectionLoadByBookStore(bookStore); [] _bookStoreSampleWebService.BookCollectionLoadByBookStore(bookStore); MSExcel.Workbook workbook = (MSExcel. (MSExcel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook; .ThisAddIn.Application.ActiveWorkbook; MSExcel.Worksheet sheet = (MSExcel. (MSExcel.Worksheet)workbook.ActiveSheet; sheet.Cells.Clear(); int rowIndex = 1; foreach (Book book in bookResults) { sheet.Cells[rowIndex++, 1] = book.Name; }
30 Septembre 2007
c)
Conclusion
Nous avons vu dans ce prototype comment personnaliser Excel 2007 de faon lutiliser comme un personnalis client frontal dune source de donnes. La source de donnes peut aussi bien tre un serveur donnes. SharePoint, que notre propre source comme cest ici notre cas avec notre Web Service attaquant une base de donne SQL Server 2005, ou tout autre service Web dvelopp avec une quelconque dvelopp technologie. Nous avons galement vu succinctement au passage comment industrialiser le processus de production de code avec CodeFluent de manire pouvoir concentrer les efforts sur la valeur ajoute de lapplication : interface utilisateur et rgles mtiers (mme si dans ce prototype, nous utilisateur nillustrons pas la mise en uvre de rgles au-del des rgles de structure portes par le modle au del CodeFluent). Ce prototype illustre ainsi parfaitement largument de rduction des cots mis en avant en a introduction de ce livre blanc. Les trois applications phares dOffice 2007 peuvent dsormais tre utilises comme des interfaces clientes universelles, ce qui prsente de nombreux avantages tel que la suppression du temps de familiarisation avec une nouvelle interface graphique pour lutilisateur, une ou encore un faible cot de dveloppement de clients riches en fonctionnalits pour les diteurs logiciels.
30 Septembre 2007
Avant de regarder le code du projet DataStoreSample, nous allons dabord faire un tour dhorizon des lments utilis par le prototype.
a) Le modle
Le fichier Modle.docx contenu dans le rpertoire Modle est un document Word contenant cinq contrles de contenus. Ce fichier contient lui-mme un data store de ce type : lui
<root xmlns="www.softfluent.com www.softfluent.com"> <name /> <city /> <date /> <client /> <summary /> </root>
Chacun des contrles de contenus est reli un nud de ce XML, si bien que si lon insre une donne dans le contrle de contenu li au nom, celui-ci va remplir llment name du XML, et vice versa : si lon rempli llment name du XML, celui-ci va apparatre dans le contrle de ci contenu.
30 Septembre 2007
b) Les donnes
Dans le rpertoire Donnes , on peut remarquer une srie de fichiers XML, chacun dentre eux tant construit de la mme manire que celui contenu dans le modle, la diffren que ceux-ci diffrence sont remplis. Voici le fichier Julien Martin.xml en exemple :
<root xmlns="www.softfluent.com www.softfluent.com"> <name>Julien Martin</ </name> <city>Montpellier</city city> <date>2006-12-15T00:00:00 15T00:00:00</date> <client>Cola-Coca</client client> <summary>Formation .Net d'une dure d'une semaine.</summary Formation summary> </root>
c)
Le scnario
Prenons le cas dune entreprise de services ayant n employs qui chaque fin de mission remplissent ne s une base de donnes avec des informations telles que le nom du client, la date et le sujet dintervention, via un client web. Cette socit aimerait maintenant pouvoir, partir des donnes rvention, contenues dans cette base, gnrer automatiquement un rapport dintervention par mission au format Office Word 2007. Grce la sparation de la prsentation et des donnes dans lOpen XML, des il est maintenant possible dextraire les informations de la base les donnes, former les fichiers XML correspondant, et injecter ceux-ci dans un modle de rapport dintervention de la socit. ci Ce scnario est viable quelle que soit la source de donnes utilise en back-office (cube OLAP, WebServices, base de donne SQL Server ou ORACLE, etc.) puisque le fait de passer par un fichier XML nous permet de nous abstraire de lenvironnement source. Ce scnario requiert cependa une . cependant tape pralable qui nest pas illustre ici : lextraction des donnes dune source de donnes et le illustr formatage de ces donnes dans un fichier XML au schma dfini pralablement.
d) Utilisation du prototype
DataStoreSample.exe est lapplication du scnario expos prcdemment : il permet de gnrer scna partir de fichiers XML correctement formats, les n documents Word 2007 correspondant, le tout sans OLE Automation ni le Framework 3.0, et grce aux notions de contrles de contenu ainsi que de , data store. cliquez celui ci Pour cela, double-cliquez sur lexcutable, et celui-ci va automatiquement scanner le contenu du rpertoire Donne , charger le modle, et gnrer un docx par fichier XML. Le docx sera nomm daprs le nom du fichier XML et dpos dans le rpertoire Sortie .
2. Point dintrt particulier oint a) Crer le modle (1) Ajouter les contrles de contenu
Une fois la mise en page cre, il faut ajouter les contrles de contenu. Les contrles de contenu sont dans longlet Dveloppeur qui nest pas affich par dfaut. Pour activer celui-ci allez dans le Po ci, menu Office > Options Word > Standard et cochez loption Affichez longlet Dveloppeur .
30 Septembre 2007
Une fois celui-ci activ, longlet apparat dans votre ruban Office, et dans cet onglet la zone des ci contrles de contenu. Il suffit de positionner son curseur la position voulue pour le contrle de fit contenu, puis cliquez sur le contrle de contenu dsir. Une fois le contrle de contenu ajout, il faut maintenant crer le data store puis lier le contrle de contenu ce data store.
(2) Crer un data store dans le document
La premire tape est de renommer son fichier .docx en .zip pour ensuite extraire son contenu dans un rpertoire. A la racine du rpertoire crer un rpertoire nomm customXml . Cest dans ce rpertoire que sont stocks les XML data store. Un data store est compos dun document XML contenant les donnes, puis dun document XML contenant ses proprits lidentifiant et dfinissant la relation du data store dans le document Word. Nous allons reprendre le document XML dfinissant lactivit de Julien Martin. Celui devra tre rendre Celui-ci plac dans le rpertoire /customXml et avec comme nom item1.xml . Daprs la spcification /customXm il serait tout fait possible de le nommer autrement, simplement si lon observe la mthode dont Office Word 2007 cre, nomme ou renomme des parties dans lXML data store, on saperoit que cest le nom par dfaut utilis. Pour rester simple, nous respectons donc le schma de nommage de . Office Word 2007. Il faut maintenant crer le fichier itemProps1.xml qui va servir identifier le data store. Voici celui tore correspondant notre fichier JulienMartin.xml : ienMartin.xml
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> encoding="UTF <ds:datastoreItem ds:datastoreItem ds:itemID="{E7C066FE-6FFB-46CA-9512-B7A19B9F1496} ds:itemID B7A19B9F1496}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customX http://schemas.openxmlformats.org/officeDocument/2006/customX ml"> <ds:schemaRefs> <ds:schemaRef ds:uri="www.softfluent.com" /> ds:uri </ds:schemaRefs> </ds:datastoreItem>
Vous remarquerez que le nud datastoreItem contient un GUID. Cest ce GUID qui servir servira identifier notre data store dans la couche de prsentation. Une fois le data store cr, il nous faut maintenant le relier au document. Pour cela il faut diter le document document.xml.rels pour y ajouter une relation entre document.xml et le data store, tel que celle-ci :
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/office http://schemas.openxmlformats.org/office Document/2006/relationships/customXml" Document/2006/relationships/customXml Target="../customXml/item1.xml /> ../customXml/item1.xml"
Cette relation doit tre dfinie au niveau du document.xml, mais aussi au niveau du data store et la racine du document. Les relations sont toujours contenues dans un rpertoire nomm _rels .
30 Septembre 2007
Il faut maintenant lier les deux fonctionnalits entre elles. Malheureusement il nexiste pas pour linstant dinterface graphique dans Office Word pour le faire, nous allons donc le faire la main aire, l dans le XML du document. Au niveau de notre contrle de contenu (correspond llment placeHolder dans le older document.xml), on va rajouter un lment nomm dataBinding qui, comme son nom lindique, permet de relier un contrle de contenu des donnes. Dans cet lment dataBinding, prcisons donc dans quel data store puiser linformation grce au GUID dfini auparavant et ensuite quelle valeur aller chercher dans notre data store grce une expression XPath. Voici un exemple de d DataBinding pour rcuprer le nom dans notre rapport exemple :
<w:dataBinding w:prefixMappings="xmlns:ns0='www.softfluent.com' xmlns:ns0='www.softfluent.com'" w:xpath="/ns0:root[1]/ns0:name[1] /ns0:root[1]/ns0:name[1]" w:storeItemID="{E7C066FE-6FFB-46CA9512-B7A19B9F1496}" />
Il faut maintenant sauvegarder le tout, reconstruire larchive, la renommer en docx, et vous disposez larchive alors dun contrle de contenu li un lment de votre data store. Pour en savoir plus sur cette tape, je vous invite consulter la spcification disponible sur le site de lECMA (http://www.ecma s http://www.ecmainternational.org/publications/standards/Ecma-376.htm), et qui explique bien plus en dtail cette international.org/publications/standards/Ecma ), partie. Maintenant que vous connaissez la thorie, il existe un outil nomm le Content Control Toolkit (http://openxmldeveloper.org/archive/2006/11/21/ContentControlToolkit.asp x) qui va vous rendre la vie bien plus facile, en permettant dcrire depuis une interface graphique votre data store et surtout de pouvoir le lier par glisser-dposer au contrle de contenu dsir.
c) Crer le document Word final
Une fois le document modle cr, il suffit donc de remplacer le data store initial par le fichier XML contenant les informations voulues. La mthode effectuant lopration de remplacement est la ns mthode ReplaceXmlDataInZip. Un fichier docx tant une archive ZIP, le prototype utilise la librairie SharpZipLib pour dcompresser larchive, puis remplacer le fichier XML, et re rie reconstruire le tout.
30 Septembre 2007
Une fois larchive reforme avec le nouveau data store il suffit de changer lextension en .docx et lopration est termine.
30 Septembre 2007
PresentationMLCreator sappuie sur le Framework 2.0 ainsi que sur lAPI de gestion de package Open XML (System.IO.Packaging) contenue dans la librairie WindowsBase.dll du Framework 3.0. Il fau faut donc avoir le Framework 3.0 install ou au minimum le Framework 2.0 et la dll concerne. En utilisant lAPI contenue dans System.IO.Packaging du Framework 3.0, PresentationMLCreator cre des prsentations en respectant la spcification Open XML disponible sur le site de lECMA (http://www.ecma-international.org/publications/standards/Ecma international.org/publications/standards/Ecma-376.htm). ). Celle Celle-ci dfinit larchitecture dune prsentation PowerPoint 2007 comme ceci :
30 Septembre 2007
Comme on peut le voir sur le schma ci-dessus, les diapositives (slides) ne sont quune partie du ci package Open XML, cependant le fonctionnement de toutes les parties dun package Open XML a un fonctionnement identique, seules ses relations peuvent varier. Cest pourquoi le prototype nillustre es varier. que la cration de diapositives puisque la mthode utilise peut tre utilise pour nimporte quelle uisque utilis autre partie du package.
2. Utilisation du prototype
PresentationMLCreator permet partir dun modle XML dfini par lutilisateur et pass en paramtre lexcutable ; de gnrer en sortie une prsentation PowerPoint 2007 au format Open sortie XML. Le prototype na pas besoin davoir Office 2007 dinstall sur la machine pour gnrer celle-ci, celle et par consquent il pourrait parfaitement tourner sur un serveur. Le fichier model.xml fourni avec le prototype est un exemple de modle dfinissant une prototype prsentation, et partir de laquelle notre prsentation va tre gnre :
<presentation name="SamplePresentation SamplePresentation"> <slide title="Toto" content content="Slide 1: toto" /> <slide title=" "Titi" content="Slide Slide picture="SoftFluentLogo.jpg /> SoftFluentLogo.jpg" <slide title="Tutu" content content="Slide 3: tutu" /> </presentation>
2:
titi titi"
Daprs ce modle, PresentationMLCreator va gnrer une prsentation nomme SamplePresentation.pptx, contenant trois diapositives ayant pour titres Toto, Titi, Tutu et divers
30 Septembre 2007
contenus. En ajoutant lattribut picture avec comme valeur un chemin valide vers une image, PresentationMLCreator va ajouter au milieu de la diapositive limage correspondante.
3. Points dintrts particuliers a) Lutilisation de modles
Pour crer la prsentation en sortie PresentationMLCreator se base sur un modle de prsentation vide, contenant deux diapositives vide. La raison de ce choix est que bien quune prsentation Office 2007 soit du XML, cela reste quand mme lourd de gnrer lintgralit du XML. Le prototype est donc bas r sur une logique de modles, utilisant une prsentation modle pour le squelette de la prsentation, un modle XML pour gnrer des diapositives, ainsi quun modle XML , pour gnrer les nuds XML dfinissant des images. dfinissan De plus lintrt dutiliser des modles est que sans modifier le code source du projet, lon peut facilement changer laspect des documents gnrs. Ces trois modles sont inclus dans lexcutable et sont visible dans les sources sous le rp rpertoire Resources . Une fois les modles crs, PresentationMLCreator se contente de les utiliser en y incorporant les donnes dfinies par lutilisateur dans le fichier XML pass en paramtre. Une fois les donnes de la prsentation gnrer charges, lon peut passer ltape de production de notre document. La production sorganise en quatre tapes : 1. 2. 3. 4. Ouverture du package Ouverture / Cration de la diapositive Ajout des donnes dans la diapositive Sauvegarde et fermeture du package
Un package Open XML correspond au document Open XML (ici un pptx), qui est lui-mme compos de parts . Le Framework 3.0 fournit des classes pour grer le package (System.IO.Packaging.Package) ainsi que ses parts (System.IO.Packaging.PackagePart). De manire ce que leur ckaging.PackagePart). manipulation soit plus aise, nous utilisons nos propres classes qui encapsulent celles-ci comme par exemple pour la gestion du package. ci La classe soccupant de grer le package sappelle PackageManager et nous facilite lutilisation de la classe du Framework, pour lajout, la s rcupration ou la sauvegarde des relations et des parts.
30 Septembre 2007
Cette classe va tre utilise par toutes les autres classes manipulant notre package tel que Slide ou Presentation. Dans un fichier Open XML, nimporte quel lment le composant est un part et par consquent, hier ils ont tous le mme comportement au sein du package. Du coup, que mon part soit une diapositive c diapositive, notre prsentation, un graphique, une note ou autre, cela revient au mme au niveau du package : mme ce sont des PackagePart. Vous retrouverez donc deux classes, Slide et Presentation, qui permettent de grer ces parts de manire plus concrte :
Par consquent, grce ces classes, pour ajouter une nouvelle diapositive une prsentation Open sentation XML partir de notre modle de prsentation, il suffit de faire :
using (PackageManager packageManager = new PackageManager PackageManager(Properties.Resources.PresentationTemplate)) .PresentationTemplate)) { Slide slide = Slide.Create(packageManager, "slide1.xml", .Create(packageManager, Properties.Resources Resources.SlideTemplate, "slideLayout1"); Presentation presentation = Presentation.Open(packageManager); .Open(packageManager); presentation.AddSlide(slide); presentation.Save(); }
30 Septembre 2007
c)
Le format Open XML tant document lon sait prcisment comment et o sont stocks les informations. De ce fait, lon sait prcisment comment manipuler du texte, des images, des graphiques, animations, timings, etc. Le texte en presentationML est contenu dans un PlaceHolder, qui est dj cr dans notre modle contenu SlideTemplate.xml. Il nous suffit donc dd rcuprer ce PlaceHolder et dinsrer le texte dans celui-ci, celui tout en respectant la norme Open XML, tel que :
public void WritePlaceholderString( WritePlaceholderString(string name, string text) { string xPathQuery = string.Format("//p:sp[p:nvSpPr/p:cNvPr/@name='{0}']" string "//p:sp[p:nvSpPr/p:cNvPr/@name='{0}']" + "/p:txBody/a:p/a:endParaRPr", name); , XPathNavigator subTitleNav = PackageData.CreateNavigator().SelectSingleNode(xPathQuery, Constants.NamespaceManager); .NamespaceManager); using (XmlWriter writer = subTitleNav.InsertBefore()) { // <a:r> // <a:t>Text String</a:t> // </a:r> writer.WriteStartElement(Constants.DrawingMLPrefix, writer.WriteStartElement( Constants.DrawingMLNamespace); .DrawingMLNamespace); writer.WriteElementString(Constants.DrawingMLPrefix, writer.WriteElementString( Constants.DrawingMLNamespace, text); .DrawingMLNamespace, writer.WriteEndElement(); } }
"r", "t",
30 Septembre 2007
Lajout dune image dans une diapositive suit le mme principe que lajout de texte, except que les images contenues dans le document sont elles aussi contenues dans le package. Les images sont elles aussi des parts contenues dans le rpertoire /ppt/media du package. Il faut donc : 1. Crer le part 2. Crer la relation qui lie la diapositive limage 3. Ajouter le presentationML correspondant une image dans la diapositive c Tout ceci est fait dans la mthode AddPicture dans la classe Slide :
public void AddPicture(string pictureName, Bitmap bitmap, string contentType contentType) { using (MemoryStream ms = new MemoryStream()) { bitmap.Save(ms, Slide.GetImageFormat(contentType) .GetImageFormat(contentType)); byte[] data = ms.GetBuffer(); [] // create the media part Uri mediaUri = new UriKind.Relative);
Uri(string.Format("/ppt/media/{0}" "/ppt/media/{0}",
pictureName),
this.Package.CreateNewPart(mediaUri, contentType, data, 0, (int .Package.CreateNewPart(mediaUri, int)ms.Length); // create the relationship string rId = this.Package.CreateInternalRelationship(this this this.Uri, Constants.ImageRelationshipType); .ImageRelationshipType);
mediaUri,
// add the picture element to the slide, with the correct relationship Id XPathNavigator slideNav PackageData.CreateNavigator().SelectSingleNode("/p:sld/p:cSld/p:spTree" PackageData.CreateNavigator().SelectSingleNode("/p:sld/p:cSld/p:spTree", Constants.NamespaceManager); .NamespaceManager); slideNav.AppendChild(string string.Format(Properties.Resources.PictureTemplate, .PictureTemplate, pictureName, rId)); } }
Le PictureTemplate utilis dans la mthode contient lensemble du XML pour crer un lment image dans une diapositive selon la norme Open XML.
30 Septembre 2007
30 Septembre 2007
VII. Conclusion
Au travers de ce livre blanc, nous esprons vous avoir fait partager notre enthousiasme sur les nouvelles possibilits dOffice 2007 et la formidable opportunit de march que cela constitue pour qui souhaite dvelopper des applications innovantes pour ses utilisateurs. Les scnarios en introduction ne sont que quelques pistes de rflexion et nous faisons confiance aux dveloppeurs et aux socits spcialises sur un secteur pour imaginer les scnarios rels quils veloppeurs pourront dvelopper et faire adopter sur leur march, en sappuyant au besoin sur t Les exemples des diteurs dj prsents dans ce livre blanc dmontrent la diversit des opportunits diversit et solutions apportes aux enjeux des clients. A notre sens, linvestissement notable et prcoce dun nombre significatif dditeurs de logiciels diteurs constitue une preuve tangible de lvolution dOffice 2007 dune simple suite de produ dOffice productivit pour les utilisateurs vers une plate-forme de construction dapplications mtier . forme Bien sr, nous ne sommes quau dbut de cette volution en profondeur qui prendra un certain temps avant dtre une ralit quotidienne, mais ce sont les socits qui sauront prendre un coup davance sur le march qui en tireront les bnfices. Et dans la mesure o cette transformation est en cours, nous aimons conseiller nos clients, et en particulier les diteurs de logiciels, de participer activement cette transformation plu transformation plutt que dattendre de la subir. Nhsitez pas nous contacter pour changer sur ce sujet, mme pour une simple discussion. ce
30 Septembre 2007
Centre de dveloppement Office Lutilisation dOpen XML Lespace dveloppement Open XML Microsoft SDK for Open XML format
Les contrles de contenu Liste des lments et attributs du XML dun ruban Documentation sur le dploiement dun oiement complment Office 2007 Complment Excel 2007 pour la gestion des listes synchronises Solutions dveloppes par les diteurs Calypteo Esker Produit Flydoc ILOG Produit Rules for .NET Symtrax Medasys Tmoignages vidos Calypteo / SoftFluent
http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=bb003a96-cf46-46a6-8749-a8397d34ecec a8397d34ecec
30 Septembre 2007
CEGID
http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=5d51e7f1-95a2-474a-ac07-c1067e8d7 c1067e8d7f5b http://news.com.com/1606-2_3-6182663.html http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=3d523c43-a082-4d6b-a667-308649cb05b5 308649cb05b5 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=0cd3833b-092d-405c-9f1c-9b8af05a 9b8af05a66b3 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=6c708a71-ac13-4f48-a6a7-b5f28b4a59d5 8b4a59d5 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=2150e505-6089-4778-a94a-e2cfd730a904 e2cfd730a904 http://www.microsoft.com/France/Temoignages/Fiche-Temoignageavec-webcast.aspx?EID=5fb50ed6-2aa2-4693-b0c4-76847d8b94c4 76847d8b94c4
Kayentis
KDS
Lexis-Nexis
Schneider Electric
Blogs et contenu communautaire RL Consulting : socit dexpertise SharePoint utilise par plusieurs diteurs de logiciels Blog de Franck Halmaert (Marketing Office) Blog de Pierre Lagarde (Contenu dv. Office) Communaut Open XML Exemple dune combinaison de contrles de contenu avec un data store Liste des identifiants des fonctionnalits et images existantes dans Office 2007 Mise en uvre de Webdav avec IIS Lutilisation des listes synchronises sous Excel en version 2007 (article) Liens Softfluent SoftFluent CodeFluent.com: Service gratuit de fabrication de composants mtiers Email de contact http://www.softfluent.com http://www.codefluent.com http://www.rlconsulting.eu
http://blogs.microsoft.fr/franckha http://blogs.developpeur.org/fox
http://www.laboratoire-microsoft.org/articles/mise-en-place-webdav-iis6 http://www.softfluent.com/article_excellist_fr.aspx
info@softfluent.com
Prototypes Office 2007 dvelopps par SoftFluent Prototypes Office 2007 avec code et documentation http://office.softfluent.com Compte office.microsoft, Mot de passe @@Office2007