complements sur les datawindowspascal.buguet.free.fr/pdfsetzips/pwrs_06_bis_les_dw.pdfle but de ce...

37
CHAPITRE 1 COMPLEMENTS SUR LES DATAWINDOWS Chapitre 1 COMPLEMENTS SUR LES DATAWINDOWS ......................... 1 1.1 Les principales méthodes ........................................................................... 2 1.2 Les assistants de création des dwo............................................................. 4 1.2.1 Group ................................................................................................. 4 1.2.2 Graph ................................................................................................. 6 1.2.3 OLE 2.0 ............................................................................................. 7 1.2.4 N-UP.................................................................................................. 8 1.2.5 CrossTab............................................................................................ 9 1.2.6 Composite........................................................................................ 11 1.2.7 Richtext ........................................................................................... 12 1.2.7.1 Présentation .................................................................................. 12 1.2.7.2 Application ................................................................................... 12 1.3 Les Dwo External .................................................................................... 15 1.3.1.1 Premier exemple : Une dwo pour une fenêtre de tri. ................... 15 1.3.1.2 Deuxième exemple : Une dwo pour récupérer le contenu d'un fichier texte. ................................................................................................ 17 1.4 Compléments sur la mise en forme ......................................................... 19 1.5 Les styles d'édition des colonnes ............................................................. 22 1.5.1 Edit .................................................................................................. 22 1.5.2 CheckBox ........................................................................................ 22 1.5.3 RadioButton .................................................................................... 23 1.5.4 DropDownListBox .......................................................................... 24 1.5.5 DropDownDataWindow ................................................................. 24 1.5.6 EditMask ......................................................................................... 24 1.6 La validation ............................................................................................ 25 1.7 Les expressions ........................................................................................ 27 1.8 La manipulation des enregistrements ...................................................... 29 1.8.1 Sort .................................................................................................. 29 1.8.2 Filter ................................................................................................ 29 1.8.3 Retrieve Options .............................................................................. 30 1.8.4 Suppress Repeating Values ............................................................. 30 1.8.5 Update properties ............................................................................ 31 1.8.6 Stored Procedure Update................................................................. 33 1.8.7 Create group .................................................................................... 34 1.9 La méthode DESCRIBE .......................................................................... 35 1.10 La méthode MODIFY ........................................................................... 37

Upload: others

Post on 07-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

CHAPITRE 1 COMPLEMENTS SUR LES DATAWINDOWS

Chapitre 1 COMPLEMENTS SUR LES DATAWINDOWS ......................... 1

1.1 Les principales méthodes........................................................................... 2 1.2 Les assistants de création des dwo............................................................. 4

1.2.1 Group................................................................................................. 4 1.2.2 Graph................................................................................................. 6 1.2.3 OLE 2.0 ............................................................................................. 7 1.2.4 N-UP.................................................................................................. 8 1.2.5 CrossTab............................................................................................ 9 1.2.6 Composite........................................................................................ 11 1.2.7 Richtext ........................................................................................... 12

1.2.7.1 Présentation .................................................................................. 12 1.2.7.2 Application ................................................................................... 12

1.3 Les Dwo External .................................................................................... 15 1.3.1.1 Premier exemple : Une dwo pour une fenêtre de tri. ................... 15 1.3.1.2 Deuxième exemple : Une dwo pour récupérer le contenu d'un fichier texte. ................................................................................................ 17

1.4 Compléments sur la mise en forme ......................................................... 19 1.5 Les styles d'édition des colonnes ............................................................. 22

1.5.1 Edit .................................................................................................. 22 1.5.2 CheckBox ........................................................................................ 22 1.5.3 RadioButton .................................................................................... 23 1.5.4 DropDownListBox.......................................................................... 24 1.5.5 DropDownDataWindow ................................................................. 24 1.5.6 EditMask ......................................................................................... 24

1.6 La validation ............................................................................................ 25 1.7 Les expressions ........................................................................................ 27 1.8 La manipulation des enregistrements ...................................................... 29

