Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[VFP] LES OFFICE WEB COMPONENTS (OWC) AVEC VISUAL FOXPRO


Information sur le tutorial

Catégorie :API-OLE Date de création : 19/10/2004 09:58:51 Vu : 14 942 fois

Note :
Aucune note

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Tutorial

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.

 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)
gSpreadSheet.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
.
Par-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é.

2. 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.

 

Property or Method

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. 

 

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")
Spreadsheet1.ActiveSheet.Cells.Clear
Spreadsheet1.ActiveSheet.Cells(2, 1).Value = "White"
Spreadsheet1.ActiveSheet.Cells(3, 1).Value = "Black"
Spreadsheet1.ActiveSheet.Cells(4, 1).Value = "Asian"
Spreadsheet1.ActiveSheet.Cells(5, 1).Value = "Latino"
 
Spreadsheet1.ActiveSheet.Cells(1, 2).Value = "Perot"
Spreadsheet1.ActiveSheet.Cells(2, 2).Value = 0.2
Spreadsheet1.ActiveSheet.Cells(3, 2).Value = 0.06
Spreadsheet1.ActiveSheet.Cells(4, 2).Value = 0.17
Spreadsheet1.ActiveSheet.Cells(5, 2).Value = 0.13
 
Spreadsheet1.ActiveSheet.Cells(1, 3).Value = "Clinton"
Spreadsheet1.ActiveSheet.Cells(2, 3).Value = 0.38
Spreadsheet1.ActiveSheet.Cells(3, 3).Value = 0.82
Spreadsheet1.ActiveSheet.Cells(4, 3).Value = 0.28
Spreadsheet1.ActiveSheet.Cells(5, 3).Value = 0.62
 
Spreadsheet1.ActiveSheet.Cells(1, 4).Value = "Bush"
Spreadsheet1.ActiveSheet.Cells(2, 4).Value = 0.42
Spreadsheet1.ActiveSheet.Cells(3, 4).Value = 0.12
Spreadsheet1.ActiveSheet.Cells(4, 4).Value = 0.55
Spreadsheet1.ActiveSheet.Cells(5, 4).Value = 0.25
ChartSpace1.Clear
loGraph=ChartSpace1.Charts.Add
loGraph.Type =46
ChartSpace1.Datasource = Spreadsheet1
ChartSpace1.Charts(0).SeriesCollection.Add
ChartSpace1.Charts(0).SeriesCollection.Add
ChartSpace1.Charts(0).SeriesCollection.Add
ChartSpace1.Charts(0).SeriesCollection(0).SetData(chDimSeriesNames, 0, "B1")
ChartSpace1.Charts(0).SeriesCollection(0).SetData(chDimCategories, 0, "A2:A5")
ChartSpace1.Charts(0).SeriesCollection(0).SetData(chDimValues, 0, "B2:B5")
ChartSpace1.Charts(0).SeriesCollection(1).SetData (chDimSeriesNames, 0, "C1")
ChartSpace1.Charts(0).SeriesCollection(1).SetData( chDimCategories, 0, "A2:A5")
ChartSpace1.Charts(0).SeriesCollection(1).SetData( chDimValues, 0, "C2:C5")
ChartSpace1.Charts(0).SeriesCollection(2).SetData( chDimSeriesNames, 0, "D1")
ChartSpace1.Charts(0).SeriesCollection(2).SetData( chDimCategories, 0, "A2:A5")
ChartSpace1.Charts(0).SeriesCollection(2).SetData (chDimValues, 0, "D2:D5")
ChartSpace1.Charts(0).HasLegend = .T.
ChartSpace1.Charts(0).Axes(chAxisPositionLeft).NumberFormat = "0%"
ChartSpace1.Charts(0).Axes(chAxisPositionLeft).MajorUnit = 0.1
lcFile = Sys(2023) + "\" + Sys(2015) + ".gif"
ChartSpace1.ExportPicture(lcFile, "gif",640,480)
oBrowser = Createobject("internetexplorer.application")
oBrowser.navigate(lcFile)
oBrowser.Visible = .T.

 


Mike Gagnon
Aucun commentaire pour le moment.

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.