chapitre 1 l'ole - pascal.buguet.free.frpascal.buguet.free.fr/pdfsetzips/pwrs_14_ole.pdf ·...

28

Upload: vannguyet

Post on 22-Apr-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et
Page 2: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

CHAPITRE 1 L'OLE Chapitre 1 L'OLE ............................................................................................. 2

1.1 Définition ................................................................................................... 3 1.2 La création d'un objet incorporé ................................................................ 4 1.3 La création d'un objet lié............................................................................ 5 1.4 Les propriétés remarquables des contrôles OLE ....................................... 6

1.4.1 Contrôle OLE incorporé.................................................................... 6 1.4.2 Contrôle OLE Lié.............................................................................. 7

1.5 Les méthodes remarquables....................................................................... 8 1.5.1.1 Activate .......................................................................................... 8 1.5.1.2 Open ............................................................................................... 8 1.5.1.3 SaveAs............................................................................................ 9 1.5.1.4 InsertObject .................................................................................... 9 1.5.1.5 InsertFile....................................................................................... 10 1.5.1.6 LinkTo.......................................................................................... 10

1.5.2 Application ...................................................................................... 12 1.6 Les ActiveX ............................................................................................. 14

1.6.1 Définition ........................................................................................ 14 1.6.2 Insertion d'un ActiveX .................................................................... 14 1.6.3 Utilisation d'un ActiveX.................................................................. 16

1.7 L'OLE Automation .................................................................................. 17 1.7.1 Principes et syntaxes ....................................................................... 17

1.7.1.1 Principes ....................................................................................... 17 1.7.1.2 Syntaxes ....................................................................................... 17

1.7.2 Application ...................................................................................... 19 1.8 L'OLE comme objet dans un dwo ........................................................... 22

1.8.1 Présentation ..................................................................................... 22 1.8.2 Application ...................................................................................... 22

1.9 Dwo Présentation Style OLE (OPS)........................................................ 23 1.9.1 Présentation ..................................................................................... 23 1.9.2 Application ...................................................................................... 23 1.9.3 Autres exemples .............................................................................. 24

1.10 L'OLE dans la DataBase ....................................................................... 25 1.10.1 Présentation ..................................................................................... 25 1.10.2 Application ...................................................................................... 26

1.10.2.1 Création de la table et du dwo.................................................... 26 1.10.2.2 Création de la DataWindow....................................................... 27 1.10.2.3 Utilisation ................................................................................... 28

Page 3: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 3

1.1 DEFINITION

• Object Linking & Embedding (Objet lié & Incorporé) C'est la possibilité offerte par Windows qu'un document - dont l'applicatif gère l'OLE - soit présent dans un autre document; par exemple une feuille de calcul dans une fenêtre PowerBuilder. L’objet lié est un objet stocké en dehors de l’application PowerBuilder. L’objet incorporé est un objet stocké dans l’application PowerBuilder, par exemple dans une fenêtre de l’application. Lorsque dans la Boîte à Outils l'on prend l'outil OLE il est possible de créer un nouveau document (Incorporation) ou d'en utiliser un déjà existant sur un disque.(qui sera lié ou incorporé). Ainsi une fenêtre PowerBuilder peut être une fenêtre d'intégration de plusieurs applications. Le mécanisme standard étant de double-cliquer sur le container pour activer le document et son serveur (Un classeur Excel et Ms-Excel par exemple ou un dessin Paint). Exemple d'écran avec deux objets Paint

Page 4: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 4

1.2 LA CREATION D'UN OBJET INCORPORE Un objet incorporé peut être créé ex-nihilo ou à partir d'un fichier (cf page suivante). Vous cliquez dans la boîte à outils sur le bouton OLE. Vous obtenez cette boîte de dialogue. Vous sélectionnerez l'application serveur, vous validerez sur le bouton OK et vous poserez le contrôle sur la fenêtre. Vous dessinerez votre dessin et quitterez l'application serveur en cliquant sur l'option Quitter et Revenir… dans le menu Fichier.

Page 5: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 5

1.3 LA CREATION D'UN OBJET LIE Un objet lié est toujours créé à partir d'un fichier. Le point de départ est le même Vous sélectionnez l'onglet Create from File

Vous cliquez sur le bouton Browse pour aller chercher le fichier source

Au retour de cette fenêtre de l'explorateur vous cochez la case à cocher Link

Vous validez sur OK et posez le contrôle sur la fenêtre.

Page 6: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 6

1.4 LES PROPRIETES REMARQUABLES DES CONTROLES OLE

