DEVELOPPEMENT SUR LE WEB

Transcription

DEVELOPPEMENT SUR LE WEB
CHAPITRE 1 DEVELOPPEMENT SUR LE WEB
Chapitre 1
DEVELOPPEMENT SUR LE WEB ............................................. 2
1.1 Introduction................................................................................................ 3
1.2 Le DataWindow Plug-In............................................................................ 5
1.2.1
Principes ............................................................................................ 5
1.2.2
Mise en place..................................................................................... 6
1.2.2.1 Sur le serveur.................................................................................. 6
1.2.2.2 Sur le poste client ........................................................................... 7
1.3 Le PowerBuilder Window Plug-In ............................................................ 9
1.3.1
Principes ............................................................................................ 9
1.3.2
Mise en place................................................................................... 10
1.3.2.1 Sur le serveur................................................................................ 10
1.3.2.2 Sur le poste client ......................................................................... 14
1.3.3
Autres exemples .............................................................................. 15
1.3.3.1 Fenêtre avec une ListBox............................................................. 15
1.3.3.2 Fenêtre avec une Gestion de DataWindow.................................. 16
1.4 Le PowerBuilder Window ActiveX......................................................... 17
1.4.1
Principes .......................................................................................... 17
1.4.2
Mise en place sur le serveur ............................................................ 18
1.4.2.1 PB Event et VBScript................................................................... 19
1.4.2.2 PB function et VBScript............................................................... 20
1.4.2.3 User Function et VBScript ........................................................... 21
1.4.2.4 User Event et VBScript................................................................ 22
1.4.3
Mise en place sur le poste client ..................................................... 23
1.4.4
Autres exemples .............................................................................. 24
PowerBuilder – Développement sur le WEB
1.1 INTRODUCTION
PowerBuilder dans son édition Entreprise permet le développement de sites
WEB dynamiques.
Les outils utilisés sont les suivants :
Web Target
Web DataWindow
DataWindow Web Control for ActiveX
DataWindow plug-in
PowerBuilder window plug-in
PowerBuilder window ActiveX
•
Web Target
Un Web Target (Cible Web) est une collection de fichiers et de composants
utilisés pour créer un site WEB. Il peut délivrer dynamiquement le contenu
d'une base de données en utilisant des scripts clients ou serveur ou des méthodes
de composants stockés sur le serveur n-tiers.
•
Web DataWindow
Le Web DataWindow est un composant client DataWindow léger. Il est
implémenté sur le client sans DLL. Il permet la manipulation des données.
•
DataWindow Web Control for ActiveX
C'est un contrôle DataWindow pleinement interactif à utiliser avec
InternetExplor. Il permet la gestion des Retrieval Arguments, des styles, des
règles de validation.
Il est fournit dans un CAB qui permet l'installation sur le poste client et son
inscription dans le registre.
•
DataWindow plug-in
Le DataWindow Plug-In permet l'affichage de PSR (PowerSoftReport) , dans
une page HTML , qui ont été générés au préalable et stockés sur le serveur Web.
Les rapports sont statiques et ne nécessitent pas d'accès à la BD.
© Pascal Buguet
Imprimé le 19 août 2004
Page 3
PowerBuilder – Développement sur le WEB
Le navigateur (Netscape, IE,…) doit supporté les plug-in.
La DLL du plug-in doit être présente sur le poste client.
•
PowerBuilder window plug-in
Le PowerBuilder Window Plug-In exécute une application PowerBuilder qui
affiche une fenêtre PowerBuilder dans une page HTML. Vous pouvez afficher,
saisir des données et les valider dans la base de données. Les connexions
utilisées sont les connexions du client.
Comme précédemment le navigateur doit accepter les plug-in.
Cette technologie requiert un client lourd.
•
PowerBuilder window ActiveX
Le PowerBuilder window ActiveX permet d'avoir une interface évoluée dans
une page HTML avec un navigateur qui autorise les ActiveX.
En plus des fonctionnalités des plug-in vous pouvez utiliser JavaScript ou
VBScript pour accéder à un sous-ensemble de méthodes et d'événements de la
fenêtre PowerBuilder.
Les connexions sont initialisées par le client avec les paramètres présents sur le
client.
La lourdeur du poste client – DLL, ActiveX – est l'inconvénient de cette
technologie.
© Pascal Buguet
Imprimé le 19 août 2004
Page 4
PowerBuilder – Développement sur le WEB
1.2 LE DATAWINDOW PLUG-IN
1.2.1 Principes
Le DataWindow Plug-In permet l'affichage d'un PSR dans une page HTML.
Le navigateur doit accepter les plug-in Netscape (Netscape 3 ou supérieur, IE 3
ou supérieur).
Un fichier PSR contient une définition de rapport ( Source et objet). Les données
sont celles qui ont été stockées au moment de la création du PSR. Les données
sont donc statiques et cela ne nécessite pas de connexion à la BD.
Le DWPI affiche les données telles qu'elles ont été formatées dans le dwo
(Style, alignement, format,… sauf les RichText).
Le développement se fait sur un serveur avec la version Entreprise installée.
L'installation des plug-in ne faisant pas partie de l'installation standard;veillez à
ce qu'ils soient installés. Ils sont copiés dans le dossier PLUGIN de
l'arborescence du système, de PB et du navigateur.
•
Ecrans
Voici les écrans que l'on peut obtenir : en grille, en FreeForm, avec formatages
particuliers (Textes inclinés, case à cocher,…).
© Pascal Buguet
Imprimé le 19 août 2004
Page 5
PowerBuilder – Développement sur le WEB
1.2.2 Mise en place
1.2.2.1
•
Sur le serveur
Transformation du dwo en PSR
Dans une application PowerBuilder vous créez un dwo et vous faites une
sauvegarde du dwo au format PSR.
File / Save As file employes.psr
•
Ecriture de la page HTML
Vous écrivez cette page HTML
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<H3>PBWPI Clients</H3>
<P><EMBED SRC=clients.psr width=300 height=1000></P>
</BODY>
</HTML>
EMBED est une spécification HTML pour les plug-in.
SRC identifie l'objet à télécharger à partir d'une URL
•
Préparation du serveur WEB
Vous copiez la page HTML et le fichier PSR dans l’arborescence du serveur
internet (IIS par exemple ) c:\inetpub\wwwroot\…
•
Vérification du type MIME utilisé dans la base de registre du serveur
Le type MIME c'est le type de contenu.
Lancer regedit.exe
Allez dans
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\para
meters\mime
Et vous ajouter cette clé application/datawindow8,psr,,5
© Pascal Buguet
Imprimé le 19 août 2004
Page 6
PowerBuilder – Développement sur le WEB
1.2.2.2
•
Sur le poste client
Vérifications préalables
Vérifiez :
La connexion Internet / Intranet
La version du navigateur
La présence de la DLL ( NPDWE80.DLL) pour ce plug-in; Elle se trouve dans
le dossier des plug-in d’internet du client (c:\program files\plus!\plugins par
exemple). Si elle est absente vous la copiez.
•
Affichage de la page
A partir du navigateur du poste client tapez l'URL.
Par exemple
http://140.0.0.105/dwpi_clients.htm
© Pascal Buguet
Imprimé le 19 août 2004
Page 7
PowerBuilder – Développement sur le WEB
http://140.0.0.105/dwpi_villes.htm
avec ce code HTML ci :
<HTML>
<HEAD><TITLE>PSR</TITLE></HEAD>
<BODY>
<H1>DWPI Villes</H1>
<P><EMBED SRC=villes.psr width=700 height=400></P>
</BODY>
</HTML>
© Pascal Buguet
Imprimé le 19 août 2004
Page 8
PowerBuilder – Développement sur le WEB
1.3 LE POWERBUILDER WINDOW PLUG-IN
1.3.1 Principes
Le PowerBuilder Window Plug-in permet l'affichage d'une fenêtre Child dans
une page HTML.
La fenêtre peut contenir des contrôles variés ( contrôles communs, OLE, OCX,
DataWindow, TreeView,…). Il est aussi possible d'ouvrir des fenêtres Popup et
Response.
L'objet peut contenir des PBD (PowerBuilder Dynamic Library).
Il y a deux PBWPI : la version standard (NPPBA80.DLL) et la version sécurisée
(NPPBS80.DLL). La version standard accède auX fichiers locaux et aux
applications locales qu'elles peuvent exécuter. Les paramètres de sécurité du
navigateur peuvent être bloquants.
La version sécurisée ne permet pas l'accès :
aux BD
aux External Functions
à Internet
aux E-Mail
à l'OLE
à EAS
à la DDE
•
Ecrans
Types d'écrans que vous pouvez obtenir.
Cette fenêtre contient un sle, deux boutons ; le premier bouton remplit le sle et le
deuxième bouton ouvre la petite fenêtre popup que l’on voit à droite.
© Pascal Buguet
Imprimé le 19 août 2004
Page 9
PowerBuilder – Développement sur le WEB
1.3.2 Mise en place
1.3.2.1
•
Sur le serveur
L'application
Vous créer une application PowerBuilder. La ou les fenêtres qui seront utilisées
doivent être de type Child (Eventuellement Popup et Response).
Vous créez un projet en PCode (PBD). N'oubliez pas les PBR (PowerBuilder
Resource) si vous en avez.
•
Ecriture de la page HTML
Code de la première version (Une fenêtre, un sle et un bouton)
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<H1>Plug_in Window 1</H1>
<P><EMBED SRC=web_1.pbd width=200 height=100
window=w_remplir></p>
</BODY>
</HTML>
Code de la deuxième version telle qu’elle apparaît dans la copie d’écran cidessus.
<html>
<head><title></title></head>
<body>
<h1>Plug_in_Window1</h1>
<P><embed src=web_1.pbd width=150 height=100 window=w_remplir
window=w_popup></p>
</body>
</html>
•
Préparation du serveur WEB
Exemple d'élément EMBED avec des attributs étendus.
<EMBED SRC=app_pbwpi.pbd Width=300 Height=300 WINDOW = w_enfant
LIBRARY=http://140.0.0.105/pb/fic1.pbd
LIBRARY=http://140.0.0.105/pb/fic2.pbd
© Pascal Buguet
Imprimé le 19 août 2004
Page 10
PowerBuilder – Développement sur le WEB
APPLICATION=app_pbwpi>
L'option Library permet le téléchargement de bibliothèques supplémentaires.
L'option Application permet la prise en charge des variables, fonctions,… de
niveau application/
Vous vérifiez l'installation des DLL serveur. Cf procédure d'installation sur le
serveur avec l'option des plug-in.
Vous copiez les fichiers PBD sur votre site WEB (Arborescence
InetPub\wwwroot\….
•
Vérification du type MIME
Dans Regedit ajouter une des clés suivantes :
application/vnd.powerbuilder8,pbd,,5 pour la version standard
application/vnd.powerbuilder8-s pbd,,5 pour la version secure,
© Pascal Buguet
Imprimé le 19 août 2004
Page 11
PowerBuilder – Développement sur le WEB
en attendant
<HTML>
<!-- CODEBASE="http://140.0.0.105/pbrx80.ocx" -->
<SCRIPT LANGUAGE="VBSCRIPT">
<!-sub PBRX1_clicked(flags,xpos,ypos)
document.ma_forme.tb_pb_ev.value=xpos
document.ma_forme.tb_user_fct.value=ypos
end sub
' ----sub clic_x()
dim li_x
li_x = pbrx1.pointerx()
document.ma_forme.tb_pb_ev.value = li_x
end sub
' ---sub invoque_of()
dim ls_fct
ls_fct = "of_close"
pbrx1.InvokePBFunction(ls_fct)
end sub
' --sub invoque_ue()
dim ls_ue
ls_ue = "ue_close"
pbrx1.TriggerPbEvent(ls_ue)
end sub
-->
</SCRIPT>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<H1>PBWAX Villes</H1>
<P><OBJECT ID="pbrx1" NAME="pbrx1" width=400 height=200
CLASSID="CLSID:88881304-8888-1000-8000-080009AC61A9">
<PARAM NAME="_Version" VALUE="65536"></PARAM>
<PARAM NAME="_ExtentX" VALUE="5962"></PARAM>
<PARAM NAME="_ExtentY" VALUE="2164"></PARAM>
<PARAM NAME="_StockProps" VALUE="0"></PARAM>
© Pascal Buguet
Imprimé le 19 août 2004
Page 12
PowerBuilder – Développement sur le WEB
<PARAM NAME="PBWindow" VALUE="w_enfant"></PARAM>
<PARAM NAME="LibList"
VALUE="http://140.0.0.105/app_pbwax.pbd;"></PARAM>
<PARAM NAME="PBApplication" VALUE="app_pbwax"></PARAM>
</OBJECT>
<FORM NAME="ma_forme">
<P><INPUT TYPE=Text NAME="tb_pb_fct" SIZE="20">
<INPUT TYPE=BUTTON VALUE="Fonction PB" ONCLICK="call clic_x()">
<P><INPUT TYPE=Text NAME="tb_pb_ev" SIZE="20">
<INPUT TYPE=BUTTON VALUE="Event PB" ONCLICK="call
appel_fct_pb()">
<P><INPUT TYPE=Text NAME="tb_user_fct" SIZE="20">
<INPUT TYPE=BUTTON VALUE="Fonction USER" ONCLICK="call
invoque_of()">
<P><INPUT TYPE=Text NAME="tb_ue" SIZE="20">
<INPUT TYPE=BUTTON VALUE="EVENT USER" ONCLICK="call
invoque_ue()">
</FORM>
</BODY>
</HTML>
© Pascal Buguet
Imprimé le 19 août 2004
Page 13
PowerBuilder – Développement sur le WEB
1.3.2.2
•
Sur le poste client
Vérifications préalables
Vérifiez :
La connexion Internet / Intranet
La version du navigateur
La présence d'une des DLL ( NPPBA80.DLL ou NPPBS80.DLL) pour ce plugin; Elle se trouve dans le dossier des plug-in d’internet du client (c:\program
files\plus!\plugins par exemple). Si elle est absente vous la copiez.
Les Runtime DLL de PowerBuilder dans un dossier référencé par un PATH.
PBVM80.DLL
Tous les cas
LIBJCC.DLL
Tous les cas
PBDWE80.DLL DataWindow et DataStore
PBRTC80.DLL RichText
PBFNT80.INI
Références vers des polices inaccessibles
PBLAB80.INI
Formats prédéfinis des étiquettes des DataWindows.
PBTRA80.DLL Traçage de connexions BD.
Si vous n'avez pas inséré dans un PBR des images, vous les copiez dans le
chemin spécifié dans les propriétés des contrôles (Recopie de l'arborescence de
développement).
Si vous accéder à une BD vous installez la couche cliente (Client Oracle8 par
exemple) et vous la configurez.
•
Affichage de la page
A partir du navigateur du poste client tapez l'URL.
Par exemple
http://140.0.0.105/page_plug_in_window1.htm
© Pascal Buguet
Imprimé le 19 août 2004
Page 14
PowerBuilder – Développement sur le WEB
1.3.3 Autres exemples
1.3.3.1
Fenêtre avec une ListBox
© Pascal Buguet
Imprimé le 19 août 2004
Page 15
PowerBuilder – Développement sur le WEB
1.3.3.2
Fenêtre avec une Gestion de DataWindow
•
Dans le navigateur
•
Le code HTML
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<H1>PBWPI Villes</H1>
<P><EMBED SRC=web_1.pbd width=300 height=200 window=w_tests
window=w_popup window w_dw_villes></P>
</BODY>
</HTML>
•
Le code PowerBuider
•
Les paramétrages Oracle, ODBC des postes…
© Pascal Buguet
Imprimé le 19 août 2004
Page 16
PowerBuilder – Développement sur le WEB
1.4 LE POWERBUILDER WINDOW ACTIVEX
1.4.1 Principes
La PowerBuilder Window ActiveX ( PBWAx) possède les mêmes fonctionalités
que la PowerBuilber Window Plug-In (PBWPI) plus la possibilité de coder des
appels JavaScript et VBScript à des fonctions PB, des UserEvents PB, des
fonctions personnalisées et des événements personnalisés (User-Events).
Comme avec la PBWPI les connections BD sont locales.
Le navigateur doit supporter les ActiveX.
Les interfaces possibles sont :
Accès BD
DW maître-détails
Treview, ListView,…
Contrôles OLE,…
PowerBuilder propose deux ActiveX :
PBRX80.OCX pour la version standard
PBRXS80.OCX pour la version sécurisée.
L'OCX est inclus comme élément dans la page HTML.
Le client est un client lourd qui doit posséder les DLL PowerBuilder sur son
poste (PBVM80.DLL, LIBJCC.DLL,…) et l'OCX (Qui peut être téléchargé –
option CODEBASE – mais qui peut être installé au préalable sur le poste avec
regsvr32 dans le répertoire system de l'arborescence Windows, par exemple
regsvr32.exe c:\winnt\system\pbrx80.ocx).
© Pascal Buguet
Imprimé le 19 août 2004
Page 17
PowerBuilder – Développement sur le WEB
1.4.2 Mise en place sur le serveur
La mise en place est semblable à celle de la PBWPI.
•
L'application
Vous installez l'ActiveX.
Vous stockez sur le serveur l'application qui a été développée sur le poste
développeur. Seules les fenêtres Child sont acceptées dans ce type de projet, et
elles ne doivent pas posséder de menus, de boutons de contrôle,... Les fenêtres
Popup et Response doivent être ouvertes par la Child.
Vous créez un projet EXE avec des PBD.
•
Ecriture de la page HTML
Cette fois-ci dans la page HTML il faut utilisez l'élément OBJECT en spécifiant
le Class ID, le(s) PBD, le nom de la fenêtre Child.
<OBJECT NAME="PBRX1" WIDTH=225 HEIGHT=83
CLASSID="CLSID:88881304-8888-1000-8000-080009AC61A9"
CODEBASE="http://140.0.0.105/pbrx80.ocx">
<PARAM NAME="_Version" VALUE="65536"></PARAM>
<PARAM NAME="_ExtentX" VALUE="5962"></PARAM>
<PARAM NAME="_ExtentY" VALUE="2164"></PARAM>
<PARAM NAME="_StockProps" VALUE="0"></PARAM>
<PARAM NAME="PBWindow" VALUE="w_enfant"></PARAM>
<PARAM NAME="LibList"
VALUE="http://140.0.0.105/app_pbwax.pbd;"></PARAM>
<PARAM NAME="PBApplication" VALUE="app_pbwax"></PARAM>
</OBJECT>
Les attributs :
OBJECT : l'élément OCX dans la page HTML.
CLASSID : l'identifiant de la classe; c'est id de la classe Pbrx80.
CODEBASE : l'URL de stockage de l'OCX PBRX80.OCX ou
PBRXS80.OCX.
Les paramètres :
PBWindow : le nom de la fenêtre Child.
LIBLIST : la liste des PBD. Le séparateur est le ;.
PBAPPLICATION : le nom de l'application.
© Pascal Buguet
Imprimé le 19 août 2004
Page 18
PowerBuilder – Développement sur le WEB
1.4.2.1
PB Event et VBScript
Les événements PB disponibles
Activate
Clicked
Close
Desactivate
DoubleClicked
Hide
Key
MouseDown
PBMouseDown
PBMouseUp
Resize
Show
SystemKey
Timer
Exemple de script
<SCRIPT LANGUAGE="VBScript">
<!-Sub PBRX1_Clicked(flags, xpos, ypos)
document.buttonForm.passedXPos.value = xpos
document.buttonForm.passedYPos.value = ypos
end sub
-->
</SCRIPT>
© Pascal Buguet
Imprimé le 19 août 2004
Page 19
PowerBuilder – Développement sur le WEB
1.4.2.2
PB function et VBScript
Voici la liste des fonctions disponibles :
PointerX renvoie la distance du pointer par rapport au bord gauche de la
fenêtre.
PointerY renvoie la distance du pointer par rapport au haut de la fenêtre.
Print imprime la fenêtre
SetRedraw Boolean : permet le redimensionnement de la fenêtre.
Timer
crée un timer.
<SCRIPT LANGUAGE="VBScript">
<!-dim cumSeconds
cumSeconds = 0
Sub pbSetTime()
dim li_return
dim li_interval
li_interval = clockForm.timerInterval.value
li_return = pbrx1.Timer(li_interval)
if li_return 1 THEN
msgBox "Set Timer failed"
end if
end sub
//-->
</SCRIPT>
© Pascal Buguet
Imprimé le 19 août 2004
Page 20
PowerBuilder – Développement sur le WEB
1.4.2.3
User Function et VBScript
La fonction d'appel
Sub invokeFunction()
Dim retcd
Dim myForm
Dim args(1)
Dim rc
Dim numargs
Dim theFunc
Dim rcfromfunc
retcd = 0
numargs = 1
rc = 0
theFunc = "of_args"
Set myForm = Document.buttonForm
args(0) = buttonForm.textToPB.value
retcd = PBRX1.InvokePBFunction(theFunc,
numargs, args)
rc = PBRX1.GetLastReturn()
if rc 1 then
msgbox "Error. Empty string."
end if
PBRX1.ResetArgElements()
end sub
<FORM NAME="buttonForm">
<P><INPUT TYPE=Text NAME="textToPB" SIZE="20">
<P><INPUT TYPE=BUTTON VALUE="Invoke Function" ONCLICK="call
invokeFunction()">
</FORM>
© Pascal Buguet
Imprimé le 19 août 2004
Page 21
PowerBuilder – Développement sur le WEB
1.4.2.4
User Event et VBScript
Sub TrigEvent( )
Dim retcd
Dim myForm
Dim args(1)
Dim rc
Dim numargs
Dim theEvent
retcd = 0
numargs = 1
rc = 0
theEvent = "ue_args"
Set myForm = Document.buttonForm
args(0) = buttonForm.textToPB.value
retcd = PBRX1.TriggerPBEvent(theEvent,
numargs, args)
rc = PBRX1.GetLastReturn()
if rc 1 then
msgbox "Error. Empty string."
end if
PBRX1.ResetArgElements()
end sub
<FORM NAME="buttonForm">
<P><INPUT TYPE=Text NAME="textToPB" SIZE="20">
<P><INPUT TYPE=BUTTON VALUE="Trigger Event" ONCLICK="call
TrigEvent()">
</FORM>
Notes : code avec FrontPage ou WebTargets HTML ou ActiveX Control Pad.
© Pascal Buguet
Imprimé le 19 août 2004
Page 22
PowerBuilder – Développement sur le WEB
1.4.3 Mise en place sur le poste client
Vous installez :
L'ActiveX (Optionnel).
Les bibliothèques de déploiement (PBVM80.DLL,…).
les DLL Microsoft suivantes :
MFCC42.DLL
MSVRCRT.DLL
URL.DLL
URLMOM.DLL.
Les connexions BD
Les OLE serveurs utilisés de la fenêtre.
Les contrôles ActiveX supplémentaires de la fenêtre.
Vous sollicitez la page HTML dans votre navigateur.
http://140.0.0.105/pbwax_dw_villes.htm
© Pascal Buguet
Imprimé le 19 août 2004
Page 23
PowerBuilder – Développement sur le WEB
1.4.4 Autres exemples
© Pascal Buguet
Imprimé le 19 août 2004
Page 24

Documents pareils