1.8.1 Sort .................................................................................................. 29 1.8.2 Filter ................................................................................................ 29 1.8.3 Retrieve Options.............................................................................. 30 1.8.4 Suppress Repeating Values ............................................................. 30 1.8.5 Update properties ............................................................................ 31 1.8.6 Stored Procedure Update................................................................. 33 1.8.7 Create group .................................................................................... 34

1.9 La méthode DESCRIBE .......................................................................... 35 1.10 La méthode MODIFY........................................................................... 37

Page 2: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.1 LES PRINCIPALES METHODES

Méthodes Fonction dw_.SetTransObject(SQLCA) Assignation d’un objet de transaction

(SQLCA en strandard) à une DataWindow

dw_.Retrieve() Permet de retrouver les données (select.....) correspondant à la DataWindow

dw_.Update() Met à jour dans la BD ; renvoie 1 si ok dw_.GetSQLSelect() Renvoie l’ordre Select base de la DW dw_.InsertRow(n) Insert une ligne dans la DW ; 0 en fin

de DW dw_.DeleteRow(n) Supprime une ligne ; 0 si ligne

courante dw_.RowCount() Renvoie le nombre de tuples dans la

DW dw_.ScrollNextRow() Ligne suivante dw_.ScrollPriorRow() Ligne précédente dw_.ScrollNextPage() Page suivante dw_.ScrollPriorPage() Page précédente dw_.ScrollToRow(n) Se positionne sur l’enregistrement n dw_.Reset() Efface le contenu de la DW dw_.SetItem(l,c,v) Affecte une valeur à une cellule dw_.SetText(texte) Affecte un texte à la cellule courante dw_.GetText() Renvoie le texte de la cellule courante dw_.GetItemDate(l,c) Renvoie une valeur dans une cellule de

type Date dw_.GetItemDateTime(l,c) Renvoie une valeur dans une cellule de

type DateTime dw_.GetItemTime(l,c) Renvoie une valeur dans une cellule de

type Time dw_.GetItemDecimal(l,c) Renvoie une valeur dans une cellule de

type Decimal dw_.GetItemNumber(l,c) Renvoie une valeur dans une cellule de

type Number dw_.GetItemString(l,c) Renvoie une valeur dans une cellule de

type string dw_.GetSelectedRow(numéro) Renvoie la ligne sélectionnée dw_.SelectRow(numéro,booléan) Sélectionne une ligne avec mise en

Page 3: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

surbrillance (true ou false) dw_.GetRow() Renvoie le numéro de l’enregistrement

actif dw_.SetRow(n) La ligne n est la ligne courante dw_.SetColumn(n) La colonne n est la colonne courante dw_.Find(Expression, début, fin) Trouve la première occurrence

correspondante dw_.FindNext() Trouve l’occurrence suivante pour une

colonne RTE (Rich Text Edit) dw_.SetSort("col1 ordre de tri") Prépare le tri dw_.Sort() Trie dw_.SetFilter("condition where") Positionne un filtre dw_.Filter() Active le filtre courant Remarque : La plupart de ces fonctions renvoient -1 si elles échouent

Page 4: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2 LES ASSISTANTS DE CREATION DES DWO Le but de ce sous-chapitre est de montrer les étapes particulières de certains assistants.

1.2.1 Group Cet assistant permet de créer un Dwo qui regroupe les enregistrements selon une ou plusieurs valeurs. Il peut être basé sur une ou plusieurs tables ou une requête. A titre d'exemple nous allons construire une version simplifiée de factures. Le Dwo est basé sur un SQL Select (Villes, Clients, Cdes, Ligcdes, Produits). Certains champs sont sélectionnées (Id_cde,….) Les premières étapes sont standards ( Vous sélectionnez Group bien entendu )

Après le choix des champs vous cliquez sur Return Et cette fenêtre apparaît; elle permet de choisir le ou les champs de regroupement. Vous glissez id_cde.

Page 5: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Vous cliquez sur Next, vous changez l'en-tête de rapport, et cochez les deux cases à cocher si nécessaire ( Nouvelle page pour chaque groupe, Nouvelle numérotation de pages pour chaque groupe )

A partir de là, et selon les cas, mais ici c'est la cas, vous devez réorganiser l'ensemble. Tout ce qui ne doit pas être répété doit passer de la zone Detail à la zone Header Group, certaines sommes doivent être supprimées,…. En conception vous devez avoir ceci

Pour avoir ceci en exécution.

Remarques : renommez les champs calculés.

Page 6: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.2 Graph Etapes particulières : Après avoir sélectionnées la table et les colonnes, vous spécifiez les abscisses et les ordonnées ( Catagory et Value)

Vous saisissez un titre et choisissez la type de graphique

Vous modifiez certaines propriétés ( Titre des axes, Légendes,…)

Page 7: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.3 OLE 2.0 Etape particulière : vous sélectionnez ou créez l'objet OLE à insérer dans le dwo.

Page 8: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.4 N-UP Etape particulière : Vous spécifiez le nombre d'enregistrements que vous voulez avoir de front.

Résultat en conception

Résultat en exécution

Page 9: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.5 CrossTab

• Première étape : Construction d'une requête Il s'agit de calculer le CA par Villes / Produits. La requête est basée sur les tables Villes, Clients, Cdes, Ligcdes, Produits. Les colonnes sélectionnées sont Nom_ville et Designation. Le CA est la Sommes des quantités commandées par les prix facturés.

Le regroupement se fait sur les deux colonnes sélectionnées.

Vous obtenez ceci en mode Prévisualisation.

• Deuxième étape : Le dwo Etape particulière Vous spécifiez les données en ligne, en colonne et à l'intersection par un cliqué-glissé.

Page 10: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Vous obtenez ceci dans le painter

Vous supprimez, éventuellement, un certain nombre de champs… pour obtenir ceci.

Ce qui donne ceci en exécution.

Page 11: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.6 Composite Un Dwo composite est tout simplement composé de plusieurs dwo. Etape particulière : Le choix des dwo à inclure dans le composite.

En conception

En exécution

Page 12: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.2.7 Richtext

1.2.7.1 Présentation Un dwo RichText (RTF) permet de formater un texte pour l'imprimer ou le stocker dans un fichier ou récupérer un fichier RTF. Le format RTF est un standard (cf Word) ascii. Ce format est utilisable dans un contrôle ou dans une DataWindow. Dans un dwo vous pouvez combiner du texte et des champs. Ce type de dwo est utile pour des mailings. Le dwo fonctionne comme un modèle. Vous pouvez ajouter du texte dans le dwo, répéter plusieurs fois le même champ,… A titre d'exemple nous prendrons comme source la table catégories mais nous aurions pu prendre la table clients pour effectuer un mailing publicitaire..

1.2.7.2 Application

• L'étape particulière

Propriété Description Tool Boîte à outils Tab Règlette des Tabulations Ruler Règlettes Header/Footer En-tête/Pied de page PopupMenu Affichage d'une fenêtre Popup. Display Only Affichage seulement

Page 13: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Par défaut les cases à cocher Tool, Tab, Ruler et Display Only ne sont pas cochées. Vous pouvez après la création modifier certaines caractéristiques en affichant la fenêtre des propriétés.

Ce menu s'affiche en exécution si vous avez cochez PopupMenu

Page 14: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• L'écran en conception

• Script d'impression // Clicked sur cb_imprimer dw_richtext.print( )

Texte ajouté

Page 15: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.3 LES DWO EXTERNAL Un Dwo basé sur External permet de récupérer des données provenant d'autres sources que d'une table d'une BD ou de créer des dwo qui vont être remplies par du code.

1.3.1.1 Premier exemple : Une dwo pour une fenêtre de tri.

• Création du dwo A titre d'exemple vous allez créer une fenêtre générique pour trier une autre datawindow qui aura cet aspect-ci.

Vous sélectionnez le format d'affichage (Grid, FreeForm,…) et comme source vous choisissez External. A partir de là vous créez vos "colonnes" en précisant nom, type et longueur.

Vous changez les caractéristiques des colonnes. La colonne Tri est une case à cocher. Onglet Edit / Style Type / Check Box puis les valeurs pour On et Off.

La colonne Ordre est une DropDownListBox. Onglet Edit / Style Type / DropDownListBox.

Page 16: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Vous cochez Always Show Arrow et vous remplissez la table de code.

• En exécution

La datawindow est remplie par script – sur le constructor - avec une boucle sur un curseur qui va insérer les noms des colonnes dans le premier champ.

Page 17: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.3.1.2 Deuxième exemple : Une dwo pour récupérer le contenu d'un fichier texte.

• Le fichier

Le fichier – fichier_noms.txt - est un fichier texte avec trois champs (Nom 10, Prénom 10, Cp 5)

• Le Dwo

Le dwo contient trois colonnes de type string.

Page 18: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• La fenêtre d'exécution

• Le script // Constructor de dw_fichier integer li_NumFichier string ls_chemin, ls_ligne pointer l_curseur_actif long ll_taille_enr, ll_row l_curseur_actif = SetPointer(HourGlass!) ls_chemin = "C:\pascal\pb8\dw\fichier_noms.txt" li_NumFichier = FileOpen(ls_chemin, LineMode!, Read!, LockRead!) ll_taille_enr = FileRead(li_NumFichier,ls_ligne) do while ll_taille_enr > 0 ll_row = this.InsertRow(0) this.setItem(ll_row,1,left(ls_ligne,10)) this.setItem(ll_row,2,mid(ls_ligne,11,10)) this.setItem(ll_row,3,right(ls_ligne,5)) ll_taille_enr = FileRead(li_NumFichier,ls_ligne) loop FileClose(li_NumFichier) SetPointer(l_curseur_actif)

Page 19: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.4 COMPLEMENTS SUR LA MISE EN FORME

Général Description

Pointer Description

Le pointeur utilisé

Page 20: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Position Description

Edit Description

Page 21: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

Format Description

Font Description

Page 22: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.5 LES STYLES D'EDITION DES COLONNES

• Fenêtre exemple

1.5.1 Edit C'est le style standard. Il correspond à un champ non formaté : Nom_salarie

1.5.2 CheckBox Case à cocher : CDI

Vous précisez l'apparence et les valeurs pour cochée et vide (Data Value).

Page 23: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.5.3 RadioButton Bouton Radio : Sexe

Vous précisez l'apparence et les valeurs à afficher (Display Value) et à conserver ( Data Value) .

Page 24: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.5.4 DropDownListBox Liste déroulante : Fonction A la différence d'une DDDW les valeurs de la liste sont saisies dans le dwo. Ceci est valable pour des valeurs de référence qui ne changent que très rarement.

Vous précisez les propriétés d'édition et les valeurs de la liste.

1.5.5 DropDownDataWindow Cf le sous-chapitre qui lui est consacré.

1.5.6 EditMask Champ formaté.

Page 25: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.6 LA VALIDATION

• Objectif Effectuer un contrôle de validation au niveau du Dwo pour ne pas avoir à le coder dans un script, ni au niveau de la BD. Ce contrôle de validation est souvent un contrôle supplémentaire par rapport aux contrôles standards déjà pris en charge par le dwo. Ce contrôle est effectué, non pas au moment de la saisie dans le texte, mais au moment de la validation de surface, quand vous tabulez ou quitter le champ par un autre moyen, et avant de solliciter la méthode Update(). Vous pouvez aussi coder dans ItemError lorsque les règles de validation sont complexes (cf le paragraphe traitant de cet événement). Pendant l'exécution la fonction GetValidate() permet de récupérer la règle de validation et la fonction SetValidate() permet de la changer.

• Syntaxe L'expression à saisir, de type booléenne, doit renvoyer Vrai pour que le test de validation soit correct. Vous la saisissez dans la vue "Column Specifications". Dans la colonne Validation Expression vous saisissez l'expression et dans Validation Message le message éventuel que vous voulez voir affiché à la place du message standard.

• Exemple Dans la fenêtre qui suit l'utilisateur ne doit saisir que des clients dont l'id_ville est inférieur à 10 (Répartition géographique). L'expression est la suivante : integer(gettext()) <10 Le message est le suivante : "Code supérieur au code autorisé" Ceci est saisi au niveau du champ id_ville.

• Remarques Les saisies sont toujours de type texte et doivent donc être transformées si nécessaire pour être testées.

Page 26: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• Les écrans de conception et d'exécution.

La règle de validation

La saisie erronée

Le message

Page 27: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.7 LES EXPRESSIONS

• Objectif Modifier dynamiquement les caractéristiques des éléments du dwo en exécution et en fonction de certaines valeurs. Vous pouvez changer la couleur du texte, du font, la taille de la police, etc en fonction de la valeur contenue dans un champ ou de l'état d'un enregsitrement.

• Syntaxe générale Dans le dwo, dans la fenêtre des propriétés vous avec certaines propriétés qui sont accompagnées d'un petit bouton rouge. C'est sur ce bouton qu'il faut cliquer pour saisir une expression. Le bouton devient vert lorsqu'une expression a été saisie. L'expression est une expression booléenne de type : If ( condition , vrai , faux )

Page 28: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• Exemples

Premier exemple : si la ligne est modifiée la couleur de fond du code client passe au rouge. L'expression est la suivante : if(isRowModified(), rgb(255,0,0),rgb(255,255,255))

Elle est saisie au niveau du champ id_client.

Deuxième exemple : si l'année de naissance est supérieure à 1980 alors la date est en gras (700) autrement la police est fine (200). Vous vous positionnez sur bold et vous saisissez cette expression : if(year( date_naissance ) > 1980,700,200)

Page 29: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.8 LA MANIPULATION DES ENREGISTREMENTS Ce menu permet de modifier des paramètres de qui n'affectent pas l'ordre SQL.

1.8.1 Sort Permet de trier. Vous Drag/Dropez la(les) colonne(s).

1.8.2 Filter Permet de filtrer. Vous saisissez une expression.

Page 30: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.8.3 Retrieve Options Permet de préciser la méthode de remplissage de la datawindow. Par défaut ni l'une ni l'autre. Le tri annule ces deux options.

• Rows as Need : les enregistrements sont extraits en fonction des besoins.

• Rows to Disk : les enregistrements sont bufferisés sur le disque.

1.8.4 Suppress Repeating Values Permet de n'afficher qu'une seule fois la même valeur. Doit être associé avec un tri.

Page 31: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.8.5 Update properties Permet de modifier les capacités de mise à jour d'une table et d'une seule au travers du dwo.

• Voici l'écran que l'on a concernant un dwo basé sur une table.

Le dwo permet la mise à jour dans la mesure où il est basé sur tous les champs d'une table. La maj est possible si tous les champs obligatoires sont présents.

• Et voici l'écran pour un dwo basé sur une jointure (Clients X Villes)

Le dwo est basé sur une jointure et donc la case à cocher Allow Updates est vide. Une seule pourra être mise à jour.

Page 32: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• Voici les modifications à effectuer pour pouvoir mettre à jour la table

Villes.

Les règles: En premier lieu vous devez mettre les tabulations à une autre valeur que 0 pour l'utilisateur puisse saisir. Vous cochez Allow Updates. Vous sélectionnez la table susceptible de MAJ. Vous choisissez la clause de MAJ (Sur la clé, sur la clé et toutes les colonnes modifiables, sur la clé et les colonnes modifiées). Dans un cadre multi-user plus la clause sollicite de colonnes plus les MAJ seront impossibles car il suffit qu'une seule des colonnes impliquées dans la clause soit modifié par une autre utilisateur et la MAJ échoue. Vous sélectionnez le type de MAJ ( Suppression puis insertion ou Modification). Vous sélectionnez les colonnes modifiables. Vous sélectionnez la colonne unique (vous pouvez cliquer sur le bouton Primary Key).

• Exemple

La table Villes est modifiable via cette jointure.

Page 33: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.8.6 Stored Procedure Update

• Objectif Cette option permet de préciser la ou les procédures stockées qui seront utilisées pour la mise à jour du dwo. Lorsque vous cliquez sur l'option vous obtenez cette boîte de dialogue.

Vous cliquez ensuite sur le bouton Procedures pour avoir la liste des procédures stockées. Vous sélectionnez la procédure. En cliquant sur le bouton More vous affichez le texte de la procédure.

Après avoir validé sur OK vous sélectionnez dans les listes les arguments de la procédure pour les faire correspondre avec les colonnes du dwo.

Page 34: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.8.7 Create group Permet de créer un groupe à partir d'une ou plusieurs colonnes.

Page 35: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.9 LA METHODE DESCRIBE

• Objectif Cette méthode, mais aussi la syntaxe dite de DOT NOTATION, permet de récupérer, toujours sous forme de chaîne de caractères, une propriété d'un objet d'un DataWindow Object (Dwo) .

• DwSyntax Pour obtenir la syntaxe pour la méthode Describe et la méthode Modify vous allez dans l'aide dans la rubrique Sommaire/ DataWindow Reference / DataWindow Object Properties / Alphbetical Listing of DataWindow Object Properties ou Controls in Dw and their properties.

• Exemple Dans cet exemple nous allons récupérer la liste des noms des colonnes du dwo.

• Ecran

Page 36: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

• Script

// Clicked sur cb_describe string ls_col_count, ls_nom_col, ls_describe int li_count, li_ctr ls_col_count = dw_clients.Describe("datawindow.column.count") li_count = integer(ls_col_count) for li_ctr = 1 to li_count ls_describe = "#" + trim(string(li_ctr)) + ".name" ls_nom_col = dw_clients.describe(ls_describe) lb_cols.additem(ls_nom_col) next

• Remarques

La méthode renvoie une chaîne même s'il s'agit dans le premier usage du nombre de colonnes. Notez que les arguments sont aussi de type chaîne. Lors de la deuxième utilisation nous utilisons #n.name pour parcourir les différentes colonnes du dwo; #n pour le rang de la colonne et name pour récupérer le nom de cette colonne. Comparaison avec la dot.notation ls_col_count = dw_clients.object.datawindow.column.count li_count = integer(ls_col_count) Si ce script remplace l'autre, en aucun la deuxième partie ne pourrait être réalisée avec cette syntaxe. Seule la méthode describe permet donc de récupérer le nom des colonnes.

Page 37: COMPLEMENTS SUR LES DATAWINDOWSpascal.buguet.free.fr/pdfsEtZips/pwrs_06_bis_les_dw.pdfLe but de ce sous-chapitre est de montrer les étapes particulières de certains assistants. 1.2.1

PowerBuilder – Les DataWindows - Suppléments

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

1.10 LA METHODE MODIFY

• Objectif La méthode Modify permet de modifier les caractéristiques des objets d'un DataWindow Object (Dwo). C'est le pendant de la méthode précédente. Certaines propriétés sont en lecture seule; la méthode est donc inapplicable.

• Exemple Dans le même écran nous allons changer la couleur du texte, et la couleur du fond du champ id_client.

• Scripts // Clicked sur cb_modify string ls_vert, ls_bleu, ls_rouge ls_vert = string(rgb(0,255,0)) ls_bleu = string(rgb(0,0,255)) ls_rouge = string(rgb(255,0,0)) dw_clients.Modify("id_client.Color='" + ls_bleu + "'") dw_clients.Modify("id_client.BackGround.color='" + ls_vert + "'")

• Remarques

Ici encore l'argument de la méthode est de type chaîne. A titre de comparaison voici le même script avec la dot.notation dw_clients.object.id_client.Color = rgb(0,0,255) dw_clients.object.id_client.BackGround.color = rgb(0,255,0)