1.4.1 Contrôle OLE incorporé

Page 7: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 7

1.4.2 Contrôle OLE Lié

Propriété Signification Valeurs Contents Contenu Any (Soit lié soit incorporé)

Embedded (Incorporé) Linked (Lié)

Activation Mode d'activation DoubleClick (Sur Double-Clic) Get Focus (Sur l'obtention du Focus) Manual (Manuellement ie par script)

Display Type Type d'affichage Contents (Le contenu) Icon (Une icône)

Link Update Mise à jour de la liaison

Manual (Manuelle) Automatic (Automatique)

Page 8: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 8

1.5 LES METHODES REMARQUABLES

Méthode Fonction Activate Active le contenu d'un contrôle OLE Open Ouvre et place dans le contrôle OLE un

fichier de type OLE (Extension .OLE) Save SaveAs Sauvegarde sur disque au format OLE

le contenu d'un contrôle OLE InsertObject Insert un objet dans un contrôle OLE InsertFile Insère un fichier supportant l'OLE dans

un contrôle OLE LinkTo Etablit un lien entre un contrôle OLE et

un fichier

1.5.1.1 Activate Active le contenu d'un contrôle OLE soit dans le contrôle soit à l'extérieur.

• Syntaxe ole_.activate ( Type) Type : InPlace! Ou OffSite!

• Exemple ole_1.Activate(InPlace!)

1.5.1.2 Open Ouvre et place dans le contrôle OLE un fichier de type OLE (Extension .OLE).

• Syntaxe

Page 9: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 9

ole_.Open( chemin)

• Exemple ole_1.Open("c:\exos\pb\image1.ole")

1.5.1.3 SaveAs Sauvegarde sur disque au format OLE le contenu d'un contrôle OLE.

• Syntaxe Ole_.SaveAs(chemin)

• Exemple Ole_1.Save("c:\exos\pb\image2.ole") Remarques : la source n'est pas nécessairement un fichier OLE. Ceci permet la "transformation" du fichier

1.5.1.4 InsertObject Insert un objet dans un contrôle OLE en proposant une boîte de dialogue pour sélectionner le fichier à insérer.

• Syntaxe ole_.InsertObject()

Page 10: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 10

1.5.1.5 InsertFile Insère un fichier supportant l'OLE dans un contrôle OLE

• Syntaxe ole_.InsertFile(chemin)

• Exemple ls_fichier = sle_nom_fichier.text ls_chemin = "c:\pascal\pb\miscella\" + ls_fichier ole_image.insertFile(ls_chemin)

1.5.1.6 LinkTo Etablit un lien entre un contrôle OLE et un fichier

• Syntaxe ole_.LinkTo(chemin)

• Exemple

Page 11: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 11

ls_fichier = sle_nom_fichier.text ls_chemin = "c:\pascal\pb\miscella\" + ls_fichier ole_1.LinkTo(ls_chemin)

• Tableau de synthèse OLE BMP, DOC ou autres Open Oui Non SaveAS Oui Non InsertObject (Mais Boîte de dialogue)

Oui Oui

InsertFile Non Oui LinkTo Non Oui

Page 12: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 12

1.5.2 Application

• Ecran de test

• La méthode Activate

OffSite Inplace

La valeur OffSite ouvre le serveur dans une fenêtre autonome. La valeur Inplace ouvre le serveur dans la MDI. La barre de menus du serveur, sauf le menu Fichier, remplace la barre de menu courante .

Page 13: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 13

• Les méthodes Open et SaveAs

• Démarche A partir de cet écran l'utilisateur saisit un nom de fichier OLE. Il clique sur le bouton Open… et le fichier s'affiche à la place du logo. Ensuite il peut le transformer, en l'activant, et le sauvegarder en cliquant sur le bouton SaveAs….

• Scripts // Open string ls_fichier ls_fichier = sle_fichier.text ole_incorpore.open("c:\pascal\pb8\ole\" + ls_fichier) //SaveAs string ls_fichier ls_fichier = sle_fichier.text ole_incorpore.saveas ("c:\pascal\pb8\ole\" + ls_fichier )

Page 14: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 14

1.6 LES ACTIVEX

1.6.1 Définition Un ActiveX est un contrôle Windows, créé avec VisualBasic ou VisualC++ ou une autre produit, réutilisable dans n'importe quelle application Windows. Les contrôles ActiveX possèdent des propriétés et des méthodes que nous pouvons utilisés dans une application PowerBuilder. A titre d'exemple nous allons insérer le composant Calendar 9.0 de Microsoft.

