[vfp] les office web components (owc) avec visual foxpro

Les Office Web components (OWC) Avec Visual FoxPro
Les Office Web components (OWC) Avec Visual FoxPro
de Mike Gagnon
La suite Microsoft Office 2000 inclut un nouvel ensemble de commandes appelées les Office Web components (OWC). En utilisant ces composants, vous pouvez établir l'analyse de beaucoup de données utile et des solutions de reportage, dans le web browser et dans les environnements de programmation traditionnels. En ce chapitre, j'expliquerai pourquoi les composants d'enchaînement de bureau ont été créés, ce que sont elles, et où vous pouvez les employer. Je vous donnerai également quelques idées initiales pour leur usage dans des solutions d'affaires.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />

Ou utiliser les Composants Office Web

Microsoft Internet Explorer 5.0 Full
Microsoft Internet Explorer 4.01 Full
Microsoft Internet Explorer 3.x Not supported
Microsoft Visual Basic 6.0 Full
Microsoft Visual Basic 5.0 Basic
Microsoft Visual InterDev Basic
Microsoft Access Forms Basic
Microsoft Office UserForms Basic
Microsoft FrontPage 99 Full
Microsoft FrontPage 98 Basic
Microsoft Access 2000 Data Access Page Designer Full
Microsoft Script Editor Full
Microsoft Word 2000 Basic
Microsoft Excel 2000 Basic
Microsoft PowerPoint 2000 Basic
Microsoft Outlook 2000 Basic
Microsoft Visual C++/MFC Projects None
Microsoft Visual J++
Microsoft Visual FoxPro Basic

Les quatre composants de OWC.

Spreadsheet Créer une feuille de calcul
Charts Créer des chartes
Data Source Connecter à un source de data
Pivot Table Créer une feuille de calcul pivotée

Cet article se concentre seulement sur la feuille de calcul et sur les chartes.

1. La feuille de calcul (Spreadsheet)

Ce chapitre étudiera les fonctionnalités et le modèle de programmation du composant de feuille de calcul. Vu que cet article se concentre sur de vraies solutions, il présentera quelques utilisations intéressantes de chaque dispositif composant avec sa description.

La base de la feuille de calcul . Avant d'entrer dans trop de détails, examinons les éléments de base de la feuille de calcul et décrivons les diverses façons qu'il peut charger et sauver des données.

Le moteur de recalcul se trouve au coeur de la feuille de calcul, rendant ce composant plus que juste une grille typique. Conçu par les mêmes développeurs qui ont construit le moteur de recalcul Excel, de la feuille de calcul supporte presque que toutes les fonctions d'Excel.