1.6.2 Insertion d'un ActiveX Pour insérer un ActiveX vous allez dans la boîte à outils et cliquez sur l'outil OLE. Vous sélectionnez l'onglet Insert Control et sélectionnez le contrôle qui vous intéresse.

Vous validez sur OK et posez le composant sur votre fenêtre.

Page 15: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 15

Dans le browser vous pouvez visualiser les propriétés, les méthodes et les événements publics de cet objet. Vous ouvrez le browser Vous cliquez sur l'onglet OLE. Vous double-cliquez sur Insertable Objects ou sur OLE Custom Controls et vous sélectionnez le contrôle en question . L'arborescence s'ouvre sur les propriétés, les méthodes, les événements

Entre autres, le composant Calendar 9.0 possède les propriétés Day, Month et Year qui renvoient le jour, le mois et l'année de la date sélectionnée. Il possède, entre autres, les méthodes NextMonth() et ShowTitle(boolean) qui permettent respectivement de passer au moins suivant et d'afficher ou de cacher le titre du calendrier. Ce sont ces propriétés et ces méthodes qui serviront d'exemples.

Page 16: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 16

1.6.3 Utilisation d'un ActiveX

• Ecran

• Scripts //Click sur ole_calendar // Propriétés sle_jour.text = string(this.object.day) sle_mois.text = string(this.object.month) sle_annee.text = string(this.object.year) // Méthode this.object.nextmonth()

// Click sur Cb_titre ib_titre= not ib_titre ole_calendrier.object.ShowTitle(ib_titre)

Page 17: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 17

1.7 L'OLE AUTOMATION

1.7.1 Principes et syntaxes

1.7.1.1 Principes L'OLE Automation c'est la possibilité (quand l'application serveur le permet, par exemple Ms-Excel pour PowerBuilder) de programmer à partir de PowerBuilder des actions sur un document géré par une autre application. Il faut pour cela connaître les objets (leurs propriétés et méthodes) et parfois le langage de l'application serveur selon le niveau de complexité d'utilisation du serveur automation.

1.7.1.2 Syntaxes

• Déclaration Syntaxe OleObject VariableObjet Exemple OleObject lole_excel

• Instanciation Syntaxe VariableObjet = Create OleObject Exemple lole_excel = Create OleObject

• Connexion au serveur Syntaxe

Page 18: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 18

VariableCodeRetour = VariableObjet.ConnectToNewObject(Nom_application) Exemple ll_retour = lole_excel.ConnectToNewObject("Excel.application")

• Connexion à un objet Syntaxe VariableCodeRetour = VariableObjet.ConnectToObject(Fichier [,application]) Exemple ll_retour = lole_excel.ConnectToObject("c:\pascal\pb8\ole\classeur1.xls")

• Déconnexion du serveur Syntaxe VariableCodeRetour = VariableObjet.DisconnectObject() Exemple lole_excel.DisconnectObject()

• Désinstanciation Syntaxe Destroy VariableObjet Setnull(VariableObjet) Exemple Destroy lole_excel Setnull(lole_excel)

Page 19: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 19

1.7.2 Application Exemple de code OLEAuto avec Ms-Excel : Calcul du remboursement mensuel d'un prêt.

• Le classeur Excel

La formule de calcul =(VPM(B1/12;B2/12;B3)/12)

• L'interface PowerBuilder

• Le script // clicked de cb_vers_excel dans w_ole_auto_excel dans OleAuto.pbl oleobject lole_excel uint hwnd string ls_doc

Page 20: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 20

long ll_retour lole_excel = create oleobject ls_doc = "c:\pascal\pb8\ole\classeur1.xls" // Titre de la fenêtre et non de l'application ou du nom de la fenêtre hwnd = FindWindowA(0,"Microsoft Excel - Classeur1.xls") if hwnd = 0 then // Lance l'application ll_retour = lole_excel.ConnectToNewObject("Excel.application") st_erreur.text = st_erreur.text + " : " + string(ll_retour) lole_excel.application.visible = true lole_excel.application.workbooks.open(ls_doc) // messagebox("Excel n'est pas lancé","Et va être lancé") else lole_excel.ConnectToObject(ls_doc) // messagebox("Excel est déjà lancé","") end if // Cells(Ligne , Colonne) lole_excel.application.workbooks(1).sheets(1).cells[1,2].value = sle_taux.text lole_excel.application.workbooks(1).sheets(1).cells[2,2].value = integer(sle_mois.text) lole_excel.application.workbooks(1).sheets(1).cells[3,2].value = integer(sle_pret.text) sle_remboursement.text = string(lole_excel.application.workbooks(1).sheets(1).cells[4,2].value) lole_excel.application.workbooks(1).save() lole_excel.application.quit() lole_excel.DisconnectObject() destroy lole_excel setnull(lole_excel) messagebox("","Terminé")

Page 21: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 21

• La fenêtre de déclaration de la DLL

• Le texte de la DLL FindWindowA Vous déclarez cette fonction dans la vue Declare Global External Functions. Function uint FindWindowA(long lClasse,string sNom) library "user32.dll"

Page 22: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 22

1.8 L'OLE COMME OBJET DANS UN DWO

1.8.1 Présentation L'ajout d'un objet OLE dans un dwo ressemble au contrôle OLE dans une fenêtre. Comme pour un logo. L'objet est un conteneur.

1.8.2 Application Vous créez votre dwo de façon classique. Puis en conception vous allez dans la boîte à outils est vous ajoutez un objet OLE.

Ensuite vous vous retrouvez avec les boîtes de dialogue OLE de Windows comme pour un contrôle OLE.

Page 23: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 23

1.9 DWO PRESENTATION STYLE OLE (OPS)

1.9.1 Présentation L'OPS ressemble au précédent mis à part le fait que le conteneur OLE est le seul élément du dwo. Le conteneur OLE sera lié avec un serveur OLE pour représenter les données choisies dans une table. A titre d'exemple nous allons sélectionner la désignation et le prix du produit dans la table Produits et lier ces données à Microsoft Graph.

1.9.2 Application

• Etapes particulières de la création Choix des colonnes cibles

Page 24: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 24

Choix du serveur OLE

Le serveur vous permet ensuite de modifier les caractéristiques de présentation.

1.9.3 Autres exemples

• Exemple de champs de produits avec Excel

• La même chose avec Word

Page 25: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 25

1.10 L'OLE DANS LA DATABASE

1.10.1 Présentation L'objectif est de stocker des images (JPG ou autre dans une table Oracle). Il pourrait s'agir de tout autre fichiers OLE (Documents Word, Classeurs Excel,…). Puis de pouvoir les visualiser…

Page 26: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 26

1.10.2 Application

1.10.2.1 Création de la table et du dwo

• La table oracle Images(id_image number(5) , description varchar2(50) , objet_image Long Raw)

• Le dwo Lors de la création du dwo ( en mode FreeForm ) PowerBuilder vous présente toutes les colonnes sauf la colonne de type Blob (Long Raw).

Une fois le dwo terminé vous allez ajouter un objet OLE-DB dans le dwo.

et remplir les propriétés caractéristiques de cet objet

Avant Après

Page 27: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 27

Propriété Description Client_name Optionnel, Donne parfois le titre de la fenêtre du serveur OLE Client_class Optionnel, DataWindow Table Sélectionnez la table où se trouve le Blob Large Binary / Text Column Le nom de la colonne Blob Key Clause utilsée par PowerBuilder pour retrouver la colonne Blob

correspondant à l'enregistrement File template Optionnel, fichier modèle OLE Class Le serveur OLE Client Name Expression Nécessaire pour identifier le document.

Ce qui donne ceci dans le page de propriétés

Vous ajouterez une bordure à l'objet dans le DataWindow Object pour que l'utilisateur puisse repérer l'endroit où il doit double-cliquer pour activer le serveur.

1.10.2.2 Création de la DataWindow Vous créez votre fenêtre avec un contrôle DataWindow et vous codez comme n'importe quelle DataWindow.

Page 28: CHAPITRE 1 L'OLE - pascal.buguet.free.frpascal.buguet.free.fr/pdfsEtZips/pwrs_14_ole.pdf · CHAPITRE 1 L'OLE Chapitre 1 L'OLE ... contrôles ActiveX possèdent des propriétés et

PowerBuilder – OLE et OLEAUTO

© Pascal Buguet Imprimé le 19 août 2004 Page 28

1.10.2.3 Utilisation

• Exemple en insertion

Vous ajoutez un nouvel enregistrement ou vous voulez en modifier un et vous activez par double-click ou par script -dw_images_bmp.OLEActivate(dw_images_bmp.GetRow(),3,0) - la colonne BLOB. Arrivé dans Paint vous allez chercher un fichier avec Edition / Coller à partir de Vous revenez dans la fenêtre PB en cliquant dans Fichier / Quitter et retourner à

"Collage" Choix du fichier Retour