Quand le composant feuille de calcul est employé sans interface (c'est-à-dire, comme objet de mémoire), le moteur de recalcul devient son service primaire. Le moteur de recalcul peut exécuter n'importe quel calcul complexe qui est facilement exprimé en feuille de calcul. Il peut également recalculer un modèle existant sur le serveur et envoyer le résultat à un web browser ou dans un message de E-mail.

Le composant la feuille de calcul supporte une feuille de travail avec un maximum de 65,536 rangées 702 colonnes (A à ZZ) mais peut seulement accommoder une seule feuille de travail par instanciation du composant. Ceci est le même nombre rangé qu'Excel 2000 offre mais presque trois fois le nombre de colonnes. (Excel supporte seulement 256 colonnes.)

La feuille de calcul supporte des références absolues ($A$1) et les références relatives des cellules (A1) dans les formules et, comme Excel elle ajuste automatiquement ces références quand vous déplacez, insérez, ou supprimez des rangées ou des colonnes.

Employer des références absolues et relatives peut être particulièrement utile en copiant des cellules contenant des formules d'une part d'une gamme à l'autre. Par exemple, vous emploieriez une référence absolue de cellules si cette référence doit demeurer la même indépendamment de la rangée et la colonne contient la formule. Une référence qui doit se rapporter à la rangée courante et colonne, cependant, doit être relative. En d'autres termes, $A$1 restera $A$1 après l'opération de copie, alors qu'A1 sera converti en rangée et colonne courantes dans lesquelles vous avez copié.

Exemple d'une feuille de calcul simple.

#Define xlCenter -4108

#Define xlBottom -4107

#Define xlContext -5002

Public gSpreadSheet &&Variable publique pour OWC

Close Data

Open Database _SAMPLES + "\TASTRADE\DATA\Tastrade"

Use CUSTOMER In 0

Select 0

Use "Order History" Alias OrderHistory

OWC10Spread('OrderHistory','Order History') && Appeler le fonction pour créer la feuille Excel

SaveWorksheet('c:\OrderHistory.xls') && Sauvegarder en format Excel

OpenWB('c:\OrderHistory.xls') && Ouvrir avec ShellExecute

Procedure OWC10Spread(lcAlias,lcSheetname)

gSpreadSheet = Createobject("OWC10.Spreadsheet") && Créer un instance de Office Web Components

loSheet = gSpreadSheet.ActiveSheet && Faire reference à la feuille active

With loSheet

.Name = lcSheetname

nfieldno=Afields(arrfielda,lcAlias)

For N=1 To nfieldno

.Cells(1,N).Value=arrfielda(N,1)

Endfor

nrow=2

Select &lcAlias

Scan

For N=1 To nfieldno

cfield=lcAlias+'.'+arrfielda(N,1)

.Cells(nrow,N).Value=(&cfield)

Endfor

.Cells(nrow,1).Select

nrow=nrow+1

Endscan

nValue = 65

For N=1 To nfieldno && Reformatter les colones

cColumn = Chr(nValue)

.Columns(Transform(cColumn)+':'+Transform(cColumn)).EntireColumn.AutoFit

.Columns(Transform(cColumn)+':'+Transform(cColumn)).Select

.Columns(Transform(cColumn)+':'+Transform(cColumn)).HorizontalAlignment = xlCenter

.Columns(Transform(cColumn)+':'+Transform(cColumn)).VerticalAlignment = xlBottom

.Columns(Transform(cColumn)+':'+Transform(cColumn)).ReadingOrder = xlContext

.Columns(Transform(cColumn)+':'+Transform(cColumn)).MergeCells = .F.

nValue = nValue + 1

Endfor

.Cells.Select

Endwith

Endproc

Procedure SaveWorksheet(strFileName)

Export(strFileName, 0) && Exporter vers le format Excel

Endproc

Procedure OpenWB(strFileName)

Declare Integer ShellExecute In "Shell32.dll" ;

INTEGER HWnd, ;

STRING lpVerb, ;

STRING lpFile, ;

STRING lpParameters, ;

STRING lpDirectory, ;

LONG nShowCmd

=ShellExecute(0,"Open",strFileName,"","",0) && Ouvrir avec ShellExecute qui est plus vite q'automatiser Excel.

Endproc

L'interface de la feuille de calcul.

dessus l'engin de recalcul de la feuille de calcul repose l'interface de la feuille de calcul (Contrôle Activex Microsoft Office Spreadsheet). L'interface utilisateur est semblable à celle d'Excel, mais est spécifiquement conçu pour favoriser les activités que vous devriez exécuter en agissant l'un sur l'autre avec un modèle existant de la feuille de calcul. Puisque le composant de la feuille de calcul est juste une commande et pas une application propre, la plupart des possibilités de formatage sont exposées par une fenêtre d'outil appelée la boîte à outils de propriété.

Les éléments de base du composant de diagramme (Charte)

Le composant de diagramme est une commande COM qui a été développé par la même équipe qui a développé le module de création de charte dans Microsoft Excel 2000. Il fournit les éléments de base pour produire des chartes sur écran et en mémoire, et incorpore un engin qui permet de sauvegarder le résultat en format GIF. Cette première version, il existe un support pour les diagrammes bidimensionnels que l'on retrouve dans Excel (excepté le type de contour) avec l'addition du Polar, Stacked Pie, et Filled Scatter. La version courante (v11) inclue les chartes tridimensionnelles.

Le composant de charte a aussi la capacité de montrer plus d'un diagramme dans l'espace global du diagramme.

Éléments principaux du modèle de programmation.

Créer chartes dans le Chart Space.
Lorsque que vous créez un nouvel objet de ChartSpace, il ne contient aucune charte. Pour ajouter une charte à l'objet de ChartSpace, employez la méthode Add de WCCharts. Le tableau 3-1 énumère les propriétés et les méthodes que vous emploierez pour ajouter et enlever des diagrammes de l'espace de diagramme.


| <table width=\"95%\" border=\"0\"> |-
Property or Method

</td> | Description

ChartSpace.Charts Cette propriété renvoie la collection de WCCharts de tous les objets de WCChart dans la commande de diagramme.
WCCharts.Add Employez cette méthode pour ajouter un nouveau diagramme à l'espace de diagramme.
ChartSpace.Clear Cette méthode dégage tout le contenu de la commande de diagramme.

</td></tr></table>

Changer le type de charte.
Vous pouvez changer de type de charte simplement en changeant une propriété.

WCChart.Type Cette propriété place ou renvoie le type pour toute la série dans une charte.
WCSeries.Type Cette propriété place ou renvoie le type pour une seule série dans un diagramme.
ChartChartTypeEnum Cette énumération contient toutes les constantes que vous pouvez employer avec les deux propriétés de type décrites ci-haut.

Exporter une charte en format GIF.
Vous pouvez exporter le contenu de la charte vers une image de GIF sur le disque dur à tout moment.

Method
Description
ChartSpace.ExportPicture Cette méthode exporte le contenu courant de la commande de diagramme vers un dossier d'image de GIF. Vous pouvez indiquer le nom de fichier, la largeur, et la taille.
Exemple d'un charte à partir d'une feuille de calcul.

#Define chDimSeriesNames 0

#Define chDimCategories 1

#Define chDimValues 2

#Define chAxisPositionLeft -3

Spreadsheet1 = Createobject("OWC10.Spreadsheet")
ChartSpace1 Createobject("OWC10.ChartSpace")ActiveSheet.Cells.Clear==

==ActiveSheet.Cells(2, 1).Value = "White"==

==ActiveSheet.Cells(3, 1).Value = "Black"==

==ActiveSheet.Cells(4, 1).Value = "Asian"==

==ActiveSheet.Cells(5, 1).Value = "Latino"==

==ActiveSheet.Cells(1, 2).Value = "Perot"==

==ActiveSheet.Cells(2, 2).Value = 0.2==

==ActiveSheet.Cells(3, 2).Value = 0.06==

==ActiveSheet.Cells(4, 2).Value = 0.17==

==ActiveSheet.Cells(5, 2).Value = 0.13==

==ActiveSheet.Cells(1, 3).Value = "<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:City w:st="on"><st1:place w:st="on">Clinton</st1:place></st1:City>"==

==ActiveSheet.Cells(2, 3).Value = 0.38==

==ActiveSheet.Cells(3, 3).Value = 0.82==

==ActiveSheet.Cells(4, 3).Value = 0.28==

==ActiveSheet.Cells(5, 3).Value = 0.62==

==ActiveSheet.Cells(1, 4).Value = "Bush"==

==ActiveSheet.Cells(2, 4).Value = 0.42==

==ActiveSheet.Cells(3, 4).Value = 0.12==

==ActiveSheet.Cells(4, 4).Value = 0.55==

==ActiveSheet.Cells(5, 4).Value = 0.25==

Clear

loGraph=ChartSpace1.Charts.Add

==Type =46==

==Datasource = Spreadsheet1==

Charts(0).SeriesCollection.Add

Charts(0).SeriesCollection.Add

Charts(0).SeriesCollection.Add

Charts(0).SeriesCollection(0).SetData(chDimSeriesNames, 0, "B1")

Charts(0).SeriesCollection(0).SetData(chDimCategories, 0, "A2:A5")

Charts(0).SeriesCollection(0).SetData(chDimValues, 0, "B2:B5")

Charts(0).SeriesCollection(1).SetData (chDimSeriesNames, 0, "C1")

Charts(0).SeriesCollection(1).SetData( chDimCategories, 0, "A2:A5")

Charts(0).SeriesCollection(1).SetData( chDimValues, 0, "C2:C5")

Charts(0).SeriesCollection(2).SetData( chDimSeriesNames, 0, "D1")

Charts(0).SeriesCollection(2).SetData( chDimCategories, 0, "A2:A5")

Charts(0).SeriesCollection(2).SetData (chDimValues, 0, "D2:D5")

==Charts(0).HasLegend = .T.==

==Charts(0).Axes(chAxisPositionLeft).NumberFormat = "0%"==

==Charts(0).Axes(chAxisPositionLeft).MajorUnit = 0.1==
lcFile Sys(2023) + "\" + Sys(2015) + ".gif"ExportPicture(lcFile, "gif",640,480)==
oBrowser Createobject("internetexplorer.application")navigate(lcFile)==

==Visible = .T.==

Mike Gagnon

Adresse d'origine

Ce document intitulé « [vfp] les office web components (owc) avec visual foxpro » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous