Vous êtes sur la page 1sur 240

WINDEV 21 - WEBDEV 21 - WINDEV Mobile 21

Documentation version 21 - 1 - 0915

Visitez rgulirement le site www.pcsoft.fr, espace actualits pour vrifier si des mises jour
sont proposes.

Adresse e-mail Support Technique Gratuit: supportgratuit@pcsoft.fr

Conseil: Pour recevoir directement des mises jour intermdiaires et des conseils dutilisa-
tion, abonnez-vous la LST (revue trimestrielle + DVD), en franais.

Cette documentation nest pas contractuelle. PC SOFT se rserve le droit de modifier ou de


supprimer tout sujet trait dans ce document.

Tous les noms de produits ou autres marques cits dans cet ouvrage sont des marques dposes par leurs propritaires respectifs.
PC SOFT 2015 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre effec
tue sans lautorisation expresse de PC SOFT.
Sommaire
Partie 1 - Editeur dtats
1. Introduction...............................................................................................................................................13
2. Comment crer un tat.............................................................................................................................23
3. Sources de donnes dun tat..................................................................................................................43
4. Description / Manipulations dun tat.....................................................................................................50
5. Blocs dun tat...........................................................................................................................................58
6. Champs dun tat......................................................................................................................................68
7. Utiliser des tableaux dans un tat............................................................................................................89
8. Etats avec saisie......................................................................................................................................100
9. Etats composites.....................................................................................................................................103
10. Enchaner des tats................................................................................................................................106
11. Etats imbriqus.......................................................................................................................................108
12. Imprimer un tat par programmation....................................................................................................113
13. Impression de duplicata........................................................................................................................ 128
14. Impression dun texte en filigrane..........................................................................................................131
15. Programmation dun tat........................................................................................................................135

Partie 2 - Editeur de requtes


1. Introduction.............................................................................................................................................159
2. Comment crer une requte ?................................................................................................................168
3. Description dune requte......................................................................................................................188
4. Tester et utiliser une requte..................................................................................................................210
5. Requte avance.....................................................................................................................................216

Partie 3 - Logiciel Etats & Requtes


1. Diffuser le logiciel Etats & Requtes......................................................................................................231
2. Utiliser le logiciel Etats & Requtes........................................................................................................237
3. Limitations par rapport lditeur dtats intgr................................................................................ 239

Sommaire 3
4 Sommaire
Partie 1
Editeur dtats
6 Partie 1 : Editeur dtats
Editeur dtats - Sommaire
1. Introduction
1.1 Quest-ce quun tat ?............................................................................................................................... 13
1.2 Lditeur dtats......................................................................................................................................... 16
1.2.1 Prsentation rapide .............................................................................................................16
1.2.2 Diffrences entre lditeur dtats intgr et le logiciel "Etats & Requtes" .....................18
1.3 Interface principale de lditeur dtats.................................................................................................. 20
1.4 Un menu sous forme de ruban................................................................................................................. 21

2. Comment crer un tat


2.1 Etat et projet.............................................................................................................................................. 23
2.2 Cration dun tat...................................................................................................................................... 23
2.2.1 Prsentation .........................................................................................................................23
2.2.2 Les diffrents types dtats disponibles .............................................................................24
2.2.3 Sources de ltat ..................................................................................................................34
2.2.4 Ruptures et tris .....................................................................................................................35
2.2.5 Raliser des calculs dans un tat .......................................................................................36
2.2.6 Gabarit ..................................................................................................................................37
2.2.7 Format dimpression de ltat .............................................................................................37
2.3 Enregistrement de ltat........................................................................................................................... 37
2.4 Test de ltat............................................................................................................................................... 37
2.4.1 Lancer le test ........................................................................................................................38
2.4.2 Arrter le test ........................................................................................................................39
2.4.3 Rpertoire des fichiers de donnes utiliser en test .........................................................39
2.4.4 Gestion des mots de passe (analyse ou fichier de donnes) .............................................39
2.4.5 WinDev Mobile: Ouverture dune fentre en mode test dans le code du projet ...............40
2.5 Impression dun tat................................................................................................................................. 40
2.5.1 Modes dimpression disponibles ........................................................................................40
2.5.2 Aperu avant impression ..................................................................................................... 41

3. Sources de donnes dun tat


3.1 Prsentation.............................................................................................................................................. 43
3.2 Etat sur un fichier de donnes.................................................................................................................. 43
3.2.1 Prsentation .........................................................................................................................43
3.2.2 Caractristiques ...................................................................................................................44
3.3 Etat sur une requte.................................................................................................................................. 44
3.3.1 Prsentation .........................................................................................................................44
3.3.2 Les diffrents types de requtes .........................................................................................45
3.4 Etat sur variable......................................................................................................................................... 46
3.5 Etat sur un champ Table........................................................................................................................... 46
3.5.1 Prsentation .........................................................................................................................46
3.5.2 Caractristiques ...................................................................................................................46
3.6 Etat sur un champ Agenda....................................................................................................................... 48
3.6.1 Prsentation .........................................................................................................................48
3.6.2 Caractristiques ...................................................................................................................48

Partie 1 : Editeur dtats 7


3.7 Etat sur un champ Planning..................................................................................................................... 49
3.7.1 Prsentation .........................................................................................................................49
3.7.2 Caractristiques ...................................................................................................................49

4. Description / Manipulations dun tat


4.1 Prsentation.............................................................................................................................................. 50
4.2 Visualiser et modifier la description de ltat.......................................................................................... 50
4.2.1 Gestion de la source de donnes ........................................................................................50
4.2.2 Options daffichage dans laperu avant impression ......................................................... 51
4.2.3 Gestion des blocs ................................................................................................................. 51
4.2.4 Format dimpression ............................................................................................................ 51
4.2.5 Options ................................................................................................................................. 51
4.2.6 Formulaire et image de fond ................................................................................................52
4.2.7 Langue ..................................................................................................................................52
4.3 Ouvrir, fermer et enregistrer un tat........................................................................................................ 52
4.4 Utiliser un formulaire dans un tat.......................................................................................................... 53
4.4.1 Informations spcifiques au formulaire ..............................................................................55
4.4.2 Intgrer un formulaire dans un tat ....................................................................................55
4.4.3 Image du formulaire .............................................................................................................56
4.4.4 Etat multipages (bas sur un fichier PDF) ........................................................................... 57
4.5 Changer le gabarit associ ltat........................................................................................................... 57
4.6 Changer le modle dtats associ ltat............................................................................................. 57

5. Blocs dun tat


5.1 Prsentation.............................................................................................................................................. 58
5.2 Les diffrents types de blocs.................................................................................................................... 60
5.2.1 Bloc Dbut de document .....................................................................................................60
5.2.2 Bloc Entte de page .............................................................................................................60
5.2.3 Bloc Haut de rupture ............................................................................................................60
5.2.4 Bloc Corps .............................................................................................................................61
5.2.5 Bloc Complment de corps ..................................................................................................61
5.2.6 Bloc Bas de rupture ..............................................................................................................61
5.2.7 Bloc Pied de page .................................................................................................................61
5.2.8 Bloc Fin de document ..........................................................................................................61
5.2.9 Bloc Itration ........................................................................................................................61
5.3 Caractristiques des blocs dun tat........................................................................................................ 62
5.4 Paramtres et options dimpression des blocs...................................................................................... 62
5.5 Manipuler les blocs sous lditeur dtats............................................................................................... 63
5.5.1 Crer un bloc ........................................................................................................................63
5.5.2 Supprimer un bloc ................................................................................................................64
5.5.3 Rordonner les blocs ...........................................................................................................64
5.6 Manipuler les blocs par programmation................................................................................................. 64
5.6.1 Traitements des blocs dun tat ..........................................................................................65
5.6.2 Manipuler un bloc dans un traitement WLangage .............................................................66
5.6.3 Proprits associes aux blocs dun tat ...........................................................................66

8 Partie 1 : Editeur dtats


6. Champs dun tat
6.1 Les diffrents types de champs............................................................................................................... 68
6.1.1 Champ Libell .......................................................................................................................68
6.1.2 Champ Rubrique ..................................................................................................................70
6.1.3 Champ Calcul .....................................................................................................................70
6.1.4 Champ Image ....................................................................................................................... 71
6.1.5 Champ Code-barres ............................................................................................................. 71
6.1.6 Champ RTF ...........................................................................................................................72
6.1.7 Champ Pr-dfini ..................................................................................................................73
6.1.8 Champ Graphe ..................................................................................................................... 74
6.1.9 Champ Forme .......................................................................................................................75
6.1.10 Champ Interrupteur .............................................................................................................75
6.1.11 Champ Etat interne .............................................................................................................. 76
6.1.12 Champ Lien URL ...................................................................................................................77
6.1.13 Champ de saisie ...................................................................................................................77
6.1.14 Champ HTML ........................................................................................................................78
6.2 Caractristiques des champs dun tat................................................................................................... 78
6.2.1 Fentre de description dun champ ....................................................................................79
6.2.2 Dtail de la fentre de description ......................................................................................79
6.3 Multilingue dans les champs dun tat.................................................................................................... 80
6.4 Groupe de champs.................................................................................................................................... 80
6.5 Manipuler les champs sous lditeur....................................................................................................... 80
6.5.1 Crer un champ ....................................................................................................................80
6.5.2 Slectionner un ou plusieurs champs ................................................................................80
6.5.3 Copier un champ ..................................................................................................................82
6.5.4 Copier le style dun champ ...................................................................................................82
6.5.5 Dplacer un champ ..............................................................................................................83
6.5.6 Supprimer un champ ...........................................................................................................83
6.5.7 Utiliser un champ hors tat .................................................................................................83
6.6 Aligner les champs dun tat.................................................................................................................... 84
6.7 Manipuler les champs par programmation............................................................................................ 84
6.7.1 Traitements des champs dun tat ......................................................................................84
6.7.2 Manipuler un champ dans un traitement WLangage .........................................................85
6.7.3 Proprits associes aux champs dun tat .......................................................................85

7. Utiliser des tableaux dans un tat


7.1 Prsentation.............................................................................................................................................. 89
7.2 Crer un tableau dans un tat.................................................................................................................. 91
7.2.1 Cration dun tat de type Tableau .....................................................................................91
7.2.2 Cration dun tat de type Tableau crois ..........................................................................92
7.2.3 Cration dun tat de type Tableau hirarchique ...............................................................93
7.2.4 Insertion dun tableau dans un tat ....................................................................................93
7.3 Description du tableau.............................................................................................................................. 94
7.3.1 Caractristiques du tableau ................................................................................................94
7.3.2 Caractristiques des colonnes ............................................................................................95
7.4 Manipulation des cellules du tableau...................................................................................................... 95
7.4.1 Slectionner un lment du tableau ...................................................................................96
7.4.2 Afficher la description du tableau .......................................................................................96
7.4.3 Ajouter une cellule dans un tableau ...................................................................................96

Partie 1 : Editeur dtats 9


7.4.4 Ajouter une colonne dans un tableau ................................................................................. 97
7.4.5 Redimensionner les cellules du tableau ............................................................................. 97
7.4.6 Dplacer une colonne du tableau .......................................................................................98
7.4.7 Enlever ou supprimer une colonne du tableau ...................................................................98

8. Etats avec saisie


8.1 Prsentation............................................................................................................................................100
8.2 Comment le faire ?..................................................................................................................................100
8.2.1 Cration de ltat en saisie ................................................................................................100
8.2.2 Caractristiques des champs de saisie ............................................................................100
8.2.3 Traitements associs un champ de saisie dans un tat ...............................................101
8.3 Saisie dans laperu avant impression (WinDev uniquement)............................................................ 101
8.4 Saisie dans un fichier PDF......................................................................................................................102
8.5 Saisie dans un tat bas sur un formulaire PDF...................................................................................102

9. Etats composites
9.1 Prsentation............................................................................................................................................103
9.2 Crer un tat composite.........................................................................................................................104
9.3 Caractristiques des tats composites et de leurs sous-tats............................................................105
9.3.1 Caractristiques des tats composites ............................................................................105
9.3.2 Caractristiques des sous-tats ........................................................................................105

10. Enchaner des tats


10.1 Prsentation............................................................................................................................................106
10.2 Comment le faire ?.................................................................................................................................. 107

11. Etats imbriqus


11.1 Prsentation............................................................................................................................................108
11.2 Crer un tat imbriqu............................................................................................................................109
11.2.1 Principe...............................................................................................................................109
11.2.2 Exemple..............................................................................................................................109
11.3 Particularits des tats secondaires.....................................................................................................110
11.3.1 Blocs de ltat secondaire .................................................................................................110
11.3.2 Orientation des tats secondaires ....................................................................................110
11.3.3 Saut de page de ltat secondaire .....................................................................................110
11.3.4 Etat secondaire bas sur une requte paramtre .........................................................110
11.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique ....................110
11.3.6 Etat secondaire imprim depuis un bloc de bas de page ................................................110
11.3.7 Affichage du nombre de pages total de ltat secondaire ................................................111
11.4 Imprimer un tat imbriqu.....................................................................................................................111
11.5 Diffrences entre les tats imbriqus et les tats internes.................................................................112

12. Imprimer un tat par programmation


12.1 Prsentation............................................................................................................................................113
12.1.1 Principe dimpression en WinDev ......................................................................................113
12.1.2 Principe dimpression en WebDev .....................................................................................113
12.1.3 Principe dimpression en WinDev Mobile .........................................................................114

10 Partie 1 : Editeur dtats


12.2 Etat sur un fichier de donnes................................................................................................................116
12.2.1 Imprimer un tat sur un fichier de donnes ......................................................................116
12.2.2 Imprimer un tat born bas sur un fichier de donnes ..................................................117
12.2.3 Imprimer un tat paramtr bas sur un fichier de donnes ..........................................118
12.2.4 Imprimer un tat paramtr et born bas sur un fichier de donnes .......................... 120
12.3 Etat sur une requte................................................................................................................................121
12.3.1 Imprimer un tat sur une requte sans paramtre ..........................................................121
12.3.2 Imprimer un tat sur une requte paramtre ................................................................ 122
12.4 Etat sur un champ Table.........................................................................................................................123
12.5 Etat sur une variable................................................................................................................................125
12.5.1 Imprimer un tat sur une variable .................................................................................... 125
12.5.2 Imprimer un tat paramtr sur une variable ................................................................. 126
12.6 Fonctions dimpression...........................................................................................................................127

13. Impression de duplicata


13.1 Prsentation............................................................................................................................................128
13.2 Crer un duplicata depuis laperu avant impression (WinDev uniquement)....................................128
13.2.1 Impression disponible par dfaut .................................................................................... 128
13.2.2 Personnalisation du duplicata cr ................................................................................. 129
13.3 Crer un duplicata par programmation.................................................................................................129
13.4 Signer un duplicata.................................................................................................................................130
13.5 Utiliser un duplicata................................................................................................................................130

14. Impression dun texte en filigrane


14.1 Prsentation............................................................................................................................................131
14.2 Crer un filigrane depuis laperu avant impression............................................................................131
14.2.1 Impression disponible par dfaut .....................................................................................131
14.2.2 Personnalisation de la fentre daperu avant impression .............................................132
14.3 Crer un filigrane par programmation...................................................................................................132
14.3.1 Mthode 1: Paramtrage complet: utilisation dune variable de type Filigrane ...........132
14.3.2 Mthode 2: Paramtrage rapide: utilisation directe .......................................................134

15. Programmation dun tat


15.1 Prsentation............................................................................................................................................135
15.2 Enchanement des traitements associs un tat..............................................................................135
15.3 Traitements associs ltat..................................................................................................................136
15.3.1 Traitement "Ouverture" ......................................................................................................136
15.3.2 Traitement "Lecture des donnes" ....................................................................................137
15.3.3 Traitement "Filtre" ...............................................................................................................137
15.3.4 Traitement "Fermeture" ......................................................................................................138
15.4 Traitement de rupture.............................................................................................................................138
15.5 Procdure de tri.......................................................................................................................................138
15.6 Etat paramtr........................................................................................................................................139
15.6.1 Crer un tat paramtr ....................................................................................................140
15.6.2 Imprimer un tat paramtr ..............................................................................................141
15.6.3 Tester un tat paramtr ...................................................................................................141

Partie 1 : Editeur dtats 11


15.7 Manipuler un tat dans un traitement WLangage...............................................................................141
15.8 Mots-cls associs aux tats..................................................................................................................142
15.9 Proprits associes aux tats..............................................................................................................142
15.10 Fonctions WLangage...............................................................................................................................144
15.10.1 Fonctions WLangage dconseilles dans les traitements ...............................................144
15.10.2 Fonctions dimpression du WLangage utilisables dans un tat ......................................145

12 Partie 1 : Editeur dtats


1. Introduction

1.1 Quest-ce quun tat ?


Un tat permet dobtenir une vue personnalise dinformations: donnes saisies dans la base de donnes,
donnes prsentes dans un fichier texte, donnes provenant dun champ Table, ...
Selon le produit utilis, les informations de ltat peuvent tre affiches dans diffrents formats:
En WinDev:
Dans une application Windows, un tat peut tre affich lcran, enregistr dans un fichier HTML,
directement dit sur une imprimante, ...
Dans une application Linux, un tat peut tre enregistr dans un fichier PDF.
En WebDev, un tat peut tre enregistr dans un fichier HTML ou PDF, envoy par email, affich dans le
navigateur de linternaute, ou bien encore directement dit sur une imprimante connecte au serveur, ...
En WinDev Mobile:
Dans une application Windows Mobile, un tat peut tre imprim directement sur une imprimante (au
format PCL) ou enregistr dans un fichier PCL.
Dans une application iOS, un tat peut tre enregistr dans un fichier PDF.

Un tat est constitu de:


blocs dlimitant les diffrentes parties de ltat (pour plus de dtails, consultez "Blocs dun tat", page
58.
champs dans lesquels les diffrentes donnes de ltat sont affiches (pour plus de dtails, consultez
"Champs dun tat", page 68).

Un tat offre la possibilit de rsumer et de synthtiser les donnes. Il est possible de:
regrouper les donnes,
trier les donnes selon nimporte quel critre,
raliser des calculs, des moyennes ou des statistiques, ou mme de dessiner des graphes,
afficher les donnes sur plusieurs colonnes.

Il suffit dimaginer un tat, lditeur dtats le ralisera.

Partie 1 : Editeur dtats 13


Quelques exemples dtats:

Bon de commande (aperu avant impression sous WinDev)

Fiche dinformation dun formulaire

14 Partie 1 : Editeur dtats


Les schmas ci-dessous prsentent une dfinition simplifie dun tat:
les donnes imprimer sont issues dune source de donnes (fichier de donnes, vue HFSQL, requte,
zone mmoire, variable WLangage ou fichier texte, ...).
ltat regroupe, trie et met en forme les donnes.
lexcution de ltat peut tre dirige vers:
en WinDev: lcran, un fichier PDF, HTML, RTF, une imprimante ou un fax, ...
en WebDev: un fichier HTML, RTF, PDF, une imprimante ou un fax, ... Si la destination de ltat est un
fichier, ce fichier peut tre renvoy vers le navigateur.
en WinDev Mobile: un fichier PCL ou une imprimante PCL (sous Windows Mobile) ou encore un fichier
PDF (pour les applications iOS).
En WinDev:

Sources de Modes
ltat dimpression

Champ Table Fichiers HTML,


XML, ...

Champ Zone
Fichiers XLS, PDF,
mmoire
...

Requte
Etat Fichier Texte
(Editeur dtats)

Fichier Texte
Fichier PCL

Donnes
Imprimante

Variable WLangage
Aperu avant
impression

En WebDev:

Poste de Poste Serveur


dveloppement Modes dimpression
Sources de ltat
Imprimante
Champ Table
du serveur

Zone mmoire Fichiers XSL, PDF, ...

Etat
(Editeur
Requte dtats)
Fichiers Texte

Fichier texte Fichiers PCL

Donnes Fichiers HTML, XML, ...

Variable WLangage

Navigateur

Partie 1 : Editeur dtats 15


En Windows Mobile:

Source de Mode
ltat dimpression

Champ Table Fichier PCL


(Windows Mobile)

Imprimante
Requte Etat (format PCL,
(Editeur dtats) Windows Mobile)

Fichier Texte Fichier PDF


(iPhone, iPad, ...)

Donnes

Variable WLangage

1.2 Lditeur dtats

1.2.1 Prsentation rapide


WinDev, WebDev et WinDev Mobile permettent de crer des tats grce lditeur dtats. Les tats peuvent
tre crs partir de donnes issues:
dun fichier de donnes prsent dans une analyse ou dun fichier de donnes quelconque,
du rsultat dune requte,
dune vue sur un fichier de donnes HFSQL,
dune zone mmoire,
dun champ Table prsent dans une fentre ou une page,
dun champ Table hirarchique prsent dans une fentre ou une page,
dun champ Agenda ou Planning prsent dans une fentre,
dun fichier texte,
dune variable (variable globale au projet ou variable utilise dans ltat en cours),
...
Lditeur dtats permet galement de crer des tats vierges, totalement personnalisables.
La cration dun tat est trs simple. Un assistant vous guide pas pas lors de la cration de ltat. A la fin
de la description de ltat, ltat correspondant vos choix est gnr. Ltat peut tre directement excut:
directement partir de lditeur.
partir dun site ou dune application.
Vous pouvez modifier la prsentation de ltat, ajouter, modifier ou supprimer des champs. Vous pouvez
galement effectuer des traitements spcifiques en WLangage (le langage de programmation de WinDev,
WebDev et WinDev Mobile).

16 Partie 1 : Editeur dtats


Lditeur dtats est un diteur simple utiliser. Il offre de nombreuses possibilits:
Choix de la destination de lexcution de ltat:
Il est possible de raliser une impression dans un fichier PDF, HTML, XML, XLS, RTF ou PCL.
En WebDev, ce fichier est enregistr dans un rpertoire accessible en criture sur le poste serveur. Ce
fichier peut ensuite tre affich sur le navigateur.
En WinDev, ltat peut tre visualis avant impression et imprim depuis la visualisation.
En WinDev Mobile, la destination de ltat dpend de la plateforme:
- dans les applications Windows Mobile, ltat peut uniquement tre enregistr au format PCL et imprim
sur une imprimante PCL.
- dans les applications iOS, ltat peut uniquement tre enregistr au format PDF.
Choix des rubriques imprimer:
Il nest pas ncessaire dimprimer toutes les rubriques de vos fichiers de donnes, vous choisissez les
rubriques imprimer.
Possibilit dimprimer les donnes de plusieurs fichiers de donnes:
Ltat peut contenir des rubriques provenant de plusieurs fichiers de donnes. Pour simplifier la slection
des donnes, il est possible de slectionner les donnes imprimer laide des requtes.
Possibilit dimprimer les donnes provenant de variables:
Ltat peut contenir des rubriques lies des variables prsentes dans le projet (variables globales) ou
dans ltat (variables locales). Ces variables peuvent tre des variables de type simple, des membres de
classes, des membres de structures ou des membres de variables de type avanc.
Slection des enregistrements:
Vous pouvez dfinir un ou plusieurs critres pour ne slectionner que les enregistrements que vous
voulez imprimer. Toute la puissance des requtes vous permet de raliser des tats correspondant des
slections complexes.
Tri des enregistrements:
Vous slectionnez les arguments de tri selon lesquels les enregistrements sont affichs. Vous pouvez
mme dfinir une rupture sur les arguments de tri.
Impression dtiquettes:
Vous pouvez crer des tiquettes avec la prsentation de votre choix.
Calculs personnaliss:
Dans ltat, vous pouvez ajouter des calculs personnaliss (TVA, ...).
Totaux et compteurs:
Vous pouvez ajouter des totaux et des compteurs sur les champs (calculs ou lis des rubriques). Ces
totaux et compteurs peuvent tre gnraux, intermdiaires, par rupture, ...
Images, cadres, fonds de couleur:
Vous pouvez enrichir votre tat en y ajoutant des graphes, des images, des cadres et des fonds de cou-
leur.
Choix des polices:
Vous pouvez avoir dans votre tat des champs avec des polices diffrentes, de couleurs multiples, ...
Paramtrage des hauts et bas de page:
Vous pouvez ajouter la date, le numro de page, le nombre total de pages et autres informations dans
les hauts et bas de page. Vous pouvez dfinir des hauts et des bas de page diffrents dans un tat (par
exemple bas de page pair et bas de page impair).
Impression dtats regroups: Plusieurs techniques permettent dimprimer plusieurs tats dans une
mme sortie (par exemple dans un mme fichier PDF):
limbrication dtats,
les tats internes,
les tats composites,
lenchanement des tats.
Choix du nombre de colonnes:
Vous pouvez imprimer les donnes de votre tat sur plusieurs colonnes.

Partie 1 : Editeur dtats 17


1.2.2 Diffrences entre lditeur dtats intgr et le logiciel "Etats & Requtes"
Deux versions de lditeur dtats sont disponibles:
lditeur dtats directement intgr.
Cette version est fournie en standard avec WinDev, WebDev et WinDev Mobile. Cette version ne peut tre
utilise que lors du dveloppement dune application WinDev, WinDev Mobile ou dun site WebDev.
lditeur dtats Utilisateur (appel galement le logiciel Etats & Requtes). Cet diteur est livr unique-
ment avec WinDev.
Cette version est indpendante de WinDev et peut tre utilise par un utilisateur final.
Certaines fonctionnalits de lditeur dtats ne sont pas disponibles dans cette version.
Licne permet dindiquer les diffrences entre lditeur dtats Utilisateur et lditeur dtats int-
gr.
Editeur dtats intgr
Avec lditeur dtats intgr, il est possible de crer des tats depuis lditeur et dexcuter ces tats depuis
lditeur ou depuis une application ralise avec WinDev, WinDev Mobile ou WebDev.
La cl lectronique du produit utilis est ncessaire lutilisation de lditeur dtats. Elle doit tre prsente
sur le port parallle de votre ordinateur pendant lutilisation de lditeur.
La cl lectronique nest en aucun cas ncessaire lutilisateur final pour excuter un tat depuis une appli-
cation WinDev, WinDev Mobile ou WebDev.
Plusieurs exemples sont livrs avec lditeur dtats intgr. Dans ces exemples, vous retrouverez les princi-
paux tats pouvant tre utiliss dans des applications (facture, listes, tiquettes, ...).
Pour connatre les exemples prsentant des tats:
Affichez le guide: sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Aide" et slectionnez
"Consulter le guide".
Saisissez le mot-cl "Etat".
La liste des exemples utilisant des tats saffiche.
Consultez ces exemples, ils vous apprendront beaucoup et vous pourrez vous en inspirer pour crer vos
propres tats !
Editeur dtats Utilisateur (logiciel Etats & Requtes - WinDev uniquement)
Avec le logiciel Etats & Requtes, il est possible de crer et dexcuter des tats directement depuis lditeur
(sans avoir besoin de WinDev).
Les tats ne pourront pas contenir de code de modification des fichiers de donnes (code comprenant des
fonctions dcriture dans les fichiers).
Les tats crs pourront tre excuts depuis lditeur dtats ou depuis une application WinDev (si cette
application gre les tats crs avec le logiciel Etats & Requtes).
La cl lectronique nest pas ncessaire lutilisation du logiciel Etats & Requtes.
Pour crer des nouveaux tats ou pour modifier des tats existants avec le logiciel Etats & Requtes, cer-
taines manipulations sont ncessaires. Pour plus de dtails, consultez "Diffuser le logiciel Etats & Requtes",
page 231.
Documentation
Le logiciel Etats & Requtes et lditeur dtats intgr sont livrs avec la mme aide en ligne. Seul lditeur
dtats intgr est livr avec une documentation papier.
Documentation papier
La documentation papier a t conue pour vous aider dcouvrir et utiliser lditeur dtats. La
seconde partie de ce guide est consacre lditeur de requtes.
Le "Guide de lditeur dtats" est complmentaire au "Guide dauto-formation" et aux "Concepts".

18 Partie 1 : Editeur dtats


Aide en ligne
Laide en ligne vous guide dans vos manipulations sous lditeur. Laide en ligne est propose:
soit sous forme dune aide locale. Les fichiers ncessaires sont installs sur le poste de dveloppe-
ment.
soit sous forme dune aide Internet. Cette aide est disponible depuis nimporte quel poste disposant
dun accs Internet. Cette aide est mise jour rgulirement.
Pour accder laide en ligne, utilisez une des mthodes suivantes:
sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Aide" et slectionnez "Index de laide".
appuyez sur la touche [F1].
Pour modifier le type daide en ligne utilis:
1.Sous le volet "Outils", dans le groupe "Environnement", droulez "Options" et slectionnez "Options gn-
rales de XXX".
2.Dans longlet "Aide", slectionnez le mode daccs la base daide: "Utiliser la base daide par Internet"
ou "Utiliser la base daide locale" ainsi que la langue prfre.
3.Validez.
Installation
Installation de lditeur dtats intgr: Lditeur dtats intgr est automatiquement install en mme
temps que WinDev, WebDev ou WinDev Mobile.
Installation du logiciel Etats & Requtes: Linstallation du logiciel Etats & Requtes est simple, il suffit
de suivre les instructions lors de linstallation de lapplication WinDev.
Configuration minimale pour le logiciel Etats & Requtes
Pour pouvoir utiliser le logiciel Etats & Requtes, vous devez avoir une machine avec les caractristiques
suivantes:
512 Mo de mmoire centrale (1 Go ou plus conseills).
800 Mo despace disque.
sous Windows 2000, 2003, XP, Vista, 7, 8 ou suprieur.
Enregistrez-vous
La carte denregistrement jointe votre produit est trs importante. Elle vous permet de bnficier des diff-
rents services gratuits que PC SOFT offre sa clientle: assistance du Support Technique Gratuit, informa-
tions sur les nouveauts, suivi des volutions du produit, ...
Retournez votre carte denregistrement dment remplie ds aujourdhui.

Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l "Assis-
Important

tance Directe" pour disposer dun "assistanat tlphonique". Pour toute information
complmentaire sur l "Assistance Directe", veuillez contacter le service commercial
de PC SOFT.

Partie 1 : Editeur dtats 19


1.3 Interface principale de lditeur dtats
Pour lancer lditeur dtats, il suffit de:
crer un nouvel tat:
Sous le volet "Accueil", cliquez sur "Nouveau".
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
ouvrir un tat existant (via le volet "Explorateur de projet" par exemple).

Les lments importants de lditeur dtats sont les suivants:


Ruban
Permet un accs rapide aux principales fonctionnalits de lditeur dtats. Ce ruban est com-
pos de volets, de groupes et doptions. Pour plus de dtails, consultez "Un menu sous forme
de ruban", page 21.
Rgles dalignement
Permettent daligner les champs dans ltat. Pour afficher les rgles, utilisez le raccourci
[Ctrl]+[R].
Etat en cours ddition
Des ascenseurs permettent de faire dfiler les tats volumineux. Il est galement possible
de zoomer sur ltat pour visualiser plus prcisment les lments de ltat ([Ctrl]+roulette
de souris).

20 Partie 1 : Editeur dtats


Volets verticaux
Affiche:
les lments (fichiers, variables, tats, champs, ...) disponibles dans le projet en cours
(volet "Explorateur de projet").
la description des lments de ltat via le modifieur.
Important

Dans le logiciel Etats & Requtes, seuls les volets "Explorateur de pro-
jet" et "Modifieur" sont disponibles.

Fentre de description
Permet de visualiser et/ou de modifier les caractristiques:
du ou des champs slectionns.
de ltat en cours.
Fentre de code
Affiche les diffrents traitements associs ltat, ses blocs et ses champs.
Documents ouverts
Affiche un bouton pour chaque document ouvert sous lditeur. Pour afficher llment voulu
au premier plan, il suffit de cliquer sur le "bouton" correspondant.
Volets horizontaux
Affiche:
les erreurs de compilation (erreurs prsentes dans le code WLangage) ou erreurs dIHM
(volet "Erreurs de compilation"),
loutil de recherche (volet "Rechercher-Remplacer"),
le dbogueur lors du test dun lment (volet "Dbogueur"),
...

1.4 Un menu sous forme de ruban


WinDev, WebDev et WinDev Mobile prsentent les diffrentes options des diteurs laide dun ruban. Ce
ruban est compos de volets dans lesquels sont regroupes les diffrentes options des diteurs.
Le ruban est compos de diffrentes zones:

1.La zone des boutons daccs rapide.


2.La zone des volets.
3.La zone des groupes doptions.

Partie 1 : Editeur dtats 21


Les boutons daccs rapide
Les boutons daccs rapide permettent deffectuer les oprations les plus courantes, bien souvent com-
munes tous les diteurs: enregistrer, ouvrir, crer, ...
Les 3 boutons en haut de cette zone sont galement spcifiques: le logo de la version
permet dafficher:
la fentre "A propos...".
les perso-menus (menus personnaliss).
les menus droulants des versions prcdentes (version 17 et antrieures).
les 2 pictogrammes suivants permettent de retrouver les menus et les barres doutils des versions prc-
dentes (version 17 et antrieures).
La zone des volets
Les diffrents volets du ruban permettent daccder aux options des diffrents diteurs.

Plusieurs types de volets sont disponibles: le volet en cours: Longlet du volet apparat en gris clair et un
trait color est affich en haut de longlet.
les volets contextuels, spcifiques llment en cours: Ces volets concernent lditeur en cours ou ll-
ment slectionn. Le nom du volet est affich:
en jaune pour WinDev,
en orange pour WinDev Mobile,
en bleu pour WebDev.
les autres volets disponibles: Le nom du volet apparat en blanc.
La zone des options
Les options sont regroupes sous les volets dans des groupes doptions.

En fonction du volet slectionn, les options affiches dans le ruban diffrent.


Plusieurs types doptions sont disponibles:
Options cocher.
Boutons cliquer.
Boutons flche permettant de drouler des options. Deux types de boutons flche sont disponibles:
les boutons flche permettant uniquement de drouler un menu.
les boutons flche permettant soit de drouler un menu (clic sur la flche), soit deffectuer une
action par dfaut (clic sur licne du bouton).
Les options sont regroupes par groupe. Chaque groupe doptions a un nom et peut avoir un bouton de re-
groupement: . Ce bouton permet deffectuer une action spcifique selon le groupe en cours: affichage
de la description de llment en cours, affichage de laide, ...

22 Partie 1 : Editeur dtats


2. Comment crer un tat

2.1 Etat et projet


Gnralement, un tat est reli un projet. En effet, pour pouvoir extraire les donnes des fichiers de don-
nes, lditeur dtats doit connatre la description des fichiers de donnes qui est contenue dans lanalyse,
lanalyse tant associe un projet.

Projet 1 Projet 2

Requtes Requtes

Analyse
Fentres partage Fentres
ou pages ou pages

Etats Etats

Ici, une analyse WinDev est partage entre deux projets (WinDev, WinDev Mobile ou WebDev).

Pour charger un projet, sous le volet "Accueil", dans le groupe "Gnral", droulez "Ouvrir" et slectionnez
"Ouvrir un projet".

2.2 Cration dun tat

2.2.1 Prsentation
Pour crer un tat:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
2.Spcifiez:
le type dtat crer (fiche, tableau, ...). Pour plus de dtails, consultez "Les diffrents types dtats
disponibles", page 24.
la source de donnes de ltat (fichier de donnes, requte, ...). Pour plus de dtails, consultez
"Sources de donnes dun tat", page 43.
les lments de ltat (champs, conditions de tri, ruptures, ...).
3.Validez la cration de ltat. Ltat est alors gnr et enregistr selon les diffrentes options choisies.

Partie 1 : Editeur dtats 23


Ces diffrentes tapes sont ralises grce lassistant de cration dun tat. A la fin de lassistant, ltat
correspondant aux options slectionnes est automatiquement cr. Ltat cr apparat en dition sous
lditeur dtats. Les diffrents blocs et champs de votre tat ont t crs. Vous pouvez les modifier votre
convenance. La majorit des options choisies lors de la cration de ltat pourra tre modifie par la suite.
Ltat pourra ensuite tre excut:
soit depuis lditeur dtats,
soit depuis une application WinDev,
soit depuis une application WinDev Mobile (pour Windows Mobile ou iOS),
soit depuis un site WebDev.

2.2.2 Les diffrents types dtats disponibles


Lditeur dtats permet de crer plusieurs types dtats. Tous ces types dtats sont disponibles sous ldi-
teur dtats (livr avec WinDev, WebDev et WinDev Mobile) et dans le logiciel Etats & Requtes.
Les diffrents types dtats disponibles sont les suivants:
Etat Vierge
Etat Fiche
Etat Tableau
Etat Tableau crois
Etat Tableau hirarchique
Etat Diagramme de Gantt
Etat Agenda (non disponible sous WinDev Mobile)
Etat Planning (non disponible sous WinDev Mobile)
Etat Mailing personnalis (non disponible sous WinDev Mobile)
Etat Etiquette
Etat sur Formulaire
Etat multicolonne
Etat composite

Voici les caractristiques dtailles de chaque type dtat ainsi que des exemples dutilisation:
tat Vierge:
Lecture de la source de donnes de ltat
Chaque page affiche:
soit un texte spcifique.
soit un formulaire standard (rempli par la suite la main).
soit les donnes dun ou de plusieurs enregistrements.
Exemples dutilisation:
Formulaire de saisie des appels reu.
Formulaire de saisie des absences.
Formulaire de saisie des produits rceptionns.

24 Partie 1 : Editeur dtats


Aperu dun tat vierge

tat Fiche:
Lecture de la source de donnes de ltat
Les donnes lues dans la source de donnes sont affiches sous forme de fiche: chaque page affiche
les donnes dun ou de plusieurs enregistrements.
Exemples dutilisation:
Liste dtaille
Regroupement de donnes selon un critre

Partie 1 : Editeur dtats 25


Aperu dun tat fiche

tat Tableau:
Lecture de la source de donnes de ltat :
Chaque ligne du tableau correspond un enregistrement lu dans la source de donnes de ltat
(fichier de donnes, requte, ...).
Exemples dutilisation:
Tableau de synthse
Facture
Liste dtaille
Regroupement de donnes selon un critre

26 Partie 1 : Editeur dtats


Aperu dun tat tableau

tat Tableau crois:


Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches dans un tableau double entre.
Exemple dutilisation: Tableau reprsentant la rpartition du chiffre daffaires par produit et par
anne.
Aperu dun tat Tableau crois :

Partie 1 : Editeur dtats 27


tat Tableau hirarchique:
Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches dans un tableau hirarchique.
Exemple dutilisation: Tableau reprsentant la rpartition du chiffre daffaires par produit et par
anne.
Aperu dun tat Tableau hirarchique :

tat Planning:
Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches sous forme dun planning.
Exemples dutilisation: Impression dun planning la journe, la semaine, ...
Aperu dun tat Planning :

28 Partie 1 : Editeur dtats


tat Agenda:
Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches sous forme dun agenda.
Exemples dutilisation: Impression dun agenda la journe, la semaine, ...
Aperu dun tat Agenda :

tat Mailing :
Lecture de la source de donnes de ltat :
Chaque enregistrement lu dans la source de donnes correspond une page.
Exemples dutilisation:
Publipostage
Lettre publicitaire

Partie 1 : Editeur dtats 29


Aperu dun tat mailing :

tat tiquette:
Lecture de la source de donnes de ltat :
Chaque enregistrement lu dans la source de donnes correspond une tiquette.
Si vous choisissez ce type dtat, il est possible de configurer le nombre dexemplaires dune mme
tiquette.
Exemples dutilisation:
tiquettes de prix
tiquettes dadresse

30 Partie 1 : Editeur dtats


Aperu dun tat tiquette :

tat sur Formulaire:


Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches sous forme de fiche: chaque page affiche
les donnes dun ou de plusieurs enregistrements.
Exemples dutilisation:
Formulaire des recommands de la poste.
Chque.

Partie 1 : Editeur dtats 31


Aperu dun tat sur formulaire :

tat multicolonne:
Lecture de la source de donnes de ltat :
Si ltat multicolonne est de type Tableau, chaque ligne du tableau correspond un enregistrement lu
dans la source de donnes de ltat (fichier de donnes, requte, ...).
Si ltat multicolonne est de type Fiche, les donnes lues dans la source de donnes sont affiches
sous forme de fiche: chaque page affiche les donnes dun ou de plusieurs enregistrements.
Exemple dutilisation: Catalogue produit.

32 Partie 1 : Editeur dtats


Aperu dun tat multicolonne :

tat composite:
Lecture de la source de donnes de ltat :
Ltat composite est compos de plusieurs sous-tats. Chaque sous-tat peut tre dun type spci-
fique. La lecture de la source de donnes des sous-tats dpend du type des sous-tats.
Exemples dutilisation: Impression commande et conditions gnrales de ventes,
Aperu dun tat composite :

Partie 1 : Editeur dtats 33


2.2.3 Sources de ltat
La source de ltat dtermine la provenance des donnes imprimes dans ltat. Plusieurs sources de don-
nes sont disponibles. Ces sources de donnes peuvent tre slectionnes dans lassistant de cration de
ltat ou directement dans la fentre de description de ltat.
Les sources de donnes disponibles sont les suivantes:
Fichier de donnes: Les donnes imprimer proviennent dun fichier de donnes dcrit dans lanalyse
du projet. Ce fichier de donnes peut tre de nimporte quel format (HFSQL Classic, Oracle, ...).
Les fichiers de donnes et les rubriques de fichiers pouvant tre utiliss dans les tats
Important

crs avec le logiciel Etats & Requtes sont dfinis par le dveloppeur sous lditeur
danalyses. Pour plus de dtails sur la prparation ncessaire lutilisation dune appli-
cation WinDev avec le logiciel Etats & Requtes, consultez "Diffuser le logiciel Etats &
Requtes", page 231.

Requte: Les donnes imprimer proviennent dune requte. Cette requte correspond:
soit une requte cre et enregistre sous lditeur de requtes.
soit une requte cre lors de la cration de ltat.
Champ Table ou Table hirarchique, Agenda ou Planning prsent dans une fentre ou dans une page:
Les donnes imprimer proviennent dun champ spcifique prsent dans une des fentres de lapplica-
tion ou dans une des pages du site. Les enregistrements sont slectionns par le champ, ltat ne fait
que les imprimer.

Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table, un
Important

champ Table hirarchique, un champ Agenda ou un champ Planning. Cependant, il est


possible de personnaliser des tats sur un champ Table, Table hirarchique, Agenda ou
Planning crs sous lditeur dtats intgr (couleur, polices, taille, colonne relie, ...).

Variable existante: Les donnes imprimer proviennent dune variable WLangage du projet ou de ltat.
Cette variable peut tre une variable de type tableau simple, un membre de classes, un membre de struc-
ture ou un membre de variables de type avanc.
Important

Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur va-
riable.

Requte SQL via une connexion (ODBC, Accs Natifs, ...) (non disponible en WinDev Mobile): Les don-
nes imprimer proviennent dune base de donnes accessible via un driver ODBC spcifique, via un
Accs Natif, ... La requte SQL est dfinie lors de la cration de ltat.
Remarque: Ce type de source nest pas disponible dans lassistant de cration dun tat.
Pas de source de donnes: Ltat ne sera li aucune source de donnes.

Autres sources de donnes disponibles


Fichier de type texte: Les donnes imprimer sont lues dans un fichier Texte.
Zone mmoire (non disponible en WinDev Mobile): Les donnes imprimer correspondent aux enregis-
trements stocks dans une zone mmoire.
Important

Le logiciel Etats & Requtes ne permet pas de crer des tats sur une zone mmoire.
Cependant, il est possible de personnaliser les tats sur zone mmoire crs avec ldi-
teur dtats intgr (couleur, polices, taille, ...).

34 Partie 1 : Editeur dtats


Vue sur un fichier de donnes HFSQL Classic: Les donnes imprimer proviennent dune vue HFSQL.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une vue HFSQL.
Cependant, il est possible de personnaliser des tats sur une vue HFSQL crs sous
lditeur dtats intgr (couleur, polices, taille, ...).

Programmation de la lecture de la source de donnes: Pour programmer et slectionner vous-mme


les enregistrements afficher dans ltat, choisissez un tat sur une source programme. Pour plus de
dtails, consultez laide en ligne.
Important

Le logiciel Etats & Requtes ne permet pas de crer des tats sur une source de don-
nes programme.

Ces diffrentes sources de donnes sont dtailles dans Sources de donnes.


Remarque: Si vous slectionnez une des sources de donnes prcdemment cites, lditeur dtats
se charge entirement de la programmation du parcours des enregistrements afficher dans ltat.

Pour programmer et slectionner vous-mme les enregistrements afficher dans ltat, choisissez un tat
avec programmation de la lecture de la source de donnes.

2.2.4 Ruptures et tris


Les ruptures et les tris permettent de dfinir lordre de tri des donnes imprimes dans ltat et les options
de regroupement des donnes.
Si ltat est bas sur un fichier de donnes, les rubriques de parcours du fichier de donnes sont automa-
tiquement proposes en rubrique de tri.
Si ltat est bas sur une requte, les tris raliss dans la requte sont automatiquement proposs pour
les ruptures.
Si ltat est bas sur une variable, seules les ruptures peuvent tre dfinies: les tris doivent tre raliss
par programmation.
Le tri
Pour rendre le rsultat dune requte plus lisible, il est possible de trier les enregistrements selon une ou
plusieurs rubriques. Trier les enregistrements revient classer les enregistrements dans un ordre croissant
ou dcroissant.
Par exemple, il est possible de trier les clients par leur nom, de A Z.
Si votre tat est bas sur une requte, lordre du tri est dfini lors de la cration de la requte. Il est cepen-
dant possible de:
ajouter ou supprimer une rubrique de tri dans un tat existant.
modifier lordre de tri effectu sur une rubrique dans un tat existant.
Pour affiner le tri, il est galement possible dutiliser:
des fonctions du WLangage (fonctions Gauche, Droite, ...).
une procdure du WLangage (procdure serveur en WebDev). Cette procdure sera automatiquement
appele pour trier des enregistrements affichs dans ltat. Cette procdure devra tre soit une proc-
dure globale du projet, soit une procdure locale ltat. Pour plus de dtails, consultez "Procdure de
tri", page 138.

Partie 1 : Editeur dtats 35


Les ruptures
La rupture permet de grouper les enregistrements correspondant un mme argument de tri.
Par exemple:
pour lister le cours des actions par jour, il suffira de trier les actions par date et de faire une rupture sur
la date.
pour lister les clients et les socits par ville, il suffira de trier les clients par ville puis par nom de la
socit et de faire une rupture sur la ville.

Lajout dune rupture gnre automatiquement les blocs Haut et Bas de rupture. Ces blocs permettent par
exemple de:
afficher le contenu de la rubrique de rupture (gnralement dans le bloc Haut de rupture).
raliser des calculs sur les enregistrements de la rupture (gnralement dans le bloc Bas de rupture).
Lditeur dtats propose deux types de ruptures:
rupture automatique (la plus courante). La rupture est ralise sur une rubrique appartenant la source
de donnes de ltat.
rupture programme. La rupture est entirement dfinie par programmation dans le traitement "Rupture
?" du bloc Haut de rupture. Pour plus de dtails sur la programmation dune rupture, consultez "Traite-
ment de rupture", page 138.
Pour plus de dtails sur les ruptures, consultez laide en ligne (mot-cl : "Rupture, Rupture dans un tat").

2.2.5 Raliser des calculs dans un tat


Si les donnes affiches dans ltat sont de type numrique, il est possible de raliser des calculs sur ces
donnes. Vous pouvez par exemple choisir de raliser et dafficher la valeur moyenne des commandes du
client dans un tat listant les commandes par client.
Remarque: La slection des diffrents calculs raliss dans un tat est effectue lors de la cration de
ltat. Cependant, de nouveaux calculs pourront tre ajouts une fois ltat cr grce aux champs calculs.

36 Partie 1 : Editeur dtats


2.2.6 Gabarit
Si le projet est associ un gabarit (ou un modle), il est possible de slectionner ce mme gabarit (ou mo-
dle) pour vos tats. Vos tats imprims auront le mme style que votre application. Ce gabarit (ou modle)
pourra tre modifi aprs la cration de ltat.
Attention: Les dures dimpression dtats contenant des images peuvent tre relativement longues selon
le type dimprimante.

2.2.7 Format dimpression de ltat


Le format dun tat permet de paramtrer:
lorientation de ltat.
le format du papier.
les marges dimpression.
le nombre de colonnes de ltat. Par dfaut, un tat possde une colonne. Si ltat possde plus dune
colonne ltat est dit "multicolonne".
Si vous crez un tat "Etiquette", il est galement possible de paramtrer:
le format de la planche dtiquettes.
lespace entre les tiquettes.
Ces informations pourront tre modifies aprs la cration de ltat. Pour plus de dtails, consultez "Descrip-
tion / Manipulations dun tat", page 50.

2.3 Enregistrement de ltat


Pour enregistrer un tat (au choix):
sous le volet "Accueil", dans le groupe "Gnral", cliquez sur "Enregistrer".
cliquez sur parmi les boutons daccs rapide.
Le fichier tat cr a pour extension ".WDE".
Ltat est automatiquement intgr dans la liste des lments du projet.
Si vous utilisez lditeur dtats intgr, les tats seront par dfaut intgrs dans la bibliothque:
lors de la cration de lexcutable.
lors du dploiement du site.

2.4 Test de ltat


Le test dun tat seul permet dexcuter uniquement ltat en cours sous WinDev, WebDev ou WinDev Mo-
bile. Comme pour le test du projet, il est possible de lancer le dbogueur ds quun problme est rencontr.
Remarque: Le test de ltat est ralis uniquement sur le poste de dveloppement. Les donnes testes
correspondent aux donnes prsentes sur le poste de dveloppement.
Lors du test dun tat, les traitements suivants sont excuts:
Traitement dinitialisation du projet.
Traitements associs ltat.
Traitements associs aux blocs de ltat.
Traitements associs aux champs de ltat.
Remarque: Le test de ltat est disponible uniquement pour les tats bass sur une requte, un fichier de
donnes, un fichier texte et les tats associs aucune source de donnes. Pour les autres types dtats, il
est ncessaire de tester llment (fentre, page ou projet) partir duquel ltat est imprim.

Partie 1 : Editeur dtats 37


Important
Lors du test dun tat sous le logiciel Etats & Requtes, le traitement dinitialisation du
projet est excut.

2.4.1 Lancer le test


Pour tester ltat en cours:
1.Cliquez sur parmi les boutons daccs rapide (touche F9).
2.Un cran saffiche permettant de choisir le mode dimpression de ltat:

Les options proposes sont:


Aperu avant impression: permet de visualiser ltat lcran tel quil sera imprim.
Imprimante: ltat est directement imprim sur limprimante par dfaut.
Fichier HTML: ltat est enregistr dans un fichier HTML et affich dans le navigateur Internet install
sur le poste.
Fichier RTF: ltat est enregistr dans un fichier RTF et affich dans un diteur de texte (Word par
exemple).
Fichier PDF: ltat est enregistr dans un fichier PDF et affich dans un diteur de PDF (Acrobat Rea-
der par exemple).
Fichier PDF Gnrique: ltat est enregistr dans un fichier PDF gnrique (indpendant de limpri-
mante) et affich dans un diteur de PDF (Acrobat Reader par exemple).
Pour plus de dtails sur ces diffrents modes, consultez "Impression dun tat", page 40 .
3.Choisissez le mode dimpression voulu et validez. Si votre tat nest pas enregistr, WinDev, WebDev ou
WinDev Mobile propose automatiquement de lenregistrer sous le nom donn dans lassistant de cration
de ltat.
4.Si ncessaire, fournissez des renseignements supplmentaires:
Si ltat est born, une fentre saffiche permettant de saisir les bornes de ltat. Pour plus de dtails,
consultez "Etat sur un fichier de donnes", page 43.
Si ltat est bas sur une requte paramtre, une fentre saffiche permettant de saisir les para-
mtres de la requte. Pour plus de dtails, consultez "Etat sur une requte", page 44.
Si ltat est paramtr, donnez une valeur par dfaut aux paramtres dans la dclaration des para-
mtres. Pour plus de dtails, consultez "Etat paramtr", page 139.

38 Partie 1 : Editeur dtats


Remarque: Iconiser ou non lditeur lors du test
Par dfaut, lors dun test, lditeur siconise. Selon la configuration matrielle (cran large, 2 crans, ...),
cette iconisation nest pas utile.
Pour conserver lditeur ouvert:
1.Sous le volet "Accueil", dans le groupe "Environnement", droulez "Options" et slectionnez "Options de
lditeur de code".
2.Dans longlet "Dbogueur", dcochez loption "Iconiser lditeur lors du mode test".
3.Validez.

2.4.2 Arrter le test


Pour arrter le test, plusieurs mthodes sont possibles:
1re mthode: Fermez laperu de ltat en cours de test. Lditeur en cours au moment du lancement
du test est affich.
2me mthode: Revenez dans lditeur avec la barre des tches ou avec [Alt]+[Tab] et confirmez larrt
du test. Lditeur en cours au moment du lancement du test est affich.
3me mthode: Revenez dans lditeur avec la barre des tches ou avec [Alt]+[Tab] et cliquez sur licne
(option "Terminer le test") prsente dans le volet "Dbogueur".

2.4.3 Rpertoire des fichiers de donnes utiliser en test


Pour indiquer les fichiers de donnes utiliss lors du test de lapplication sous lditeur:
1.Affichez la description du projet: sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description".
2.Dans longlet "Fichiers", slectionnez lemplacement des fichiers de test:
Rpertoire de la configuration courante (option slectionne par dfaut): Les fichiers de donnes se
trouveront dans le sous-rpertoire correspondant la configuration en cours (sous-rpertoire du rper-
toire EXE du projet).
Rpertoire spcifique: Les fichiers de donnes se trouveront dans le rpertoire indiqu.
Rpertoire des donnes de lapplication: Ce choix est conseill sous Windows Vista. Les fichiers de
donnes "locaux" se trouveront dans un rpertoire accessible et modifiable par lapplication (sans
ncessiter de droits spcifiques).

2.4.4 Gestion des mots de passe (analyse ou fichier de donnes)


Lors du test dun tat li un fichier de donnes protg par mot de passe, aucun mot de passe nest
demand.
Les mots de passe ncessaires doivent tre prciss par programmation dans le traitement "Ouverture" de
ltat:
Si ltat est li un (ou plusieurs) fichier(s) de donnes protg(s) par un mot de passe, ce mot de passe
doit tre spcifi avec la fonction HPasse.
Si les mots de passe ne sont pas prciss dans le traitement "Ouverture" de ltat, une erreur WLangage
est affiche lors du test de ltat.

Partie 1 : Editeur dtats 39


2.4.5 WinDev Mobile: Ouverture dune fentre en mode test dans le code du projet
Lors du test dun tat, si une fentre est ouverte dans le code dinitialisation du projet ou dans le code de fin
de projet, une erreur WLangage est affiche.
Pour viter cette erreur, utilisez la fonction EnModeTest pour paramtrer louverture de la fentre. Par
exemple:
SI EnModeTest() = Faux ALORS Ouvre(FEN_MaFentre)
Il est cependant possible dutiliser des fonctions ouvrant des botes dinformation systme (par exemple Info
ou Trace).

2.5 Impression dun tat

2.5.1 Modes dimpression disponibles


Plusieurs modes dimpression sont disponibles pour un tat. Ces diffrents modes sont prsents dans le
tableau suivant:
Impression lors du Impression dun Impression dun tat
test dun tat sous tat depuis la par programmation
lditeur fentre daperu (fonctions iAperu,
(WinDev unique- iDestination et iImpri-
ment) meEtat)
Impression papier X X X
Aperu avant impression X - X (WinDev unique-
ment)
Fichier HTML (avec feuille de X X X
styles)
Fichier HTML (sans feuille de X
styles)
Fichier RTF X X X
Fichier XML X X
Fichier PDF X X X
Fichier texte X
Envoi dun fax X
Fichier PCL X
Fichier XLS X

WinDev Mobile: Lors du test dun tat sous lditeur, toutes les options sont disponibles. Cependant, lors de
limpression dun tat par programmation:
dans une application Windows Mobile, seules les impressions sur une imprimante PCL ou sur un fichier
PCL sont disponibles.
dans une application iOS, seules les impressions sur un fichier PDF sont disponibles.

40 Partie 1 : Editeur dtats


Remarque: Par dfaut, le mode dimpression de ltat est automatiquement demand lors du test de
chaque tat dans une fentre spcifique. Pour ne pas afficher cette fentre lors du test de ltat:
1.Affichez les options ddition de lditeur dtats: sous le volet "Accueil", dans le groupe "Environne-
ment", droulez "Options"et slectionnez "Options de lditeur dtats".
2.Slectionnez longlet "Impression".
3.Dcochez loption "Demander le mode dimpression".
Dans ce cas, ltat test sera directement visualis dans un aperu avant impression.

2.5.2 Aperu avant impression


Laperu avant impression permet de visualiser la prsentation dun tat sans limprimer (prvisualisation
de ltat). La mise en page et le contenu de ltat peuvent ainsi tre vrifis. Il est bien entendu possible de
lancer limpression de ltat.
Laperu avant impression est disponible:
sous lditeur dtats de WinDev, WebDev, WinDev Mobile.
dans le logiciel "Etats et Requtes".
lors de limpression dtats depuis une application WinDev.
Laperu avant impression offre diverses possibilits:

Un menu sous forme de ruban constitu des volets suivants:


Aperu: permet de grer laperu en cours: Zoom, mire, dplacement, dplacement entre les pages.
Imprimer: permet de grer limpression directe sur limprimante
Exporter: permet de grer les diffrents modes dexport de limpression (PDF, Word, Excel, ...).

Partie 1 : Editeur dtats 41


Rechercher: permet de grer la recherche dans laperu
Annoter: permet dannoter ldition actuellement affiche dans laperu.
Ce menu est galement disponible lors dun aperu avant impression ralis en WLangage.
Un menu contextuel reprenant la majorit des options.
Remarque: Pour visualiser laperu avant impression dun tat, une imprimante doit tre installe sur le
poste en cours.
Autres fonctionnalits (WinDev uniquement)
Personnalisation de laperu: Votre application utilise un gabarit ? Pourquoi ne pas utiliser ce gabarit
galement pour la fentre daperu avant impression. WinDev permet en effet de personnaliser la fentre
daperu avant impression. Pour plus de dtails, consultez laide en ligne.
Aperu dune impression ralise avec les fonctions WLangage: Si vous ralisez une impression avec
les fonctions WLangage, il est galement possible de profiter des fonctionnalits de laperu avant
impression.
Paramtrage des diffrentes options: Pour afficher uniquement certains volets ou certaines options:
soit utilisez la fonction iParamtreAperu. Cette fonction, utilise dans le code dinitialisation du projet,
permet par exemple de choisir quels seront les volets et options affichs pour tous les tats de lappli-
cation.
soit paramtrez directement les diffrentes options affiches pour chaque tat dans la description de
ltat (onglet "IHM").
Impression depuis laperu: Pour savoir si lutilisateur a effectu une impression depuis laperu avant
impression, utilisez la fonction iImpressionDemande.

42 Partie 1 : Editeur dtats


3. Sources de donnes dun tat

3.1 Prsentation
Dans le chapitre prcdent, nous avons vu lors de la cration dun tat que diffrentes sources de donnes
pouvaient tre slectionnes.
Ce chapitre prsente plus prcisment ces sources de donnes et leur intrt:
Etat sur un fichier de donnes.
Etat sur une requte.
Etat sur une variable.
Etat sur un champ Table.
Etat sur un champ Table hirarchique.
Etat sur un champ Agenda.
Etat sur un champ Planning.

Remarque: Dautres sources de donnes sont galement disponibles mais plus rarement utilises:
Etat sur une vue HFSQL.
Etat sur une zone mmoire.
Etat sur un fichier texte.
Etat sur une source de donnes programme.
Pour plus de dtails, consultez laide en ligne.

3.2 Etat sur un fichier de donnes

3.2.1 Prsentation
Un tat sur un fichier de donnes permet dimprimer des enregistrements provenant dun seul fichier de don-
nes (HFSQL Classic ou Client/Serveur, accd par un Accs Natif, ...). Si les enregistrements proviennent de
plusieurs fichiers de donnes, il est conseill dutiliser un tat sur requte.
La cration dun tat sur un fichier de donnes seffectue grce lassistant de cration dun tat. Ce type
dtat peut tre cr uniquement si le projet en cours est associ une analyse.
Lorsque ltat sur un fichier de donnes est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier la cl de parcours (onglet "Donnes" de la description de ltat).
dfinir des bornes (onglet "Donnes" de la description de ltat).
ajouter ou supprimer des champs Rubriques lis au fichier de donnes associ ltat.

Les fichiers de donnes et les rubriques des fichiers de donnes pouvant tre utiliss
dans les tats crs avec le logiciel Etats & Requtes sont dfinis par le dveloppeur
Important

sous lditeur danalyses de WinDev.


Pour plus de dtails sur la prparation ncessaire lutilisation dune application Win-
Dev avec le logiciel Etats & Requtes, consultez "Diffuser le logiciel Etats & Requtes",
page 231.

Partie 1 : Editeur dtats 43


3.2.2 Caractristiques
Les caractristiques dun tat sur fichier de donnes sont les suivantes:
Cl de parcours: un tat sur un fichier de donnes utilise une cl de parcours. Cette cl permet de
parcourir les diffrents enregistrements imprimer dans ltat. Cette cl est dfinie dans le fichier de
donnes.
Etat born: un tat sur un fichier de donnes peut tre born. Ces bornes permettent de dlimiter les
enregistrements imprimer dans ltat. Pour plus de dtails, consultez "Etat sur un fichier de donnes",
page 116.

3.3 Etat sur une requte

3.3.1 Prsentation
Une requte permet de slectionner simplement certains enregistrements dun ou de plusieurs fichiers de
donnes. Une requte permet aussi de raliser des calculs sur les donnes slectionnes. Il est ainsi pos-
sible, par exemple, de slectionner toutes les commandes des clients habitant New York et de raliser un
total du montant des commandes par client.
Lutilisation de requtes dans un tat permet de raliser rapidement des tats complexes. La requte pr-
slectionne les enregistrements et ltat organise toutes les donnes slectionnes et ralise les diffrents
calculs.
Attention: Pour optimiser ltat, il est recommand de raliser les diffrents calculs (totaux sur des rubriques
par exemple) directement dans ltat et non dans la requte.

Lditeur dtats offre la possibilit de crer un tat bas sur une requte selon plusieurs modes:
soit la requte est cre et enregistre sous lditeur de requtes. Ltat est alors bas sur le fichier cor-
respondant la requte (fichier ".WDR"). La requte peut tre rutilise dans un autre tat, une fentre,
un champ, ... La requte peut tre modifie tout moment sous lditeur de requtes. La requte est dite
indpendante.
soit la requte est cre lors de la cration de ltat. La requte est alors intgre ltat. Aucun fichier
spcifique la requte nest cr. La requte peut uniquement tre modifie partir de ltat qui la
cre. Elle ne peut pas tre rutilise dans un autre tat, une fentre, un champ, ... La requte est dite
intgre.
soit la requte est base sur des donnes provenant dune connexion (non disponible sous WinDev
Mobile).
Remarque: Ce type dtat sur requte est disponible mme si aucune analyse nest associe au projet
WinDev ou WebDev.
Astuce: Il est possible de crer directement depuis lditeur de requtes, un tat bas sur la requte de
slection en cours. Pour cela, sous le volet "Requte", dans le groupe "Liaison fichier", cliquez sur "Crer un
tat".
Remarque: Une requte (intgre ou indpendante) peut tre paramtre.

Ltat pourra tre alors imprim trs simplement depuis vos programmes WLangage. Pour plus de dtails,
consultez "Etat sur une requte", page 121.

44 Partie 1 : Editeur dtats


3.3.2 Les diffrents types de requtes
Etat sur requte indpendante
La requte doit tre cre avant la cration de ltat. Lors de la cration de ltat, il suffit de spcifier le nom
de la requte utilise.
Si la requte est modifie sous lditeur de requtes (suppression de rubriques rsultat par exemple), un
cran de synchronisation est affich lors de la fermeture de la requte. Il est ainsi possible de reporter les
modifications effectues sur la requte dans tous les lments utilisant cette requte (y compris les tats).

Etat sur requte intgre


La requte est cre directement lors de la cration de ltat. Cette requte sera modifie directement de-
puis lditeur dtats (option "diter la requte" du menu contextuel de ltat). Si des modifications sont rali-
ses dans la requte, lditeur dtats liste les modifications ralises et les incidences sur ltat.
Remarque: Pour passer du mode intgr au mode indpendant (cest--dire pour extraire une requte dun
tat):
1.Affichez ltat bas sur la requte intgre (sous lditeur dtats).
2.Slectionnez loption "Editer la requte" du menu contextuel de ltat. Autre solution: sous le volet
"Modification", dans le groupe "Etat", cliquez sur "Editer la requte". La requte saffiche sous lditeur de
requtes.
3.Sous le volet "Accueil", dans le groupe "Gnral", droulez "Enregistrer" et slectionnez "Exporter .. Vers
une requte indpendante".
4.Enregistrez la nouvelle requte.

Etat sur requte paramtre


Une requte (intgre ou indpendante) peut tre paramtre. Dans ce cas, une ou plusieurs conditions
de slection dpendent dun paramtre lors de lexcution de la requte. Ce paramtre pourra par exemple
correspondre la valeur dun champ de saisie dans une fentre.
Par exemple, pour imprimer la facture du client X, il suffit de crer un tat bas sur une requte paramtre.
Dans cette requte, le paramtre sera par exemple le nom du client. Pour imprimer ltat, il faudra donc pr-
ciser la valeur du paramtre avant de lancer limpression:
lors du test de ltat bas sur une requte paramtre, une fentre saffiche permettant de saisir les
paramtres de la requte.
en excution, les paramtres de la requte doivent tre spcifis laide de la fonction iInitRequteEtat
(avant lutilisation de la fonction iImprimeEtat).

Si la requte est cre avec le logiciel Etats & Requtes, il nest pas ncessaire dutili-
Important

ser la fonction iInitRequteEtat pour spcifier les paramtres de la requte. En effet,


lors de lexcution dun tat sur une requte paramtre depuis le logiciel Etats & Re-
qutes, une fentre saffiche permettant de saisir les paramtres de la requte.

Remarque: Pour plus de dtails sur les requtes paramtres, consultez "Requte paramtre", page 217.

Partie 1 : Editeur dtats 45


3.4 Etat sur variable
Ltat sur variable permet dimprimer directement les informations prsentes dans une variable WLangage.
Cette variable peut tre:
une variable globale au projet,
une variable globale une fentre ou une page.
une variable globale une collection de procdures.
Cette variable peut tre par exemple une variable de type tableau simple, un membre de classe, un membre
de structure ou un membre de variables de type avanc.
Important

Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur va-
riable.

3.5 Etat sur un champ Table

3.5.1 Prsentation
Ltat sur un champ Table permet dimprimer directement les informations affiches dans un champ Table
(fichier, mmoire ou sur source) prsent:
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne. La fentre (ou la page) affichant la fentre interne (ou la page
interne) doit tre affiche.
Important

Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table.
Cependant, il est possible de personnaliser des tats sur un champ Table crs sous
lditeur dtats intgr (couleur, polices, taille, ...).

Un tat sur un champ Table peut imprimer:


soit toutes les lignes affiches dans le champ Table (possibilit de filtrer les donnes du champ Table
avec la loupe).
soit uniquement les lignes slectionnes par lutilisateur (cas des champs Table multi-slection o les
lignes sont slectionnes grce la touche [Ctrl]). Cette option nest pas disponible en WebDev.

3.5.2 Caractristiques
Si ltat est bas sur un champ Table:
Chaque ligne du champ Table correspond un enregistrement.
Chaque colonne du champ Table correspond un champ rubrique (mme les colonnes invisibles).
Dans le cas dun tat de type tableau, lordre daffichage des colonnes dans ltat correspond par dfaut
lordre des colonnes dans la fentre en cours ddition. En WinDev, si lutilisateur modifie lordre des co-
lonnes dans la fentre, lordre daffichage des colonnes dans ltat ne sera pas modifi dynamiquement.
Attention: Les donnes imprimes dans ltat sont tries selon la colonne de tri dfinie pour le champ Table.

46 Partie 1 : Editeur dtats


Il est possible de crer un tat sur un champ Table:
soit depuis lditeur de fentres. Ltat cr correspond alors un tat de type tableau.
soit depuis lditeur dtats. Lassistant de cration dun tat souvre et permet de choisir le type dtat
crer (tableau, fiche, ...).
Lorsque ltat sur un champ Table est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
ajouter ou supprimer des champs Rubriques lis au champ Table associ ltat.
Attention: Il est impossible de tester un tat sur un champ Table directement depuis lditeur dtats, car la
fentre ou la page contenant le champ Table doit tre ouverte. Pour tester un tat sur un champ Table, il est
donc ncessaire de:
crer si ncessaire un bouton dans la fentre ou la page du champ Table. Ce bouton permet de lancer
limpression de ltat sur le champ Table (fonction iImprimeEtat).
Cas des fentres internes: Si le champ Table est prsent dans une fentre interne, il est conseill de
crer le bouton dans la fentre interne et non dans la fentre hte.
tester directement la fentre contenant le champ Table puis ltat (grce au bouton).
Cas des fentres internes: il est ncessaire deffectuer le test depuis la fentre accueillant la fentre
interne.

Partie 1 : Editeur dtats 47


3.6 Etat sur un champ Agenda

3.6.1 Prsentation
Ltat sur un champ Agenda permet dimprimer directement les informations affiches dans un champ
Agenda prsent :
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne:
La fentre affichant la fentre interne doit tre affiche.
La page affichant la page interne doit tre affiche.
Important

Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Agenda.
Cependant, il est possible de personnaliser des tats sur un champ Agenda crs sous
lditeur dtats intgr (couleur, polices, taille, ...).

Remarque: Seul un tat de type Agenda peut tre cr sur un champ Agenda.

3.6.2 Caractristiques
Chaque ligne et chaque colonne du champ Agenda sont affiches dans ltat Agenda.
Lors de la cration de ltat, il est possible de slectionner le nombre de jours afficher ainsi que le mode
daffichage des ressources (en ligne ou en colonne).
Il est possible de crer un tat sur un champ Agenda depuis lditeur dtats: il suffit de slectionner un tat
Agenda bas sur un champ Agenda.
Lorsque ltat sur un champ Agenda est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier les caractristiques de lagenda (onglet "Gnral" de la description de lagenda).

Attention: Il est impossible de tester un tat sur un champ Agenda directement depuis lditeur dtats car
la fentre ou la page contenant le champ Agenda doit tre ouverte. Pour tester un tat sur un champ Agenda,
il est donc ncessaire de:
crer un bouton dans la fentre ou la page du champ Agenda. Ce bouton permet de lancer limpression
de ltat sur le champ Agenda (fonction iImprimeEtat).
Cas des fentres internes ou des pages internes: Si le champ Agenda est prsent dans une fentre
interne ou une page interne, il est conseill de crer le bouton dans la fentre/page interne et non dans
la fentre/page hte.
tester directement la fentre contenant le champ Agenda puis ltat (grce au bouton).
Cas des fentres internes: il est ncessaire deffectuer le test depuis la fentre accueillant la fentre
interne.
tester directement la page contenant le champ Agenda puis ltat (grce au bouton).
Cas des pages internes: il est ncessaire deffectuer le test depuis la page accueillant la page interne.

48 Partie 1 : Editeur dtats


3.7 Etat sur un champ Planning

3.7.1 Prsentation
Ltat sur un champ Planning permet dimprimer directement les informations affiches dans un champ
Planning prsent:
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne:
La fentre affichant la fentre interne doit tre affiche.
La page affichant la page interne doit tre affiche.
Remarque: Seul un tat de type Planning peut tre cr sur un champ Planning.

3.7.2 Caractristiques
Chaque ligne et chaque colonne du champ Planning sont affiches dans ltat Planning.
Lors de la cration de ltat, il est possible de slectionner le nombre de jours afficher et le mode daffi-
chage des ressources (en ligne ou en colonne).
Il est possible de crer un tat sur un champ Planning depuis lditeur dtats: il suffit de slectionner un
tat Planning bas sur un champ Planning.
Lorsque ltat sur un champ Planning est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier les caractristiques du planning (onglet "Gnral" de la description du Planning).

Attention: Il est impossible de tester un tat sur un champ Planning directement depuis lditeur dtats,
car la fentre ou la page contenant le champ Planning doit tre ouverte. Pour tester un tat sur un champ
Planning, il est donc ncessaire de:
crer si ncessaire un bouton dans la fentre ou la page du champ Planning. Ce bouton permet de lancer
limpression de ltat sur le champ Planning (fonction iImprimeEtat).
Cas des fentres internes: Si le champ Planning est prsent dans une fentre interne, il est conseill de
crer le bouton dans la fentre interne et non dans la fentre hte.
tester directement la fentre contenant le champ Planning puis ltat (grce au bouton).
Cas des fentres internes: il est ncessaire deffectuer le test depuis la fentre accueillant la fentre
interne.
tester directement la page contenant le champ Planning puis ltat (grce au bouton).
Cas des pages internes: il est ncessaire deffectuer le test depuis la page accueillant la page interne.
Important

Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Planning.
Cependant, il est possible de personnaliser des tats sur un champ Planning crs sous
lditeur dtats intgr (couleur, polices, taille, ...).

Partie 1 : Editeur dtats 49


4. Description / Manipulations dun tat

4.1 Prsentation
Dans les chapitres prcdents, nous avons vu les diffrentes tapes ncessaires la cration dun tat.
Aprs la cration dun tat, il est possible tout moment de modifier toute la description de cet tat:
source de donnes,
champs prsents dans ltat,
mise en page, ...
Seul le type de ltat nest pas modifiable. En effet, trop de paramtres spcifiques sont mis en jeu. Pour
changer le type de ltat, il suffit de crer un nouvel tat.
Ce chapitre prsente:
comment visualiser et modifier la description de ltat (dfinie lors de la cration de ltat).
comment ouvrir, fermer et enregistrer un tat.
les modifications avances pouvant tre ralises sur un tat (utilisation dun formulaire, modification du
gabarit,...).

4.2 Visualiser et modifier la description de ltat


Les principales options de ltat sont accessibles dans la description de ltat (option "Description de ltat"
du menu contextuel).
Voici une prsentation rapide des diffrents onglets de la description de ltat.
Remarque: Les principales options de ltat sont galement accessibles via le volet "Modifieur".

4.2.1 Gestion de la source de donnes


A tout moment, il est possible de paramtrer et de modifier la source de donnes dun tat. Ces manipula-
tions se font principalement partir de la fentre de description de ltat.
Il est possible de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat):
soit en changeant le type de la source dalimentation de ltat (passer par exemple dun tat sur
requte un tat sur fichier de donnes ou sur une zone mmoire).
soit en changeant les paramtres de la source de donnes slectionne (modification de la requte,
modification du tri, mise en place de bornes de parcours, ...).
paramtrer le fonctionnement de ltat si la source de donnes est vide (onglet "IHM" de la description
de ltat). En effet, si la source de donnes est vide, lditeur dtats offre la possibilit soit dimprimer
ltat, soit dafficher un message davertissement sans imprimer ltat. Le message davertissement est
paramtrable.
Remarque: Si ltat est bas sur une requte, loption "Editer la requte" du menu contextuel permet ddi-
ter directement la requte dans lditeur de requtes. Il est alors possible de modifier cette requte.

50 Partie 1 : Editeur dtats


4.2.2 Options daffichage dans laperu avant impression
Le paramtrage des options daffichage dans laperu avant impression est ralis dans longlet "IHM" de la
description de ltat. Il est possible de:
spcifier les formats dexports proposs par laperu avant impression. Les formats cochs seront dispo-
nibles pour lutilisateur.
paramtrer le message affich si la source de donnes est vide.
paramtrer le message affich lors de la slection et du tri des enregistrements.

4.2.3 Gestion des blocs


La gestion des blocs dun tat peut aussi bien tre ralise dans ltat en dition que dans la fentre de
description de ltat.
La gestion des blocs peut tre ralise:
soit directement depuis les diffrentes options du menu contextuel des blocs (clic droit sur lintitul des
blocs).
soit grce la fentre de description de ltat (option "Description de ltat" du menu contextuel), onglet
"Blocs".
Pour plus de dtails sur la gestion des blocs, consultez "Blocs dun tat", page 58.

4.2.4 Format dimpression


Longlet "Format" de la fentre de description de ltat permet de configurer:
le format de la page (ou de la planche dtiquettes).
le retrait interne des champs (pour ne pas coller le texte du champ au cadre du champ).
les marges.
lorientation de la page (portrait ou paysage).
le format des tiquettes si ltat est de type tiquette.
le nombre de colonnes.
Il est galement possible de crer des tats multicolonnes.
le nombre de pages en largeur. Dans ce cas, un tat de grande taille (suprieur une feuille de papier)
pourra simprimer sur plusieurs pages. Lutilisateur final devra simplement assembler les pages. Pour
plus de dtails, consultez laide en ligne.

4.2.5 Options
Longlet "Options" de la fentre de description de ltat permet de configurer:
le fonctionnement de ltat si le format de la page nest pas support par limprimante.
la position des blocs lors de limpression de ltat.
le style du tableau si ltat contient un tableau.
la liste des modles utiliss par ltat.
le style des tiquettes si ltat est de type tiquette.
Cet onglet permet galement de:
configurer ltat pour lutilisation du logiciel Etats et Requtes. Pour plus de dtails, consultez "Diffuser le
logiciel Etats & Requtes", page 231.
spcifier si le code compil doit tre intgr. Cette option est ncessaire dans des cas trs rares.
configurer certains paramtres spcifiques:
Si chaque page doit tre envoye sparment au spooler dimpression (impression effectue page
aprs page). Dans ce cas, limpression est envoye au spooler dimpression aprs chaque page impri-
me.

Partie 1 : Editeur dtats 51


Si il est ncessaire de tenir compte des espaces qui compltent les rubriques. Cette option concerne
uniquement les champs auto-extensibles associs une rubrique texte complte par des espaces
(compatibilit avec WinDev 5.5).
Si la premire page est une page de couverture. Dans ce cas, la premire page sera affiche droite
dans laperu (en mode daffichage par pages doubles).

4.2.6 Formulaire et image de fond


La majorit des types dtats peuvent tre raliss partir dun formulaire. Longlet "Fond" permet de dfinir
limage utilise en tant que formulaire dans ltat. Cette image pourra au choix tre imprime ou non avec
ltat.
Cette option est trs utile pour les tats devant simprimer sur un formulaire pr-imprim. Lintgration du
formulaire dans ltat permet de simplifier le positionnement des champs imprimer par rapport au formu-
laire. Finis les dizaines dessais pour raliser une impression correcte.
Pour plus de dtails sur lutilisation dun formulaire dans un tat, consultez "Utiliser un formulaire dans un
tat", page 53.

4.2.7 Langue
Un tat peut tre multilingue, cest--dire qu lexcution cet tat pourra tre affich et imprim dans plu-
sieurs langues.
Longlet "Langue" permet de configurer:
les diffrentes langues gres par ltat en cours.
la langue visualise sous lditeur dtats: cest cette langue qui sera utilise par dfaut pour afficher
ltat sous lditeur.
Les informations dun tat pouvant tre saisies en plusieurs langues sont:
tous les messages affichs lors de limpression de ltat. La traduction de ces messages est ralise
directement dans les diffrentes fentres de description.
le libell des champs de type Libell ou RTF:Pour traduire ces libells, il suffit de:
modifier la langue affiche de ltat: sous le volet "Affichage", dans le groupe "Options", droulez
"Langue affiche" et slectionnez la langue voulue.
saisir directement les traductions dans ltat en dition.
le masque daffichage des champs de type rubrique, calcul ou prdfini.
les diffrents fichiers image utiliss dans ltat.
le formulaire de ltat.

4.3 Ouvrir, fermer et enregistrer un tat


Pour ouvrir un tat, il est possible dutiliser une des mthodes suivantes:
sous le volet "Accueil", dans le groupe "Gnral", droulez "Ouvrir" et slectionnez "Ouvrir". Slectionnez
ensuite le fichier de type "WDE" ouvrir.
cliquez sur parmi les boutons daccs rapide et slectionnez "Ouvrir". Slectionnez ensuite le fichier
de type "WDE" ouvrir.
double-cliquez directement sur un fichier de type "WDE".
double-cliquez sur le nom dun tat dans le volet "Explorateur de projet".

Pour fermer ltat en cours, utilisez une des mthodes suivantes:


cliquez sur la croix en haut droite de la barre de titre de ltat en cours ddition.
sous le volet "Accueil", dans le groupe "Gnral", droulez "Fermer" et slectionnez "Fermer".

52 Partie 1 : Editeur dtats


Si ltat contient des modifications non sauvegardes, lditeur dtats propose automatiquement denregis-
trer ltat.
Pour enregistrer ltat en cours, utilisez une des mthodes suivantes:
sous le volet "Accueil", dans le groupe "Gnral", cliquez sur .
utilisez le raccourci clavier CTRL + S.
cliquez sur parmi les boutons daccs rapide.
Remarque: Pour enregistrer un tat en le renommant, sous le volet "Accueil", dans le groupe "Gnral",
droulez "Enregistrer" et slectionnez "Enregistrer sous".

Rcupration automatique
Pour viter tout problme lors dun blocage du systme (coupure de courant par exemple), WinDev, WebDev
et WinDev Mobile proposent un systme de rcupration automatique des lments ouverts sous les diff-
rents diteurs.
Lorsque ce systme est activ:
un enregistrement automatique des lments ouverts est automatiquement effectu une priode don-
ne (toutes les 10 minutes par dfaut).
lors de la rouverture dun tat aprs un blocage systme, une fentre de rcupration automatique
apparat. Cette fentre propose de rcuprer:
soit ltat tel quil tait lors de la dernire sauvegarde ralise depuis lditeur dtats.
soit ltat sauvegard automatiquement.
La version slectionne est automatiquement ouverte sous lditeur dtats. La version non slection-
ne est disponible dans la fentre de gestion des versions et peut tre ouverte tout moment.

Pour activer le systme de rcupration automatique:


1.Sous le volet "Accueil", dans le groupe "Environnement", droulez "Options" et slectionnez "Options
gnrales de xxx".
2.Affichez longlet "Gnral" et cochez loption "Enregistrement pour la rcupration automatique".
3.Prcisez le dlai de lenregistrement automatique.
4.Validez.

Pour rcuprer une version dans la fentre de gestion des versions:


1.Sous le volet "Accueil", dans le groupe "Gnral", droulez "Enregistrer" et slectionnez "Versions".
2.Slectionnez la version rcuprer.
3.Validez.

4.4 Utiliser un formulaire dans un tat


Lditeur dtats offre la possibilit dimprimer des tats sur des formulaires pr-imprims (fichier image ou
fichier PDF). Par exemple, il est possible dimprimer directement les produits commands par les clients sur
un bon de commande.
En dition, le formulaire apparat en image de fond de ltat: le positionnement des champs pourra tre
ralis au millimtre prs.

Partie 1 : Editeur dtats 53


Par exemple:

En excution, il est possible dimprimer ou non limage du formulaire avec ltat. Par dfaut, limage du for-
mulaire nest pas imprime avec ltat.
Par exemple:

54 Partie 1 : Editeur dtats


Remarque: Pour imprimer des tats sur des formulaires pr imprims, il est possible:
soit de crer un tat fiche de type "Formulaire".
soit dintgrer un formulaire dans un tat existant.

4.4.1 Informations spcifiques au formulaire


Les informations spcifiques au formulaire sont les suivantes:
le fichier contenant limage du formulaire. La taille de ltat est automatiquement calcule en fonction
de la taille de limage du formulaire.
Pour un format A4, la taille dune image en 75 DPI doit tre 595 x 842 pixels. Pour un format A4, la taille
dune image en 150 DPI doit tre 1275 x 1753 pixels.
Si limage du formulaire correspond un fichier PDF contenant plusieurs pages, il est possible:
soit dimprimer toutes les pages du PDF. Un tat compos de plusieurs pages est alors cr sous ldi-
teur dtats.
soit dindiquer le numro de la page utiliser en fond de ltat. Ltat imprimera uniquement une page
du fichier PDF.
limpression ou non de limage du formulaire.
Remarque: Si limage du formulaire est imprime avec ltat, cette image ne sera pas imprime au-del
des marges physiques de limprimante.
le dcoupage du formulaire en fonction du nombre denregistrements imprim par page:
si par exemple, le formulaire contient les caractristiques dun seul client, un seul enregistrement doit
tre imprim par page.
Dans ce cas, ltat cr contient uniquement le bloc Corps.
si par exemple, le formulaire contient les caractristiques de plusieurs clients, plusieurs enregistre-
ments doivent tre imprims par page.
Dans ce cas, ltat cr contient un bloc En-tte de page, un bloc Corps et un bloc Pied de page. Pour
chaque enregistrement imprim sur la page, le bloc Corps sera rpt. Pour imprimer correctement
ltat, il est ncessaire de modifier la position des champs de ltat et la position de limage du formu-
laire dans le bloc Corps.
Pour plus de dtails sur le positionnement de limage du formulaire dans les diffrents blocs, consultez
le paragraphe "Image du formulaire", page 56.

4.4.2 Intgrer un formulaire dans un tat


Crer si ncessaire le fichier correspondant au formulaire.
Si vous possdez le formulaire voulu uniquement sous forme papier, il est conseill de scanner le formulaire
100% et de lenregistrer sous forme dimage.
Pour un format A4, la taille dune image en 75 DPI doit tre 595 x 842 pixels.
Pour un format A4, la taille dune image en 150 DPI doit tre 1275 x 1753 pixels.
Les formats dimages supports sous Windows sont:
Bitmap (*.BMP)
Graphics Interchange Format (*.gif)
Joint Picture Experts Group (*.jpg ; *.jpeg)
Kodak Photo CD (*.pcd)
PaintBrush (*.pcx)
Adobe Photoshop Format (*.psd)
TrueVision TARGA (*.tga)
Tagged Image File Format (*.tif ; *.tiff)
Remarque: loption "tiff mosaque" de la norme tiff 6.0 nest pas supporte. Dans ce cas, il est conseill
denregistrer limage la norme tiff 5.0.
Portable Network Graphics (*.png)

Partie 1 : Editeur dtats 55


Windows MetaFiles (*.emf ; *.wmf)
Icnes (*.ico ; *.icw)
Curseurs (*.cur)
Portable Document Format (*.pdf)
Scalable Vector Graphics (*.svg)

Pour intgrer un formulaire dans un tat:


1.Affichez longlet "Fond" de la description de ltat (option "Description de ltat" dans le menu contextuel
de ltat).
2.Slectionnez limage du formulaire ou le fichier PDF correspondant au formulaire.
3.Si le formulaire est un fichier PDF contenant plusieurs pages, indiquez:
si toutes les pages du PDF doivent tre imprimes. Lditeur dtats affichera alors toutes les pages du
PDF. Les champs ncessaires ltat pourront tre positionns sur les diffrentes pages de ltat sous
lditeur.
la page contenant le formulaire utiliser. Ce numro de page peut tre modifi par programmation
grce la proprit ..NumroPage. Ltat affich sous lditeur dtats ne contiendra quune seule
page.
4.Spcifiez si limage du formulaire doit tre imprime ou non en mme temps que ltat.
Si limage du formulaire est imprime avec ltat, cette image ne sera pas imprime au-del des
marges physiques de limprimante. Pour imprimer totalement limage du formulaire, il est conseill de
cocher loption "Ignorer les marges physiques de limprimante".
Si limage du formulaire ne doit pas tre imprime avec ltat (cas dune impression sur un papier
pr-imprim par exemple), loption "Ignorer les marges physiques de limprimante" ne doit pas tre
slectionne. Dans le cas contraire, les champs imprims seront dcals par rapport au formulaire pr-
imprim.

4.4.3 Image du formulaire


Limage du formulaire apparat en fond de ltat. Limage est affiche en fond de chacun des blocs de ltat.
Si plusieurs blocs sont prsents dans la page, il est possible de positionner correctement limage dans cha-
cun des blocs.

Pour dplacer limage du formulaire affiche dans chaque bloc:


1.Sous le volet "Modification", dans le groupe "Alignement", cliquez sur "Dplacer limage de fond". Le cur-
seur de la souris se transforme en main.
2.Cliquez dans le bloc o limage du formulaire doit tre dplace.
3.Pour dplacer limage du formulaire dun bloc:
vers le haut ou vers le bas: maintenez le bouton de la souris enfonc et dplacez la souris.
vers la gauche ou vers la droite: maintenez le bouton de la souris et la touche [Shift] enfoncs et
dplacez la souris.
4.Pour dsactiver le mode de dplacement de limage du formulaire, sous le volet "Modification", dans le
groupe "Alignement", cliquez nouveau sur "Dplacer limage de fond".
Remarque: Le curseur de la souris doit tre dplac dans la zone du bloc pour tre pris en compte.

56 Partie 1 : Editeur dtats


4.4.4 Etat multipages (bas sur un fichier PDF)
Si vous avez choisi que ltat affiche toutes les pages dun fichier PDF, si ltat est bas sur un fichier de
donnes ou une requte, les diffrentes pages seront imprimes pour chaque enregistrement de la source
de donnes utilise.
Attention: Ce type dtat peut consommer beaucoup de ressources mmoire (notamment en aperu avant
impression).
Remarque: Utilisation dun fichier PDF en fond de page
Lutilisation dun fichier PDF en fond de page ncessite le framework GDI+.
Sous lditeur, il est conseill dutiliser un zoom infrieur ou gal 100% pour visualiser correctement le
fichier PDF utilis en fond dtat.

4.5 Changer le gabarit associ ltat


Lors de la description de ltat, il est possible dappliquer un gabarit ltat. Un gabarit permet de dfinir les
caractristiques dinterface de ltat: image de fond, taille, style des champs, ... Un gabarit peut tre appli-
qu un ou plusieurs tats (par exemple pour harmoniser le "look" des tats dune application).

Pour changer ou appliquer un gabarit prdfini un tat:


1.Sous le volet "Modification", dans le groupe "Modles et gabarit", cliquez sur "Appliquer un gabarit".
2.Dans la fentre qui saffiche, slectionnez le gabarit souhait et validez.
Remarque: Vous pouvez crer vos propres gabarits dtats. Pour plus de dtails sur la cration des gabarits
dtats, consultez laide en ligne (mot-cl: "Gabarit, Crer un gabarit dtat").
Important

Le logiciel Etats & Requtes ne permet pas de crer des gabarits dtats.

4.6 Changer le modle dtats associ ltat


Lors de la description de ltat, il est possible dappliquer un modle ltat. Un modle dtats permet de
dfinir des caractristiques communes un ensemble dtats (prsence par exemple de diffrents champs,
code spcifique excuter, ...). Un modle dtats peut tre appliqu un ou plusieurs tats. Les caractris-
tiques du modle peuvent tre surcharges par ltat utilisant le modle.

Pour changer ou appliquer un modle un tat:


1.Sous le volet "Modification", dans le groupe "Modles et gabarit", droulez "Modles" et slectionnez
"Liste des modles utiliss".
2.Dans la fentre qui saffiche, slectionnez le modle souhait.
Remarque: Pour plus de dtails sur la cration des modles dtats, consultez laide en ligne (mot-cl:
"Modle, Modle dtats").
Important

Le logiciel Etats & Requtes ne permet ni de crer ni de modifier des modles dtats.

Partie 1 : Editeur dtats 57


5. Blocs dun tat

5.1 Prsentation
Un tat imprim est compos de plusieurs parties:
un dbut de document,
un entte de page,
le corps de la page,
un pied de page,
une fin de document,
une ou plusieurs ruptures, si ltat est tri.

Pour grer les diffrentes parties de ltat, lditeur dtats dcoupe la structure de ltat en blocs. A chaque
bloc, un traitement en WLangage peut tre associ.

58 Partie 1 : Editeur dtats


Etat en dition et aperu de lexcution de ltat

Partie 1 : Editeur dtats 59


5.2 Les diffrents types de blocs
Un tat est compos de plusieurs blocs de types diffrents. Chaque bloc:
peut contenir tous les types de champs.
a des paramtres et des options dimpression spcifiques.
est associ diffrents traitements WLangage.
Un tat contient au minimum le bloc Corps et ne peut contenir quun seul bloc de chaque type (sauf bloc
ditration et blocs de rupture).
Les diffrents types de blocs sont les suivants (dans leur ordre dapparition sous lditeur dtats):
Bloc Dbut de document,
Bloc Entte de page,
Bloc Haut de rupture,
Bloc Corps,
Bloc Complment de corps,
Bloc Bas de rupture,
Bloc Pied de page,
Bloc Fin de document,
Bloc Itration (ou de substitution).

Remarques:
Pour slectionner un bloc, il suffit de cliquer sur son intitul affich sur la gauche des tats.
Par dfaut, lintitul des blocs est affich en complet sur la gauche des tats. Pour afficher ces intituls
en abrg, sous le volet "Affichage", dans le groupe "Visualisation", dcochez loption "Nom complet des
blocs" (touche de raccourci [F10]).
Lors du clic sur le nom dun bloc ou dans une zone de ltat, les dlimiteurs du bloc sont mis en surbril-
lance.

5.2.1 Bloc Dbut de document


Le bloc Dbut de document est imprim une seule fois au dbut de lexcution de ltat. Ce bloc contient
gnralement le titre gnral du document, la date du jour et ventuellement lheure ddition.
Dans le traitement associ ce type de bloc, il est possible par exemple dafficher une fentre avertissant
du dbut de limpression.

5.2.2 Bloc Entte de page


Le bloc En-tte de page est un bloc dun tat cr sous lditeur dtats. Le bloc Entte de page est imprim
chaque nouvelle page. Ce bloc est excut aprs le bloc Dbut de document sil existe.
Le bloc En-tte de page contient des informations qui doivent figurer en haut de chaque page, par exemple le
titre ou un champ prdfini indiquant le numro de page.

5.2.3 Bloc Haut de rupture


Le bloc Haut de rupture est optionnel des tats crs avec lditeur dtats. Il est cr si une rupture est
demande sur un argument de tri. Si ce bloc existe, le bloc Fin de rupture existe obligatoirement.
Ce bloc est excut chaque changement de valeur de largument de tri, avant lexcution de la premire
itration du bloc Corps pour une nouvelle valeur de largument de tri.
Remarque: Les blocs Haut et Bas de rupture sont indissociables. Il est cependant possible de rendre un
de ces blocs invisible sil ne doit pas tre affich (dans la fentre de description du bloc ou par la proprit
..Visible).

60 Partie 1 : Editeur dtats


5.2.4 Bloc Corps
Le bloc Corps correspond au bloc principal de ltat. Ce bloc est obligatoirement prsent dans chaque tat.
Ce bloc est imprim autant de fois quil y a denregistrements imprimer.
Pour les tats libres, il est possible de rpter le bloc Corps autant de fois que ncessaire pour remplir la
page (option "Rpt jusquen bas de page" coche dans longlet "IHM" des caractristiques du bloc).
Remarque: Le bloc Corps ne peut pas tre supprim. Il est possible de rendre ce bloc invisible (dans la
fentre de description du bloc ou par la proprit ..Visible).

5.2.5 Bloc Complment de corps


Le bloc Complment de corps est un bloc dun tat cr avec lditeur dtat. Le bloc Complment de corps
est li au bloc Corps. Ce bloc permet de complter ldition jusquen bas de page, sil ny a plus assez de
lignes diter issues du bloc Corps.
Ce bloc simprime ds quil existe un espace libre entre le bloc Corps et le bloc Bas de page.

5.2.6 Bloc Bas de rupture


Le bloc Bas de rupture est un bloc optionnel prsent dans les tats crs avec lditeur dtats. Ce bloc est
cr si une rupture est demande sur un argument de tri. Si ce bloc existe, un bloc Haut de rupture existe
obligatoirement.
Ce bloc est excut chaque changement de valeur de largument de tri, aprs la dernire itration du bloc
Corps pour une valeur de largument de tri. Il contient gnralement des champs compteurs ou totaux sur les
enregistrements correspondant largument de tri.
Remarque: Les blocs Haut de rupture et Bas de rupture sont indissociables. Il est cependant possible de
rendre un de ces blocs invisible (dans la fentre de description du bloc ou par la proprit ..Visible).

5.2.7 Bloc Pied de page


Le bloc Pied de page est un des blocs disponibles dans un tat cr sous lditeur dtat. Le bloc Pied de
page est excut la fin de chaque page.
Le bloc Pied de page contient des informations qui doivent figurer en bas de chaque page, par exemple des
compteurs et/ou des totaux (gnrs lors de la cration du document ou ajouts par la suite) ou le numro
de la page en cours par rapport au nombre de pages totales.
Attention: Lauto-extensibilit des champs nest pas gre dans le bloc "Pied de page".

5.2.8 Bloc Fin de document


Le bloc Fin de document est excut une seule fois la fin de lexcution de ltat. Le bloc Fin de document
contient gnralement des compteurs et/ou des totaux (gnrs lors de la cration du document ou ajouts
par la suite).
Dans le traitement associ ce type de bloc, il est par exemple possible dafficher une fentre avertissant
de la fin de limpression.

5.2.9 Bloc Itration


Le bloc Itration est un bloc libre, cr manuellement sous lditeur dtats. Il peut tre utilis comme nim-
porte quel autre type de bloc. Par exemple, un bloc Itration peut tre utilis pour remplacer un bloc Entte
de page pour diffrencier les pages paires et les pages impaires.
La substitution de blocs est ralise en programmation grce la fonction iSubstBloc. Il est galement pos-
sible dimprimer un bloc spcifique grce la fonction iImprimeBloc.
Remarque: Les plans sont disponibles dans les tats. Dans la majorit des cas, lutilisation des plans dans
les tats permet de remplacer lutilisation des blocs ditration. Lutilisation des plans dans les tats est plus
simple que lutilisation des blocs ditration. Pour plus de dtails, consultez laide en ligne.

Partie 1 : Editeur dtats 61


5.3 Caractristiques des blocs dun tat
Pour afficher la fentre de description dun bloc, effectuez une des oprations suivantes:
double-cliquez sur lintitul du bloc.
sous le volet "Affichage", cliquez sur licne de regroupement du groupe "Options" ( ) ou sur la touche
[F12]. Dans la fentre qui saffiche, slectionnez le bloc et cliquez sur le bouton "Description".
slectionnez loption "Description du bloc" du menu contextuel du bloc (clic droit de la souris sur lintitul
du bloc).
Par exemple, fentre de description dun bloc "Haut de rupture":

5.4 Paramtres et options dimpression des blocs


Les diffrents paramtres et options dimpression dun bloc sont dfinis dans longlet "IHM" de sa descrip-
tion (double-clic sur lintitul du bloc).Les paramtres et les options dimpression des blocs dun tat sont les
suivants:
Visibilit:
Visible:
Le bloc peut tre affich ou non. Si un bloc est invisible, le bloc et ses champs ne seront pas affichs
dans ltat.
Cette caractristique peut tre modifie en programmation grce la proprit ..Visible.
Toujours visible:
Le bloc et ses champs seront affichs sur toutes les pages de ltat.
Cette option est disponible sur les blocs Entte de page et Pied de page.
Toujours invisible:
Le bloc et ses champs ne seront pas affichs dans ltat.
Cette option est disponible sur les blocs Entte de page et Pied de page.
Visible uniquement sur la premire page:
Le bloc et ses champs seront affichs uniquement sur la premire page de ltat.
Cette option est disponible sur les blocs Entte de page et Pied de page.
Invisible uniquement sur la premire page:
Le bloc et ses champs seront affichs sur toutes les pages de ltat sauf sur la premire page.

62 Partie 1 : Editeur dtats


Cette option est disponible sur les blocs Entte de page et Pied de page.
Scabilit:
Bloc scable:Si un bloc est scable et si lespace restant pour imprimer la totalit du bloc sur une
page est insuffisant, le contenu du bloc est imprim sur plusieurs pages.
Si un bloc nest pas scable et si lespace restant pour imprimer la totalit du bloc sur une page est
insuffisant, le contenu du bloc est imprim sur la page suivante.
Remplissage de la page:
Compltion jusquen bas de page:
Un bloc peut tre tir jusquen bas de page.
Remarque: Cette option est utile si le bloc a une image de fond ou une couleur de fond.
Prolonger les colonnes du tableau de ltat jusquen bas de page (uniquement pour les blocs conte-
nant un tableau):
Les colonnes dun tableau peuvent tre prolonges jusqu ce que la fin de la page soit atteinte.
Remarque: Pour prolonger les colonnes dun tableau jusquen bas de page, il est galement possible
dajouter un bloc Complment de corps. Les blocs Complment de corps sont automatiquement tirs
jusquen bas de page.
Rpt jusquen bas de page:
Le bloc peut tre recopi jusqu ce que le bas de la page soit atteint.
Cette option est disponible notamment pour le bloc Corps.
Conserver la place du pied de page lorsquil est invisible (uniquement pour les blocs Pied de page):
Par dfaut, la place occupe par le bloc Pied de page est toujours conserve dans les pages de ltat
(que le bloc soit visible ou non). Grce cette option, il est possible de conserver la place occupe par
le bloc Pied de page uniquement dans les pages o le bloc est visible. Cette option permet doptimiser
le remplissage des pages de ltat.
Rinitialiser le nombre de pages aprs impression du bloc: Par dfaut, le nombre de pages prsent
dans les champs prdfinis de type "Nombre de pages" et "Numro et nombre de pages" ne sont pas
rinitialiss durant limpression. Grce cette option, il devient possible de rinitialiser ces champs
prdfinis automatiquement aprs impression du bloc (lors dune rupture ou lors de la fin dimpres-
sion).
Cette option peut tre utilise par exemple lors de limpression dune srie de factures, pour numroter
les pages de chaque facture de faon indpendante.
Saut automatique:
Saut de page aprs le bloc:
Un saut de page peut tre automatiquement gnr aprs limpression du bloc.
Saut de colonne aprs bloc: (uniquement pour le bloc Corps des tats multicolonne)
Un saut de colonne peut tre automatiquement gnr aprs limpression du bloc.

5.5 Manipuler les blocs sous lditeur dtats

5.5.1 Crer un bloc


Pour crer un bloc dans un tat, ralisez une des manipulations suivantes:
sous le volet "Cration", dans le groupe "Structure", droulez "Blocs".
slectionnez loption "Ajouter un bloc" du menu contextuel de ltat (clic droit sur ltat en cours de cra-
tion).
cliquez sur le bouton "Ajouter un bloc" dans longlet "Blocs" de la description de ltat.
Remarque: Les blocs Haut et Bas de rupture sont indissociables. Il est cependant possible de rendre un de
ces blocs invisible (dans la fentre de description du bloc ou par la proprit ..Visible).

Partie 1 : Editeur dtats 63


5.5.2 Supprimer un bloc
Pour supprimer un bloc dun tat, utilisez:
soit loption "Supprimer le bloc / la rupture" du menu contextuel du bloc supprimer (clic droit de la sou-
ris sur lintitul du bloc).
soit le bouton "Supprimer un bloc" dans longlet "Blocs" de la description de ltat.
soit la touche [Suppr] du clavier (le bloc supprimer tant slectionn).
Remarque: Le bloc Corps ne peut pas tre supprim. Il est possible de rendre ce bloc invisible (dans la
fentre de description du bloc ou par la proprit ..Visible).

5.5.3 Rordonner les blocs


Lditeur dtats permet de rordonner les blocs prsents dans un tat. Lors de limpression de ltat, les
diffrents blocs seront imprims selon lordre spcifi sous lditeur dtats. Lordre dexcution des traite-
ments des blocs correspond lordre dimpression des blocs.
Pour rordonner les blocs dun tat:
1.Affichez la fentre de description de ltat (option "Description de ltat" du menu contextuel de ltat).
2.Affichez longlet "Blocs".
3.Modifiez lordre dimpression des blocs:

Remarque: Il est galement possible de modifier lordre dimpression des blocs dans la fentre de descrip-
tion de chaque bloc (option "Description du bloc" du menu contextuel du bloc).

5.6 Manipuler les blocs par programmation


Chaque bloc de ltat est associ diffrents traitements. Ces traitements permettent daffiner le fonction-
nement de ltat grce aux diffrents ordres de programmation du WLangage.
De plus, chaque bloc peut tre lui-mme manipul en WLangage: il suffit dutiliser le nom du bloc dans le
code WLangage.

64 Partie 1 : Editeur dtats


5.6.1 Traitements des blocs dun tat
Les traitements associs aux blocs dun tat sont les suivants:
Traitements Conditions dexcution
Initialisation Excut lors de linitialisation du bloc. Lordre dexcution des traitements
au lancement dun tat (y compris lors dun test) est le suivant:
traitement "Ouverture" de ltat.
traitement "Initialisation" des blocs de ltat.
traitement "Initialisation" des champs.
Ce traitement permet par exemple de:
initialiser des champs "Calcul".
initialiser des variables globales dclares dans le traitement "Ouver-
ture" de ltat.
effectuer des substitutions de blocs.
Avant impression Avant limpression dun bloc, les oprations suivantes sont ralises:
lecture de lenregistrement en cours.
affectation des valeurs lues dans les champs du bloc.
ralisation des calculs sur les valeurs des rubriques.
excution du traitement "Avant impression" du bloc.
ralisation des calculs sur les champs du bloc.
Lorsque ce traitement est appel, lditeur dtats sest assur quil reste
assez de place sur la page en cours pour imprimer le bloc en cours (cas
dun bloc inscable). Sil ny a pas assez de place pour imprimer le bloc
inscable en cours, il y a passage la page suivante (et impression des
blocs Pied de page, Entte de page et Complment de corps si ncessaire).
Si le bloc est auto extensible, le traitement "Avant impression de bloc" est
excut avant de savoir si le bloc va pouvoir tre imprim sur la page.
Ce traitement permet par exemple de:
consulter et modifier les champs du bloc concern.
affecter des images.
excuter la fonction iTerminePage dans le bloc Haut de rupture.
Attention : Ce traitement ne peut pas excuter de substitution du bloc en
cours. Il peut par contre demander la substitution dun autre bloc.
Aprs impression Excut aprs limpression du bloc.
Ce traitement permet par exemple de:
consulter et modifier les champs du bloc concern.
affecter des images.
remettre zro les champs qui viennent dtre imprims.
substituer les blocs (pris en compte pour les prochains blocs).
imprimer un bloc Itration (fonction iImprimeBloc).
Rupture ? Excut avant le traitement "Avant impression" du bloc Haut de rupture.
(Bloc Haut de rupture uni- Pour plus de dtails sur les ruptures dans un tat, consultez "Traitement de
quement) rupture", page 138.

Rappel: Si la destination de limpression est un fichier HTML, les blocs Haut de page et Bas de page ne sont
dits quune seule fois.

Partie 1 : Editeur dtats 65


Pour visualiser les traitements spcifiques un bloc, utilisez:
soit loption "Code du bloc" du menu contextuel du bloc (clic droit sur lintitul du bloc).
soit licne "Code" de la description du bloc.
Certaines fonctions et proprits sont spcifiques la manipulation des blocs.
Remarque: Les traitements associs un bloc de ltat sont excuts lors de limpression de ce bloc. Dans
ces traitements, vous pouvez utiliser du code WLangage. Pour plus de dtails sur lenchanement de ces
traitements, consultez "Enchanement des traitements associs un tat", page 135.

5.6.2 Manipuler un bloc dans un traitement WLangage


Pour manipuler un bloc dun tat dans un traitement WLangage, il suffit:
soit dutiliser directement le nom de ce bloc. Cette syntaxe est valable uniquement si ce bloc est mani-
pul depuis ltat auquel il appartient.
soit dutiliser la notation suivante: "<NomEtat>.<NomBloc>".
Un bloc peut tre manipul:
soit dans une fonction WLangage.
soit avec une proprit WLangage.
soit en affectation directe.

Par exemple:
// Imprimer un bloc ditration
iImprimeBloc("ITERATION1")
// Rendre le bloc "Corps" invisible
Corps..Visible = Faux

5.6.3 Proprits associes aux blocs dun tat


Les diffrentes proprits utilisables avec les blocs dun tat sont les suivantes:
Ancrage Permet de grer lancrage dun champ dans un tat.
Cadre Permet de connatre et de modifier les caractristiques du cadre dun
champ dun tat ou dun bloc dun tat.
CouleurFond Permet de grer la couleur de fond dun champ ou dun bloc dun tat.
Etat Permet de connatre et de modifier ltat daffichage dun lment.
Hauteur Permet de connatre et modifier la hauteur dun champ ou dun bloc dans
un tat.
HauteurInitiale Permet de connatre la hauteur de cration dun champ ou dun bloc dun
tat.
Image Permet de connatre et de modifier limage de fond dun champ ou dun
bloc.
Largeur Permet de connatre et modifier la largeur dun champ ou dun bloc dans
un tat.
Nom Permet de connatre le nom dun champ, dun tat ou dun bloc dun tat.
Plan Permet de connatre ou modifier le plan actif dun tat ou le plan auquel
appartient un champ.
TauxAncrageHauteur Permet de connatre et modifier le taux dancrage en hauteur dun champ.

66 Partie 1 : Editeur dtats


Traitement Permet de modifier les traitements excuter par les vnements dispo-
nibles sur un champ ou un tat, ...
Visible Permet de:
Savoir si un lment est visible
Rendre un lment visible ou invisible.

Partie 1 : Editeur dtats 67


6. Champs dun tat

6.1 Les diffrents types de champs


Plusieurs types de champs peuvent tre manipuls dans un tat ralis avec lditeur dtats:
Champ Libell.
Rubrique.
Champ calcul.
Image.
Code-Barres.
Champ RTF.
Champ prdfini.
Graphe.
Forme.
Interrupteur.
Etat interne (champ de type avanc).
Lien URL.
Champ de saisie.
Champ HTML.
Voici une description rapide de tous les types de champs disponibles, de leurs caractristiques et des mani-
pulations possibles sur ces champs. Pour plus de dtails, consultez laide en ligne.

6.1.1 Champ Libell


Le champ "Libell" permet dafficher une chane de caractres. Cette chane de caractres peut contenir:
soit le contenu dune rubrique (ou dune variable) de la source de donnes de ltat.
soit le contenu dun autre champ de ltat.
soit une valeur dtermine par programmation.
Pour insrer la valeur dune rubrique ou dun champ de ltat dans le texte du libell, saisissez le nom de la
rubrique ou du champ entre les caractres [% et %].
Par exemple, le libell peut correspondre : Le fournisseur [%NomFournisseur%] vend le produit [%NomPro-
duit%] pour [%PrixTTC%]. Les rubriques NomFournisseur, NomProduit et PrixTTC seront remplaces par leur
valeur lexcution de ltat.
La chane de caractres peut tre saisie sur plusieurs lignes. Dans ce cas, le champ doit tre multi-ligne et la
taille du champ doit tre suffisante.
Rappel: Loption "Auto-Extensible" permet daugmenter automatiquement la taille du champ en fonction de
son contenu.

68 Partie 1 : Editeur dtats


Exemples:

Modifier le libell
Le libell dun champ "Libell" peut tre modifi:
soit par programmation (proprit ..Libell).
soit sous lditeur dtats. Dans ce cas, deux mthodes sont possibles:
Mthode 1:
1.Slectionnez le champ. Les poignes de slection apparaissent autour du champ.
2.Cliquez une nouvelle fois sur le champ. Le curseur de la souris se transforme en curseur de saisie.
3.Saisissez le nouveau libell du champ.
4.Modifiez si ncessaire la mise en forme du libell grce aux options de mise en forme prsentes sous
le volet "Modification", dans le groupe "Edition rapide" du ruban:

Mthode 2:
1.Slectionnez le champ.
2.Affichez la fentre de description du champ (option "Description" du menu contextuel du champ).
3.Saisissez le nouveau libell dans chaque langue gre par le champ.
4.Modifiez si ncessaire la mise en forme du libell dans longlet "Style".

Libells multilingues
Si votre application ou votre site est multilangue, il est possible de saisir un libell diffrent pour chaque
langue gre par ltat.
Selon la langue dexcution du projet, le libell correspondant sera imprim.
Transformer un champ "Libell" en champ "RTF"
Pour afficher du texte au format RTF dans un champ "Libell", cochez loption "Format RTF" dans longlet
"Dtail" de la description du champ (option "Description" du menu contextuel du champ).
Le champ "Libell" se transforme alors en champ "RTF". Toutes les caractristiques du champ "Libell" sont
conserves.
Pour plus de dtails sur le champ RTF, consultez "Champ RTF", page 72

Partie 1 : Editeur dtats 69


6.1.2 Champ Rubrique
Le champ "Rubrique" permet dditer le contenu dune rubrique de fichier de donnes. La rubrique peut tre:
une rubrique de la source de donnes de ltat (fichier de donnes, requte, variable, ...).
une rubrique dun fichier accessible par une liaison.
Ce champ peut galement tre affect par programmation.
Exemples:

Pour dfinir la rubrique lie au champ "Rubrique":


1.Affichez longlet "Liaison" de la fentre de description du champ (option "Description" du menu contex-
tuel du champ).
2.Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de ltat,
slectionnez directement cette rubrique dans la liste "Rubrique relie".
3.Pour lier le champ avec une rubrique nappartenant pas la source de donnes de ltat, slectionnez
loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.

Champ "Rubrique" spcifique: "Montaire + Euro"


Si le champ "Rubrique" est de type "Montaire + Euro", il est possible de grer:
la devise mmorise: devise des donnes prsentes dans la source de donnes de ltat. Si le champ
est manipul par programmation, la devise de la valeur sera la devise mmorise.
la devise affiche: devise utilise pour afficher la valeur lors de limpression de ltat. Cette devise peut
tre diffrente de la devise mmorise. La conversion est automatiquement ralise.
le double-affichage: il est possible de relier deux champs de type "Montaire + Euro" entre eux. Dans ce
cas, lditeur dtats distingue deux types de champs:
le champ de base: ce champ contient la valeur prsente dans la source de donnes de ltat.
le champ suiveur: ce champ permet dafficher la valeur du champ de base dans la devise voulue.

6.1.3 Champ Calcul


Le champ "Calcul" permet de raliser des calculs dans un tat. Ces calculs peuvent tre raliss:
sur une rubrique de la source de donnes.
sur un champ prsent dans ltat.
par programmation.
Exemples:

70 Partie 1 : Editeur dtats


Champ "Calcul" spcifique: "Montaire + Euro"
Si le champ "Calcul" est de type "Montaire + Euro", il est possible de grer:
la devise mmorise: devise des donnes prsentes dans la source de donnes de ltat. Si le champ
est manipul par programmation, la devise de la valeur sera la devise mmorise.
la devise affiche: devise utilise pour afficher la valeur lors de limpression de ltat. Cette devise peut
tre diffrente de la devise mmorise. La conversion est automatiquement ralise.
le double-affichage: il est possible de relier deux champs de type "Montaire + Euro" entre eux. Dans ce
cas, lditeur dtats distingue deux types de champs:
le champ de base: ce champ contient la valeur prsente dans la source de donnes de ltat.
le champ suiveur: ce champ permet dafficher la valeur du champ de base dans la devise voulue.

6.1.4 Champ Image


Le champ "Image" permet dafficher une image dans ltat. Limage affiche dans le champ peut:
tre slectionne directement grce au slecteur de fichiers (depuis la fentre de description du champ).
correspondre au contenu dune rubrique de la source de donnes (par exemple, si la source de donnes
est un fichier HFSQL, la rubrique peut tre de type mmo Image ou de type chane de caractres conte-
nant le chemin complet de limage).
Le champ "Image" est alors li cette rubrique.

Pour dfinir la rubrique ou la variable lie au champ "Image":


1.Affichez longlet "Liaison" de la fentre de description du champ (option "Description" du menu contex-
tuel du champ).
2.Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de ltat,
slectionnez directement cette rubrique dans la liste "Rubrique relie".
3.Pour lier le champ avec une rubrique nappartenant pas la source de donnes de ltat, slectionnez
loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.

Images multilangues
Si votre application ou votre site est multilangue, il est possible de slectionner une image diffrente pour
chaque langue gre par ltat. Cette option est intressante par exemple lorsque les images contiennent du
texte.
Selon la langue dexcution du projet, limage correspondante sera imprime.

6.1.5 Champ Code-barres


Le champ "Code-barres" permet dimprimer trs simplement des codes-barres dans vos tats.
La valeur dun champ "Code-barres" correspond une chane alphanumrique.
Le champ "Code-barres" peut tre associ une rubrique de la source de donnes de ltat ou tre affect
par programmation.
Remarque: Il est galement possible de spcifier une valeur initiale dans longlet "Gnral" de la fentre de
description du champ.
Lditeur dtats propose de nombreux types de code-barres et permet aussi bien de les imprimer horizonta-
lement que verticalement.

Partie 1 : Editeur dtats 71


Exemple:

Pour dfinir la rubrique ou la variable lie au champ "Code-barres":


1.Affichez longlet "Liaison" de la fentre de description du champ (option "Description" du menu contex-
tuel du champ).
2.Pour lier le champ avec une rubrique appartenant la source de donnes de ltat, slectionnez directe-
ment cette rubrique dans la liste "Rubrique relie".
3.Pour lier le champ avec une rubrique nappartenant pas la source de donnes de ltat, slectionnez
loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.

6.1.6 Champ RTF


Le champ "RTF" (Rich Text Format) permet dafficher une chane de caractres formate dans votre tat.
Cette chane de caractres est au format RTF. Des balises spcifiques permettent de dfinir la mise en
forme de chaque caractre ou chane de caractres. Ces balises ne sont pas affiches dans le champ, bien
entendu.

Remarque: Le texte affich dans le champ peut:


contenir la valeur dune rubrique ou dune variable imprime dans ltat.
Pour insrer la valeur dune rubrique ou dun champ de ltat dans le texte du libell, saisissez le nom de
la rubrique ou du champ entre les caractres [% et %].
Par exemple, le texte du champ peut correspondre : Le fournisseur [%NomFournisseur%] vend le produit
[%NomProduit%] pour [%PrixTTC%]. Les rubriques NomFournisseur, NomProduit et PrixTTC seront rempla-
ces par leur valeur lexcution de ltat.
provenir dune rubrique ou dune variable de type texte prsente dans la source de donnes de ltat.
Si le champ est li une rubrique (ou une variable), le nom de la rubrique associe est affich dans la
liste "Rubrique relie" de longlet "Liaison" de la description du champ.

Exemple:

Intitul dun tat utilisant des polices de couleurs diffrentes

Modifier le texte dun champ "RTF"


Le texte dun champ "RTF" peut tre modifi:
soit par programmation (proprit ..Libell).
soit sous lditeur dtats:
1.Slectionnez le champ (cliquez sur le champ par exemple). Les poignes de slection apparaissent
autour du champ.

72 Partie 1 : Editeur dtats


2.Cliquez une nouvelle fois sur le champ. Le curseur de la souris se transforme en curseur de saisie.
3.Saisissez le nouveau texte du champ.
4.Modifiez si ncessaire la mise en forme du texte grce la barre de mise en forme qui saffiche au-des-
sus du champ:

Transformer un champ "Libell" en champ "RTF"


Pour afficher du texte au format RTF dans un champ "Libell", cochez loption "Format RTF" dans
longlet "Dtail" de la description du champ (option "Description" du menu contextuel du champ).
Le champ "Libell" devient un champ "RTF". Toutes les caractristiques du champ "Libell" sont conserves.

Transformer un champ "Rubrique" en champ "RTF"


Pour afficher du texte au format RTF dans un champ "Rubrique", cochez loption "Format RTF" dans
longlet "Dtail" de la description du champ (option "Description" du menu contextuel du champ).
Le champ "Rubrique" devient un champ "RTF". Toutes les caractristiques du champ "Rubrique" sont conser-
ves.

Transformer un champ "RTF" en champ "Rubrique"


Pour afficher les balises RTF ou pour lier le champ une rubrique de type autre que texte, dcochez loption
"Format RTF" dans longlet "Dtail" de la description du champ (option "Description" du menu contextuel du
champ).
Le champ "RTF" devient un champ "Rubrique". Toutes les caractristiques du champ "RTF" sont conserves.

6.1.7 Champ Pr-dfini


Le champ "Pr-dfini" permet dafficher des informations courantes sans avoir les programmer. Il est ainsi
possible dinsrer dans un tat un champ "Pr-dfini" pour afficher les informations suivantes:
Date systme,
Heure systme,
Numro de la page en cours,
Nombre de pages total de ltat,
Numro de la page en cours par rapport au nombre de pages total de ltat.

Exemple:

Pour modifier le type dinformation affich dans un champ "Pr-dfini":


1.Affichez longlet "Gnral" de la fentre de description du champ "Pr-dfini" (option "Description" du
menu contextuel du champ).
2.Slectionnez le type dinformation affich (combo "Type").
3.Validez.

Partie 1 : Editeur dtats 73


6.1.8 Champ Graphe
Le champ "Graphe" permet de visualiser et dimprimer un graphe dans vos tats. Les types de graphes dis-
ponibles sont les suivants:
Secteur (Camembert), beignet, hmicycle.
Histogramme (group ou empil, vertical ou horizontal)
Courbe, aire
Nuage de points, radar
Graphe bulles
Graphe boursier (Chandelier, MinMax ou BarCharts).
Exemple:

Informations spcifiques la cration du graphe


Lors de la cration dun graphe, un assistant est automatiquement excut. Cet assistant permet de saisir
les informations ncessaires la cration du champ Graphe. Ces informations sont les suivantes:
le type du graphe (boursier, camembert, histogramme, ...).
les paramtres du graphe: titre, lgende, graphe en relief, affichage des tiquettes, ...
les paramtres des axes: titres, quadrillage, ...

74 Partie 1 : Editeur dtats


les caractristiques des sries:
la source et les donnes affiches par les tiquettes de catgorie (programmation, fichier de donnes,
requte, tableau WLangage, source de donnes de ltat).

le libell de la srie (utilis pour les tiquettes de sries):

la source de la srie (programmation, fichier de donnes, requte, tableau WLangage, source de don
nes de ltat)
les donnes affiches par la srie.
lpaisseur du trait, la couleur et le type de points.

Remarque: si la source de donnes correspond la source de donnes de ltat, il est possible de dfinir:
le bloc dalimentation,
le champ ou la rubrique correspondant la srie,
le mode de slection des donnes.

6.1.9 Champ Forme


Un champ "Forme" permet dinsrer des formes gomtriques dans un tat. Il est ainsi possible dinsrer par
exemple:
des lignes horizontales ou verticales,
des cercles,
des rectangles ( bords droits ou arrondis).
Le style, lpaisseur et la couleur du trait sont entirement paramtrables.

6.1.10 Champ Interrupteur


Un champ "Interrupteur" correspond une case cocher.
Si la valeur du champ est Vrai, la case est coche:
Si la valeur du champ est Faux, la case est dcoche:
Un champ "Interrupteur" peut tre li une rubrique ou une variable de la source de donnes de ltat. Par
exemple, si la source de donnes correspond un fichier HFSQL, la rubrique peut tre de type boolen ou de
type interrupteur.
La taille, la couleur de fond et la couleur de la case cocher sont entirement paramtrables.

Partie 1 : Editeur dtats 75


Exemple:

Pour dfinir la rubrique ou la variable lie au champ "Interrupteur":


1.Affichez longlet "Liaison" de la fentre de description du champ (option "Description" du menu contex-
tuel du champ).
2.Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de ltat,
slectionnez directement cette rubrique dans la liste "Rubrique relie".
3.Pour lier le champ avec une rubrique nappartenant pas la source de donnes de ltat, slectionnez
loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.

6.1.11 Champ Etat interne


Grce aux champs de type "Etat interne", il est possible dimprimer plusieurs tats (tats secondaires) dans
un seul tat (tat principal) sans programmation.
Par exemple, ltat principal suivant est compos de deux tats secondaires imprims cte cte:
un tat affichant les donnes sous forme de tableau.
un tat affichant les donnes sous forme de graphe.

Pour plus de dtails sur les tats internes, consultez laide en ligne (mot-cl : "Etat interne").
Avantages des tats internes par rapport aux tats imbriqus
Lditeur dtats permet galement dimprimer simultanment plusieurs tats grce aux tats imbriqus.
Cependant, les tats imbriqus sont moins simples dutilisation. En effet, les tats imbriqus ncessitent:
lutilisation de la fonction iImprimeEtat pour lancer limpression de ltat secondaire.
lobligation dimprimer ltat imbriqu la suite de ltat principal. Il nest pas possible dimprimer ces
tats cte cte.
Les tats internes permettent dimprimer sans programmation plusieurs tats:
soit les uns en dessous des autres,
soit les uns ct des autres.
Pour plus de dtails sur les tats imbriqus, consultez "Etats imbriqus", page 108.

76 Partie 1 : Editeur dtats


6.1.12 Champ Lien URL
Un champ "Lien URL" permet dinsrer des liens dans un tat. Il est ainsi possible dinsrer par exemple:
un lien vers une adresse email,
un lien vers une adresse de site Internet,
...
Le champ "Lien URL" est actif uniquement si ltat est imprim dans un fichier HTML. Dans les autres cas, le
champ "Lien URL" est visible mais inactif.
Exemple:

Pour dfinir la rubrique ou la variable lie au champ "Lien URL":


1.Affichez longlet "Liaison" de la fentre de description du champ (option "Description" du menu contex-
tuel du champ).
2.Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de ltat,
slectionnez directement cette rubrique dans la liste "Rubrique relie".
3.Pour lier le champ avec une rubrique nappartenant pas la source de donnes de ltat, slectionnez
loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.

6.1.13 Champ de saisie


Un champ de saisie permet de saisir et dafficher du texte dans un tat. Il est ainsi possible dutiliser un
champ de saisie:
pour permettre lutilisateur de saisir des informations imprimer,
pour permettre lutilisateur de modifier les informations imprimer,
...

Partie 1 : Editeur dtats 77


Le champ de saisie est actif uniquement si ltat est affich en mode "Aperu avant impression" ou si il est
imprim dans un fichier PDF. Dans les autres cas, le champ de saisie est visible mais inactif.

Caractristiques des champs de saisie


Lors de la cration dun champ de saisie dans un tat, il est possible de dfinir:
le type du champ (texte, numrique, date, heure),
le masque associ: les masques proposs sont les masques grs par le format PDF. Ils sont disponibles
pour les numriques, les dates et les heures.
la taille de saisie, cest--dire le nombre maximum de caractres autoris dans le champ. Si ce paramtre
correspond 0, il ny a aucune limite.
le cadrage horizontal,
la valeur initiale,
le style du libell et de la zone de saisie.

Remarques:
Champ de saisie multi ligne: si lutilisateur saisit plus de lignes que ce qui est visible, les lignes non
visibles ne seront pas imprimes. Lors de la saisie, les champs de saisie grent un ascenseur vertical.
Style de la zone de saisie: Dans cette version, seule la police "Arial" est utilisable.
Le champ de saisie nest pas li une rubrique dun fichier ou dune requte. Pour afficher des informa-
tions provenant dun fichier ou dune requte, il est ncessaire de raliser une affectation du champ par
programmation.
Le cadre de la zone de saisie nest pas paramtrable (paisseur, couleur, ...).
Il nest pas possible dutiliser un type montaire (le symbole Euro nest pas gr).
Pour plus de dtails, consultez "Etats avec saisie", page 100.

6.1.14 Champ HTML


Le champ "HTML" permet dafficher et dimprimer un contenu HTML dans votre tat. Le contenu HTML cor-
respond une chane de caractres au format HTML. Des balises spcifiques permettent de dfinir la mise
en forme de chaque caractre ou chane de caractres. Ces balises ne sont pas affiches dans le champ,
bien entendu.
Remarque: Le texte affich dans le champ peut:
contenir la valeur dun champ de saisie HTML prsent dans une fentre.
provenir dun fichier HTML prsent sur le poste.
provenir dune rubrique Mmo ou dune variable de type texte prsente dans la source de donnes de
ltat.
Si le champ est li une rubrique (ou une variable), le nom de la rubrique associe est affich dans la
liste "Rubrique relie" de longlet "Liaison" de la description du champ.

6.2 Caractristiques des champs dun tat


Les diffrentes caractristiques dun ou de plusieurs champs peuvent tre visualises et/ou modifies dans:
la fentre de description de ce champ.
le modifieur.
Lditeur dtats permet galement directement de:
modifier le libell dun champ.
modifier le nom dun champ.

78 Partie 1 : Editeur dtats


6.2.1 Fentre de description dun champ
Pour afficher la fentre de description dun champ, utilisez une des mthodes suivantes:
double-cliquez sur le champ (conseill).
slectionnez loption "Description" du menu contextuel du champ (clic droit de la souris).
slectionnez le champ et sous le volet "Modification", cliquez sur licne de regroupement du groupe
"Edition rapide" (touches [ALT + ENTREE]).
sous le volet "Affichage", cliquez sur licne de regroupement du groupe "Options" (touche [F12]).
Slectionnez ensuite le champ et cliquez sur le bouton "Description".
Remarque: Il est possible dafficher la fentre de description pour une slection de champs. Seules les
caractristiques communes aux diffrents champs slectionns seront affiches.

6.2.2 Dtail de la fentre de description


La fentre de description regroupe les diffrentes caractristiques du ou des champs slectionns par on-
glet:
Onglet Caractristiques
Gnral Permet de spcifier le nom du champ et toutes les caractristiques daffichage du champ.
Par exemple:
le libell du champ (ce libell peut tre multilingue).
le type dinformation affich dans le champ (texte, numrique, ...).
le masque daffichage utilis pour le champ (ce masque peut tre multilingue). Pour
plus de dtails, consultez laide en ligne (mot--cl : "Masque, Masque multilingue").
limage affiche dans un champ Image, le type de code-barres utilis dans un champ
Code-barres, le type de graphe utilis dans un champ Graphe, etc. Pour plus de dtails
sur les caractristiques dun champ, consultez directement laide sur le type de ce
champ.
IHM Permet de dfinir:
les diffrents paramtres dimpression du champ (visible, scable, ...).
la taille du champ.
la position du champ dans ltat et dans le bloc auquel le champ appartient.
lancrage du champ.
le groupe de champs associ.
le plan associ.
Liaison Permet de dfinir la rubrique ou la variable prsente dans la source de donnes laquelle
le champ est li. La valeur de cette rubrique ou de cette variable sera affiche dans le
champ.
Style Permet de dfinir:
laspect du champ (couleur de fond, cadre, ...).
la police utilise dans le champ.

Partie 1 : Editeur dtats 79


6.3 Multilingue dans les champs dun tat
Dans une application ou un site multilingue, lditeur dtats gre le multilingue pour les lments suivants
dun tat:
les libells, les masques daffichage,
les images, les liens.
En excution, lditeur dtats slectionnera automatiquement le libell, le masque ou limage correspon-
dant la langue dexcution du projet.
Rappel: La langue dexcution du projet par dfaut est dfinie dans longlet "Langues" de la description du
projet. Pour afficher la description du projet, sous le volet "Projet", dans le groupe "Projet", cliquez sur "Des
cription".
Pour plus de dtails sur le multilingue dans les champs dun tat, consultez laide en ligne (mot-cl: "Multilin
gue, Champs dun tat").

6.4 Groupe de champs


Un groupe de champs est un ensemble de champs regroups de faon modifier (ou consulter) leurs carac-
tristiques communes (par exemple leur tat de visibilit) en une seule opration, par programmation.
Sous lditeur dtats, tous les champs de tous les groupes sont affichs: certains champs peuvent donc se
superposer.
Un mme champ peut tre associ plusieurs groupes.
Exemple: Pour rendre plusieurs champs invisibles, il suffit de rendre le groupe invisible. Dans le cas dune
fiche dtat civil, certains champs sont relatifs au sexe masculin alors que dautres sont relatifs au sexe fmi-
nin. Le regroupement des champs relatifs chaque sexe permet de les rendre visibles ou invisibles selon le
sexe choisi.
Pour plus de dtails sur les groupes de champs, consultez laide en ligne (mot-cl: "Groupe de champs").

6.5 Manipuler les champs sous lditeur


Ce paragraphe dtaille les principales manipulations pouvant tre effectues sur un champ prsent dans un
tat. Pour plus de dtails, consultez laide en ligne (mot-cl: "Manipuler, Manipuler les champs dun tat").

6.5.1 Crer un champ


Pour crer un champ dans un tat:
1.Sous le volet "Cration", cliquez sur le type de champ crer:

2.Cliquez dans ltat la position o le champ doit tre cr.


Dautres modes de cration de champs sont galement possibles. Pour plus de dtails, consultez laide en
ligne (mot-cl: "Crer, Un champ dans un tat").

6.5.2 Slectionner un ou plusieurs champs


Pour slectionner un champ, cliquez sur le champ slectionner.
Le champ slectionn saffiche avec des poignes.

80 Partie 1 : Editeur dtats


Le nom du champ slectionn apparat dans la barre dtat.

Pour slectionner plusieurs champs en mme temps, plusieurs mthodes sont disponibles:
Mthode 1: laide de la touche [Ctrl].
Mthode 2: laide du lasso.

Pour slectionner plusieurs champs en mme temps laide de la touche [Ctrl]:


1.Appuyez sur la touche [Ctrl] et maintenez cette touche enfonce.
2.Slectionnez les champs avec la souris (clic de la souris sur chaque champ).
3.Relchez la touche [Ctrl]. Les champs slectionns saffichent avec des poignes.

Remarques:
Pour ajouter/supprimer un champ une slection existante, maintenez la touche [Ctrl] enfonce, puis
cliquez sur le champ ajouter/supprimer de la slection.
Lors de laffichage de la fentre 7 onglets (option "Description" du menu contextuel de la slection),
seules les options communes aux champs slectionns sont affiches.
Le lasso de la souris correspond une zone de slection des champs. Cette zone est matrialise par un
rectangle en pointills.

Pour slectionner plusieurs champs en mme temps:


1.Cliquez ct du premier champ slectionner et maintenez le bouton gauche de la souris enfonc.
2.Dplacez la souris pour slectionner tous les champs: la zone de slection est matrialise par un rec-
tangle en pointills (le lasso de la souris).
3.Une fois la slection ralise, relchez le bouton de la souris. Les diffrents types de poignes sont pr-
sents dans les Notes.

Partie 1 : Editeur dtats 81


Remarques:
Par dfaut, tous les champs dont une partie quelconque est situe dans la zone seront slectionns.
Pour ne slectionner que les champs entirement situs dans le lasso, maintenir la touche [Shift] enfon-
ce pendant les diffrentes tapes de slection.
Pour ajouter/supprimer un champ une slection existante, maintenez la touche [Ctrl] enfonce, puis
cliquez sur le champ ajouter/supprimer de la slection.
Lors de laffichage de la fentre de description (option "Description" du menu contextuel de la slection),
seules les options communes aux champs slectionns sont affiches.
Pour plus de dtails sur la slection dun ou de plusieurs champs, consultez laide en ligne (mot-cl: "Slec
tionner, Un champ").

6.5.3 Copier un champ


Un ou plusieurs champs peuvent tre copis dans un mme tat ou dun tat vers un autre.
La description et le code du champ copi seront identiques ceux du champ dorigine.

Pour copier un champ dans un mme tat:


1.Slectionnez le champ copier.
2.Sous le volet "Accueil", dans le groupe "Edition", cliquez sur "Copier".
Remarque: Il est galement possible de slectionner loption "Copier" du menu contextuel du champ.
3.Sous le volet "Accueil", dans le groupe "Edition", cliquez sur "Coller".
Remarque: Il est galement possible de slectionner loption "Coller" du menu contextuel du champ.
4.Positionnez le champ laide de la souris (le contour du champ apparat en pointill et permet de posi-
tionner le nouveau champ).

Pour copier un champ dun tat dans un autre tat:


1re mthode:
Dans le premier tat, slectionnez le champ copier.
Sous le volet "Accueil", dans le groupe "Edition", cliquez sur "Copier".
Remarque: Il est galement possible de slectionner loption "Copier" du menu contextuel du champ.
Affichez ltat de destination sous lditeur dtats.
Sous le volet "Accueil", dans le groupe "Edition", cliquez sur "Coller".
Remarque: Il est galement possible de slectionner loption "Coller" du menu contextuel du champ.
Positionnez le champ laide de la souris (le contour du champ apparat en pointill et permet de posi-
tionner le nouveau champ).
2me mthode: (les deux tats doivent tre affichs sous lditeur)
Dans le premier tat, slectionnez le champ copier.
Maintenez le bouton gauche de la souris enfonc et faites glisser le champ dans ltat destination.
Relchez la souris une fois le champ positionn dans ltat destination (le contour du champ en poin-
till permet de positionner rapidement le champ coll).

6.5.4 Copier le style dun champ


La copie du style dun champ consiste recopier les caractristiques du style dun champ sur un autre
champ. Seul le style du champ est copi (et non le contenu du champ).
Cette copie peut tre ralise entre:
Deux champs de mme type.
Deux champs de types diffrents. Dans ce cas, seules les caractristiques de style communes aux deux
champs sont copies.

82 Partie 1 : Editeur dtats


La copie du style peut tre effectue entre deux champs appartenant la mme fentre ( la mme page ou
au mme tat) ou entre deux champs appartenant des fentres diffrentes ( des pages diffrentes ou
des tats diffrents).
Remarque: Le style dun champ correspond aux caractristiques spcifies dans longlet "Style" de la fen
tre de description du champ.

Pour raliser une copie de style entre deux champs:


1.Slectionnez le champ comportant le style copier.
2.Sous le volet "Modification", dans le groupe "Edition rapide", cliquez sur , [Ctrl]+[Shift]+[C]).
Le curseur de la souris se transforme en pinceau:
3.Slectionnez le champ dans lequel le style doit tre copi. Ce champ peut tre dun type diffrent du
champ dont le style est copi.
Remarque: Pour appliquer le style dun champ sur plusieurs champs, maintenez la touche [Ctrl] enfonce
lors de la copie du style sur les champs destination.

6.5.5 Dplacer un champ


Pour dplacer un ou plusieurs champs dun tat:
1.Slectionnez le ou les champs dplacer.
2.Maintenez le bouton gauche de la souris enfonc et dplacez les champs avec la souris. Le correcteur
dinterface en temps rel permet daligner les champs dplacs (voir paragraphe ci-dessous).
Remarques:
Un champ appartient obligatoirement un bloc.
Le dplacement des champs slectionns peut galement seffectuer avec les flches du clavier. Pour
acclrer le dplacement avec les flches, il faut appuyer sur la touche [Ctrl] en mme temps que la
flche. Pour ralentir le dplacement avec les flches, il faut appuyer sur la touche [Shift] en mme temps
que la flche.

6.5.6 Supprimer un champ


Pour supprimer un ou plusieurs champs dun tat:
1.Slectionnez le ou les champs supprimer.
2.Appuyez sur la touche [Suppr].

6.5.7 Utiliser un champ hors tat


Gnralement, les champs appartiennent un tat. Ces champs apparaissent donc dans ltat en dition et
en excution.
Il est galement possible de positionner un champ dans la fentre daccueil dun tat: le champ est alors
"hors tat". Ce champ sera visible uniquement en dition. Ce champ ne sera pas imprim.

Partie 1 : Editeur dtats 83


Un champ "hors tat" permet par exemple de conserver un champ dun tat sans limprimer. Il est ainsi pos-
sible dutiliser le contenu du champ en programmation (comme une variable).
Pour crer un champ "hors tat":
1.Sous le volet "Cration", cliquez sur le type de champ crer.
2.Cliquez dans la partie gauche de la fentre daccueil o le champ doit tre cr.

6.6 Aligner les champs dun tat


Lditeur dtats met votre disposition plusieurs moyens pour aligner les champs prsents dans un tat:
les options dalignement.
le correcteur dinterface en temps rel (positionnement automatique).
le zoom.
les rgles et les repres.
la grille magntique.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Alignement").

6.7 Manipuler les champs par programmation

6.7.1 Traitements des champs dun tat


Les traitements associs aux champs dun tat sont les suivants:
Traitements Conditions dexcution
Initialisation Excut lors de linitialisation de ltat. Lordre dexcution des traitements
au lancement dun tat (y compris lors dun test) est le suivant:
traitement "Ouverture" de ltat.
traitement "Initialisation" des blocs de ltat.
traitement "Initialisation" des champs.
Avant impression Excut avant limpression du champ.
Entre dans Excut lors de lentre du curseur de saisie dans le champ. Ce traitement
est disponible uniquement pour les champs de saisie utiliss en aperu
avant impression.
Sortie de Excut lors du changement de champ (touche TAB, changement de champ
par la souris, ...). Ce traitement est disponible uniquement pour les champs
de saisie utiliss en aperu avant impression.
Modification de Excut chaque modification du contenu du champ (saisie ou effacement
dune lettre par exemple). Ce traitement est disponible uniquement pour les
champs de saisie utiliss en aperu avant impression.
Clic sur Excut lors du clic sur le champ. Le clic sur le champ est disponible uni-
quement dans laperu avant impression. Une toile permet lutilisateur
didentifier simplement les champs cliquables.

Dans ces traitements, vous pouvez saisir du code en WLangage. Pour plus de dtails sur lenchanement de
ces traitements, consultez "Enchanement des traitements associs un tat", page 135.

84 Partie 1 : Editeur dtats


Pour visualiser et/ou modifier les traitements dun champ, vous pouvez utiliser une des mthodes suivantes:
slectionnez le champ et appuyez sur la touche [F2].
slectionnez le champ et affichez le volet "Visualisation contextuelle du code".
slectionnez loption "Code" du menu contextuel du champ (clic droit sur le champ).
cliquez sur licne "Code" de la description du champ.

6.7.2 Manipuler un champ dans un traitement WLangage


Pour manipuler un champ dun tat dans un traitement WLangage, il suffit:
soit dutiliser directement le nom de ce champ. Cette syntaxe est valable uniquement si ce champ est
manipul depuis ltat auquel il appartient,
soit dutiliser la notation suivante: "<NomEtat>.<NomChamp>".
Un champ peut tre manipul:
soit dans une fonction WLangage,
soit avec une proprit WLangage,
soit en affectation directe.
Par exemple:
// Modification de la couleur de fond du champ ChTotalHT
// dans ltat ETAT_Commande
ChTotalHT..CouleurFond = BleuClair
// quivalent
// ETAT_Commande.ChTotalHT..CouleurFond = BleuClair

6.7.3 Proprits associes aux champs dun tat


Les diffrentes proprits utilisables sur les champs dun tat sont les suivantes:
Altitude Permet de grer laltitude dun champ.
Ancrage Permet de grer lancrage dun champ dans un tat.
CadrageHorizontal Permet de connatre et de modifier le cadrage horizontal dun champ.
CadrageVertical Permet de connatre et de modifier le cadrage vertical dun champ.
Cadre Permet de connatre et de modifier les caractristiques du cadre dun
champ dun tat ou dun bloc dun tat.
Couleur Permet de connatre ou modifier la couleur de la police dun texte dun
champ Libell ou calcul dun tat.
CouleurFond Permet de grer la couleur de fond dun champ ou dun bloc dun tat.
DateDbutPriodeAffiche Permet de connatre la date de dbut de la priode en cours dimpression
dans un champ Planning ou Agenda dun tat.
DateFinPriodeAffiche Permet de connatre la date de fin de la priode en cours dimpression dans
un champ Planning ou Agenda dun tat.
DeviseAffichage Permet de connatre et modifier la devise utilise lors de laffichage et / ou
de la saisie dans un champ de type "Montaire + Euro".
DeviseMmoire Permet de connatre et modifier la devise utilise lors de la manipulation
dun champ de type "Montaire + Euro" par programmation.
DroiteAGauche Permet de connatre le sens dcriture rel, effectif sur un champ ou un
tat.

Partie 1 : Editeur dtats 85


Etat Permet de connatre et de modifier ltat daffichage dun lment.
GranularitQuadrillage Permet de connatre et de modifier la taille de la grille utilise pour laffi-
chage du quadrillage dans un champ Planning ou un champ Agenda dun
tat.
Groupe Permet de:
savoir si le champ appartient ou non un groupe de champs.
associer un champ un groupe de champs.
Hauteur Permet de connatre et modifier la hauteur dun champ ou dun bloc dans
un tat.
HauteurFuture Permet de connatre la hauteur dun champ auto-extensible dans un tat
lorsque ce champ sera agrandi.
HauteurInitiale Permet de connatre la hauteur de cration dun champ ou dun bloc dun
tat.
HauteurPixel Permet de connatre la hauteur dun champ dun tat en pixels.
Image Permet de connatre et de modifier limage de fond dun champ ou dun
bloc.
ImageDroule Permet de connatre et/ou modifier limage dune ligne droule dans une
rubrique hirarchique dun tat de type "Tableau hirarchique".
ImageEnroule Permet de connatre et/ou modifier limage dune ligne enroule dans une
rubrique hirarchique dun tat de type "Tableau hirarchique".
Largeur Permet de connatre et modifier la largeur dun champ ou dun bloc dans
un tat.
LargeurInitiale Permet de connatre la largeur de cration dun champ dun tat.
LargeurPixel La proprit ..LargeurPixel permet de connatre la largeur dun champ dun
tat en pixels.
Libell Permet de connatre et modifier le texte dun champ Libell ou lien.
MasqueSaisie Permet de connatre et modifier le masque de saisie.
Multiligne Permet de:
savoir si un champ dun tat est multi-ligne
modifier loption "Multi-ligne" dun champ dun tat.
Nom La proprit ..Nom permet de connatre le nom dun champ, dun tat ou
dun bloc dun tat.
NomEtatInterne Permet de:
Connatre le nom de ltat imprim dans un champ de type "Etat
Interne".
Changer ltat imprim dans un champ de type "Etat Interne".
Plan Permet de:
Connatre le plan actif dun tat ou le plan auquel appartient un champ.
Modifier le plan actif dun tat ou associer un champ un autre plan.
Police Permet de:
Connatre lidentifiant de la police utilise dans un champ dun tat.
Modifier la police utilise dans un champ dun tat.

86 Partie 1 : Editeur dtats


PoliceAlphabet Permet de:
Connatre lalphabet actuellement utilis par les polices cran dun
champ.
Modifier lalphabet utilis par les polices cran dun champ.
PoliceBarre Permet de:
Savoir si le texte affich est barr ou non.
Barrer ou non le texte affich dans un champ.
PoliceCondense Permet de:
Savoir si les caractres du texte affich sont condenss ou non.
Condenser ou non les caractres du texte affich.
PoliceEtendue Permet de:
Savoir si les caractres du texte affich sont tendus ou non.
tendre ou non les caractres du texte affich.
PoliceGras Permet de:
Savoir si le texte affich est en gras ou non.
Modifier la graisse du texte.
PoliceItalique Permet de:
Savoir si le texte affich est en italique ou non.
Modifier la mise en forme italique du texte.
PoliceLarge Permet de:
Savoir si les caractres du texte affich sont largis ou non.
largir ou non les caractres du texte affich.
PoliceNom Permet de:
Connatre la police utilise dans un champ.
Modifier la police utilise dans un champ.
PoliceSouligne Permet de:
Savoir si le texte affich est soulign ou non.
Souligner ou non le texte.
PoliceTaille Permet de:
Connatre la taille de la police utilise dans un champ.
Modifier la taille de la police utilise dans un champ.
PoliceTitreRendezVous Permet de connatre et modifier les caractristiques de la police utilise
pour le titre des rendez-vous dans les tats de type Planning et Agenda.
ProfondeurHirarchique Permet de connatre et modifier la profondeur dun champ Rubrique hirar-
chique prsent dans un tat.
RubriqueAffiche Permet de connatre et modifier la rubrique ou la variable affiche par le
champ.
SensEcriture Permet de connatre et de modifier le sens dcriture utilis dans un tat ou
dans un champ.
Taille Permet de connatre et modifier la taille dun lment.

Partie 1 : Editeur dtats 87


TauxAncrageDroite Permet de:
Connatre le taux dancrage en dplacement dun champ sur laxe hori-
zontal
Modifier le taux dancrage en dplacement dun champ sur laxe hori-
zontal.
TauxAncrageLargeur Permet de:
Connatre le taux dancrage en agrandissement dun champ (ou dune
colonne de table) sur laxe horizontal.
Modifier le taux dancrage en agrandissement dun champ (ou dune
colonne de table) sur laxe horizontal.
Traitement Permet de modifier les traitements excuter par les vnements dispo-
nibles sur un champ, un tat, ...
URL Permet de connatre et modifier ladresse associe un champ.
Valeur Permet de connatre et modifier la valeur dun champ dun tat.
Vide Permet de savoir si un champ dun tat est vide (champ li une rubrique).
Visible Permet de:
Savoir si un lment est visible
Rendre un lment visible ou invisible.
X Permet de connatre ou modifier labscisse dun champ.
XInitial Permet de connatre labscisse dun champ par rapport son bloc (position
en millimtres sur laxe des X) lors de louverture de ltat.
Y Permet de connatre et modifier lordonne dun champ.
YInitial La proprit ..YInitial permet de connatre lordonne dun champ par rap-
port son bloc (position en millimtres sur laxe des Y) lors de louverture
de ltat.

Pour plus de dtails sur ces proprits et leur utilisation, consultez laide en ligne.

88 Partie 1 : Editeur dtats


7. Utiliser des tableaux dans un tat

7.1 Prsentation
Dans un tat, un tableau est constitu dun ensemble de champs appel "Cellules du tableau".
Gnralement, un tat contient un seul tableau. Pour afficher plusieurs tableaux dans le mme tat, il est
ncessaire dutiliser des tats internes ou des tats imbriqus.
Un tableau est constitu de trois parties:
la ligne dentte, affichant lintitul des colonnes du tableau. Cette ligne est optionnelle. Si elle est affi-
che, cette ligne doit tre la premire ligne du tableau et affiche chaque nouveau tableau.
Cette ligne est habituellement affiche dans un bloc Entte de page ou Haut de rupture.
les lignes de donnes, affichant les informations provenant de la source de donnes. Pour chaque enre-
gistrement prsent dans la source de donnes, une nouvelle ligne est affiche lors de lexcution de
ltat. Toutes les donnes de lenregistrement sont affiches sur une mme ligne. La ligne de donnes
est habituellement associe au bloc Corps.
la ligne de totaux permettant deffectuer des totaux sur les colonnes du tableau.
Ces lignes sont habituellement affiches dans des blocs Bas de rupture ou Pied de page.
Remarque: Les diffrentes cellules des totaux ne sont pas obligatoirement places sur la mme ligne.
Par exemple:

Avantage de lutilisation des tableaux


En dition comme en excution, les tableaux sont un moyen simple pour aligner les champs de ltat. De
plus, le redimensionnement des champs est automatiquement gr.
Ainsi, si vous agrandissez une cellule dun tableau sous lditeur, les autres cellules du tableau sont automa-
tiquement dcales.
En excution, si une valeur ne peut tre totalement affiche dans une cellule dun tableau auto-extensible,
toutes les cellules de la ligne vont prendre la mme hauteur afin que la valeur puisse tre affiche entire-
ment.
Lditeur dtats propose deux types de tableaux:
les tableaux simples.
les tableaux croiss (tableaux deux entres).

Partie 1 : Editeur dtats 89


Quelques exemples dtats avec tableau:
Bon de commande (tableau simple):

Liste de produits (tableau simple):

90 Partie 1 : Editeur dtats


Ventes par anne et par client (tableau crois):

7.2 Crer un tableau dans un tat


Les tableaux peuvent tre crs dans un tat:
soit directement lors de la cration dun tat:
tat de type Tableau.
tat de type Tableau crois.
tat de type Tableau hirarchique.
soit en insrant un tableau dans un tat existant.

7.2.1 Cration dun tat de type Tableau


Pour crer un tat de type Tableau:
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
Slectionnez dans lassistant le type dtat crer: Tableau.
Les principales tapes de la cration dun tat de type Tableau sont les suivantes:
slection de la source de ltat. Pour plus de dtails, consultez "Sources de donnes dun tat", page
43.
slection des rubriques de tri (si ncessaire). Pour plus de dtails, consultez "Le tri", page 35.
slection des rubriques de rupture. Pour plus de dtails, consultez "Les ruptures", page 36.
slection des donnes afficher dans ltat. Ces donnes seront affiches dans la ligne de donnes du
tableau.
choix des calculs effectus dans ltat. Ces calculs seront affichs dans la ligne de totaux du tableau.
slection du format de la page (A4, A3, portrait, ...).
slection du gabarit. Pour plus de dtails, consultez "Gabarit", page 37.

Partie 1 : Editeur dtats 91


7.2.2 Cration dun tat de type Tableau crois
Lditeur dtats offre la possibilit de crer des tats de type "Tableau Crois". Ltat est alors constitu
uniquement dun tableau deux entres.
Pour crer un tat de type Tableau crois:
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
Slectionnez dans lassistant le type dtat crer: Tableau crois.

Les principales tapes de la cration dun tat de type tableau crois sont les suivantes:
La rubrique correspondant aux intituls des colonnes.
Remarque: Si cette rubrique est de type "Date", lassistant propose de:
conserver uniquement le jour ou lanne de ces dates.
dfinir la priode prendre en compte (date de dbut et date de fin).
La rubrique correspondant aux intituls des lignes.
Remarque: Si cette rubrique est de type "Date", lassistant propose de:
conserver uniquement le jour ou lanne de ces dates.
dfinir la priode prendre en compte (date de dbut et date de fin).
Linformation afficher dans les cellules du tableau. Cette information peut correspondre:
soit au nombre denregistrements correspondant lintersection des lignes et des colonnes.
Par exemple: le nombre de commandes effectues par anne et par client. Le client "Dubois" a effec-
tu 2 commandes en 2000 et 3 en 2001.
soit la somme, la moyenne, le maximum ou le minimum dune rubrique.
Par exemple: le nombre de produits commands par produit et par anne. En 2000, 279 canaps ont
t commands.
soit une rubrique.
Par exemple: la note attribue par chaque juge pour un certain patineur. Aux championnats dEurope
2002, le juge Italien a attribu la note 5.2 au patineur "A".
Le calcul des totaux pour les lignes et les colonnes du tableau (si ncessaire).
Le format de la feuille sur laquelle ltat va tre imprim. Par dfaut, ltat est imprim sur une feuille au
format A4.
Le gabarit de ltat si ncessaire.
Le nom et le titre de ltat. Ce nom (nom du fichier ".WDE" correspondant ltat) permettra didentifier
ltat dans vos applications ou vos sites.
Pour plus de dtails sur ce type dtat, consultez laide en ligne.

92 Partie 1 : Editeur dtats


7.2.3 Cration dun tat de type Tableau hirarchique
Lditeur dtats offre la possibilit de crer des tats de type "Tableau hirarchique". Ltat permet de visua-
liser une hirarchie dans le tableau.

Pour crer un tat de type Tableau hirarchique:


Cliquez sur parmi les boutons daccs rapide.
Dans la fentre qui saffiche, cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
Slectionnez dans lassistant le type dtat crer: Tableau hirarchique.

Les principales tapes de la cration dun tat de type tableau hirarchique sont les suivantes:
slection de la source de ltat. Pour plus de dtails, consultez "Sources de donnes dun tat", page
43.
slection des donnes afficher dans ltat. Ces donnes seront affiches dans la ligne de donnes du
tableau.
slection du format de la page (A4, A3, portrait, ...).
slection du gabarit. Pour plus de dtails, consultez "Gabarit", page 37.
Pour plus de dtails sur ce type dtat, consultez laide en ligne.

7.2.4 Insertion dun tableau dans un tat


Un tableau peut tre insr dans tout tat qui ne contient pas dj un tableau (sauf dans les tats de type
tiquette).
Remarque: Seul un tableau simple peut tre insr. Il nest pas possible dinsrer un tableau crois dans
un tat existant.
Cet tat doit contenir au moins deux blocs: le bloc Corps et un bloc dentte (Entte de page, Haut de rup-
ture ou Dbut de document).

Pour insrer un tableau dans un tat:


Sous le volet "Cration", dans le groupe "Structure", cliquez sur "Tableau".
Lassistant de cration dun tableau se lance.
Selon la source de donnes de ltat en cours, il est possible:
soit de slectionner les rubriques saffichant dans le tableau (tat sur fichier de donnes, requte, ...).
Les champs slectionns sont automatiquement intgrs dans le tableau.
soit de prciser les enttes de tableau (tat sans source de donnes, tat sur fichier texte).
Dans tous les cas, la ligne dentte du tableau est cre dans le bloc dentte et la ligne de donnes est
insre dans le bloc Corps de ltat.

Partie 1 : Editeur dtats 93


7.3 Description du tableau
Pour afficher la description du tableau, slectionnez loption "Description du tableau" du menu contextuel
dun lment du tableau (cellule appartenant lentte, aux donnes ou au total du tableau). La fentre
suivante apparat:

Cette fentre permet de visualiser:


dans la partie haute, le nom du tableau et les diffrentes colonnes du tableau.
dans la partie basse, soit les caractristiques du tableau, si le nom du tableau est slectionn, soit les
caractristiques de la colonne slectionne.

7.3.1 Caractristiques du tableau


Trois onglets sont affichs dans la partie basse si le nom du tableau est slectionn. Ces onglets permettent
de configurer le tableau dans son ensemble.

Onglet "Gnral": Paramtrage du tableau


Longlet "Gnral" permet de dfinir:
Si les lignes du tableau sont scables et /ou auto-extensibles.
Si les lignes sont scables, les lignes pourront tre " cheval" sur 2 pages (si par exemple le texte affi-
ch dans la colonne est trs long).
Si les lignes sont auto-extensibles, les cellules pourront sagrandir pour afficher la totalit de leur
contenu. Si une cellule sagrandit, toutes les cellules de la ligne seront agrandies.
La position de lentte du tableau (bloc affichant lentte), ainsi que ses caractristiques.
La position et la taille du tableau sur la page.

94 Partie 1 : Editeur dtats


Onglet "Cadre": Paramtrage du quadrillage du tableau
Longlet "Cadre" permet de dfinir le quadrillage du tableau. Pour un paramtrage personnalis, vous pouvez
paramtrer le quadrillage de chaque cellule. Il suffit dafficher la description de chaque cellule du tableau.

Onglet "Style": Paramtrage du tableau


Longlet "Style" permet de visualiser et de modifier le style du tableau. Seules les valeurs communes len-
semble des cellules du tableau sont affiches. Pour un paramtrage personnalis, vous pouvez paramtrer
le style de chaque cellule. Il suffit dafficher la description de chaque cellule du tableau.

7.3.2 Caractristiques des colonnes


Pour afficher les caractristiques dune colonne, slectionnez cette colonne dans la partie haute de la fe-
ntre de description.
Pour chaque colonne est indiqu dans la partie haute:
Le libell de la colonne. Ce libell sera affich dans un champ libell, dans la ligne den-tte du tableau.
Ce libell peut tre vide.
La rubrique associe la colonne. Le champ correspondant sera affich dans la ligne des donnes du
tableau. Ce champ peut tre associ aucune rubrique, pour tre par exemple rempli par programma-
tion. Selon la rubrique slectionne, le type est automatiquement mis jour.
Le type de donnes affich dans la colonne.
Le calcul associ la colonne. Il suffit de slectionner le type de calcul effectu sur les rubriques affi-
ches dans la colonne. Le champ calcul correspondant sera affich dans la ligne de totaux du tableau.
Deux onglets sont affichs dans la partie basse si le nom de la colonne est slectionn. Ces onglets per-
mettent de configurer les caractristiques de la colonne:
Onglet "Colonne": Paramtrage des colonnes
Longlet "Colonne" permet de paramtrer toutes les caractristiques daffichage de la colonne: type,
masque, ...
Onglet "Liaison": Paramtrage de la liaison de la colonne
Longlet "Liaison" permet de paramtrer llment de la source de donnes (variable ou rubrique) li la
colonne du tableau.

7.4 Manipulation des cellules du tableau


Les cellules dun tableau peuvent tre manipules individuellement ou via la description du tableau.
Les principales manipulations individuelles ralisables sur les cellules dun tableau sont les suivantes:
Slection dun lment du tableau.
Affichage de la description du tableau.
Ajout dune cellule dans un tableau.
Ajout dune colonne dans un tableau.
Redimensionnement des cellules du tableau.
Dplacement des colonnes du tableau.
Suppression des cellules du tableau.
Remarque: Tous les types de champs disponibles dans lditeur dtats peuvent tre affichs dans une
colonne du tableau.

Partie 1 : Editeur dtats 95


7.4.1 Slectionner un lment du tableau
Pour slectionner:
une cellule dun tableau: cliquez une fois sur la cellule. Les poignes de slection apparaissent autour
des cellules de la colonne.
une colonne dun tableau:
soit cliquez deux fois successivement sur une cellule de la colonne. Les poignes de slection appa-
raissent autour des cellules de la colonne.
soit survolez lentte de la colonne et cliquez lorsque le curseur de la souris se transforme en flche
noire verticale (oriente vers le bas). Les poignes de slection apparaissent autour des cellules de la
colonne.
une ligne dun tableau: survolez le ct gauche de la ligne et cliquez lorsque le curseur de la souris se
transforme en flche noire horizontale (oriente vers la droite). Les poignes de slection apparaissent
autour des cellules de la ligne.
toutes les cellules dun tableau: cliquez trois fois successivement sur une cellule du tableau. Les poi-
gnes de slection apparaissent autour de toutes les cellules du tableau.

7.4.2 Afficher la description du tableau


Par dfaut, lors dun double-clic sur une cellule appartenant un tableau, la fentre de description de la
cellule apparat.
Pour afficher la description du tableau, effectuez une des actions suivantes:
soit slectionnez une cellule puis slectionnez loption "Description du tableau" du menu contextuel.
soit slectionnez une cellule puis sous le volet "Modification", cliquez sur licne de regroupement
du groupe "Tableau".
soit cliquez trois fois successivement sur une cellule (lensemble des cellules du tableau est slectionn),
puis double-cliquez.

7.4.3 Ajouter une cellule dans un tableau


Tous les types de champs disponibles dans lditeur dtats peuvent tre ajouts dans un tableau. Ces
champs peuvent:
soit remplacer une cellule existante dans le tableau.
soit tre ajouts une colonne (ajout dun calcul en bas dune colonne par exemple).
Pour ajouter ou remplacer une cellule dans un tableau:
1.Slectionnez le champ ajouter au tableau.
2.Slectionnez loption "Ajouter au tableau" du menu contextuel du champ. Un assistant se lance.
3.Slectionnez loption "Ajouter une colonne existante".
4.Slectionnez la colonne o lajout doit se faire et la position du champ dans la colonne (entte, donnes,
ou total).
5.Validez lajout de la cellule.

96 Partie 1 : Editeur dtats


7.4.4 Ajouter une colonne dans un tableau
Il est possible dajouter une colonne un tableau. Cette nouvelle colonne peut correspondre ou non un
champ existant.
Pour ajouter un champ existant dans un tableau en tant que colonne:
1.Slectionnez le champ.
2.Vous pouvez au choix:
raliser un "Drag and Drop" (glisser / dplacer) du champ vers le tableau. Aprs confirmation, une nou-
velle colonne est cre la suite des colonnes existantes. La description des cellules de cette nouvelle
colonne correspond au champ initial.
slectionner loption "Ajouter au tableau" du menu contextuel du champ. Un assistant se lance et per-
met de spcifier les caractristiques de cette nouvelle colonne.
Pour insrer une nouvelle colonne:
1.Vous pouvez au choix:
slectionner loption "Insrer une colonne" du menu contextuel du tableau.
sous le volet "Cration", dans le groupe "Structure", cliquer sur "Colonne de tableau".
2.Saisissez le libell de lentte de la nouvelle colonne.
3.Slectionnez si ncessaire la rubrique lie la nouvelle colonne et validez lajout de la nouvelle colonne.

7.4.5 Redimensionner les cellules du tableau


Le redimensionnement dune cellule du tableau sous lditeur dtats entrane le redimensionnement de
tout le tableau.
Deux cas peuvent tre distingus:
Modification de la largeur dune cellule:
Toutes les cellules de la colonne sont galement redimensionnes.
Toutes les colonnes situes aprs la colonne en cours de redimensionnement sont dplaces.

Avant redimensionnement Aprs redimensionnement


Modification de la hauteur dune cellule:
Toutes les cellules du tableau prsentes sur la mme ligne sont redimensionnes.

Avant redimensionnement Aprs redimensionnement

Partie 1 : Editeur dtats 97


Pour redimensionner une cellule:
1.Slectionnez la cellule correspondante sous lditeur. Des poignes noires apparaissent autour de la
cellule.
2.Survolez la poigne noire correspondant au ct redimensionner. Lorsque le curseur de la souris se
transforme en double flche, maintenez le bouton gauche de la souris enfonc et redimensionnez la cel-
lule.
3.Relchez le bouton gauche de la souris. Le redimensionnement est effectu.
Remarque: Bord du bloc et bord de la cellule
Une cellule peut tre accole un bloc de ltat. Dans ce cas, lors du redimensionnement de la cellule, en
fonction du curseur affich, le bloc sera ou non redimensionn automatiquement. Le curseur de la souris est
diffrent en fonction de llment redimensionner:
une petite double flche noire indique que la cellule est en cours de redimensionnement.
une grande double flche bleue indique que le bloc et la cellule sont en cours de redimensionnement.

7.4.6 Dplacer une colonne du tableau


Le dplacement des colonnes du tableau consiste modifier lordre dapparition des colonnes dans le ta-
bleau.
Plusieurs mthodes permettent de dplacer trs simplement les colonnes dun tableau:
soit directement dans ltat en cours de modification: slectionnez une cellule de la colonne et utilisez
les flches de dplacement du clavier (ou loption "Dplacer ..." du menu contextuel de la cellule).
soit depuis la fentre de description du tableau: les boutons flchs permettent de dplacer la colonne
slectionne.
soit par "Drag and Drop" dune cellule de la colonne sous lditeur.

7.4.7 Enlever ou supprimer une colonne du tableau


Une colonne prsente dans un tableau peut tre:
enleve du tableau: les cellules de la colonne ne sont plus associes au tableau. Ces cellules restent
dans ltat et peuvent tre manipules indpendamment du tableau.
supprime: les cellules de la colonne ne sont plus prsentes dans le tableau, ni dans ltat.

Pour enlever une colonne du tableau:


1.Slectionnez une des cellules de la colonne enlever (voir le paragraphe Slectionner une cellule du
tableau).
2.Utilisez une des mthodes suivantes:
slectionnez loption "Enlever du tableau" du menu contextuel de la cellule.
sous le volet "Modification", dans le groupe "Tableau", cliquez sur "Enlever du tableau".
Remarque: Si la colonne enlever nest pas situe lextrmit gauche du tableau, lditeur dtats
propose de raliser automatiquement le dplacement de la colonne au dbut du tableau avant denle-
ver la colonne.
3.Les diffrentes cellules constituant la colonne sont indpendantes et peuvent tre dplaces dans
ltat.

98 Partie 1 : Editeur dtats


Pour supprimer une colonne du tableau:
1.Slectionnez une des cellules de la colonne supprimer: En-tte de colonne ou champ de donnes.
2.Utilisez une des mthodes suivantes:
appuyez sur la touche [Suppr] du clavier.
slectionnez loption "Supprimer" du menu contextuel de la cellule.
sous le volet "Modification", dans le groupe "Tableau", cliquez sur "Supprimer la colonne".
slectionnez loption "Supprimer" dans la fentre de description du tableau.
3.La colonne contenant la cellule est supprime du tableau.
Remarque: Si vous slectionnez une cellule appartenant la ligne des totaux, la suppression de cette cel-
lule nentranera pas la suppression de la colonne mais uniquement la suppression de la cellule.

Partie 1 : Editeur dtats 99


8. Etats avec saisie

8.1 Prsentation
Lditeur dtats permet de crer des tats incluant des champs de saisie. Ces tats peuvent tre gnrs
au format PDF.
Vous pouvez ainsi diffuser des tats, si ncessaire au format PDF, qui permettent la saisie directe par luti-
lisateur dans les zones spcifies: formulaire administratif (dclaration de revenus, dclarations diverses,
carte grise, ...).
Les donnes peuvent tre juste imprimes ou encore mmorises dans une base de donnes (lorsque la
saisie est ralise depuis laperu avant impression). Ltat devient alors un formulaire de saisie.
Les champs de saisie peuvent tre utiliss sur tous les types dtats. Le plus souvent, les champs de saisie
sont utiliss sur les tats de type Formulaire, utilisant par exemple un PDF en fond dtat.

8.2 Comment le faire ?

8.2.1 Cration de ltat en saisie


Pour crer un tat en saisie:
1.Crez un tat selon vos besoins (voir Crer un tat).
2.Dans les zones o une saisie doit tre effectue, crez des champs de saisie.
3.Enregistrez ltat.
4.Lors dune impression, lutilisateur pourra saisir directement dans les champs de saisie. La saisie est
disponible:
dans laperu avant impression.
dans les tats imprims au format PDF.

8.2.2 Caractristiques des champs de saisie


Lors de la cration dun champ de saisie dans un tat, il est possible de dfinir:
le type du champ (texte, numrique, date, heure),
le masque associ: les masques proposs sont les masques grs par le format PDF. Ils sont disponibles
pour les numriques, les dates et les heures.
la taille de saisie, cest--dire le nombre maximum de caractres autoris dans le champ. Si ce paramtre
correspond 0, il ny a aucune limite.
le cadrage horizontal,
la prsence ou non du cadre autour de la zone de saisie,
la valeur initiale,
le style du libell et de la zone de saisie.

100 Partie 1 : Editeur dtats


Remarques:
Champ de saisie multi ligne: si lutilisateur saisit plus de lignes que ce qui est visible, les lignes non
visibles ne seront pas imprimes. Lors de la saisie, les champs de saisie grent un ascenseur vertical.
Style de la zone de saisie: Dans cette version, seule la police "Arial" est utilisable.
Le champ de saisie nest pas li une rubrique dun fichier de donnes, une rubrique dune requte ni
une variable. Pour afficher des informations provenant dun fichier, dune requte ou dune variable, il
est ncessaire de raliser une affectation du champ par programmation.
Le cadre de la zone de saisie nest pas paramtrable (paisseur, couleur, ...). Il est uniquement possible
de le rendre visible ou invisible.
Il nest pas possible dutiliser un type montaire (le symbole Euro nest pas gr).

8.2.3 Traitements associs un champ de saisie dans un tat


Les traitements associs un champ de saisie dans un tat sont les suivants:
Traitement Condition dexcution
Initialisation Excut louverture de ltat.
Avant impression Excut avant limpression du champ.
Entre Excut lors de lentre du curseur de saisie dans le champ.
Sortie Excut lors du changement de champ (touche TAB, changement de champ
par la souris, ...).
Modification Excut chaque modification du contenu du champ (saisie ou effacement
dune lettre par exemple).

8.3 Saisie dans laperu avant impression (WinDev uniquement)


Lorsquun tat est affich en aperu avant impression, les champs de saisie sont actifs.
Dans ce cas, lutilisateur pourra saisir les informations voulues puis imprimer ltat dans un des formats
proposs. Un message est affich dans laperu avant impression pour informer lutilisateur de la possibilit
de saisir des informations.
Par dfaut, lutilisateur peut parcourir les champs de saisie grce la touche TAB: il parcourt les champs de
saisie disponibles de haut en bas et de gauche droite.

Remarques:
Les traitements associs aux champs de saisie sont excuts lors de leur manipulation dans laperu
avant impression.
Il est possible dafficher par programmation des donnes provenant de la base de donnes. Il suffit de
lier ltat un fichier de donnes ou une requte, puis daffecter la rubrique voulue au champ de saisie
dans le traitement "Avant impression" du champ de saisie.
Il est possible denregistrer par programmation des donnes modifies par lutilisateur dans laperu
avant impression. Prenons un exemple simple, la modification dun enregistrement affich dans ltat.
Dans chaque champ de saisie dont la valeur doit tre modifie, il suffit de:
- affecter la valeur saisie la rubrique
- modifier lenregistrement.
Ces actions sont ralises dans le traitement "Sortie de champ".
Par exemple pour modifier le nom du client, le code correspondant est le suivant:
Client.Nom = SAI_Nom
HModifie(Client)

Partie 1 : Editeur dtats 101


8.4 Saisie dans un fichier PDF
Lorsquun tat est imprim dans un fichier PDF, les champs de saisie sont actifs. Dans ce cas, lutilisateur
pourra saisir le contenu des diffrents champs de saisie et imprimer le fichier PDF avec les donnes saisies.

Remarques:
Les champs de saisie permettent de saisir des informations dans le fichier PDF. Ces informations seront
prises en compte lors de limpression. Si lutilisateur final possde Adobe Acrobat en version complte,
les donnes saisies pourront tre enregistres au format PDF (Acrobat Reader ne permet pas denregis-
trer les fichiers PDF).
Il est possible dafficher par programmation des donnes provenant de la base de donnes. Il suffit de
lier ltat un fichier de donnes ou une requte, puis daffecter la rubrique voulue au champ de saisie
dans le traitement "Initialisation" ou "Avant impression" du champ de saisie.

8.5 Saisie dans un tat bas sur un formulaire PDF


Les champs de saisie sont particulirement adapts aux tats "Formulaires". Les tats "formulaires" sont
bass sur un fichier image ou PDF.
Dans le cas dun formulaire au format PDF contenant plusieurs pages, il est possible de crer un tat affi-
chant les diffrentes pages du PDF (option "Imprimer toutes les pages du PDF" dans longlet "Fond" de la
description de ltat).
Ces pages sont visibles et modifiables sous lditeur dtats: il est possible de positionner les champs de
saisie sur nimporte quelle page de ltat.
Pour plus de dtails, consultez "Utiliser un formulaire dans un tat", page 53.

102 Partie 1 : Editeur dtats


9. Etats composites

9.1 Prsentation
Lditeur dtats offre la possibilit de crer des tats de type "Composite". Ltat est alors constitu de
plusieurs sous-tats. Chaque sous-tat peut afficher des donnes diffrentes et utiliser une orientation sp-
cifique. Les diffrents sous-tats sont imprims lun aprs lautre.
Par exemple:
Sous lditeur:

En excution:

Partie 1 : Editeur dtats 103


Remarque: Lditeur dtats propose plusieurs mthodes pour imprimer simultanment plusieurs tats
dans un seul document:
les tats internes, qui permettent notamment dimprimer des tats les uns ct des autres. Pour plus
de dtails, consultez "Champ Etat interne", page 76.
lenchanement dtats qui peut tre ralis par programmation. Cette mthode est trs simple mettre
en oeuvre. Pour plus de dtails, consultez "Enchaner des tats", page 106.
les tats imbriqus qui permettent de raliser des enchanements dtats complexes, avec notamment la
gestion des pieds de pages. Pour plus de dtails, consultez "Etats imbriqus", page 108.

9.2 Crer un tat composite


Pour crer un tat de type "Composite":
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
2.Slectionnez le type dtat "Etat composite". Passez ltape suivante de lassistant grce aux boutons
flchs.
3.Spcifiez dans lassistant le nombre de sous-tats qui va composer ltat composite. Passez ltape
suivante de lassistant.
4.Donnez un nom votre tat et validez.
5.Ltat composite apparat en cration sous lditeur dtats. Il est ncessaire de dfinir les caractris-
tiques de chaque sous-tat.

Pour chaque sous-tat:


Cliquez sur le lien "<Cliquer ici pour dfinir le sous-tat>". Lassistant de dfinition du sous-tat saffiche.
Vous pouvez:
Crer un nouveau sous-tat.
1.Slectionnez:
le type de sous-tat crer (fiche, tableau, ...). Pour plus de dtails, consultez "Les diffrents types
dtats disponibles", page 24.
la source de donnes du sous-tat (fichier de donnes, requte, ...). Pour plus de dtails, consultez
"Sources de ltat", page 34.
les lments du sous-tat (champs, conditions de tri, ruptures, ...).
2.Donnez un nom au sous-tat et validez la cration du sous-tat.
Utiliser un tat existant.
1.Slectionnez ltat afficher dans le sous-tat.
2.Donnez un nom au sous-tat et validez la cration du sous-tat. Par dfaut, le nom du sous-tat est:
"S<NomEtat>".

104 Partie 1 : Editeur dtats


9.3 Caractristiques des tats composites et de leurs sous-tats

9.3.1 Caractristiques des tats composites


Ltat composite est compos de plusieurs sous-tats. Tous les sous-tats sont visualiss directement
sous lditeur dtats.
Ltat composite a un nom, ainsi que chaque sous-tat. Dans le volet "Explorateur de projet", les diff-
rents sous-tats de ltat composite sont lists.
Pour visualiser la fentre de description de ltat composite, plusieurs possibilits:
Sous le volet "Modification", cliquez sur le bouton de regroupement du groupe "Etat composite".
Slectionnez loption "Description de ltat composite" du menu contextuel de ltat.
La fentre de description de ltat composite permet de:
Dfinir le libell de ltat et son nom (onglet "Gnral").
Dfinir les boutons dexport prsents dans laperu (onglet "IHM").
Dfinir le comportement si les sous-tats sont vides (onglet "IHM").
Rendre ltat modifiable sous le logiciel Etats & Requtes (onglet "Dtail").
Dfinir les langues gres par ltat (onglet "Langue").
Grer les sous-tats (onglet "Sous-tats"): il est possible dajouter, de supprimer des sous-tats, de
modifier leur ordre dimpression, ...

9.3.2 Caractristiques des sous-tats


Les sous-tats ne sont accessibles sous lditeur quen ouvrant ltat composite.
Pour visualiser la fentre de description du sous-tat:
1.Cliquez dans le sous-tat.
2.Sous le volet "Modification", cliquez sur le bouton de regroupement du groupe "Etat". Il est gale-
ment possible de slectionner loption "Description du sous-tat" du menu contextuel de ltat.
La fentre de description du sous-tat permet de slectionner ltat afficher.
Les sous-tats peuvent tre des tats paramtrs. Dans ce cas, pour initialiser les paramtres du sous-
tat, il est ncessaire dutiliser la fonction iInitSousEtat.
Il est possible de modifier ltat affich par un sous-tat par programmation en utilisant la fonction
iChangeSousEtatSource.

Partie 1 : Editeur dtats 105


10. Enchaner des tats

10.1 Prsentation
Dans certains cas, il peut tre ncessaire dimprimer des tats diffrents la suite, visibles dans le mme
aperu avant impression.
Les tats composites rpondent ce besoin dans le cas o lenchanement des tats est connu davance.
Si lenchanement nest pas connu davance et doit tre programm, il est possible dutiliser lenchanement
des tats par programmation.

106 Partie 1 : Editeur dtats


10.2 Comment le faire ?
Pour enchaner des tats par programmation:
1.Pour ajouter un tat lenchanement, utilisez la fonction iEnchanementAjoute. Cette fonction doit tre
utilise pour chaque tat ajouter lenchanement. Cette fonction permet de passer des paramtres
ltat imprimer.
2.Pour finir lenchanement et lancer limpression, utilisez la fonction iEnchanementImprime.
Exemple:
iAperu()
iEnchanementAjoute(ETAT_Portrait)
iEnchanementAjoute(ETAT_Paysage)
iEnchanementImprime()
Remarques:
Les pages des tats prsents dans lenchanement sont numrotes squentiellement. Il est possible de
modifier la numrotation grce la fonction iNumPage.
Les tats prsents dans lenchanement peuvent avoir des orientations diffrentes (portait et/ou pay-
sage).

Partie 1 : Editeur dtats 107


11. Etats imbriqus

11.1 Prsentation
Les tats imbriqus permettent dimprimer plusieurs tats (tats secondaires) dans un seul tat (tat prin-
cipal).
Ces tats peuvent avoir une orientation diffrente (portrait / paysage).
Par exemple, ltat principal suivant est compos de:
un tat affichant les caractristiques dun client.
un tat affichant le rcapitulatif des commandes de ce client pour les derniers mois.

108 Partie 1 : Editeur dtats


11.2 Crer un tat imbriqu

11.2.1 Principe
La cration dun tat principal compos de plusieurs tats secondaires est ralise en plusieurs tapes:
1.Cration dun tat principal.
2.Cration du ou des tats secondaires. Ces tats peuvent avoir une orientation diffrente de ltat princi-
pal.
3.Impression des tats secondaires dans ltat principal grce la fonction iImprimeEtat. Cette fonction
doit tre utilise:
soit dans le traitement "Avant impression" dun bloc: ltat secondaire sera imprim avant ce bloc.
soit dans le traitement "Fin impression" dun bloc: ltat secondaire sera imprim aprs ce bloc.
Attention: Si les tats imbriqus ont des orientations diffrentes, il est ncessaire dappeler la fonc-
tion iParamtre afin de changer lorientation de limpression en consquence.
4.Configuration de limpression des hauts et bas de pages de ltat imbriqu (fonction iHautBasPageImbri-
qu). Cette fonction peut tre utilise:
soit dans le code douverture de ltat principal: elle sera prise en compte pour tous les tats imbri-
qus qui seront imprims depuis ltat principal.
soit directement avant limpression de ltat imbriqu: elle sera prise en compte uniquement pour
ltat imbriqu suivant.
5.Impression de ltat principal. Pour plus de dtails, consultez "Imprimer un tat imbriqu", page 111.

Remarque: Pour effectuer des impressions utilisant des tats avec des orientations diffrentes (portait/
paysage), il est conseill dutiliser lenchanement dtats. Cette mthode est trs simple mettre en oeuvre.
Pour plus de dtails, consultez "Enchaner des tats", page 106.

11.2.2 Exemple
Ltat "ETAT_Commande" est un tat bas sur le fichier de donnes "Commande". Cet tat permet dimpri-
mer les caractristiques de chaque commande (date de commande, numro client, montant de la com-
mande, ...). Une rupture sur la rubrique "NumCommande" permet de sparer les diffrentes commandes.
La requte "REQ_ProduitCommand" slectionne lensemble des produits dune commande spcifie. Cette
requte attend en paramtre un numro de commande.
Ltat "ETAT_ProduitCommand" est bas sur la requte "REQ_ProduitCommand". Cet tat imprime unique-
ment les produits slectionns par la requte "REQ_ProduitCommand".
Ltat "ETAT_ProduitCommand" correspond ltat secondaire. Cet tat sera imprim aprs chaque rupture.
Ralisation
1.Crez ltat "ETAT_Commande": cet tat correspond ltat principal.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
2.Crez la requte "REQ_ProduitCommand". Pour plus de dtails, consultez "Comment crer une re-
qute?", page 168.
3.Crez ltat "ETAT_ProduitCommand": cet tat correspond ltat secondaire.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Remarque: Le bloc Pied de page de cet tat ne sera pas imprim. Pour plus de dtails sur les blocs de
ltat imbriqu imprims, consultez le paragraphe "Blocs de ltat secondaire", page 110.

Partie 1 : Editeur dtats 109


4.Dans le traitement "Aprs impression" du bloc Bas de rupture de ltat "ETAT_Commande", saisissez le
code suivant:
// Initialiser la requte et
// passer en paramtre le numro de commande en cours dimpression
iInitRequteEtat(ETAT_ProduitCommand, MaSource.NumCommande)
// Imprimer ltat imbriqu
iImprimeEtat(ETAT_ProduitCommand)

11.3 Particularits des tats secondaires

11.3.1 Blocs de ltat secondaire


Par dfaut, lors de limpression dun tat secondaire (grce la fonction iImprimeEtat), tous les blocs de
ltat secondaire sont imprims sauf les blocs suivants:
le bloc En-tte de page.
le bloc Pied de page.
Pour forcer limpression de ces blocs, utilisez la fonction iHautBasPageImbriqu.
Remarque: Si ltat secondaire contient un tableau dont lentte est prsent dans le bloc En-tte de page,
seul le bloc Pied de page ne sera pas imprim (tous les autres blocs seront imprims). Dans ce cas, le bloc
En-tte de page sera imprim avant la premire ligne du tableau (de ltat secondaire).

11.3.2 Orientation des tats secondaires


Ltat secondaire et ltat principal peuvent avoir des orientations diffrentes. Il est cependant ncessaire
dans ce cas dappeler la fonction iParamtre afin de modifier lorientation de limpression en consquence.
Remarque: Pour effectuer des impressions utilisant des tats avec des orientations diffrentes (portait/
paysage), il est conseill dutiliser lenchanement dtats. Cette mthode est trs simple mettre en oeuvre.
Pour plus de dtails, consultez "Enchaner des tats", page 106.

11.3.3 Saut de page de ltat secondaire


Les sauts de page dfinis dans un tat secondaire seront pris en compte lors de limpression de ltat prin-
cipal.

11.3.4 Etat secondaire bas sur une requte paramtre


Si ltat secondaire est bas sur une requte paramtre, utilisez la fonction iInitRequteEtat pour passer
les paramtres la requte. Cette fonction doit tre utilise avant la fonction iImprimeEtat.

11.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique
Si ltat secondaire est bas sur une requte manipulant une connexion spcifique, utilisez la fonction iI-
nitRequteEtatConnexion pour excuter cette requte (et lui passer si ncessaire des paramtres). Cette
fonction doit tre utilise avant la fonction iImprimeEtat.

11.3.6 Etat secondaire imprim depuis un bloc de bas de page


Si ltat secondaire est imprim depuis un bloc de bas de page, ses blocs de bas de page ne seront pas
imprims.

110 Partie 1 : Editeur dtats


11.3.7 Affichage du nombre de pages total de ltat secondaire
Il faut ajouter un compteur de pages dans ltat principal pour que le compteur de pages de ltat imbriqu
fonctionne. Il est cependant possible de rendre invisible le compteur de ltat principal si ncessaire.

11.4 Imprimer un tat imbriqu


Pour imprimer un tat principal compos de plusieurs tats secondaires:
1.Paramtrer la destination de limpression de ltat principal grce aux fonctions iAperu ou iDestination.
2.Prciser le nom de ltat principal imprimer grce la fonction iImprimeEtat.

Remarques:
Si des paramtres supplmentaires doivent tre passs ltat principal, ces paramtres doivent tre
indiqus dans la fonction iImprimeEtat, aprs le nom de ltat. Pour plus de dtails, consultez "Etat para-
mtr", page 139.
La fonction iListeEtatImbriqus permet dobtenir la liste des tats secondaires imbriqus dans un tat
principal.
Pour effectuer des impressions utilisant des tats avec des orientations diffrentes (portait/paysage), il
est conseill dutiliser lenchanement dtats. Cette mthode est trs simple mettre en oeuvre. Pour
plus de dtails, consultez "Enchaner des tats", page 106.

Exemple
Ltat "ETAT_EtatCommande" est compos dun tat principal et dun tat secondaire.
Ltat "ETAT_EtatCommande" simprime lors dun clic sur le bouton "Imprimer".
Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant:
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)
Code WebDev:
// Paramtrer la destination de limpression
iDestination(iHTML, fRepWeb() + "\Etat.htm")
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)
// Envoyer le fichier au navigateur
FichierAffiche(fRepWeb() + "\Etat.htm")
Code WinDev Mobile:
// Paramtrer la destination de limpression
iDestination(iPCL, "\\MonRseau\MonImprimante")
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)

Partie 1 : Editeur dtats 111


11.5 Diffrences entre les tats imbriqus et les tats internes
Les tats internes permettent galement dimprimer plusieurs tats secondaires dans un tat principal.
Position des tats secondaires:
Dans les tats imbriqus, les tats secondaires sont imprims uniquement les uns en dessous des
autres. Les tats peuvent avoir des orientations diffrentes. Il est possible dimbriquer un tat en mode
portrait avec un tat en mode paysage.
Dans les tats internes, les tats secondaires peuvent tre imprims:
soit les uns en dessous des autres.
soit les uns ct des autres.
Paramtres des tats secondaires:
Dans un tat imbriqu, les tats secondaires peuvent tre des tats paramtrs. Les paramtres sont
passs directement lors de limpression de ltat imbriqu (fonction iImprimeEtat). Pour plus de dtails
sur les tats paramtrs, consultez "Etat paramtr", page 139.
Dans un tat interne, les tats secondaires ne peuvent pas tre des tats paramtrs.
Remarque: Pour simplifier lutilisation des tats secondaires, lditeur dtats permet de crer:
des tats internes.
des tats bass sur des requtes.

112 Partie 1 : Editeur dtats


12. Imprimer un tat par programmation
Si vous utilisez le logiciel Etats & Requtes, il est possible dimprimer un tat:
soit en lanant une impression (icne ).
soit en testant ltat (icne ).
Il nest donc pas ncessaire de programmer limpression de ltat.
Important

Pour que limpression dtats raliss avec le logiciel Etats & Requtes soit possible
directement partir dune application WinDev, le fournisseur de lapplication WinDev
doit prvoir cette fonctionnalit dans son application.
Le fournisseur peut par exemple intgrer une fentre permettant lutilisateur final:
de slectionner un tat ralis avec le logiciel Etats & Requtes
puis de lancer lexcution de cet tat.

12.1 Prsentation
Lors de la cration dun tat, il est possible de tester directement cet tat depuis lditeur dtats.
Il est galement possible dintgrer cet tat vos applications ou vos sites. Lutilisateur ou linternaute
pourra ainsi lancer limpression de ltat directement depuis un bouton, une option de menu, ... par exemple.
Dans le cas dun site WebDev, le poste serveur se chargera de prparer ltat au format choisi (PDF,
HTML,...). Selon vos besoins, vous pourrez alors:
afficher cet tat sur le navigateur de linternaute,
lenregistrer sur le serveur et proposer linternaute de le tlcharger ou de lafficher, ...
Dans un site Intranet, il est galement possible dimprimer directement ltat sur une imprimante locale ou
rseau connecte au serveur.

12.1.1 Principe dimpression en WinDev


Quel que soit le type dtat imprimer, le principe de lancement dun tat est le suivant:
1.Spcifier le mode dimpression de ltat (aperu, impression directe, gnration dune page HTML, ...)
avec la fonction iAperu ou la fonction iDestination
2.Lancer limpression avec la fonction iImprimeEtat.
Ce principe doit tre adapt et complt selon la source de donnes utilise dans chaque tat.

12.1.2 Principe dimpression en WebDev


Quel que soit le type dtat imprimer, le principe de lancement dun tat est le suivant (en code serveur):
1.Spcifier le mode dimpression de ltat (impression directe, gnration dune page HTML, gnration
dun fichier PDF, ...) avec la fonction iDestination.
2.Lancer limpression avec la fonction iImprimeEtat.
3.Selon vos besoins, vous pourrez ensuite:
afficher le fichier gnr sur le poste de linternaute grce la fonction FichierAffiche.
envoyer un email linternaute pour lui proposer de tlcharger le fichier cr.
...

Partie 1 : Editeur dtats 113


Attention: Si la destination de limpression est un fichier HTML, PDF, XML ou RTF, vrifiez les points sui-
vants:
Vous disposez des droits dcriture dans le rpertoire dans lequel le document va tre gnr (par dfaut,
le document est gnr dans le rpertoire du site).
Si vous gnrez un tat au format PDF, ce fichier peut tre enregistr dans le rpertoire des donnes
(chemin connu avec la fonction fRepDonnes)
Si vous gnrez un tat au format HTML, ce fichier doit tre enregistr dans le rpertoire _WEB du site
(chemin connu avec la fonction fRepWeb).
Utilisez un nom spcifique pour chaque document gnr sur le serveur. Dans le cas contraire, plusieurs
impressions simultanes craseraient les impressions dj ralises.
Utilisez par exemple les fonctions serveur ConnexionOccurrence ou DonneIdentifiant pour nommer vos
tats (par exemple: NomFichier = "EtatClient" + ConnexionOccurrence() + ".HTML").
Ce principe doit tre adapt et complt selon la source de donnes utilise dans chaque tat.

12.1.3 Principe dimpression en WinDev Mobile

Principe dimpression dun tat sous iOS


Le principe dimpression dun tat sous iOS est trs simple: un fichier PDF est cr lors de limpression de
ltat. Il suffit alors douvrir ce fichier PDF dans le logiciel appropri puis de limprimer sur limprimante confi-
gure sur le poste utilis.
Quel que soit le type dtat imprimer, le principe de lancement dun tat est le suivant :
1.Spcifier le mode dimpression de ltat (gnration dun fichier PDF) avec la fonction iDestination.
2.Lancer limpression au format PDF avec la fonction iImprimeEtat.
3.Selon vos besoins, vous pourrez ensuite:
afficher le fichier gnr sur le poste de lutilisateur (fonction LanceAppliAssocie).
imprimer le fichier PDF gnr via le systme dimpression iOS (fonction iImprimePDF).
...

Attention: Vrifiez les points suivants:


Vous disposez des droits dcriture dans le rpertoire dans lequel le document va tre gnr.
Si vous gnrez un tat au format PDF, ce fichier peut tre enregistr dans le rpertoire des donnes
(chemin connu avec la fonction fRepDonnes).
Utilisez un nom spcifique pour chaque document gnr. Dans le cas contraire, plusieurs impressions
simultanes craseraient les impressions dj ralises.
Ce principe doit tre adapt et complt selon la source de donnes utilise dans chaque tat.
Principe dimpression dun tat sous Windows Mobile
Le principe dimpression dun tat sous Terminal Mobile (Pocket PC) est trs simple: un fichier PCL est cr
lors de limpression de ltat et ce fichier est ensuite envoy limprimante destination. Le contenu du fichier
PCL est spcifique limprimante utilise.
Pour imprimer un tat cr avec lditeur dtats, les tapes sont les suivantes:
1.Configuration des paramtres dimpression:
Impression avec slection de limprimante par lutilisateur.
Impression directe sur une imprimante choisie lors du dveloppement.
2.Impression de ltat.
Remarque : Selon limprimante choisie pour limpression, le rsultat de limpression dun tat peut tre dif-
frent. Pour plus de dtails, consultez laide en ligne.

114 Partie 1 : Editeur dtats


Cas 1: Impression avec choix de limprimante par lutilisateur
Lors de limpression, lutilisateur choisit dans une fentre spcifique limprimante utiliser. Si aucune impri-
mante nest rpertorie, lutilisateur peut ajouter une nouvelle imprimante.
Pour raliser ce type dimpression, il suffit de:
1.Utiliser la fonction iConfigure ou iParamtre (sans prciser de paramtres).
2.Utiliser la fonction iImprimeEtat en indiquant le nom de ltat imprimer.
Exemple: Ltat ETAT_Client sera imprim sur limprimante choisie par lutilisateur dans la fentre de confi-
guration de limpression. Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines im-
pressions ralises par cette application.
// Slection de limprimante
iConfigure()
// Imprimer ltat
iImprimeEtat(ETAT_Client)
Remarque: Pour que limprimante devienne limprimante par dfaut pour toutes les applications, utilisez
linstruction:
iConfigure(Faux)

Cas 2: Impression directe sur une imprimante


WinDev Mobile propose 2 modes dimpression directe sur une imprimante:
impression directe en dfinissant le type dimprimante utilis.
impression sur une des imprimantes rfrences sur le Terminal Mobile.

Impression sur un type dimprimante


Il est possible dimprimer directement un tat sur une imprimante associe un Terminal Mobile. Dans ce
cas, il suffit de:
1.Paramtrer la destination de limpression avec la fonction iDestination. Il est ainsi possible de spcifier
si limpression se fait dans un fichier PCL, sur une imprimante infrarouge, Wifi, Bluetooth ou rseau.
2.Utiliser la fonction iParamtre avec le paramtre "TypeImprimante" pour spcifier le type dimprimante
utiliser. Limprimante utilise doit correspondre une des imprimantes reconnues par WinDev Mobile.
3.Imprimer ltat avec la fonction iImprimeEtat.
Exemple: Ltat ETAT_Client sera imprim sur limprimante de type DeskJet 350, connecte par infrarouge
au Terminal Mobile (Pocket PC).
// Impression sur une imprimante infrarouge
iDestination(iPCL, "IRDA:")
// Spcification du type dimprimante
iParamtre("TypeImprimante=DeskJet 350")
// Imprimer ltat
iImprimeEtat(ETAT_Client)

Impression sur une imprimante rfrence sur le Terminal Mobile (Pocket PC)
Pour imprimer sur une des imprimantes rfrences sur le Terminal Mobile (sans ouvrir de fentre de choix
dimprimante), il suffit de:
1.Paramtrer limprimante utiliser avec la fonction iConfigure. Il suffit de prciser le nom de limprimante
utiliser. Ce nom doit correspondre un nom indiqu dans la fentre de choix des imprimantes.
2.Imprimer avec la fonction iImprimeEtat.

Partie 1 : Editeur dtats 115


Exemple: Ltat ETAT_Client sera imprim sur limprimante "ImpInfra" configure sur le Terminal Mobile.
Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines impressions ralises par cette
application.
// Slection de limprimante par programmation
iConfigure("ImpInfra")
// Imprimer ltat bas sur le champ Table "TABLE_Client"
iImprimeEtat(ETAT_Client)
Astuce: Les imprimantes rfrences sur un Terminal Mobile sont conserves dans la base de registre du
Terminal Mobile. Pour ajouter une nouvelle configuration dimprimante par programmation, il suffit de modi-
fier la base de registre du Terminal Mobile. Pour plus de dtails, consultez laide en ligne.

12.2 Etat sur un fichier de donnes


Limpression dun tat bas sur un fichier de donnes reprend le principe de base dcrit ci-dessus. Cepen-
dant, un tat sur un fichier de donnes peut prendre compte de plusieurs informations spcifiques (bornes,
paramtres,...). Dans ce cas, limpression de ltat doit sadapter. Les paragraphes suivants prsentent:
limpression dun tat sur un fichier de donnes (cas gnral).
limpression dun tat born bas sur un fichier de donnes.
limpression dun tat paramtr bas sur un fichier de donnes.
limpression dun tat paramtr et born sur un fichier de donnes.

12.2.1 Imprimer un tat sur un fichier de donnes


Pour imprimer un tat sur un fichier de donnes, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Prciser le nom de ltat imprimer grce la fonction iImprimeEtat.

Il est ncessaire de spcifier des paramtres supplmentaires dans les cas suivants:
Impression dun tat born bas sur un fichier de donnes.
Impression dun tat paramtr bas sur un fichier de donnes.
Impression dun tat paramtr et born bas sur un fichier de donnes.

Exemples WinDev et WinDev Mobile


Ltat "ETAT_Client" est un tat bas sur le fichier "Client". Cet tat permet dimprimer les caractristiques
des clients.
Ltat "ETAT_Client" simprime lors dun clic sur le bouton "BTN_Client". Dans cet exemple, le code de clic du
bouton "BTN_Client" est le suivant:
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat ETAT_Client
iImprimeEtat(ETAT_Client)

116 Partie 1 : Editeur dtats


Code Windows Mobile:
// Slection de limprimante
iConfigure()
// Imprimer ltat ETAT_Client
iImprimeEtat(ETAT_Client)

Exemple WebDev
Ltat "ETAT_Client" est un tat bas sur le fichier "Client". Cet tat permet dimprimer les caractristiques
des clients.
Ltat "ETAT_Client" saffiche dans un fichier PDF lors dun clic sur le lien "LIEN_Client". Le fichier PDF est en-
suite affich sur le navigateur. Dans cet exemple, le code de clic serveur du lien "LIEN_Client" est le suivant:
// Gnre un nom de fichier PDF unique
NomFicUnique est une chane = fRepWeb() + "\" + "ETAT_Client_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Imprime ltat ETAT_Client
iImprimeEtat(ETAT_Client)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)
Remarque: La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le
nom du fichier de donnes associ ltat.

12.2.2 Imprimer un tat born bas sur un fichier de donnes


Pour imprimer un tat born bas sur un fichier de donnes, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Prciser les paramtres suivants grce la fonction iImprimeEtat:
le nom de ltat imprimer.
la valeur de la borne minimale de ltat.
la valeur de la borne maximale de ltat.

Exemple WinDev et WinDev Mobile


Ltat "ETAT_Client" est un tat born bas sur le fichier "Client". Cet tat permet dimprimer les caractris-
tiques des clients dont le nom commence par la lettre "D".
La borne minimale correspond "D". La borne maximale correspond "D"+hValMax.
Ltat "ETAT_Client" simprime lors dun clic sur le bouton "BTN_ClientD".
Dans cet exemple, le code de clic du bouton "BTN_ClientD" est le suivant:
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat ETAT_Client
iImprimeEtat(ETAT_Client, "D", "D" + hValMax)

Partie 1 : Editeur dtats 117


Code Windows Mobile:
// Slection de limprimante
iConfigure()
// Imprimer ltat ETAT_Client
iImprimeEtat(ETAT_Client, "D", "D" + hValMax)
Exemple WebDev
Ltat "ETAT_Client" est un tat born bas sur le fichier "Client". Cet tat permet dimprimer les caractris-
tiques des clients dont le nom commence par la lettre "D". La borne minimale correspond "D". La borne
maximale correspond "D"+hValMax. Ltat "ETAT_Client" simprime dans un fichier HTML et est envoy au
navigateur lors du clic sur le bouton "BTN_ClientD".
Dans cet exemple, le code de clic du bouton "ClientD" est le suivant:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\" + "ETAT_Client_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Imprime ltat ETAT_Client
iImprimeEtat(ETAT_Client, "D", "D" + hValMax)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)

12.2.3 Imprimer un tat paramtr bas sur un fichier de donnes


Pour imprimer un tat paramtr, il est ncessaire de passer des paramtres.
Pour imprimer un tat paramtr bas sur un fichier de donnes, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Prciser les paramtres suivants grce la fonction iImprimeEtat:
le nom de ltat imprimer.
les diffrents paramtres attendus par ltat (dans lordre spcifi dans ltat).

Exemple WinDev
Ltat "ETAT_Param" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre:
le texte de ce mailing saisi dans le champ de saisie "SAI_TexteMailing".
la date prvue de lenvoi de ce mailing saisie dans le champ de saisie "SAI_DateEnv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple:
le code de clic du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_Param, SAI_TexteMailing, SAI_DateEnv)

118 Partie 1 : Editeur dtats


le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat et
// passer des paramtres par dfaut pour le test de ltat
PROCEDURE ETAT_Param(sTexte = "Dfaut", sDate = DateDuJour())
Exemple Windows Mobile
Ltat "ETAT_Param" correspond une facture. Cet tat attend en paramtre la date prvue de livraison sai-
sie dans le champ de saisie "SAI_DateLiv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple:
le code de clic du bouton "BTN_Imprimer" est le suivant:
// Slection de limprimante
iConfigure()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_Param, SAI_DateLiv)
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat et
// passer des paramtres par dfaut pour le test de ltat
PROCEDURE ETAT_Param(sDate = DateDuJour())
Exemple WebDev
Ltat "ETAT_Commande" est un tat paramtr permettant dimprimer la commande dun client identifi par
son numro de client. Ltat "ETAT_Commande" saffiche dans un fichier PDF. Ce fichier PDF est envoy au
navigateur lors dun clic sur le bouton "BTN_Commande".
Dans cet exemple:
le code de clic du bouton "BTN_Commande" est le suivant:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\" + "Facture_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Gnre le bon de commande
iImprimeEtat(ETAT_Commande, CLIENT.CLCLEUNIK)
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat et
// passer des paramtres par dfaut pour le test de ltat
PROCEDURE ETAT_Commande(nIDClient = 450)

Partie 1 : Editeur dtats 119


12.2.4 Imprimer un tat paramtr et born bas sur un fichier de donnes
Pour imprimer un tat paramtr et born bas sur un fichier de donnes, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
En Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote de
dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Prciser les paramtres suivants grce la fonction iImprimeEtat:
le nom de ltat imprimer.
la valeur de la borne minimale de ltat.
la valeur de la borne maximale de ltat.
les diffrents paramtres attendus par ltat (dans lordre spcifi dans ltat).

Exemple WinDev
Ltat "ETAT_Param" correspond un mailing publicitaire envoy aux clients dont le nom commence par la
lettre "D" ou par la lettre "E".
La borne minimale correspond : "D" et la borne maximale : "E".
Cet tat attend en paramtre:
le texte de ce mailing saisi dans le champ de saisie "SAI_TexteMailing".
la date prvue de lenvoi de ce mailing saisie dans le champ de saisie "SAI_DateEnv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec passage de bornes et de paramtres
iImprimeEtat(ETAT_Param, "D", "E", SAI_TexteMailing, SAI_DateEnv)

Exemple Windows Mobile


Ltat "ETAT_Param" correspond une facture envoye aux clients dont le nom commence par la lettre "D"
ou par la lettre "E".
La borne minimale correspond : "D" et la borne maximale : "E".
Cet tat attend en paramtre la date prvue de livraison saisie dans le champ de saisie "SAI_DateLiv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
// Slection de limprimante
iConfigure()
// Imprimer ltat avec passage de bornes et de paramtres
iImprimeEtat(ETAT_Param, "D", "E", SAI_DateLiv)

120 Partie 1 : Editeur dtats


Exemple WebDev
Ltat "ETAT_Param" correspond limpression des factures dun client spcifique pour le mois de Janvier
2004.
La borne minimale correspond : "01/01/2004" et la borne maximale : "31/01/2004".
Cet tat attend en paramtre le numro du client concern. Cet tat saffiche dans un fichier PDF lors dun
clic sur le bouton "BTN_Imprimer".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\" + "ETAT_Param_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Imprime ltat avec passage de bornes et du paramtre
iImprimeEtat(ETAT_Param, "01012003", "31012003", NumCli)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")

12.3 Etat sur une requte


Pour imprimer un tat bas sur une requte, il faut distinguer deux cas:
tat sur une requte sans paramtre.
tat sur une requte avec paramtres.

Remarques:
Si des paramtres doivent tre passs ltat, ces paramtres doivent tre indiqus dans la fonction iIm-
primeEtat, aprs le nom de ltat imprimer.
La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le nom de la
requte associe ltat.

12.3.1 Imprimer un tat sur une requte sans paramtre


Pour imprimer une requte sans paramtre, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Prciser le nom de ltat imprimer grce la fonction iImprimeEtat.

Partie 1 : Editeur dtats 121


Par exemple:
Sous WinDev: pour imprimer ltat "ETAT_Requete":
// Ouvrir la fentre daperu
iAperu()
// Impression de ltat ETAT_Requete
iImprimeEtat(ETAT_Requete)
Sous Windows Mobile: pour imprimer ltat "ETAT_Requete":
// Slection de limprimante
iConfigure()
// Impression de ltat ETAT_Requete
iImprimeEtat(ETAT_Requete)
Sous WebDev: pour imprimer ltat "ETAT_Requete" au format HTML:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\ETAT_Requete_" + ...
DateSys() + HeureSys() + ".htm"
// Paramtre la destination de limpression
iDestination(iHTML, NomFicUnique)
// Imprime ltat ETAT_Requete
iImprimeEtat(ETAT_Requete)
// Extrait le nom et lextension du fichier gnr
NomFichier est une chane = fExtraitChemin(NomFicUnique, ...
fFichier + fExtension)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFichier)

12.3.2 Imprimer un tat sur une requte paramtre


Pour imprimer une requte avec paramtres, il suffit de:
1.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
2.Passer les paramtres la requte grce la fonction iInitRequteEtat.
3.Prciser le nom de ltat imprimer grce la fonction iImprimeEtat.

Par exemple: Ltat "ETAT_Requete" est bas sur une requte paramtre. Les paramtres attendus par la
requte sont le nom de la socit et le type de la socit. Ces paramtres ont t saisis dans la fentre de
lancement de limpression de ltat.
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Passer les paramtres la requte associe ltat
iInitRequteEtat(ETAT_Requete, NomSocit, TypeSocit)
// Imprimer la liste des socits
iImprimeEtat(ETAT_Requete)
Code Windows Mobile:
// Slection de limprimante
iConfigure()

122 Partie 1 : Editeur dtats


// Passer les paramtres la requte associe ltat
iInitRequteEtat(ETAT_Requete, NomSocit, TypeSocit)
// Imprimer la liste des socits
iImprimeEtat(ETAT_Requete)
Code WebDev:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\ETAT_Requete_" + ...
DateSys() + HeureSys() + ".htm"
// Paramtre la destination de limpression
iDestination(iHTML, NomFicUnique)
// Passer les paramtres la requte associe ltat
iInitRequteEtat(ETAT_Requete, NomSocit, TypeSocit)
// Imprime ltat ETAT_Requete
iImprimeEtat(ETAT_Requete)
// Extrait le nom et lextension du fichier gnr
NomFichier est une chane = fExtraitChemin(NomFicUnique, ...
fFichier + fExtension)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFichier)
Remarque: Si certains paramtres attendus par la requte ne sont pas prciss (valeur correspondant
NULL par exemple), les conditions de slection correspondant ces paramtres seront ignores.

12.4 Etat sur un champ Table


Limpression dun tat sur un champ Table doit tre ralise uniquement partir de la fentre affichant le
champ Table imprimer. Si le bouton na pas t cr automatiquement, il suffit de:
1.Crer un bouton dans la fentre (ou la page) contenant le champ Table.
2.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
Sous Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote
de dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
3.Prciser le nom de ltat imprimer grce la fonction iImprimeEtat.

Remarques:
Si des paramtres supplmentaires doivent tre passs ltat, ces paramtres doivent tre indiqus
dans la fonction iImprimeEtat, aprs le nom de ltat imprimer. Pour plus de dtails, consultez "Etat
paramtr", page 139.
Si la fentre contenant le champ Table source de ltat est ouverte plusieurs fois (ouverture non modale
par la fonction OuvreFille), il faut passer en paramtre ltat le nom complet du champ Table impri-
mer. Par exemple:
// Proprit ..NomComplet va contenir le nom de la fentre
// qui doit tre ouverte avec un alias
// afin de distinguer chaque fentre
iImprimeEtat(ETAT_Table_Client, TABLE_Client..NomComplet)

// Code douverture de ltat:


PROCEDURE ETAT_Table_Client(NomTableSource)
MonEtat..NomSource = NomTableSource

Partie 1 : Editeur dtats 123


La proprit ..SlectionSeule permet de connatre et de modifier les enregistrements imprimer dans
ltat: impression de tous les enregistrements ou uniquement des enregistrements slectionns.
Important Sous le logiciel Etats & Requtes, il est possible dimprimer un tat:
soit en lanant une impression (icne ).
soit en testant ltat (icne ).
Il nest donc pas ncessaire de programmer limpression de ltat.

Exemple WinDev et WinDev Mobile


Lensemble des informations imprimer est contenu dans le champ Table "TABLE_TableClient" prsent dans
la fentre "FEN_Client".
Ltat imprimer est nomm "ETAT_Client" et simprime lors dun clic sur le bouton "BTN_Imprimer".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
En WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat bas sur le champ Table "TABLE_TableClient"
iImprimeEtat(ETAT_Client)
En Windows Mobile:
// Slection de limprimante
iConfigure()
// Imprimer ltat bas sur le champ Table "TABLE_TableClient"
iImprimeEtat(ETAT_Client)
Exemple WebDev
Lensemble des informations imprimer est contenu dans le champ Table "TABLE_TableClient" prsent dans
la page "PAGE_Client".
Ltat imprimer est nomm "ETAT_Client" et saffiche dans un fichier PDF lors dun clic sur le bouton "BTN_
Imprimer".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\" + ...
"ETAT_Client_" + DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Imprime ltat bas sur le champ Table TABLE_TableClient
iImprimeEtat(ETAT_Client)
// Affiche ltat au format PDF
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)

124 Partie 1 : Editeur dtats


12.5 Etat sur une variable

12.5.1 Imprimer un tat sur une variable


Pour imprimer un tat sur une variable, il suffit de:
1.Initialiser la valeur de la variable utilise.
2.Si ncessaire, trier le tableau (par exemple avec la fonction TableauTrie).
3.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
En Windows Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote de
dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
4.Prciser le nom de ltat imprimer grce la fonction iImprimeEtat.

Remarques
La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le nom de la
variable associe ltat.
La proprit ..RubriqueAffichee utilise dans le code de ltat permet de connatre et de changer le nom
de la variable associe la rubrique.

Exemple WinDev et WinDev Mobile


Ltat "ETAT_gglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat
permet dimprimer la liste des vnements dun agenda Google.
Ltat "ETAT_gglEvenement" simprime lors dun clic sur le bouton "BTN_Evnement". Dans cet exemple, le
code de clic du bouton "BTN_Evnement" est le suivant:
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat ETAT_gglEvenement
iImprimeEtat(ETAT_gglEvenement)
Code Windows Mobile:
// Slection de limprimante
iConfigure()
// Imprimer ltat ETAT_gglEvenement
iImprimeEtat(ETAT_gglEvenement)

Exemple WebDev
Ltat "ETAT_gglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat
permet dimprimer la liste des vnements dun agenda Google.
Ltat "ETAT_gglEvenement" saffiche dans un fichier PDF lors dun clic sur le lien "LIEN_Evnement". Le
fichier PDF est ensuite affich sur le navigateur. Dans cet exemple, le code de clic serveur du lien "LIEN_Ev-
nement" est le suivant:
// Gnre un nom de fichier PDF unique
NomFicUnique est une chane
NomFicUnique = fRepWeb() + "\" + "ETAT_gglEvenement_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)

Partie 1 : Editeur dtats 125


// Imprime ltat ETAT_gglEvenement
iImprimeEtat(ETAT_gglEvenement)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)

12.5.2 Imprimer un tat paramtr sur une variable


Pour imprimer un tat paramtr bas sur une variable, il suffit de:
1.Initialiser la valeur de la variable tableau utilise.
2.Si ncessaire, trier le tableau (par exemple avec la fonction TableauTrie).
3.Paramtrer la destination de limpression de ltat:
En WinDev, grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...).
En WebDev, grce la fonction iDestination (impression dans un fichier HTML, ...).
En WinDev Mobile, grce la fonction iConfigure ou iParamtre. Ces fonctions ouvrent une bote de
dialogue dans laquelle lutilisateur slectionne limprimante utiliser par dfaut.
4.Prciser les paramtres suivants grce la fonction iImprimeEtat:
le nom de ltat imprimer.
les diffrents paramtres attendus par ltat (dans lordre spcifi dans ltat).

Exemple WinDev et WinDev Mobile


Une fentre liste les agendas et leurs vnements. Ltat "ETAT_gglEvenement" simprime lors dun clic sur
le bouton "Imprimer les vnements de lagenda". Cet tat attend en paramtre lagenda pour lequel les
vnements doivent tre lists.

Code WinDev:
le code de clic du bouton "Imprimer les vnements de lagenda" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_gglEvenement, Agenda[1])
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat
PROCEDURE ETAT_gglEvenement(MonAgenda)
Code Windows Mobile:
le code de clic du bouton "Imprimer les vnements de lagenda" est le suivant:
// Slection de limprimante
iConfigure()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_gglEvenement, Agenda[1])
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat
PROCEDURE ETAT_gglEvenement(MonAgenda)

126 Partie 1 : Editeur dtats


Exemple WebDev
Ltat "ETAT_gglEvenement" saffiche dans un fichier PDF lors dun clic sur le lien "Imprimer les vnements
de lagenda". Le fichier PDF est ensuite affich sur le navigateur. Cet tat attend en paramtre lagenda pour
lequel les vnements doivent tre lists.
Dans cet exemple:
le code de clic du bouton "Imprimer les vnements de lagenda" est le suivant:
// Gnre un nom de fichier unique
NomFicUnique est une chane = fRepWeb() + "\" + ...
"Evenementggl_" + DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Gnre ltat
iImprimeEtat(ETAT_gglEvenement, MonAgenda)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat
PROCEDURE ETAT_gglEvenement(MonAgenda)

12.6 Fonctions dimpression


Les principales fonctions intervenant dans limpression des tats sont les suivantes:
iAperu / iDestination Paramtre la destination de limpression.
iImprimeEtat Imprime un tat ralis avec lditeur dtats.
iInitRequteEtat Initialise la requte lie ltat (cas dune requte paramtre).
iHautBasPageImbriqu Imprime ou non les enttes et les pieds de page de ltat imbriqu.

Pour plus de dtails sur ces fonctions, consultez laide en ligne.

Remarque: Ces fonctions sont uniquement les fonctions ncessaires limpression de ltat. Dautres fonc-
tions sont prsentes dans le paragraphe "Fonctions WLangage", page 144.

Partie 1 : Editeur dtats 127


13. Impression de duplicata

13.1 Prsentation
Pour des raisons lgales, il peut tre ncessaire de conserver une copie strictement exacte dun tat, par
exemple dune facture.
Par ailleurs, compte tenu du volume des donnes traiter, certains tats (par exemple statistiques) peuvent
tre longs gnrer.
La fonctionnalit de Duplicata permet de rpondre automatiquement cette problmatique.
Le principe est simple: Lors de ldition dun tat (tat cr sous lditeur dtats ou par program-
mation), sa copie exacte peut tre gnre dans un fichier au format ".dpl" et peut tre conserve.

Il devient alors possible de rditer cette copie de ltat. Les donnes ne sont pas retraites ce qui protge
contre les modifications et rend cette rdition instantane.
La cration dun duplicata peut tre ralise:
depuis laperu avant impression (WinDev uniquement).
par programmation.

Il est possible de signer un duplicata laide dun certificat:


soit depuis laperu avant impression.
soit par programmation.

Remarques:
Limpression dun tat avec duplicata ralentit limpression. En effet, la dure de cration du duplicata est
comprise dans la dure de limpression. Il est recommand de faire des tests de performances.
Limpression dune page dun tat avec duplicata entrane la cration du duplicata pour la totalit de
ltat.

13.2 Crer un duplicata depuis laperu avant impression (Win-


Dev uniquement)

13.2.1 Impression disponible par dfaut


Par dfaut, le volet "Exporter" de laperu avant impression propose loption "Duplicata" permettant lutilisa-
teur de crer tout moment un duplicata de ltat actuellement affich.

128 Partie 1 : Editeur dtats


Lors de lutilisation de cette option, un slecteur de fichiers souvre permettant lutilisateur:
de saisir le nom du fichier de type duplicata qui sera cr.
dindiquer le certificat qui sera utilis pour signer le duplicata. La signature du duplicata est bien entendu
optionnelle.
Par dfaut, le duplicata:
est enregistr dans le rpertoire de lapplication.
na pas de mot de passe.
a pour nom: Dupli_AAAAMMJJ_HHMMSS.dpl.

Remarques:
Pour ne pas proposer limpression des duplicata, utilisez la fonction iParamtreAperu (constante iBou-
tonDuplicata).
Pour modifier les paramtres par dfaut du duplicata, utilisez la fonction iParamtreDuplicata avant
dafficher laperu avant impression.

13.2.2 Personnalisation du duplicata cr


Pour modifier les paramtres par dfaut pour les duplicatas crs depuis laperu avant impression, il est
possible dutiliser la fonction iParamtreDuplicata avec la constante iDplImpression.
Exemple:
// Paramtrage du duplicata de la facture
iParamtreDuplicata(iDplImpression, "C:\Temp", ...
"MonDuplicata_%d_%h", "JJJJ JJ MMMM AAAA", "HH.MM.SS")

// Impression du duplicata
iAperu()
iImprimeEtat(ETAT_Facture)
La fonction iParamtreDuplicata permet:
de personnaliser les options de duplicata proposes par dfaut par loption "Duplicata" prsente dans
laperu avant impression.
dautomatiser limpression dun duplicata depuis laperu avant impression. En effet:
le duplicata sera gnr lors de limpression (ralise depuis laperu avant impression).
si une annotation ou un champ de saisie est modifi dans laperu avant impression, un nouveau
duplicata sera gnr lors de la prochaine impression.
si limpression est effectue sur plusieurs imprimantes diffrentes, un duplicata sera gnr pour
chaque imprimante.
Remarque: La liste des duplicatas crs lors de la dernire impression peut tre connue grce la fonction
iDernierFichier.

13.3 Crer un duplicata par programmation


Pour crer un duplicata par programmation:
1.Utilisez la fonction iParamtreDuplicata (avec la constante iDplImpression) pour paramtrer les options
de cration des duplicata.
2.Utilisez la fonction iDestination en prcisant que limpression doit tre ralise sur une imprimante. Le
duplicata sera cr en mme temps que limpression sera ralise.
Pour arrter limpression des duplicatas, utilisez la fonction iParamtreDuplicata (avec la constante iDplAu-
cun).

Partie 1 : Editeur dtats 129


13.4 Signer un duplicata
Les duplicata peuvent tre signs laide dun certificat. Cette signature assure lintgrit des tats mmori-
ss. La signature est intgre au duplicata.
Cette signature effectue automatiquement un horodatage. Elle peut tre ncessaire sur le plan lgal pour
certaines utilisations.
La norme de signature utilise est PKCS7.
Il est possible de signer un duplicata laide dun certificat:
soit depuis laperu avant impression (consultez le paragraphe Crer un duplicata depuis laperu avant
impression de cette page).
soit par programmation:
La signature de duplicata est ralise grce aux fonctions:
iDestination Paramtre la destination de limpression.
iParamtreDuplicata Paramtre la cration automatique du duplicata gnr lors de la
prochaine impression.

La vrification de la signature dun fichier duplicata est ralise grce la fonction:


CertificatVrifieDuplicata Vrifie la signature dun duplicata.

13.5 Utiliser un duplicata


Pour utiliser un duplicata existant, il est possible de:
dropper le fichier ".dpl" dans lditeur de WinDev ou WebDev : le duplicata souvre automatiquement dans
laperu avant impression et peut tre imprim.
utiliser la fonction iImprimeDuplicata. Cette fonction permet dimprimer le fichier ".dpl" spcifi. Pour affi-
cher le duplicata dans laperu avant impression, il suffit dutiliser la fonction iAperu. Par exemple:
iAperu()
iImprimeDuplicata("C:\Mes Projets\Mon_Projet\Exe\"+ ...
Dupli_20101021_112712.dpl")
Visionneuse de duplicata
Installe avec lapplication sur le poste de lutilisateur final, cette visionneuse permet de visualiser et dimpri-
mer facilement le contenu dun fichier duplicata. Il suffira de double-cliquer sur le fichier dextension ".dpl".
Pour installer cet outil, il suffit de slectionner loutil optionnel "DplViewer" dans lassistant de gnration du
programme dinstallation.

Remarque: Bandeaux colors


Lors de laffichage dun duplicata dans laperu avant impression, diffrents bandeaux peuvent apparatre
en bas de laperu pour informer lutilisateur sur le fichier duplicata manipul.
Ces bandeaux colors sont galement disponibles dans la visionneuse de duplicata.

130 Partie 1 : Editeur dtats


14. Impression dun texte en filigrane

14.1 Prsentation
Un tat (et bien entendu un duplicata) peut intgrer un texte complmentaire sous forme de filigrane, comme
par exemple le terme "Confidentiel" ou "Duplicata" en travers de ltat.
La cration dun filigrane peut tre ralise:
depuis laperu avant impression (WinDev uniquement).
par programmation.

Remarques:
Si un filigrane est dfini pour un tat, il est dfini pour toutes les pages de ltat.
Un seul filigrane peut tre dfini pour un tat. Il nest pas possible de dfinir plusieurs filigranes.
Le filigrane est imprim uniquement sur les pages contenant des informations. Il nest pas imprim sur
des pages vides.

14.2 Crer un filigrane depuis laperu avant impression

14.2.1 Impression disponible par dfaut


Sous le volet "Annoter" de laperu avant impression, loption "Filigrane" permet lutilisateur de crer tout
moment un filigrane dans ltat actuellement affich.

Lors de lutilisation de cette option, une fentre spcifique souvre permettant lutilisateur de dfinir: la
destination du filigrane: impression et/ou duplicata.
le positionnement du filigrane: diagonal montant, descendant ou horizontal.
le texte du filigrane, sa police, sa taille, sa couleur et son opacit.

Partie 1 : Editeur dtats 131


14.2.2 Personnalisation de la fentre daperu avant impression
Si vous avez personnalis la fentre daperu avant impression (avant lapparition des filigranes), pour grer
les filigranes, il suffit de:
1.Importer la nouvelle fentre daperu.
2.Copier le bouton de cration des filigranes.
Pour plus de dtails, consultez laide en ligne.

14.3 Crer un filigrane par programmation


Diffrentes mthodes permettent de crer un filigrane par programmation:
Mthode 1: Paramtrage complet: utilisation dune variable de type Filigrane.
Mthode 2: Paramtrage rapide: utilisation directe.

14.3.1 Mthode 1: Paramtrage complet: utilisation dune variable de type Filigrane


Cette mthode est la suivante:
1.Dfinissez une variable de type Filigrane. Cette variable contient toutes les caractristiques du filigrane
imprimer.
2.Utilisez la fonction iParamtreFiligrane pour ajouter le filigrane dans votre tat.
3.Lancez limpression de ltat.

132 Partie 1 : Editeur dtats


Par exemple:
Code permettant dimprimer un filigrane en fond dun tat cr avec lditeur dtats:
// Impression dun filigrane en fond dun tat
MonFiligrane est un Filigrane

// Texte du filigrane
MonFiligrane..Texte = "Confidentiel"
// Police utilise
MonFiligrane..Police..Nom = "Arial"
// Le filigrane sera imprim en centr horizontalement et en bas
MonFiligrane..Position = iCentreH + iBas

// Impression dans laperu


iAperu()

// Indique que le filigrane sera imprim lors de limpression


// et dans les duplicatas
iParamtreFiligrane(iFiligraneImpression + ...
iFiligraneDuplicata, MonFiligrane)

// Lance limpression de ltat


iImprimeEtat(ETAT_Commercial)
Code permettant dimprimer un filigrane en fond dun tat cr avec les fonctions dimpression:
MonFiligrane est un Filigrane

// Texte du filigrane
MonFiligrane..Texte ="Confidentiel"

// Impression dans laperu


iAperu()

// Mise en place dun filigrane en fond du document uniquement


iParametreFiligrane(iFiligraneImpression, MonFiligrane)

// Imprime plusieurs pages avec filigrane


POUR i = 6 A 10
iImprime("Page" + i)
iSautePage()
FIN
// La dernire page est vide et na pas de filigrane

// Termine limpression
iFinImprime()

Partie 1 : Editeur dtats 133


14.3.2 Mthode 2: Paramtrage rapide: utilisation directe
Cette mthode est la suivante:
1.Utilisez directement la fonction iParamtreFiligrane pour spcifier le texte du filigrane ajouter dans
votre tat. Dans ce cas, la police utilise est "Arial", avec une taille automatique et une opacit de 20%.
2.Lancez limpression de ltat.

Par exemple:
Code permettant dimprimer un filigrane en fond dun tat cr avec lditeur dtats:
// Impression dans laperu
iAperu()

// Indique que le filigrane sera imprim lors de limpression


// et dans les duplicatas
iParamtreFiligrane("Confidentiel")

// Lance limpression de ltat


iImprimeEtat(ETAT_Commercial)
Code permettant dimprimer un filigrane en fond dun tat cr avec les fonctions dimpression:
// Impression dans laperu
iAperu()

// Mise en place dun filigrane en fond du document uniquement


iParametreFiligrane(iFiligraneImpression, "Confidentiel")

// Imprime plusieurs pages avec filigrane


POUR i = 6 A 10
iImprime("Page" + i)
iSautePage()
FIN
// La dernire page est vide et na pas de filigrane

// Termine limpression
iFinImprime()

134 Partie 1 : Editeur dtats


15. Programmation dun tat

15.1 Prsentation
Ce chapitre prsente les diffrents traitements disponibles dans un tat et dans ses lments (champs et
blocs) ainsi que leur mode de fonctionnement, et leur enchanement.
Dans ces diffrents traitements, des fonctions et proprits du WLangage peuvent tre utilises. Certaines
fonctions et proprits spcifiques aux tats sont prsentes dans ce chapitre.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Traitements dun tat").

15.2 Enchanement des traitements associs un tat


Lors de limpression dun tat, diffrentes oprations sont ralises. Lordre de ralisation de ces oprations
est le suivant:
1. Excution du traitement "Ouverture" de ltat
2. Excution des traitements "Initialisation" des blocs et "Initialisation" des champs
3. Initialisation de la source de donnes
4. Pour les tats bass sur un fichier de donnes, une vue HFSQL ou une zone mmoire:
Excution du traitement "Filtre" de ltat
Excution des procdures de tri de ltat
5. Initialisation des marges et positionnement du mode Portrait / Paysage
6. Redimensionnement si ncessaire de ltat selon le format spcifi
7. Impression du bloc Dbut de document et excution de ses traitements (*)
8. Impression du bloc Entte de page et excution de ses traitements pour chaque page de
ltat (*)
9. Boucle dimpression:
Lecture de lenregistrement
Excution du traitement "Filtre" de ltat (pour les tats bass sur une requte ou sur
une table). Si pas OK, passe lenregistrement suivant.
Ralisation des calculs sur les valeurs des rubriques
Excution du traitement "Lecture" de ltat
Test de la rupture:
soit sur la rubrique de rupture pour les ruptures automatiques.
soit sur la valeur retourne par le traitement "Rupture" pour les ruptures program-
mes.
Si OK, change de rupture et impression dun ou de plusieurs blocs Haut de rupture et
Bas de rupture.

Partie 1 : Editeur dtats 135


Impression du bloc Corps.
Remarque: Lors de limpression dun bloc Haut de rupture, Bas de rupture ou Corps, les
oprations suivantes sont ralises:
Excution des traitements "Avant impression" du bloc et "Avant impression" des
champs du bloc,
Ralisation des calculs sur les champs du bloc,
Agrandissement des champs et des blocs auto-extensibles,
Impression et excution du traitement "Aprs impression" du bloc.
10. Impression du bloc Fin de document et excution de ses traitements (*)
11. Impression du bloc Pied de page et excution de ses traitements pour chaque page de
ltat (*)
12. Excution du traitement "Fermeture" de ltat
(*) Lordre dimpression des blocs Dbut de document, Entte de page, Pied de page et Fin de document
peut tre modifi dans longlet "Options" de la description de ltat (option "Description de ltat" du menu
contextuel de ltat).

Rappel: Si la destination de limpression est un fichier HTML ou XML, les blocs Haut de page et Bas de page
ne sont gnrs quune seule fois.

15.3 Traitements associs ltat


Les diffrents traitements associs aux tats sont les suivants (ordre dapparition sous lditeur de code):
Ouverture de ltat.
Lecture des donnes.
Filtre (tenir compte de lenregistrement ?).
Fermeture de ltat.
Plusieurs traitements sont associs aux tats. Ces traitements sont excuts lors de limpression de ltat.

15.3.1 Traitement "Ouverture"


Le traitement "Ouverture" de ltat est excut lors du lancement de limpression de ltat.
Rappel: Lordre dexcution des traitements au lancement dun tat (y compris lors dun test) est le suivant:
"Ouverture" de ltat.
"Initialisation" des blocs de ltat.
"Initialisation" des champs.

Exemples dutilisation
Ce traitement permet par exemple de:
dclarer les variables globales de ltat.
modifier les bornes de ltat avec les proprits ..BorneMin et ..BorneMax.
initialiser les mots de passe des fichiers de donnes si ncessaire.
paramtrer la destination de limpression (fonction iAperu).
passer des paramtres la requte lie ltat (fonction iInitRequteEtat).
rcuprer les paramtres passs ltat.
changer la source de donnes de ltat.
Remarque: La fonction iImprime ne doit pas tre utilise dans le traitement douverture de ltat.

136 Partie 1 : Editeur dtats


Mot de passe du fichier de donnes source de ltat
Si le fichier de donnes source de ltat est protg par un mot de passe, prcisez ce mot de passe avant
louverture du fichier de donnes (grce la fonction HPasse par exemple).
Si le fichier de donnes na pas t ouvert avant limpression de ltat, il est possible de prciser le mot de
passe dans le traitement "Ouverture" de ltat.
Initialisation des variables
Lors de limpression dun tat depuis laperu avant impression, ltat est automatiquement r-excut
lorsque:
lutilisateur change dimprimante.
lutilisateur utilise un des boutons de la barre de boutons (Impression en mode PDF, HTML, dans un
email, ...).
Dans ce cas, les donnes imprimes dans ltat peuvent tre diffrentes de celles visualises dans laperu.
Il est conseill dinitialiser les variables ncessaires ltat dans le traitement "Ouverture de ltat" plutt
que dans le code du bouton qui lance limpression.

15.3.2 Traitement "Lecture des donnes"


Ce traitement est excut lors du parcours des enregistrements imprimer (dans la boucle dimpression),
aprs la lecture de lenregistrement.
Exemples dutilisation
Ce traitement permet par exemple de:
effectuer des substitutions de blocs (car le prochain enregistrement imprimer est connu).
slectionner des enregistrements.
effectuer des calculs spcifiques.
Remarque: Ce code renvoie Vrai sil reste des enregistrements imprimer et Faux sil ny a plus denregis-
trements imprimer.
Pour ne pas imprimer un enregistrement, utilisez le traitement "Filtre (tenir compte de lenregistrement ?)".

15.3.3 Traitement "Filtre"


Ce traitement est excut:
lors de linitialisation de la source de donnes si elle est effectue (pour les tats bass sur un fichier,
une vue ou une zone mmoire).
dans la boucle dimpression, aprs la lecture de lenregistrement (cas des tats sur requte ou sur table).
Ce traitement permet de filtrer les enregistrements affichs dans ltat.

Exemples dutilisation
Ce traitement permet par exemple de:
slectionner des enregistrements.
raliser des calculs avancs (total pralable, ...) pour les tats bass sur les fichiers, les vues ou les
zones mmoires.

Utilisation du traitement
Si ce traitement contient des lignes de code, ces lignes de codes doivent renvoyer une valeur:
Annuler pour arrter la lecture des enregistrements (et arrter limpression).
Vrai pour signifier que lenregistrement vrifie le filtre et quil doit tre imprim.
Faux pour signifier que lenregistrement ne vrifie pas le filtre et quil ne doit pas tre imprim.

Partie 1 : Editeur dtats 137


15.3.4 Traitement "Fermeture"
Ce traitement est excut lorsque limpression de ltat est termine, juste avant de fermer ltat.
Ce traitement ne doit pas contenir de fonctions dimpression.

Exemples dutilisation
Ce traitement permet par exemple de:
connatre ltat de limpression en cours (fonction iStatusImpressionEtat).
ouvrir une bote de dialogue.

15.4 Traitement de rupture


Si votre tat comprend une ou plusieurs ruptures programmes, le traitement de rupture est associ au bloc
Haut de rupture.
Ce traitement permet dutiliser une rupture programme. Deux types de programmation de rupture peuvent
tre mis en place:
le code de rupture renvoie Vrai ou Faux (Vrai pour effectuer la rupture, Faux pour ne pas effectuer la rup-
ture).
le code de rupture renvoie la valeur de la rupture. Si la valeur change, la rupture est automatiquement
ralise par ltat (voir exemple ci-dessous).
La valeur de la rupture peut correspondre la valeur dune rubrique, dun champ de ltat, dune va-
riable,...

Remarque: Si la valeur de la rupture correspond la valeur dun champ de ltat, la valeur retourne sera
fausse si ce champ est contenu dans le bloc Corps de ltat. En effet, le traitement de rupture est excut
avant le remplissage des champs prsents dans le bloc Corps. Dans ce cas, il suffit de renvoyer la valeur de
la rubrique lie au champ.
// -- Code de rupture
nFournisseur est un entier = 0
// Rcuprer lidentifiant du fournisseur
nFournisseur = ExtraitChane(gfsLigne, 1, TAB)
// Rechercher le nom du fournisseur
HLitRecherchePremier(FOURNISSEUR, NumFournisseur, nFournisseur)
SI HTrouve() = Vrai ALORS
// Initialiser le champ
NomFournisseur = FOURNISSEUR.Socit
FIN
// Renvoyer lidentifiant du fournisseur
RENVOYER nFournisseur
Important: Le code de rupture est excut uniquement si la rupture correspondante est une rupture pro-
gramme (non relie un critre de tri).

15.5 Procdure de tri


Une procdure de tri peut tre mise en place dans un tat sur un fichier de donnes ou dans un tat sur une
zone mmoire. Cette procdure peut par exemple modifier dynamiquement les critres de tri.

138 Partie 1 : Editeur dtats


Pour mettre en place une procdure de tri:
1.Sous le volet "Modification", dans le groupe "Etat", cliquez sur "Editer les tris". La liste des critres de tri
de ltat saffiche.
2.Cliquez sur le bouton "Nouveau critre de tri" (icne ).
3.Cochez loption "Tri sur du code WLangage".
4.Saisissez le nom et la valeur des paramtres de la procdure de tri (par exemple: "ValTri("Ville")").
5.Validez lajout du nouveau critre de tri.
6.Crez la procdure de tri. Cette procdure doit renvoyer largument de tri. Par exemple:
PROCEDURE ValTri(Critre)
// Tri sur le NOM ou sur la VILLE
SELON Critre
Cas "Ville": RENVOYER Client.Ville
Cas "Nom": RENVOYER Client.Nom
FIN

15.6 Etat paramtr


Lors de limpression dun tat, il est possible de passer des paramtres cet tat. Ltat est alors appel
"tat paramtr".
Par exemple, votre tat correspond un mailing publicitaire envoy tous les clients de votre socit. Avant
dexcuter cet tat, le texte du mailing est saisi dans un champ. Ce texte correspond alors un paramtre
attendu par ltat.

Partie 1 : Editeur dtats 139


15.6.1 Crer un tat paramtr
La cration dun tat paramtr est compose de plusieurs tapes:
1.Cration dun tat.
2.Modification de cet tat pour grer les paramtres:
Rcupration des paramtres dans le code "Ouverture" de ltat laide de la syntaxe suivante:
PROCEDURE <NomEtat>(<NomParam1>, ...
<NomParam2>= "<ValeurParDfautParam2>", ...
...
<NomParamN> = "<ValeurParDfautParamN>")
Rappel: Certains paramtres passs une procdure peuvent tre optionnels. Lors de la dclaration
de la procdure, les paramtres optionnels doivent tre dcrits en dernire position ( droite), avec une
valeur par dfaut prcde du signe "=". Pour plus de dtails, consultez laide en ligne (mot-cl : "Para-
mtres, Paramtres dune procdure.
Utilisation de ces paramtres dans les champs de ltat.
3.Modification si ncessaire de lapplication afin de spcifier les diffrents paramtres.
4.Impression de ltat avec passage des paramtres.

Exemple:
La programmation ncessaire la cration dun tat paramtr est illustre par lexemple suivant:
Ltat "ETAT_EtatParam" correspond un mailing publicitaire envoy aux clients.
Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "SAI_TexteMailing".

Mise en place:
1.Crez ltat "ETAT_EtatParam":
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
Dans lassistant, slectionnez "Mailing" et validez.
Cet tat est li au fichier "Client" de votre analyse.
2.Personnalisez cet tat.
3.Dans le traitement "Ouverture" de ltat "ETAT_EtatParam", saisissez le code suivant:
// Rcuprer le paramtre pass ltat et
// passer un paramtre par dfaut pour le test de ltat
PROCEDURE ETAT_EtatParam(sTexte = "Valeur par dfaut")
4.Dans le bloc Corps de cet tat, ajoutez le champ Libell "LIB_TexteMailing" permettant dafficher le texte
du mailing.
5.Dans le traitement "Avant impression" du champ "LIB_TexteMailing", saisissez le code suivant:
// Rcuprer le texte du mailing
LIB_TexteMailing = sTexte
6.Dans une fentre de lapplication, ajoutez:
le champ de saisie "SAI_TexteMailing" permettant lutilisateur de saisir le texte du mailing.
le bouton "BTN_Imprimer" permettant de lancer limpression de ltat.

140 Partie 1 : Editeur dtats


15.6.2 Imprimer un tat paramtr
Pour imprimer un tat paramtr, il suffit de:
1.Paramtrer la destination de limpression de ltat grce la fonction iAperu (aperu avant impression,
impression dans un fichier HTML, ...).
2.Prciser les paramtres suivants grce la fonction iImprimeEtat:
le nom de ltat imprimer.
les paramtres.
Remarques:
Si ltat est bas sur une vue HFSQL, le nom de cette vue HFSQL doit tre indiqu dans la fonction iImpri-
meEtat, avant les paramtres. Pour plus de dtails, consultez laide en ligne.
Si ltat est bas sur une zone mmoire, le nom de cette zone mmoire doit tre indiqu dans la fonction
iImprimeEtat, avant les paramtres. Pour plus de dtails, consultez laide en ligne.
Si ltat est un tat born, la valeur des bornes (minimales et/ou maximales) doit tre indique dans la
fonction iImprimeEtat, avant les paramtres. Pour plus de dtails, consultez laide en ligne.

Exemple:
Ltat "ETAT_EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en para-
mtre le texte du mailing saisi dans le champ de saisie "SAI_TexteMailing".
Ltat "ETAT_EtatParam" simprime lors dun clic sur le bouton "BTN_Imprimer".
Dans cet exemple, le code du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec passage de paramtre
iImprimeEtat(ETAT_EtatParam, SAI_TexteMailing)

15.6.3 Tester un tat paramtr


Pour tester un tat paramtr directement depuis lditeur dtats, il est conseill de donner une valeur par
dfaut aux paramtres dans la dclaration des paramtres.
Par exemple, pour tester ltat de lexemple prcdent, saisissez le code suivant dans le traitement "Ouver-
ture" de ltat "ETAT_EtatParam":
// Rcuprer le paramtre pass ltat et
// passer un paramtre par dfaut pour le test de ltat
PROCEDURE ETAT_EtatParam(sTexte = "Valeur par dfaut")

15.7 Manipuler un tat dans un traitement WLangage


Pour manipuler un tat dans un traitement WLangage, il suffit dutiliser le nom de cet tat. Ce nom peut tre
utilis:
soit dans une fonction WLangage,
soit avec une proprit WLangage,
soit en affectation directe.
Par exemple:
// Imprimer ltat "ETAT_EtatParam"
iImprimeEtat(ETAT_EtatParam)
// Modifier le nombre dexemplaires de ltat "Etat_Client"
ETAT_Client..NbCopie = 10

Partie 1 : Editeur dtats 141


15.8 Mots-cls associs aux tats
Les diffrents mots-cls utilisables dans les tats sont les suivants:
Mot-cl Effet
MaSource Permet de manipuler la source de donnes courante.
MonEtat Permet de manipuler ltat en cours.

Pour plus de dtails sur ces mots-cls et leur utilisation, consultez laide en ligne.

15.9 Proprits associes aux tats


Les diffrentes proprits utilisables sur les tats sont les suivantes:
BasPageColl Permet de grer la position du bloc de pied de page.
BorneMax Permet de connatre et de modifier la borne maximale dun tat bas sur
un fichier de donnes.
BorneMin Permet de connatre et de modifier la borne minimale dun tat bas sur
un fichier de donnes.
ConserverHirarchieVisible Permet de grer le mode dimpression de la hirarchie: impression de la
hirarchie complte ou impression de la hirarchie visible dans le champ.
DroiteAGauche Permet de connatre le sens dcriture rel, effectif sur un champ, une co-
lonne, une fentre ou un tat.
EspaceH Permet de connatre et de modifier lespacement horizontal entre les ti-
quettes dun tat. Cet espace a t dfini lors de la cration de ltat au
format tiquette.
EspaceV Permet de connatre et de modifier lespacement vertical entre les ti-
quettes dun tat. Cet espace a t dfini lors de la cration de ltat au
format tiquette.
HauteurEtiquette Permet de connatre et modifier la hauteur des tiquettes dun tat de type
tiquette.
HTML Permet de savoir si ltat en cours dimpression simprime en mode HTML.
ImageFond Permet de connatre et de modifier limage de fond dun tat.
ImageFondImprime Permet de grer le mode dimpression de limage de fond dun tat.
ImpressionAChaquePage Permet degrer le mode dimpression de ltat (page par page ou en tota-
lit).
InterfaceModifiableAvecE- Permet de savoir si linterface dun tat est modifiable sous le logiciel Etats
tatsEtRequtes & Requtes.
LargeurEtiquette Permet de connatre et modifier la largeur des tiquettes dun tat de type
"tiquette".
MargeBasse Permet de connatre et modifier la marge basse dun tat.
MargeDroite Permet de connatre et modifier la marge de droite dun tat.
MargeGauche Permet de connatre et modifier la marge de gauche dun tat.
MargeHaute Permet de connatre et modifier la marge haute dun tat.

142 Partie 1 : Editeur dtats


MsgTriSel Permet de connatre et modifier le message dattente affich lors du tri et
de la slection des enregistrements de ltat.
NbColonne Permet de connatre le nombre de colonnes dun tat.
NbCopie Permet de connatre et de modifier le nombre dexemplaires imprimer
dun tat.
NbEnrImprim Permet de connatre le nombre denregistrements dj imprims.
NbEnrLu Permet de connatre le nombre denregistrements lus: slectionns la
fois par la source de ltat ET par le code de filtre (sil existe).
NbEnrTotal Permet de connatre et modifier le nombre denregistrements imprimer.
NbEtiquette Permet de connatre et modifier le nombre dtiquettes imprimes sur la
largeur dune page.
NbExemplaireEtiquette Permet de connatre et modifier le nombre dexemplaires dtiquettes iden-
tiques imprims.
Nom Permet de connatre le nom dun champ, dun tat ou dun bloc dun tat.
NomSource Permet de connatre le nom de la source de donnes de ltat et de chan-
ger la source de donnes de ltat.
NomVue Permet de connatre et modifier le nom de la vue HFSQL, source de don-
nes dun tat
NomZoneMem Permet de connatre et modifie le nom de la zone mmoire utilise comme
source de donnes dun tat.
NumroPage Permet de connatre et de modifier le numro de la page dun fichier PDF
affich en fond dun tat.
NumEtiquetteDeDpart Permet de connatre et modifier le numro de ltiquette sur la planche
dtiquettes partir de laquelle limpression est effectue.
ODBCCodeSQL Permet de connatre et modifier le code SQL de la "requte ralise sur
une connexion" source de ltat.
ODBCMotDePasse Permet de connatre et de prciser le mot de passe utilis pour se connec-
ter une base de donnes via un driver ODBC ou via un Accs Natif.
ODBCNomBase Permet de connatre et prciser le nom de la base utilise lors de limpres-
sion dun tat bas sur une "requte ralise sur une connexion".
ODBCNomConnexion Permet de connatre et prciser le nom de la connexion ODBC utilise
lors de limpression dun tat bas sur une "requte ralise sur une
connexion".
ODBCNomUtilisateur Permet de connatre et prciser le nom de lutilisateur utilis pour se
connecter une base de donnes via un driver ODBC ou via un Accs
Natif.
Plan Permet de connatre et modifier le plan actif dun tat ou le plan auquel
appartient un champ.
RubriqueParcourue Permet de connatre et modifier la rubrique utilise pour le parcours auto-
matique dun tat sur un fichier de donnes.
SlectionSeule Permet de connatre et de modifier le mode dimpression des lignes slec-
tionnes dans un tat sur table ou table hirarchique.

Partie 1 : Editeur dtats 143


SensEcriture Permet de connatre et de modifier le sens dcriture utilis dans un tat
ou dans un champ (utile pour la gestion des langues de type arabe ou h-
breux).
ToutModifiableAvecEtatsE- Permet de savoir si un tat est modifiable sous le logiciel Etats & Requtes.
tRequtes
Traitement Permet de modifier les traitements excuter par les vnements dispo-
nibles sur un tat.
ValeurRenvoye Permet de connatre et modifier la valeur renvoye par un tat.

15.10 Fonctions WLangage


La plupart des fonctions du WLangage peuvent tre utilises dans les traitements dun tat (cr avec ldi-
teur dtats).
Cependant, certaines fonctions sont dconseilles telles que les fonctions dimpression spcifiques lim-
pression en WLangage ou les fonctions daccs aux enregistrements manipuls par ltat.

15.10.1 Fonctions WLangage dconseilles dans les traitements


Il est dconseill dutiliser les fonctions suivantes dans les traitements de ltat, des blocs ou des champs. Si
ces fonctions sont utilises, lexcution de ltat pourra tre incorrecte.

Fonctions dimpression: iEllipse, iFinImprime, iHauteurImage, iImprime, iImprimeCodeBarre, iImprimeI-


mage, iImprimeMot, iImprimeZone, iImprimeZoneRTF, iLargeurImage, iLien, iLigne, iPosX, iPosY, iSaute-
Ligne, iTrait, iTraitH et iTraitV.

Fonctions daccs un enregistrement: Toutes les fonctions HFSQL du WLangage entranant la modification
de lenregistrement en mmoire ou de lenregistrement en cours dans le fichier de base de ltat sont dcon-
seilles dans les traitements de ltat, du bloc ou des champs. En effet, ces fonctions risquent de modifier le
parcours du fichier de base de ltat

Ces fonctions sont principalement: HAjoute, HCration, HCrationSiInexistant, HDernier, HEcrit, HLitxxxx,
HModifie, HPrcdent, HPositionne, HPremier, HRecherche, HRecule, HRaye, HSuivant, HSupprime, ...

144 Partie 1 : Editeur dtats


Sous le logiciel Etats & Requtes, les fonctions suivantes sont interdites:
HAjouteUtilisateur HArrteServeur HChangeRepJNL
HCopieFichier HCration HCrationSiInexistant
HDBCration HEcrit HImporteHF55
HImporteTexte HImporteTexte_55 HLibre
Important

HMigreClComposeRelie HModifie HModifieDroitBaseDeDon-


nes
HModifieDroitFichier HModifieDroitServeur HModifieGroupe
HModifiePropritBaseDe- HModifiePropritFi- HModifiePropritServeur
Donnes chier
HRaye HRegnreFichier HSupprime
HSupprimeBaseDeDonnes HSupprimeFichier HSupprimeGroupe
HSupprimeLiaison HSupprimeUtilisateur HVueVersFichier

15.10.2 Fonctions dimpression du WLangage utilisables dans un tat


Les fonctions dimpression suivantes peuvent tre utilises dans un tat:
iAperu Paramtre la destination de limpression.
iCadre Imprime un cadre aux coordonnes spcifies.
iCadreArrondi Imprime un cadre avec des bords arrondis aux coordonnes spcifies.
iConfigure Configure limprimante pour une impression ralise en WLangage.
iCrePolice Cre une nouvelle police dimpression.
iEscape Envoie une commande ESCAPE une imprimante.
iFentreAbandon Paramtre laffichage de la fentre permettant labandon de limpres-
sion en cours...
iFermeEtat Arrte immdiatement limpression de ltat en cours.
iFinEtat Force larrt de limpression dun tat.
iForceComplment Force limpression dun bloc de complment de corps.
iHautBasPageImbriqu Imprime ou non les hauts et bas de page de ltat imbriqu.
iHauteurPage Calcule la hauteur de la page imprimable (en millimtres) en tenant
compte des marges (hautes ou bases) dfinies.
iHauteurRestantePage Calcule la hauteur disponible (en millimtres) restant sur la page en
cours en tenant compte des marges (hautes ou basses) dfinies.
iHauteurTexte Calcule la hauteur de la police du texte imprimer (en millimtres).
iHauteurZone Calcule la hauteur ncessaire dune zone de largeur fixe pour que len-
semble dun texte utilisant la police en cours puisse tre imprim dans
cette zone.
iImpressionAbandonne Permet de savoir si lutilisateur a demand labandon de limpression du
document en cours.

Partie 1 : Editeur dtats 145


iImpressionDemande Permet de savoir si lutilisateur a demand limpression du document
depuis laperu avant impression.
iImprimeBloc Force limpression dun bloc de ltat en cours dimpression.
iImprimeComplmentCorps Force limpression dun bloc de complment de corps en spcifiant la
hauteur du bloc de complment.
iImprimeEtat Imprime un tat ralis avec lditeur dtats.
iInfoImprimante Rcupre les caractristiques de limprimante en cours ou de limpri-
mante par dfaut.
iInitRequteEtat Initialise la requte lie ltat (cas dune requte paramtre).
iInitRequteEtatConnexion Initialise la requte lie ltat.
iLargeurPage Calcule la largeur de la page imprimable (en millimtres) en tenant
compte des marges (gauches ou droites) dfinies.
iLargeurTexte Calcule la largeur (en millimtres) du texte imprimer en fonction de la
police spcifie.
iListeEtatsImbriqus Renvoie la liste des tats imbriqus en cours dimpression.
iListeImprimante Renvoie la liste des imprimantes installes sur le poste en cours.
iMagentaTransparent Modifie la gestion de la couleur Magenta afin que cette couleur soit
considre comme transparente ou non dans toutes les prochaines
impressions.
iMarge Dfinit les marges "logiques" dimpression.
iMMVersPica Convertit les coordonnes dun point (exprimes en millimtres) en coor-
donnes systme.
iNumPage Renvoie ou initialise le numro de la page en cours dimpression.
iParamtre Rcupre le paramtrage de limprimante et paramtrelimpression.
iParamtreAperu Paramtre laperu avant impression:
laffichage dun message concernant les ressources du poste en
cours.
laffichage ou non de chaque bouton prsent dans laperu avant
impression.
iParamtrePDF Fixe les options du fichier PDF gnr.
iPicaVersMM Convertit les coordonnes dun point (exprimes en coordonnes sys-
tme) en millimtres.
iPolice Slectionne la police par dfaut.
iPoliceDidot Slectionne lunit utiliser pour la hauteur des polices (cres avec la
fonction iCrePolice): point DIDOT ou point PICA.
iRAZ R-initialise les paramtres dimpression (marges, police, format du pa-
pier, orientation, ...) mmoriss dans la librairie dimpression.
iSautePage Gnre un saut de page: le code correspondant est envoy dans la file
dimpression de limprimante.
iSelectPolice Cre une nouvelle police dimpression depuis la fentre standard de
slection des polices de Windows...
iStatusImpressionEtat Renvoie ltat de limpression en cours.

146 Partie 1 : Editeur dtats


iSubstBloc Substitue un bloc de ltat par un autre bloc au cours de limpression
de ltat.
iTerminePage Force le passage la page suivante au cours de limpression dun tat.

Partie 1 : Editeur dtats 147


148 Partie 1 : Editeur dtats
Index
A C
Agenda 48 Calcul 70
Agenda (type dtat) 24 Calculs dans un tat 36
Ajouter Caractristiques
Cellule dans un tableau 96 Blocs dun tat 62
Colonne dans un tableau 97 Champs dun tat 78
Aligner Tableau 94
Options dalignement 84 Carte denregistrement 19
Aligner des champs 84 Case cocher 75
Aperu avant impression 40 Cellule 95
Assistant Ajouter 96
Cration dtat 23 Hauteur 97
Largeur 97
B Redimensionner 97
Slection 96
Bas de page 61 Cercle 75
Bas de rupture 61 Champ 68
Bloc 58 Aligner 84
Bas de page 61 Calcul 70
Bas de rupture 61 Caractristiques 78
Caractristiques 62 Champ de saisie 77
Complment de corps 61 Champ hors tat 83
Corps 61 Champ pr-dfini 73
Crer un bloc 63 Champ RTF 72
Dbut de document 60 Code-barres 71
Description 62 Copier 82
Fin de document 61 Copier le style 82
Haut de page 60 Crer 80
Haut de rupture 60 Dplacer 83
Itration 61 Description 78
Options dimpression 62 Etat interne 76
Paramtrage 51 Forme 75
Paramtres 62 Graphe 74
Pied de page 61 Groupe de champs 80
Position 64 Image 71
Programmation 64 Interrupteur 75
Proprits associes 66 Libell 68
R-ordonner 64 Lien URL 77
Supprimer un bloc 64 Multilingue 80
Traitements associs 65 Proprits associes 85
Types de blocs 60 Rubrique 70
Bloc Entte de page 60 Slectionner 80
Borne 44 Supprimer 83
Traitements associs 84
Types de champs 68

Partie 1 : Editeur dtats 149


Champ hors tat 83 Version Utilisateur 18
Champ HTML 78 Editeur dtats
Champ Table Fentre principale 20
Imprimer ltat 123 Enlever une colonne (tableau) 98
Cl de parcours 44 Enregistrer
Code-barres 71 Etat 37
Colonne Entte de page 60
Ajouter 97 Etat 13
Dplacer 98 Blocs 58
Enlever 98 Borne 44
Slectionner 96 Calculs 36
Supprimer 98 Champs dun tat 68
Complment de corps 61 Cration 23
Composite (Etat) 103 Description 50
Composite (type dtat) 24 Enregistrer 37
Copier Etat composite 103
Champ 82 Etat imbriqu 108
Style dun champ 82 Fermer 52
Corps 61 Fonctions 144
Crer Format 37
Bloc 63 Formulaire 52, 53
Champs 80 Gabarit 37
Etat 23 Imprimer 40, 113, 116
Etat paramtr 140 Langues 52
Tableau 91 Marges 37
Mot-cls associs 142
D Ouvrir 52
Paramtr 139
Date systme 73 Programmation 135
Dbut de document 60 Proprits associes 142
Dbut dimpression (traitement) 136 Rcupration 52
Dplacer Source de donnes 43
Champ 83 Structure 13
Colonne (tableau) 98 Tester 37
Description Traitements 136
Blocs dun tat 62 Types disponibles 24
Champs dun tat 78 Utiliser des tableaux 89
Etat 50 Etat Agenda 24
Tableau 94 Etat born 44
Devise affiche 70 Etat composite 103
Devise mmorise 70 Etat Composite 24
Duplicata 128 Etat Etiquette 24
Etat Fiche 24
E Etat imbriqu
Etat interne
108
76
Editeur dtats 16 Etat Mailing personnalis 24
Carte denregistrement 19 Etat Multicolonne 24
Configuration minimale 19 Etat paramtr 139
Documentation 18 Crer 140
Installation 19 Imprimer 141
Version Dveloppeur 18 Tester 141

150 Partie 1 : Editeur dtats


Etat Planning
Etat sur champ Table
24
H
Imprimer 123 Haut de page 60
Etat sur fichier Haut de rupture 60
Imprimer 116 Heure systme 73
Etat sur formulaire 24 HTML 40
Etat sur requte HTML (Champ) 78
Imprimer 121
Etat sur variable
Imprimer 125 I
Etat Tableau 24 Image 71
Etat Tableau Crois 24 Imbriquer des tats 108
Etat Vierge 24 Impression
Etiquette (type dtat) 24 Aperu avant impression 40
Excuter un tat 116 Fichier texte 40
HTML 40
F Papier 40
PDF 40
Fentre principale de lditeur 20 RTF 40
Fermer un tat 52 XML 40
Fermeture (traitement) 138 Imprimer
Fiche (type dtat) 24 Duplicata 128
Fichier de donnes 43 Etat 113
Imprimer ltat 116 Etat paramtr 141
Fichier HTML 40 Etat sur champ Table 123
Fichier PDF 40 Etat sur requte 121
Fichier RTF 40 Sur un formulaire 52
Fichier texte 40 Insrer un tableau 93
Fichier XML 40 Interface 20
Filtre (traitement) 137 Interrupteur 75
Fin de document 61 Itration 61
Fin impression (traitement) 138
Fonctions du WLangage
Format de la page
144
37 L
Forme 75 Lancer lditeur dtats 20
Formulaire 52, 53 Langues dun tat 52
Intgrer dans un tat 55 Lecture des donnes (traitement) 137
Formulaire (type dtat) 24 Libell 68
Libre (type dtat) 24
G Lien URL 77
Ligne 75
Gabarit 37, 57 Ligne de tableau
Graphe Slection 96
Type de champ 74 Logiciel Etats et Requtes 18
Groupe de champs 80

Partie 1 : Editeur dtats 151


M Requte indpendante
Requte intgre
45
45
Mailing personnalis (type dtat) 24 Requte paramtre 45
Marges dimpression 37 Requte indpendante 45
Menu ruban 21 Requte intgre 45
Modle dtats 57 Requte paramtre 45
Montaire + Euro 70 RTF 40, 72
Mot-cls Ruban (menu) 21
Etats 142 Rubrique 70
Multicolonne (type dtat) 24 Devise 70
Multilingue des champs dun tat 80 Double-affichage 70
Rupture 35

N Programme 138
Traitement de rupture 138
Nombre de pages 73
Numro de page 73 S
O Saisie (Champ)
Slectionner un ou plusieurs champs
77
80
Options dimpression des blocs 62 Source de donnes de ltat
Ouverture (traitement) 136 Description 50
Ouvrir un tat 52 Fichier 43
Requte 44

P Variable WLangage
Source de donnes de ltat
46

Paramtre Agenda 48
Blocs dun tat 62 Planning 49
Etat 139 Table 46
PDF 40 Source de ltat 43
Pied de page 61 Structure dun tat 13
Planning 49 Supprimer
Planning (type dtat) 24 Bloc 64
Position des blocs 64 Champ 83
Pr-dfini 73
Programmation T
Blocs dun tat 64
Etat 135 Table 46
Proprits associes Tableau 89
Blocs dun tat 66 Ajouter une cellule 96
Champs dun tat 85 Ajouter une colonne 97
Etats 142 Caractristiques 94
Cellule dun tableau 95

R Crer 91
Dplacer une colonne 98
Rectangle 75 Description 94
Rcupration automatique 52 Description du tableau 96
Redimensionner les cellules dun tableau 97 Enlever une colonne 98
R-ordonner des blocs 64 Insrer un tableau dans un tat 93
Requte 44 Redimensionner les cellules 97
Imprimer ltat 121 Slection dun lment 96
Supprimer une colonne 98

152 Partie 1 : Editeur dtats


Tableau crois (type dtat) 24 Lecture des donnes 137
Crer 92 Ouverture 136
Tableau hirarchique (type dtat) Rupture 138
Crer 93 Tri 35
Tableau (type dtat) 24 Type
Crer 91 Type de blocs 60
Tester Type de champs 68
Etat 37 Type dtat 24
Etat paramtr 141
Trait 75
Traitement
V
Blocs dun tat 65 Variable WLangage 46
Champs dun tat 84 Vierge (type dtat) 24
Dbut dimpression 136
Etat 136
Fermeture 138
X
Filtre 137 XML 40
Fin impression 138

Partie 1 : Editeur dtats 153


154 Partie 1 : Editeur dtats
Partie 2
Editeur de
requtes
156 Partie 2 : Editeur de requtes
Editeur de requtes - Sommaire
1. Introduction
1.1 Quest-ce quune requte ?.....................................................................................................................159
1.2 Editeur de requtes................................................................................................................................. 161
1.2.1 Prsentation .......................................................................................................................161
1.2.2 Diffrences entre lditeur de requte intgr et le logiciel "Etats & Requtes" .............161
1.3 Interface principale de lditeur de requtes........................................................................................163
1.4 Un menu sous forme de ruban...............................................................................................................165
1.5 Requte et projet.....................................................................................................................................167

2. Comment crer une requte ?


2.1 Prsentation............................................................................................................................................168
2.2 Requte de slection..............................................................................................................................169
2.2.1 Prsentation .......................................................................................................................169
2.2.2 Cration dune requte de slection ................................................................................. 171
2.3 Requte dinsertion................................................................................................................................. 172
2.3.1 Prsentation .......................................................................................................................172
2.3.2 Cration dune requte dinsertion ...................................................................................173
2.4 Requte de modification........................................................................................................................ 174
2.4.1 Prsentation ....................................................................................................................... 174
2.4.2 Cration dune requte de modification ...........................................................................175
2.5 Requte de suppression......................................................................................................................... 176
2.5.1 Prsentation ....................................................................................................................... 176
2.5.2 Cration dune requte de suppression ............................................................................177
2.6 Requte compose................................................................................................................................. 178
2.6.1 Prsentation .......................................................................................................................178
2.6.2 Cration dune requte compose laide de la fentre de description ........................180
2.7 Requte en code SQL..............................................................................................................................181
2.7.1 Prsentation .......................................................................................................................181
2.7.2 Cration dune requte en code SQL ................................................................................181
2.7.3 Rtro-analyse de la requte en code SQL .........................................................................181
2.7.4 Modes dexcution dune requte en code SQL ...............................................................182
2.7.5 Commandes SQL disponibles ...........................................................................................182
2.8 Mode de cration des requtes..............................................................................................................187

3. Description dune requte


3.1 Prsentation............................................................................................................................................188
3.2 Fentre de description............................................................................................................................188
3.2.1 Afficher la fentre de description ......................................................................................188
3.2.2 Fentre de description dune requte de slection ..........................................................188
3.2.3 Fentre de description dune requte compose ............................................................193
3.2.4 Fentre de description dune requte dinsertion, de modification, de suppression ou
en code SQL .......................................................................................................................................194

Partie 2 : Editeur de requtes 157


3.3 Caractristiques dune requte..............................................................................................................195
3.3.1 Rubriques utilises dans une requte de slection .........................................................195
3.3.2 Trier les enregistrements slectionns par une requte de slection ............................197
3.3.3 Oprations possibles dans une requte de slection ......................................................199
3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection ................... 200
3.3.5 Conditions de slection .................................................................................................... 200
3.3.6 Enchanement des conditions de slection ..................................................................... 203
3.3.7 Afficher les enregistrements correspondant une priode donne .............................. 204
3.3.8 Limiter le nombre denregistrements affichs dune requte de slection ................... 205
3.3.9 Conserver ou non les doublons ........................................................................................ 206
3.3.10 Jointure entre les fichiers de donnes ............................................................................. 206
3.3.11 Cohrence avec lanalyse ..................................................................................................207
3.4 Ouvrir, fermer et enregistrer une requte..............................................................................................207
3.5 Dossier de la requte..............................................................................................................................208
3.6 Optimiser une requte............................................................................................................................209

4. Tester et utiliser une requte


4.1 Test de la requte....................................................................................................................................210
4.1.1 Exporter le rsultat de la requte vers un fichier Word ....................................................212
4.1.2 Exporter le rsultat de la requte vers un fichier Excel ....................................................212
4.1.3 Exporter le rsultat de la requte vers un fichier XML ......................................................212
4.1.4 Exporter le rsultat de la requte vers un fichier de donnes HFSQL .............................212
4.1.5 Imprimer le rsultat de la requte .....................................................................................212
4.2 Utiliser le rsultat dune requte............................................................................................................213
4.2.1 Requte dans une fentre WinDev ou dans une page WebDev ......................................213
4.2.2 Requte dans un champ dune fentre WinDev ou dune page WebDev ........................214
4.2.3 Requte dans un tat ........................................................................................................215
4.3 Excution de la requte et manipulation du rsultat avec les fonctions du WLangage....................215

5. Requte avance
5.1 Prsentation............................................................................................................................................ 216
5.2 Sous-requte............................................................................................................................................ 216
5.2.1 Sous-requte en tant que condition de slection .............................................................216
5.2.2 Sous-requte utilise comme source de donnes dune requte ...................................217
5.3 Requte paramtre............................................................................................................................... 217
5.3.1 Cration dune requte paramtre .................................................................................217
5.3.2 Test dune requte paramtre .........................................................................................218
5.3.3 Utilisation dune requte paramtre ...............................................................................218
5.3.4 Deux mthodes pour passer des paramtres une requte ..........................................221

158 Partie 2 : Editeur de requtes


1. Introduction

1.1 Quest-ce quune requte ?


Une requte sert interroger une base de donnes pour visualiser, insrer, modifier ou supprimer des don-
nes. La structure de la requte dfinit les donnes manipules.
Une requte peut interroger un ou plusieurs fichiers de donnes.
Lditeur de requtes permet de crer trs simplement des requtes, sans avoir programmer.

Donnes en provenance dun ou de plusieurs fichiers (HFSQL, Oracle...)

Paramtres fixs par


programmation
ou demands
lutilisateur

Requte
Sur des fichiers HFSQL Classic, une requte est optimise

Code SQL gnr

Le rsultat dune requte se manipule comme un fichier de donnes

Le rsultat de la requte peut tre utilis par :

RAD Champs de fentres ou de pages (Onglet Contenu)

Programme : HLitPremier... Etat Requte

Par exemple, pour lapplication Gestion Commerciale, vous voulez connatre:


les commandes passes en mars 2015. Vous allez crer une requte qui va slectionner dans le
fichier COMMANDE uniquement les commandes dont la date est comprise entre le 01/03/2015 et le
31/03/2015.
La requte REQ_Mars2015 interroge le fichier COMMANDE.

Partie 2 : Editeur de requtes 159


le numro des commandes passes par les clients de Paris (France). Vous allez crer une requte qui va
interroger:
le fichier CLIENT pour slectionner uniquement les clients habitant Paris (France).
le fichier COMMANDE pour afficher les numros de commande.
La requte REQ_CommandesClientParisFrance interroge deux fichiers de donnes (CLIENT et COMMANDE).

160 Partie 2 : Editeur de requtes


1.2 Editeur de requtes

1.2.1 Prsentation
Lditeur de requtes permet de crer automatiquement des requtes sur les fichiers de donnes. La cra-
tion dune requte est trs simple et intuitive. La requte est automatiquement gnre (en code SQL opti-
mis) et peut tre teste immdiatement.
La programmation est alors simplifie: fentres, pages, tables, combos, tats de votre projet pourront tre
bass sur les requtes.

1.2.2 Diffrences entre lditeur de requte intgr et le logiciel "Etats & Requtes"
Deux versions de lditeur de requtes sont disponibles:
lditeur de requtes directement intgr.
Cette version est fournie en standard avec WinDev, WebDev ou WinDev Mobile. Cette version ne peut tre
utilise que lors du dveloppement dune application WinDev ou WinDev Mobile ou dun site WebDev.
lditeur de requtes Utilisateur (appel galement le logiciel Etats & Requtes). Cet diteur est livr uni-
quement avec WinDev.
Cette version est indpendante de WinDev et peut tre utilise par un utilisateur final.
Certaines fonctionnalits de lditeur de requtes ne sont pas disponibles dans cette version.
Licne suivante permet dindiquer les diffrences entre le logiciel Etats & Requtes et lditeur de
requtes intgr.

Partie 2 : Editeur de requtes 161


Editeur de requtes intgr
Avec lditeur de requtes intgr, il est possible de crer des requtes et dexcuter ces requtes depuis
lditeur ou depuis une application ralise avec WinDev, WinDev Mobile ou WebDev.
La cl lectronique de WinDev, WinDev Mobile ou WebDev est ncessaire lutilisation de lditeur de re-
qutes. Elle doit tre prsente sur le port parallle de votre ordinateur pendant lutilisation de lditeur.
La cl lectronique nest en aucun cas ncessaire lutilisateur final (pour excuter une requte depuis une
application WinDev, WinDev Mobile ou WebDev).
Plusieurs exemples sont livrs avec lditeur de requtes intgr. Dans ces exemples, vous retrouverez les
principales requtes pouvant tre rencontres dans des applications.
Pour connatre les exemples prsentant des requtes:
Affichez le guide: sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Aide" et slectionnez
"Consulter le guide".
Saisissez le mot-cl "Requte".
La liste des exemples utilisant des requtes saffiche.
Consultez ces exemples, ils vous apprendront beaucoup et vous pouvez vous en inspirer pour crer vos
propres requtes !
Editeur de requtes Utilisateur (logiciel Etats & Requtes - WinDev uniquement)
Avec le logiciel Etats & Requtes, il est possible de crer et dexcuter des requtes depuis lditeur (sans
avoir besoin de WinDev).
Les requtes cres pourront tre excutes depuis lditeur de requtes ou depuis une application WinDev
(si cette application gre les requtes cres avec le logiciel Etats & Requtes).
La cl lectronique nest pas ncessaire lutilisation du logiciel Etats & Requtes.
Pour crer des nouvelles requtes ou pour modifier des requtes existantes avec le logiciel Etats & Re-
qutes, certaines manipulations sont ncessaires. Pour plus de dtails, consultez "Diffuser le logiciel Etats
& Requtes", page 231.
Documentation
Le logiciel Etats & Requtes et lditeur de requtes intgr sont livrs avec la mme aide en ligne. Seul ldi-
teur de requtes intgr est livr avec une documentation papier.
Documentation papier:
La documentation papier a t conue pour vous aider dcouvrir et utiliser lditeur de requtes. La
premire partie de ce guide est consacre lditeur dtats.
Le "Guide de lditeur de requtes" est complmentaire au "Guide dauto-formation" et aux "Concepts".
Aide en ligne
Laide en ligne vous guide dans vos manipulations sous lditeur. Laide en ligne est propose:
soit sous forme dune aide locale. Les fichiers ncessaires sont installs sur le poste de dveloppe-
ment.
soit sous forme dune aide Internet. Cette aide est disponible depuis nimporte quel poste disposant
dun accs Internet. Cette aide est mise jour rgulirement.

162 Partie 2 : Editeur de requtes


Pour accder laide en ligne, utilisez une des mthodes suivantes:
sous le volet "Accueil", dans le groupe "Aide en ligne", droulez "Aide" et slectionnez "Index de laide".
appuyez sur la touche [F1].
Pour modifier le type daide en ligne utilis:
1.Sous le volet "Outils", dans le groupe "Environnement", droulez "Options" et slectionnez "Options gn-
rales de XXX".
2.Dans longlet "Aide", slectionnez le mode daccs la base daide: "Utiliser la base daide par Internet"
ou "Utiliser la base daide locale" ainsi que la langue prfre.
3.Validez.
Installation
Installation de lditeur de requtes intgr: Lditeur de requtes intgr est automatiquement install
en mme temps que WinDev, WebDev ou WinDev Mobile.
Installation du logiciel Etats & Requtes: Linstallation du logiciel Etats & Requtes est simple, il suffit
de suivre les instructions lors de linstallation de lapplication WinDev.
Configuration minimale pour le logiciel Etats & Requtes
Pour pouvoir utiliser le logiciel Etats & Requtes, vous devez avoir une machine avec les caractristiques
suivantes:
512 Mo de mmoire centrale (1 Go ou plus conseills).
800 Mo despace disque.
sous Windows 2000, 2003, XP, Vista, 7, 8 ou suprieur.
Enregistrez-vous
La carte denregistrement jointe votre produit est trs importante. Elle vous permet de bnficier des diff-
rents services gratuits que PC SOFT offre sa clientle: assistance du Support Technique Gratuit, informa-
tions sur les nouveauts, suivi des volutions du produit, ...
Retournez votre carte denregistrement dment remplie ds aujourdhui.

Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l "Assis-
Important

tance Directe" pour disposer dun "assistanat tlphonique". Pour toute information
complmentaire sur l "Assistance Directe", veuillez contacter le service commercial
de PC SOFT.

1.3 Interface principale de lditeur de requtes


Pour afficher lditeur de requtes, il suffit de:
crer une nouvelle requte:
cliquez sur prsent dans les boutons daccs rapide.
la fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes".
ouvrir une requte existante (via le volet "Explorateur de projet" par exemple).

Partie 2 : Editeur de requtes 163


Les lments importants de lditeur de requtes sont les suivants:
Ruban
Permet un accs rapide aux principales fonctionnalits de lditeur de requtes.

Code SQL de la requte en cours

Reprsentation graphique de la requte en cours


Des ascenseurs permettent de faire dfiler la reprsentation de la requte si la taille de
cette reprsentation est importante. Il est galement possible de raliser un zoom (par
exemple laide de la souris: [Ctrl] + Roulette de la souris).
Volets ancrables
Affiche:
les raccourcis vers les principales fonctionnalits disponibles sous lditeur en cours
(volet "Commandes"),
les fonctionnalits les plus utilises (volet "Commandes"),
les lments (fichiers, rubriques, tats, champs, ...) disponibles dans le projet en cours
(volet "Explorateur de projet").
Important

Sous le logiciel Etats & Requtes, seuls les lments accessibles sont
lists dans le volet "Explorateur de projet".

164 Partie 2 : Editeur de requtes


Liste des rubriques et des paramtres de la requte slectionne
Si la requte est excute par programmation (fonction HExcuteRequte), lordre de pas-
sage des paramtres (cas dune requte paramtre) correspond lordre indiqu dans
cette liste.

Important Sous le logiciel Etats & Requtes, la liste des rubriques et des para-
mtres de la requte slectionne nest pas disponible.

Fentre de description de la requte en cours


Permet de connatre et de modifier lensemble des caractristiques de la requte.
Navigateur
Lorsquune requte ne peut pas tre affiche entirement dans lespace de travail, le navi-
gateur permet de se dplacer aisment dans cette requte.
Documents ouverts
Affiche un bouton pour chaque document ouvert (tats, requtes, ...) sous lditeur. Pour
afficher llment voulu au premier plan, il suffit de cliquer sur le "bouton" correspondant.

1.4 Un menu sous forme de ruban


WinDev, WebDev et WinDev Mobile prsentent les diffrentes options des diteurs laide dun ruban. Ce
ruban est compos de volets dans lesquels sont regroupes les diffrentes options des diteurs.
Le ruban est compos de diffrentes zones:

1.La zone des boutons daccs rapide.


2.La zone des volets.
3.La zone des groupes doptions.

Les boutons daccs rapide


Les boutons daccs rapide permettent deffectuer les oprations les plus courantes, bien souvent com-
munes tous les diteurs: enregistrer, ouvrir, crer, ...

Les 3 boutons en haut de cette zone sont galement spcifiques:le logo de la version permet dafficher:
la fentre "A propos...".
les perso-menus (menus personnaliss).
les menus droulants des versions prcdentes (version 17 et antrieures).

Partie 2 : Editeur de requtes 165


les 2 pictogrammes suivants permettent de retrouver les menus et les barres doutils des versions prc-
dentes (version 17 et antrieures).
La zone des volets
Les diffrents volets du ruban permettent daccder aux options des diffrents diteurs.

Plusieurs types de volets sont disponibles:le volet en cours: Longlet du volet apparat en gris clair et un
trait color est affich en haut de longlet.
les volets contextuels, spcifiques llment en cours: Ces volets concernent lditeur en cours ou ll-
ment slectionn. Le nom du volet est affich:
en jaune pour WinDev,
en orange pour WinDev Mobile,
en bleu pour WebDev.
les autres volets disponibles: Le nom du volet apparat en blanc.
La zone des options
Les options sont regroupes sous les volets dans des groupes doptions.

En fonction du volet slectionn, les options affiches dans le ruban diffrent.


Plusieurs types doptions sont disponibles:
Options cocher.
Boutons cliquer.
Boutons flche permettant de drouler des options. Deux types de boutons flche sont disponibles:
les boutons flche permettant uniquement de drouler un menu.
les boutons flche permettant soit de drouler un menu (clic sur la flche), soit deffectuer une
action par dfaut (clic sur licne du bouton).
Les options sont regroupes par groupe. Chaque groupe doptions a un nom et peut avoir un bouton de re-
groupement: . Ce bouton permet deffectuer une action spcifique selon le groupe en cours: affichage
de la description de llment en cours, affichage de laide, ...

166 Partie 2 : Editeur de requtes


1.5 Requte et projet
Une requte nest pas ncessairement rattache un projet. Une requte doit cependant tre intgre un
projet pour tre appele depuis un traitement du projet.
Par contre, une requte est ncessairement rattache une analyse WinDev, WebDev ou WinDev Mobile.
Une requte peut manipuler des donnes provenant dune analyse diffrente de lanalyse de cration. La
structure des fichiers et des rubriques utiliss par la requte doit alors tre identique.
Lanalyse WinDev, WebDev ou WinDev Mobile contient la description des fichiers qui seront interrogs par la
requte.
Si lanalyse est modifie, une synchronisation automatique est effectue entre lanalyse et les requtes.

Projet

Requte

Fentre

Analyse

Requte

Lors de la cration de la requte:


si un projet associ une analyse est ouvert, la requte sera automatiquement rattache lanalyse du
projet.
si aucun projet nest ouvert, il sera ncessaire de spcifier lanalyse utilise dans lassistant de cration
de la requte.

Partie 2 : Editeur de requtes 167


2. Comment crer une requte ?

2.1 Prsentation
Pour crer une requte, deux mthodes sont possibles:
cration de la requte avec un assistant ou laide de la fentre de description, et gnration automa-
tique du code SQL.
saisie du code SQL. Pour plus de dtails, consultez "Cration dune requte en code SQL", page 181.
Lditeur de requtes permet de crer plusieurs types de requtes:
requte de slection: ce type de requte permet de visualiser une slection denregistrements provenant
dun ou de plusieurs fichiers dune base de donnes. Cest le type de requte le plus utilis.
Pour plus de dtails, consultez "Cration dune requte de slection", page 171.
requte dinsertion: ce type de requte permet dajouter des enregistrements dans un fichier dune base
de donnes.
Pour plus de dtails, consultez "Cration dune requte dinsertion", page 173.
requte de modification: ce type de requte permet de modifier des enregistrements prsents dans un
fichier dune base de donnes.
Pour plus de dtails, consultez "Cration dune requte de modification", page 175.
requte de suppression: ce type de requte permet de supprimer des enregistrements prsents dans un
fichier dune base de donnes.
Pour plus de dtails, consultez "Cration dune requte de suppression", page 177.
requte compose: ce type de requte permet de combiner des requtes de slection.
Pour plus de dtails, consultez "Cration dune requte compose laide de la fentre de description",
page 180.
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion, de modi-
fication ou de suppression.

Remarque: Tous les types de requtes peuvent tre bass sur des rubriques appartenant:
soit un fichier de donnes dcrit dans lanalyse.
soit une requte prcdemment cre avec lditeur de requtes.
Aprs la cration de la requte, il est possible tout moment de modifier les caractristiques de cette re-
qute. Pour plus de dtails, consultez "Description dune requte", page 188.

Requte dinsertion, de modification et de suppression:


La possibilit de crer des requtes dinsertion, de modification et de suppression est supporte pour com-
patibilit avec la norme SQL.
Lutilisation des ordres natifs WinDev (fonctions HLitPremier, HLitSuivant, HAjoute, HModifie, HSupprime, ...
du WLangage) est beaucoup plus adapte la programmation de ce type de traitement.
SQL est un langage de requte destin linterrogation des donnes, mais nest pas adapt aux modifica-
tions personnalises de ces donnes. Pour ajouter, modifier ou supprimer des enregistrements dans un
fichier dune base de donnes, la puissance et la simplicit de WinDev sont irremplaables et fortement
conseilles.

168 Partie 2 : Editeur de requtes


Important Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion, de modi-
fication ou de suppression.

Principe:
La cration dune requte consiste :
prciser la mthode de cration de la requte (assistant, fentre de description ou code SQL).
spcifier le type de la requte (insertion, modification, ...).
indiquer lanalyse (WinDev, WinDev Mobile ou WebDev (si ncessaire) contenant la description des
fichiers de donnes sur lesquels sera base la requte.
slectionner les rubriques utiliser.
saisir les caractristiques de la requte (conditions de slection, tri, ...).

2.2 Requte de slection

2.2.1 Prsentation
Une requte de slection (instruction SQL correspondante: SELECT) permet de visualiser une slection den-
registrements dans une base de donnes. Cest le type de requte le plus utilis.

Pour obtenir cette slection, les principales caractristiques de la requte sont les suivantes:
le type de jointure entre les fichiers utiliss (si plusieurs fichiers sont utiliss),
les conditions de slection des enregistrements (clients habitant Nantes, produits dont le prix est sup-
rieur 40 Euros, ...),
le regroupement des valeurs dune rubrique (regroupement des produits par type, des clients par ge, ...),
les oprations effectues sur le contenu des rubriques (somme totale des commandes dun client,
somme moyenne dpense par client, ...),
le tri du rsultat de la requte (rsultat tri par codes postaux, par prix, ...).

Par exemple, vous voulez obtenir la somme totale des commandes par client habitant Londres. Seuls les
clients ayant un cumul des commandes suprieur 3000 Euros seront conservs. Le rsultat sera tri par
ordre croissant du cumul des commandes. Pour raliser cette requte, le rsultat sera automatiquement
regroup par nom du client et par ville.

Partie 2 : Editeur de requtes 169


Lditeur de requtes gnre automatiquement le code SQL de cette requte.

Pour visualiser le code SQL dune requte:


1.Affichez le menu contextuel du graphe de la requte.
2.Slectionnez loption "Code SQL".
Vous pouvez galement utiliser la touche [F2].
SELECT
CLIENT.NomClient AS NomClient,
CLIENT.VILLE AS VILLE,
SUM(COMMANDE.TotalTTC) AS la_somme_TotalTTC
FROM
CLIENT,
COMMANDE
WHERE
CLIENT.NumClient = COMMANDE.NumClient
AND
(
CLIENT.VILLE = Londres
)
GROUP BY
CLIENT.NomClient,
CLIENT.VILLE
HAVING

170 Partie 2 : Editeur de requtes


SUM(COMMANDE.TotalTTC) > 3000
ORDER BY
la_somme_TotalTTC ASC

2.2.2 Cration dune requte de slection


Pour crer une nouvelle requte de slection avec la fentre de description dune requte de slection:
1.Cliquez sur parmi les boutons daccs rapide.
Dans la fentre qui saffiche, cliquez sur "Requtes".
Lassistant de cration dune requte se lance.
2.Choisissez de crer une requte de slection (option "Slection (SELECT)"). Passez ltape suivante de
lassistant.
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
Validez.
4.La fentre de description de la requte saffiche.
5.Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra
didentifier la requte dans vos programmes.
6.Spcifiez le libell de la requte en dcrivant succinctement le rle de la requte. Ce libell sera utilis
dans le dossier du projet.
7.Dans la partie gauche, slectionnez les diffrentes rubriques utilises par la requte.
Pour plus de dtails sur les rubriques dune requte, consultez "Rubriques utilises dans une requte de
slection", page 195.
8.Dans la partie centrale, slectionnez la rubrique sur laquelle une action doit tre ralise (condition de
slection, tri, ...).
9.Dans la partie droite, dfinissez les actions raliser sur la rubrique slectionne (condition de slec-
tion, tri, ...).
10.Supprimez si ncessaire les enregistrements "doublons" du rsultat de la requte (bouton "Supprimer
les doublons").
Dans ce cas, chaque enregistrement du rsultat de la requte sera unique. Par exemple, si une requte af-
fiche tous les clients ayant pass au moins une commande, les clients ayant pass plusieurs commandes
napparatront quune seule fois dans le rsultat de la requte.
11.Validez la fentre. La reprsentation graphique de la requte saffiche automatiquement.
12.Sous le volet "Accueil", dans le groupe "Gnral", droulez "Enregistrer" et cliquez sur "Enregistrer" pour
sauvegarder la requte.

Remarques
Il est galement possible de crer une nouvelle requte de slection avec un assistant simplifi: cochez
loption "Utiliser lassistant simplifi" dans lassistant de cration dune requte.
Remarque: Lassistant simplifi ne permet pas de grer les index "full-text".
Pour modifier les caractristiques dune requte, sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers dcrits sous lditeur
danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse"
vers lditeur de requtes.

Partie 2 : Editeur de requtes 171


2.3 Requte dinsertion

2.3.1 Prsentation
Une requte dinsertion (Instruction SQL correspondante: INSERT) permet dajouter des enregistrements
dans un fichier dune base de donnes.
Les informations ncessaires pour raliser une requte dinsertion sont:
le fichier dans lequel des donnes vont tre insres.
les rubriques dans lesquelles de nouvelles valeurs vont tre insres.
Par exemple, cration dun nouveau client dans le fichier "Client":

Lditeur de requtes gnre automatiquement le code SQL de cette requte.

Pour visualiser le code SQL dune requte:


1.Affichez le menu contextuel du graphe de la requte.
2.Slectionnez loption "Code SQL".
Vous pouvez galement utiliser la touche [F2].
Dans notre exemple:
INSERT INTO CLIENT
(
Civilite,
NomClient,
Societe,
Adresse1,
CodePostal,
Ville
)
VALUES
(
Melle,

172 Partie 2 : Editeur de requtes


Montgomery,
UNISOFT,
15 Avenue Paul Rimbaud,
75000,
Paris
)
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion.

2.3.2 Cration dune requte dinsertion


Pour crer une nouvelle requte dinsertion:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes".
Lassistant de cration de requtes se lance.
2.Choisissez de crer une requte dinsertion (option "Ajout (INSERT)").
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
Passez ltape suivante de lassistant.
4.Slectionnez le fichier de donnes dans lequel des donnes vont tre insres.
Passez ltape suivante.
5.Les nouvelles valeurs vont tre insres dans les diffrentes rubriques du fichier. Pour chaque rubrique
concerne, cliquez dans la colonne "Valeur/Paramtres". Une fentre permettant de slectionner la valeur
ou le paramtre insrer souvre.
6.Spcifiez la valeur ou le paramtre contenant la valeur insrer. Les nouvelles valeurs insrer peuvent
correspondre :
la valeur par dfaut dfinie dans lanalyse.
une valeur spcifier. Prcisez cette valeur.
une valeur contenue dans un paramtre. Prcisez le nom du paramtre.
une valeur nulle.
7.Validez votre choix.
8.Rptez les oprations 5 7 pour chaque rubrique dans laquelle une valeur doit tre insre.
Passez ltape suivante.
9.Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra
didentifier la requte dans vos programmes.
10.Spcifiez le libell de la requte en dcrivant succinctement le rle de la requte. Ce libell sera utilis
dans le dossier du projet.
Remarque: Le nom de la requte se dfinit automatiquement partir du libell saisi.
11.Validez la description de la requte. La reprsentation graphique de la requte saffiche automatique-
ment sous lditeur de requtes.

Remarques
Pour modifier les caractristiques dune requte: sous le volet "Requte", dans le groupe "Edition", slec-
tionnez loption "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.

Partie 2 : Editeur de requtes 173


Il est galement possible de crer une requte partir dun ou de plusieurs fichiers dcrits sous lditeur
danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse"
vers lditeur de requtes.
Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails,
consultez "Test de la requte", page 210.

2.4 Requte de modification

2.4.1 Prsentation
Une requte de modification (instruction SQL correspondante UPDATE) permet de modifier des enregistre-
ments dans un fichier dune base de donnes.
Pour obtenir cette modification, les principales caractristiques de la requte sont les suivantes:
le fichier dans lequel des donnes vont tre modifies.
les rubriques dans lesquelles des valeurs vont tre modifies.
les conditions de slection des enregistrements (clients habitant Nantes, produits dont le prix est sup-
rieur 40 Euros, ...).
Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de slection", page
200.
Par exemple, la cliente N 45762 sest marie. Sa civilit et son nom de famille ont t modifis.

Lditeur de requtes gnre automatiquement le code SQL de cette requte.

174 Partie 2 : Editeur de requtes


Pour visualiser le code SQL dune requte:
1.Affichez le menu contextuel du graphe de la requte.
2.Slectionnez loption "Code SQL".
Vous pouvez galement utiliser la touche [F2].
Dans notre exemple:
UPDATE
CLIENT
SET
Civilite = Mme,
NomClient = VAUVERT
WHERE
CLIENT.NumClient = 45762
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes de modification.

2.4.2 Cration dune requte de modification


Pour crer une nouvelle requte de modification:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes".
Lassistant de cration dune requte se lance.
2.Choisissez de crer une requte de modification (option "Modification (UPDATE)").
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
Passez ltape suivante de lassistant.
4.Slectionnez le fichier de donnes dans lequel des donnes vont tre modifies. Passez ltape sui-
vante de lassistant.
5.Pour chaque rubrique dont la valeur doit tre modifie, cliquez sur la colonne "Valeur/Paramtre". Une
fentre permettant de slectionner la valeur ou le paramtre modifier souvre.
6.Spcifiez la valeur ou le paramtre contenant la valeur modifier. Les valeurs modifier peuvent corres-
pondre :
la valeur par dfaut dfinie dans lanalyse.
une valeur spcifier. Prcisez cette valeur.
une valeur contenue dans un paramtre. Prcisez le nom du paramtre.
une valeur nulle.
7.Validez votre choix.
8.Rptez les oprations 5 7 pour chaque rubrique dans laquelle une valeur doit tre modifie.
9.Dfinissez les conditions de slection. Cliquez dans la colonne "Condition" des diffrentes rubriques
concernes. Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de
slection", page 200.
Passez ltape suivante de lassistant.
10.Prcisez si ncessaire lenchanement des conditions de slection avec les oprateurs conditionnels ET
et OU:
Oprateur conditionnel ET: les enregistrements conservs auront rpondu aux deux conditions. Par
exemple, la requte slectionne les clients dont le nom commence par la lettre "A" ET habitant
Nantes.

Partie 2 : Editeur de requtes 175


Oprateur conditionnel OU: les enregistrements conservs auront rpondu une des deux conditions
ou aux deux conditions. Par exemple, la requte slectionne les clients habitant Toulouse OU habi-
tant Brest.
Passez ltape suivante de lassistant.
11.Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra
didentifier la requte dans vos programmes.
12.Spcifiez le libell de la requte en dcrivant succinctement le rle de la requte. Ce libell sera utilis
dans le dossier du projet.
Remarque: Le nom de la requte se dfinit automatiquement partir du libell saisi.
13.Validez la description de la requte. La reprsentation graphique de la requte saffiche automatique-
ment sous lditeur de requtes.

Remarques
Il est possible de modifier lensemble des caractristiques dune requte: sous le volet "Requte", dans
le groupe "Edition", cliquez sur "Description". Pour plus de dtails, consultez "Description dune requte",
page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers dcrits sous lditeur
danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse"
vers lditeur de requtes.
Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails,
consultez "Test de la requte", page 210.

2.5 Requte de suppression

2.5.1 Prsentation
Une requte de suppression (instruction SQL correspondante: DELETE) permet de supprimer des enregistre-
ments dun fichier dans une base de donnes.
Pour effectuer cette suppression, les principales caractristiques de la requte de suppression sont les sui-
vantes:
le fichier dans lequel des donnes vont tre supprimes.
les conditions de slection des enregistrements supprimer (clients habitant Nantes, produits dont le
prix est suprieur 40 Euros, etc.).
Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de slection", page
200.

176 Partie 2 : Editeur de requtes


Par exemple, suppression des commandes passes avant le 1er Janvier 2010:

Lditeur de requtes gnre automatiquement le code SQL de cette requte.

Pour visualiser le code SQL dune requte:


1.Affichez le menu contextuel du graphe de la requte.
2.Slectionnez loption "Code SQL".
Vous pouvez galement utiliser la touche [F2].
DELETE FROM
COMMANDE
WHERE
COMMANDE.DateCommande < 20100101
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes de suppression.

2.5.2 Cration dune requte de suppression


Pour crer une nouvelle requte de suppression:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes".
Lassistant de cration dune requte se lance.
2.Choisissez de crer une requte de suppression avec lassistant (option "Suppression (DELETE)").
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
4.Passez ltape suivante de lassistant.
5.Slectionnez le fichier de donnes dans lequel des donnes vont tre supprimes. Passez ltape sui-
vante.

Partie 2 : Editeur de requtes 177


6.Dfinissez les conditions de slection en cliquant sur la colonne "Condition" des rubriques concernes.
Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de slection",
page 200.
Passez ltape suivante.
7.Prcisez si ncessaire lenchanement des conditions de slection avec les oprateurs conditionnels ET
et OU:
Oprateur conditionnel ET: les enregistrements conservs auront rpondu aux deux conditions. Par
exemple, la requte slectionne les clients dont le nom commence par la lettre "A" ET habitant
Nantes.
Oprateur conditionnel OU: les enregistrements conservs auront rpondu une des deux conditions
ou aux deux conditions. Par exemple, la requte slectionne les clients habitant Toulouse OU habi-
tant Brest.
Passez ltape suivante.
8.Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra
didentifier la requte dans vos programmes.
9.Spcifiez le libell de la requte en dcrivant succinctement le rle de la requte. Ce libell sera utilis
dans le dossier du projet.
10.Validez la description de la requte. La reprsentation graphique de la requte saffiche automatique-
ment sous lditeur de requtes.

Remarques
Pour modifier lensemble des caractristiques dune requte: sous le volet "Requte", dans le groupe
"Edition", cliquez sur "Description". Pour plus de dtails, consultez "Description dune requte", page
188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers de donnes dcrits
sous lditeur danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers de donnes slectionns
dans le volet "Analyse" vers lditeur de requtes.
Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails,
consultez "Test de la requte", page 210.

2.6 Requte compose

2.6.1 Prsentation
Une requte compose (Instruction SQL correspondante: UNION) permet de combiner plusieurs requtes de
slection. Chaque requte de slection doit porter sur des fichiers de structure identique.
Par exemple, slection des clients dont le nom commence par la lettre A et des prospects habitant Nice.
Pour raliser cette slection, il est ncessaire de combiner les deux requtes suivantes:
slection des clients dont le nom commence par la lettre A. Cette requte est base sur le fichier
"Client".
slection des prospects habitant Londres. Cette requte est base sur le fichier "Prospect".
Les fichiers "Client" et "Prospect" sont de mme structure dans lanalyse.
Les enregistrements communs aux deux fichiers ("Client" et "Prospect") peuvent:
soit apparatre une seule fois dans le rsultat de la requte (oprateur UNION).
soit apparatre deux fois dans le rsultat de la requte (oprateur UNION ALL).

178 Partie 2 : Editeur de requtes


Pour combiner des requtes, il est ncessaire de connatre:
le nom des requtes combiner.
si les enregistrements communs doivent apparatre une seule ou plusieurs fois dans le rsultat de la
requte.
Remarque: Les rubriques apparaissant dans le rsultat de la requte compose correspondent aux ru-
briques de la premire requte excute. Ainsi, dans notre exemple, les personnes qui sont la fois client et
prospect, dont le nom commence par la lettre A et habitant Londres napparatront quune seule fois dans
le rsultat de la requte.

Lditeur de requtes gnre automatiquement le code SQL de cette requte.

Pour visualiser le code SQL dune requte:


1.Affichez le menu contextuel du graphe de la requte.
2.Slectionnez loption "Code SQL".
Vous pouvez galement utiliser la touche [F2].
Par exemple:
SELECT
CLIENT.NomClient AS NomClient
FROM
CLIENT
WHERE
CLIENT.NomClient LIKE A%

UNION

SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = Londres

Partie 2 : Editeur de requtes 179


Pour que les personnes qui sont la fois client et prospect, dont le nom commence par la lettre A et habi-
tant Londres apparaissent plusieurs fois dans le rsultat de la requte, le code SQL suivant:
SELECT
CLIENT.NomClient AS NomClient
FROM
CLIENT
WHERE
CLIENT.NomClient LIKE A%

UNION ALL

SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = Londres

2.6.2 Cration dune requte compose laide de la fentre de description


Pour crer une nouvelle requte compose:
1.Cliquez sur parmi les boutons daccs rapide.
Dans la fentre qui saffiche, cliquez sur "Requtes".
Lassistant de cration dune requte se lance.
2.Choisissez loption "Union (UNION)" et validez.
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
4.La fentre de description de la requte saffiche.
5.Saisissez le nom et le libell de la requte.
6.Slectionnez les diffrentes requtes combiner (cadre de gauche).
7.Choisissez de conserver ou de supprimer du rsultat les enregistrements communs entre les requtes
combines (bouton "Conserver les doublons / Supprimer les doublons").
8.Triez si ncessaire le rsultat de la requte (bouton "Trier").
9.Validez la fentre de description de la requte. La reprsentation graphique de la requte saffiche auto-
matiquement sous lditeur de requtes.

Remarques
Pour modifier les caractristiques dune requte, sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.

180 Partie 2 : Editeur de requtes


2.7 Requte en code SQL

2.7.1 Prsentation
Lditeur de requtes permet de crer une requte en saisissant du code SQL (si vous matrisez ce langage).
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes en code SQL utilisant
les ordres INSERT, UPDATE ou DELETE.

2.7.2 Cration dune requte en code SQL


Pour crer une requte en code SQL:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes".
Lassistant de cration dune requte se lance.
2.Choisissez de crer une requte en saisissant directement le code SQL (option "Code SQL").
3.Si votre projet nest pas li une analyse, spcifiez lanalyse laquelle la requte doit tre rattache.
Validez lcran de lassistant.
4.Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra
didentifier la requte dans vos programmes.
5.Spcifiez le libell de la requte en dcrivant succinctement le rle de la requte. Ce libell sera utilis
dans le dossier du projet.
Remarque: Le nom de la requte se dfinit automatiquement partir du libell saisi.
6.Validez la cration de la requte. Une fentre de code saffiche.
7.Saisissez le code SQL de votre requte. Il est possible dinsrer dans la requte:
des commentaires en les faisant prcder des caractres "--" ou "//". Seuls les commentaires sur les
conditions de slection seront pris en compte lors de la rtro-analyse de la requte: les autres com-
mentaires seront automatiquement supprims. Les commentaires sur les conditions de slection para-
mtres ne seront pas proposs lors du GO de la requte.
des fonctions WLangage. Il suffit de prfixer les fonctions WLangage utilises par les lettres "WL.". La
saisie assiste est disponible. Les fonctions WLangage peuvent tre imbriques. Exemple:
SELECT Client.NumClient FROM Client
WHERE WL.Gauche(Client.CodePostal,2)=34
8.Sauvegardez le code SQL ( ).

2.7.3 Rtro-analyse de la requte en code SQL


La rtro-analyse de la requte en code SQL permet de reprsenter graphiquement la requte partir des
fichiers prsents dans le code SQL et dans lanalyse du projet.

Pour effectuer la rtro-analyse dune requte en code SQL:


1.Affichez le code SQL de la requte.
2.Pour reprsenter graphiquement la requte, sous le volet "Requte", dans le groupe "Analyser", cliquez
sur "Rtro-Analyse".

Partie 2 : Editeur de requtes 181


Limites:
Cette fonctionnalit est disponible pour les requtes de type SELECT, UPDATE, DELETE et INSERT.
Les sous-requtes ne sont pas importes.
Les requtes de requtes ne sont pas gres.
Les requtes UNION ne sont pas gres.
Cette fonctionnalit est disponible uniquement si les commandes SQL utilises dans la requte sont
reconnues par le moteur HFSQL.

2.7.4 Modes dexcution dune requte en code SQL


Lditeur de requtes permet dexcuter simplement des requtes en code SQL. Ces requtes peuvent tre:
soit saisies directement sous lditeur de requtes. La requte est alors excute avec la fonction HEx-
cuteRequte.
soit directement saisies dans la fonction HExcuteRequteSQL dans lditeur de code.
Deux modes dexcution des requtes SQL sont disponibles:
Excution dune requte SQL avec vrification du code SQL: Cette option est disponible par dfaut pour
toutes les requtes SQL excutes depuis WinDev. Le code SQL de la requte doit utiliser uniquement les
commandes listes ci-dessous. Dans ce cas, le moteur HFSQL effectue une vrification du code SQL de
la requte.
Excution dune requte SQL sans vrification du code SQL (utilisation de la constante hRequteSans-
Correction): Cette option est conseille pour les requtes excutes via un accs natif ou OLE DB. Dans
ce cas, le moteur HFSQL neffectue aucune vrification de la requte. Cette option doit tre utilise si la
requte comporte des ordres spcifiques un type de connexion (Oracle, SQL Server, ...). Toutes les com-
mandes SQL supportes par la base de donnes accde sont utilisables.

Remarque: La constante hRequteSansCorrection est galement disponible lors du test dune requte de-
puis lditeur de requtes:
pour une requte de slection: cliquez sur le bouton "Avanc" de la fentre de description et cochez
loption "Excuter avec hRequteSansCorrection en mode test" dans longlet "hRequteSansCorrection".
pour une requte dinsertion, de modification ou de suppression: affichez longlet "Gnral" de la
fentre de description et cochez loption "Excuter avec hRequteSansCorrection en mode test".

2.7.5 Commandes SQL disponibles


Les "commandes SQL" (instructions, fonctions, clauses, ...) utilisables dans une requte SQL vrifie par le
moteur HFSQL sont les suivantes:
ADD_MONTH Ajoute des mois la date spcifie.
ALL Utilis avec linstruction SELECT
Slectionne tous les enregistrements.
Utilis avec loprateur UNION
Slectionne les enregistrements communs.
Utilis dans les sous-requtes.
AND Combine plusieurs conditions de slection (lune et lautre).
ANY Utilis dans les sous-requtes
AS Cre un alias pour chaque rubrique et chaque fichier utilis.
ASC Utilis avec la clause ORDER BY : Dfinit lordre ascendant.

182 Partie 2 : Editeur de requtes


ASCII Renvoie le code ASCII:
soit dun caractre.
soit du premier caractre dune chane.
ATAN2 Retourne larctangente des variables X et Y.
AVG Calcule la moyenne dun ensemble de valeurs.
BETWEEN Slectionne des enregistrements dont la valeur dune rubrique appartient
une plage de valeurs.
BIN Renvoie la chane de caractres reprsentant "entier" en binaire.
BOTTOM Renvoie uniquement les n derniers enregistrements du rsultat dune requte.
BTRIM Supprime une chane dans une autre chane partir du dbut et de la fin.
CASE Renvoie la valeur correspondant la condition.
CAST Permet de convertir un nombre dans un autre type.
CBRT Renvoie la racine cubique dun nombre.
CEILING Renvoie la valeur arrondie par excs dun nombre.
CEIL
CHAR_LENGTH Renvoie la taille (le nombre de caractres) dune expression.
CHARACTER_LENGTH Renvoie la taille (le nombre de caractres) dune expression.
COALESCE Retourne la premire expression non nulle parmi ses arguments.
CONCAT Concatne plusieurs chanes entre elles.
COUNT Renvoie le nombre denregistrements prsents dans un fichier ou dans un
groupement denregistrements.
CREATE TABLE Dcrit et cre un fichier / une table.
DECODE Renvoie la valeur correspondant la condition.
DEGREES Convertit en degrs un angle exprim en radians.
DELETE Supprime des enregistrements dun fichier.
DESC Utilis avec la clause ORDER BY : Dfinit lordre descendant.
DISTINCT Utilis avec linstruction SELECT : Supprime les enregistrements dupliqus
(doublons) du rsultat de la requte.
DIV Effectue une division entire.
DROP TABLE Supprime physiquement un fichier / une table.
ELT Renvoie la nime chane dune liste de chanes.
EXISTS Utilis dans les sous-requtes
FIELD Retourne lindex de la chane rechercher dans la liste.
FIND_IN_SET Retourne la position dune chane dans une liste de valeurs.
FROM Utilis avec linstruction SELECT : Dfinit les fichiers utiliss.
Utilis avec linstruction DELETE : Dfinit les fichiers utiliss.
FULL OUTER JOIN Ralise une jointure externe.
GREATEST Avec deux arguments ou plus, retourne la valeur la plus grande.
GROUP BY Classe une slection denregistrement par groupe.

Partie 2 : Editeur de requtes 183


HAVING Permet de spcifier une ou plusieurs conditions sur des groupes denregistre-
ments gnrs par la clause GROUP BY.
HEX Renvoie en hexadcimal un entier (exprim en base 10).
IN Slectionne des enregistrements dont les valeurs correspondent une liste de
valeurs spcifie.
Utilis dans les sous-requtes.
INITCAP Renvoie une chane contenant la premire lettre de chaque mot en majuscules.
INNER JOIN Ralise une jointure interne.
INSERT Ajoute un enregistrement dans un fichier de donnes.
INSTR Renvoie la position dune chane de caractres.
INTO Utilis avec linstruction INSERT : Dfinit le fichier utilis.
ISNULL Slectionne des enregistrements pour lesquels la valeur dune rubrique est
IF NULL nulle.
LAST_DAY Calcule la date du dernier jour du mois spcifi.
LAST_INSERT_ID Retourne le dernier identifiant automatique calcul.
LCASE Retourne la chane str avec tous les caractres en minuscules, en fonction du
jeu de caractres courant.
LEAST Avec deux arguments ou plus, retourne la plus petite valeur.
LEFT Extrait les premiers caractres du contenu dune expression.
LEFT OUTER JOIN Ralise une jointure externe
LEN Renvoie la taille (le nombre de caractres) dune expression.
LENGTH Renvoie la taille (le nombre de caractres) dune expression.
LIKE Slectionne des enregistrements pour lesquels la valeur dune rubrique corres-
pond une valeur spcifie (avec des caractres gnriques).
LIMIT Renvoie une partie du rsultat de la requte.
LOWER Convertit en minuscules le contenu dune expression.
LPAD Renvoie une chane de taille dtermine. Pour atteindre la taille requise, cette
chane est complte gauche:
soit par des espaces.
soit par un caractre ou une chane donne.
LTRIM Renvoie une chane de caractres:
soit sans les espaces situs gauche.
soit sans une liste de caractres.
MAX Renvoie la plus grande valeur dune rubrique pour tous les enregistrements
slectionns dans le fichier.
MD5 Calcule la somme de vrification MD5 de la chane string.
MID Extrait une sous-chane, partir dune position donne.
MIN Renvoie la plus petite valeur dune rubrique pour tous les enregistrements s-
lectionns dans le fichier.
MONTHS_BETWEEN Renvoie le nombre de mois entre deux dates.

184 Partie 2 : Editeur de requtes


NEW_TIME Renvoie la date aprs conversion du fuseau horaire.
NEXT_DAY Renvoie le premier jour de la semaine suivant la date ou le jour spcifi.
NOT Inverse la signification de loprateur logique utilis.
Utilis dans les sous-requtes.
NVL Remplace les valeurs nulles de la colonne par une valeur de substitution.
OCT Renvoie en octal un entier (exprim en base 10).
OCTET_LENGTH Renvoie la taille (le nombre de caractres) dune expression.
ON Utilis lors de la cration dune jointure.
OR Combine plusieurs conditions de slection (lune ou lautre).
ORDER BY Trie les enregistrements slectionns.
OVERLAY Remplace une chane dans une autre.
PATINDEX Renvoie la position de la premire occurrence dune chane de caractres.
POSITION Renvoie la position dune chane de caractres dans une expression.
RADIANS Convertit en radians un angle exprim en degrs.
RANDOM Renvoie un nombre alatoire compris entre 0.0 et 1.0 (inclus).
REPEAT Retourne une chane de caractres constitue de la rptition de count fois la
chane str.
REPLACE Renvoie une chane de caractres:
soit en remplaant toutes les occurrences dun mot prsent dans une
chane par un autre mot.
soit en remplaant toutes les occurrences dun mot prsent dans une
chane.
REVERSE Retourne une chane dont lordre des caractres est linverse de la chane str.
RIGHT Extrait les derniers caractres du contenu dune expression.
RIGHT OUTER JOIN Ralise une jointure externe.
ROUND Renvoie la date arrondie au format spcifi.
RPAD Renvoie une chane de taille dtermine. Pour atteindre la taille requise, cette
chane est complte droite:
soit par des espaces.
soit par un caractre ou une chane donne.
RTRIM Renvoie une chane de caractres:
soit sans les espaces situs droite.
soit sans une liste de caractres.
SELECT Recherche des enregistrements dans un ou plusieurs fichiers.
SET Utilis avec linstruction UPDATE
Dfinit les noms des rubriques utilises.
SHA / SHA1 Calcule la somme de vrification SHA1 160 bits de la chane string, comme
dcrit dans la RFC 3174 (Secure Hash Algorithm).
SOME Utilis dans les sous-requtes

Partie 2 : Editeur de requtes 185


SOUNDEX, SOUNDEX Renvoie la valeur phontique
LIKE
SOUNDEX2, SOUNDEX2 Renvoie la valeur phontique (adapt au franais).
LIKE
SPACE Retourne une chane constitue de N espaces.
SPLIT_PART Dcoupe la chane selon un sparateur et renvoie la nime partie.
STDDEV Permet de connatre lcart-type dune srie de valeurs reprsentant un chan-
tillon de la population des donnes.
STDDEV_POP Permet de connatre lcart-type dune srie de valeurs reprsentant la popula-
tion entire des donnes.
STDDEV_SAMP Permet de connatre lcart-type dune srie de valeurs reprsentant un chan-
tillon de la population des donnes.
STRING_AGG Permet de concatner des chanes non nulles dune liste de valeurs.
SUBSTR Extrait une sous-chane, partir dune position donne.
SUBSTRING Extrait une sous-chane, partir dune position donne.
SUM Renvoie la somme totale des valeurs dune rubrique pour tous les enregistre-
ments slectionns dans le fichier.
SYSDATE Renvoie la date et lheure courante.
TO_CHAR Formate une date ou un nombre.
TOP Renvoie uniquement les n premiers enregistrements du rsultat dune requte.
TRANSLATE Renvoie une chane de caractres en remplaant tous les caractres indiqus
par dautres caractres.
TRIM Renvoie une chane de caractres:
soit sans les espaces situs gauche et droite.
soit sans une chane de caractres situe en dbut et en fin de chane.
soit sans une chane de caractres situe en dbut de chane.
soit sans une chane de caractres situe en fin de chane.
TRUNC Renvoie la date tronque au format spcifi.
UCASE Retourne la chane str en majuscules, en fonction du jeu de caractres cou-
rant.
UNHEX Contraire de HEX. Chaque paire de chiffres hexadcimaux est interprte
comme des nombres, et est convertie en un caractre reprsent par le
nombre.
UNICODE Renvoie la valeur entire dfinie par la norme Unicode du premier caractre de
lexpression indique.
UNION Ralise des requtes composes.
UPDATE Met jour des enregistrements dun fichier.
UPPER Convertit en majuscules le contenu dune expression.
UUID Gnre un UUID (Identifiant Unique Universel).
VALUES Utilis avec linstruction INSERT : Dfinit les valeurs ajoutes.
VARIANCE Renvoie la variance dune srie de valeurs (chantillon des donnes).

186 Partie 2 : Editeur de requtes


VAR_POP Renvoie la variance dune srie de valeurs (population entire des donnes).
VAR_SAMP Renvoie la variance dune srie de valeurs (chantillon des donnes).
WHERE Permet de spcifier la ou les condition(s) de slection dune requte.
XOR XOR (OU exclusif ) logique.

Pour plus de dtails sur ces commandes SQL et leur utilisation, consultez laide en ligne.

2.8 Mode de cration des requtes


Lditeur de requtes peut tre utilis de deux faons diffrentes pour crer une requte:
cration de la requte directement sous lditeur de requtes:
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Requtes" et slectionnez le type de
requte crer.
Cette requte correspond un lment du projet (fichier ".WDR") et peut tre utilise comme source
de donnes dun tat, dun champ dune fentre ou dune page (champ Liste, Combo ou Table), en pro-
grammation, dans une autre requte, ... La requte est dite indpendante.
cration de la requte lors de la cration du champ Liste, Table ou de ltat bas sur cette requte (option
"Une requte que je veux dfinir maintenant" dans lassistant de cration du champ ou de ltat). Aucun
fichier spcifique nest cr. La requte est dite intgre.
Une requte intgre ne peut pas tre utilise comme source de donnes dun lment (tat, ...) diffrent de
celui o cette requte a t cre.

Champ dune fentre ou dune page: Passer du mode intgr au mode indpendant
Pour extraire une requte dun champ dune fentre ou dune page:
1.Affichez la fentre ou la page sous lditeur.
2.Slectionnez le champ bas sur une requte intgre.
3.Dans le menu contextuel du champ, slectionnez loption "Requte intgre .. Ouvrir la requte asso-
cie".
Attention: la fentre ou la page doit avoir t enregistre au moins une fois.
4.Lditeur de requtes souvre et affiche le graphe de la requte. Sous le volet "Accueil", dans le groupe
"Gnral", droulez "Enregistrer" et slectionnez "Exporter .. Vers une requte indpendante".
5.Enregistrez la nouvelle requte. La requte est dsormais indpendante. Vous pouvez lutiliser dans
toutes les fentres, les pages et tats de votre projet.

Etat: Passer du mode intgr au mode indpendant


Pour extraire une requte dun tat:
1.Affichez ltat sur requte intgre (sous lditeur dtats).
2.Slectionnez loption "diter la requte" du menu contextuel de ltat. La requte saffiche sous lditeur
de requtes. Attention: ltat doit avoir t enregistr au moins une fois.
3.Sous le volet "Accueil", dans le groupe "Gnral", droulez "Enregistrer" et slectionnez "Exporter .. Vers
une requte indpendante".
4.Enregistrez la nouvelle requte. La requte est dsormais indpendante.

Partie 2 : Editeur de requtes 187


3. Description dune requte

3.1 Prsentation
Aprs la cration dune requte, il est possible tout moment de modifier toutes les caractristiques de
cette requte:
fichiers et/ou rubriques utiliss,
rubriques affiches dans le rsultat de la requte,
conditions de slection,
tri des enregistrements,
...
Seul le type de la requte nest pas modifiable. En effet, trop de paramtres spcifiques sont pris en compte.
Pour changer le type de la requte, il suffit de crer une nouvelle requte.
Ce chapitre prsente:
la fentre de description dune requte.
les caractristiques dune requte.
comment ouvrir, fermer et enregistrer une requte.
la gestion des versions dune requte.

3.2 Fentre de description


Les principales caractristiques dune requte sont accessibles dans la fentre de description de la requte.
Lditeur de requtes propose trois fentres de description:
fentre de description dune requte de slection.
fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL.
fentre de description dune requte compose.

3.2.1 Afficher la fentre de description


Pour afficher la fentre de description dune requte:
soit double-cliquez sur la reprsentation graphique de la requte.
soit slectionnez loption "Description de la requte" du menu contextuel de lditeur de requtes.
soit sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description".

3.2.2 Fentre de description dune requte de slection


La fentre de description dune requte de slection est constitue de plusieurs parties. Cette fentre de
description permet de:
modifier les rubriques utilises dans la requte.
grer les diffrentes conditions de slection.
visualiser la requte en code SQL ou en langage naturel.
grer les enregistrements "doublons".
...

188 Partie 2 : Editeur de requtes


Dans cette fentre:
Liste des rubriques pouvant tre utilises dans la requte.

Actions appliquer sur chaque rubrique de la requte.

Liste des rubriques intervenant dans la requte.

Description de la rubrique slectionne.

Requte affiche en code SQL ou en langage naturel.

Partie 2 : Editeur de requtes 189


Cette fentre de description est compose de trois parties:
Partie de gauche: Cette partie contient les lments suivants:

Liste des diffrentes rubriques pouvant tre utilises dans la requte. Ces rubriques appar-
tiennent:
soit un fichier de lanalyse associe lapplication en cours.
soit une requte de lapplication en cours.
Remarque: Pour slectionner plusieurs rubriques, maintenez la touche [Ctrl] enfonce.
Les fichiers de donnes et les rubriques des fichiers de donnes pouvant
tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur
Important

danalyses de WinDev.
Pour plus de dtails sur la prparation ncessaire lutilisation dune appli-
cation WinDev avec le logiciel Etats & Requtes, consultez "Diffuser le logi-
ciel Etats & Requtes", page 231.

Permet dajouter ou de supprimer la ou les rubriques slectionnes dans la requte.

Les rubriques peuvent tre affiches:


soit par fichier associ ou requte associe.
soit par ordre alphabtique.
Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond un calcul
sur certaines rubriques de lanalyse.
Par exemple, la rubrique "PrixTTC" correspond la rubrique "PrixHT" multiplie la rubrique
"TauxTVA".
Affiche:
soit la requte en langage naturel.
soit le code SQL correspondant la requte.

190 Partie 2 : Editeur de requtes


Partie centrale: Cette partie contient les lments suivants:

Liste des diffrentes rubriques utilises dans la requte.

Les valeurs de cette rubrique seront affiches dans le rsultat de la requte (icne ).

Sens de tri des valeurs de cette rubrique (croissant , dcroissant ).

Nombre de conditions de slection appliques cette rubrique (2 dans cet exemple).

Modifie lordre daffichage / de tri des diffrentes rubriques dans le rsultat de la requte.

Modifie lordre daffichage de la liste des lments de la requte:

: correspond lordre daffichage des lments dans le rsultat de la requte.

: correspond lenchanement des tris dans le rsultat de la requte.


Dtails des options dfinies pour la rubrique slectionne.

Partie 2 : Editeur de requtes 191


Partie de droite : Cette partie permet de dfinir les diffrentes actions appliquer sur les rubriques de la
requte.

Rubrique sur laquelle les actions seront appliques.

Permet:
soit dafficher ou non les valeurs de la rubrique slectionne dans le rsultat de la requte.
soit de renommer la rubrique slectionne dans le rsultat de la requte (cration dun alias).
Trie les valeurs de la rubrique slectionne dans le rsultat de la requte.

Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond:


soit au nombre denregistrements prsents dans un groupement denregistrements.
soit au nombre denregistrements prsents dans un fichier de donnes.
Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond la somme
dun ensemble denregistrements.

Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond:


soit la moyenne dun ensemble denregistrements.
soit la valeur minimale dun ensemble denregistrements.
soit la valeur maximale dun ensemble denregistrements.
Modifie les valeurs affiches dans le rsultat de la requte. Il est possible dafficher unique-
ment:
lanne partir dune rubrique de type date.
le mois partir dune rubrique de type date.
le dpartement partir dune rubrique contenant un code postal.
Dfinit les conditions de slection. Il est possible de:
appliquer une condition de slection sur la rubrique slectionne.
modifier et/ou supprimer une condition existante.
modifier lenchanement des conditions existantes.

192 Partie 2 : Editeur de requtes


Slectionne les enregistrements correspondant une priode donne.

Slectionne les n premiers ou les n derniers enregistrements affichs dans le rsultat de la


requte.

Supprime ou non les enregistrements "doublons" du rsultat de la requte.

Permet de:
indiquer le type de la base de donnes utilise (HFSQL, Oracle ou autre).
grer les jointures (ajouter, modifier, supprimer, r-initialiser).
vrifier ou non la syntaxe SQL utilise (en mode test uniquement).
prciser les options dexcution (optimisation de lespace mmoire, vrification du format
des fichiers, ...).
indiquer si la requte est visible sous le logiciel "Etats & Requtes".

3.2.3 Fentre de description dune requte compose


La fentre de description dune requte compose est constitue de plusieurs parties. Cette fentre de des-
cription permet de:
changer les requtes utilises dans la requte.
modifier lordre dexcution des requtes.
Rappel: Les rubriques apparaissant dans le rsultat de la requte compose correspondent aux ru-
briques de la premire requte excute.
visualiser la requte en code SQL ou en langage naturel.
grer les enregistrements "doublons".
trier les enregistrements.

Partie 2 : Editeur de requtes 193


Liste des diffrentes requtes de slection pouvant tre utilises dans la requte compose.
Remarque: Pour slectionner plusieurs requtes, maintenez la touche [Ctrl] enfonce.

Permet dajouter ou de supprimer la ou les requtes slectionnes dans la requte compose.

Liste des diffrentes requtes utilises dans la requte compose. Ces requtes sont affiches
dans leur ordre dexcution.

Modifie lordre dexcution des requtes.

Permet de conserver ou de supprimer les enregistrements dupliqus (doublons) du rsultat de


la requte compose.
Liste des rubriques rsultat de la requte compose.
Rappel: Ces rubriques correspondent aux rubriques de la premire requte excute.

Permet de trier ou dannuler le tri sur une rubrique de la requte.

Affiche:
soit la requte compose en langage naturel.
soit le code SQL correspondant la requte compose.

3.2.4 Fentre de description dune requte dinsertion, de modification, de suppres-


sion ou en code SQL
La fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL permet
de:
connatre et/ou modifier le nom et le libell de la requte.
spcifier si le moteur HFSQL doit ou non vrifier les commandes SQL utilises (option "Excuter avec hRe-
quteSansCorrection en mode test").
indiquer la connexion utilise lors du test de la requte.
connatre et/ou modifier la (ou les) valeur(s) insrer ou modifier dans le rsultat de la requte (cas
dune requte dinsertion ou de modification).
connatre et/ou modifier les conditions de slection (cas dune requte de modification ou de suppres-
sion).
connatre et/ou modifier lenchanement des conditions de slection (cas dune requte de modification
ou de suppression).
...
Important

Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion, de modi-
fication ou de suppression.

194 Partie 2 : Editeur de requtes


3.3 Caractristiques dune requte

3.3.1 Rubriques utilises dans une requte de slection


Une requte cre avec lditeur de requtes peut contenir plusieurs types de rubriques:
rubriques de lanalyse laquelle la requte est rattache.
Ces rubriques correspondent aux rubriques des fichiers de donnes dcrits dans lanalyse. Il est possible
dappliquer sur ces rubriques des oprations de calcul.
Remarque: Il est possible dutiliser une rubrique dindex full-text: la requte effectuera alors une
recherche full-text.
rubriques dune requte du projet en cours. Ces rubriques correspondent aux rubriques utilises dans les
requtes intgres lapplication.
rubriques de calcul. Ce type de rubrique permet deffectuer un calcul sur les valeurs dune rubrique:
somme, moyenne, maximum et minimum.
rubriques de comptage. Ce type de rubrique permet de compter le nombre denregistrements prsents
dans la requte ou le nombre denregistrements prsents dans un groupement denregistrements.
rubriques "calcules". Ce type de rubrique permet dajouter au rsultat de la requte une rubrique dont la
valeur correspond une formule de calcul sur des rubriques. Par exemple, PrixHT * TauxTVA.
Le choix des rubriques intervenant dans une requte se fait lors de la cration de la requte. Il est cependant
possible dajouter, de modifier ou de supprimer les rubriques utilises dans une requte. Les paragraphes
suivants dcrivent comment effectuer ces oprations.

Remarque: Les rubriques dont la valeur est affiche dans le rsultat de la requte sont appeles rubriques
rsultat.

Pour ajouter une rubrique dans la requte en cours:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie gauche, double-cliquez sur la rubrique ajouter. La rubrique ajoute apparat automati-
quement dans la partie centrale.
3.Validez.
Remarque: Il est galement possible dajouter une rubrique dans la requte en cours partir dune ou
de plusieurs rubriques dcrites sous lditeur danalyses: il suffit de faire un "Drag and Drop" du ou des
rubriques slectionnes dans le volet "Analyse" vers lditeur de requtes.

Pour effectuer une recherche full-text:


1.Slectionnez loption "Description de la requte" du menu contextuel de la requte. La fentre de des-
cription de la requte saffiche.
2.Dans la partie gauche de la fentre, double-cliquez sur la rubrique "Index_FullText" ajouter. Lcran de
description de la recherche apparat.
3.Indiquez les paramtres de la recherche "full-text" effectuer:
lindex pris en compte.
la valeur de recherche (valeur ou paramtre). Si la valeur est dcrite directement dans la requte, un
assistant permet de saisir toutes les conditions ncessaires sur la valeur de recherche.
le tri du rsultat de la requte selon lindice de pertinence de la recherche pour chaque enregistre
ment.
Remarque: seuls les enregistrements ayant un indice de pertinence suprieur 0 sont conservs
dans le rsultat de la requte.

Partie 2 : Editeur de requtes 195


Pour ajouter une rubrique de comptage dans la requte en cours:
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie droite, droulez sur le bouton "Compter".
3.Pour compter:
le nombre de valeurs de la rubrique slectionne dans le rsultat de la requte: slectionnez loption
"Sur la rubrique slectionne".
Par exemple, cette option peut tre utilise pour connatre le nombre de clients ayant un tlphone
portable (rubrique "TelPortable" renseigne).
le nombre de valeurs dune autre rubrique dans le rsultat de la requte: slectionnez loption "Sur
une nouvelle rubrique" et slectionnez la rubrique voulue.
le nombre denregistrements dun fichier ou dune requte (en fonction des conditions de slection de
la requte en cours): slectionnez loption "Sur un fichier ou une requte".
Par exemple, cette option peut tre utilise pour connatre le nombre de produits prsents dans le
fichier "Produit".
Remarque: Quel que soit le comptage effectu, il est possible de prciser si le comptage doit prendre en
compte les doublons ou non (option Count(Distinct) en SQL).

Pour ajouter une rubrique de type "calcule" dans la requte en cours:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie gauche, droulez le bouton "Rubrique calcule" et slectionnez loption "Nouvelle rubrique
calcule". La fentre de description dune rubrique calcule saffiche. Cette fentre permet de saisir le
code SQL correspondant au calcul effectuer. Dans cette fentre, il est possible:
de manipuler les rubriques des fichiers de lanalyse en cours et des requtes du projet en cours.
de saisir des instructions SQL. La liste des instructions SQL disponibles est affiche. Il suffit de double-
cliquer sur une instruction pour la faire apparatre dans la partie code.
de saisir des fonctions WLangage. La liste des fonctions WLangage disponibles est affiche. Il suffit de
double-cliquer sur une fonction pour la faire apparatre dans la partie code. Pour utiliser une fonction
WLangage, son nom doit tre prcd des lettres "WL.".
dimbriquer les fonctions WLangage et le code SQL utilis.
3.Prcisez la formule mathmatique de la rubrique et validez. La rubrique est automatiquement ajoute.

Remarque: Utiliser des paramtres dans le code de la rubrique calcule.


Pour utiliser des paramtres dans le code de la rubrique, il suffit de mettre le nom du paramtre entre acco-
lades. Par exemple:
LEFT(MaRubrique, {NomParamtre})
Attention: En mode test et en excution relle, le rsultat peut tre diffrent. En effet, en mode test, la valeur
du paramtre est toujours passe en tant que chane.

Pour modifier une rubrique de type "rubrique calcule" dans la requte en cours:
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique de type Rubrique calcule modifier.
3.Dans la partie gauche, cliquez sur le bouton "Rubrique calcule" et slectionnez loption "Modifier la
rubrique calcule". La fentre de description dune rubrique calcule saffiche.
4.Modifiez la formule et validez.

196 Partie 2 : Editeur de requtes


Remarque: Utiliser des paramtres dans le code de la rubrique calcule.
Pour utiliser des paramtres dans le code de la rubrique, il suffit de mettre le nom du paramtre entre acco-
lades. Par exemple:
LEFT(MaRubrique, {NomParamtre})
Attention: En mode test et en excution relle, le rsultat peut tre diffrent. En effet, en mode test, la valeur
du paramtre est toujours passe en tant que chane.

Pour renommer une rubrique rsultat dans la requte en cours (cration dun alias):
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique renommer.
3.Dans la partie droite, cliquez sur le bouton "Afficher/Renommer".
4.Saisissez le nouveau nom de la rubrique et validez. La rubrique est automatiquement renomme.

Pour afficher/rendre invisible une rubrique dans le rsultat de la requte:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique afficher/rendre invisible.
3.Dans la partie droite, cliquez sur le bouton "Afficher/Renommer".
4.Rpondez "Non" la question "Afficher cette rubrique ?".
Remarque: Pour afficher/rendre invisible une rubrique dans le rsultat de la requte, il est galement pos-
sible de:
afficher le menu contextuel de la rubrique voulue (clic droit).
slectionner loption "Afficher la rubrique" ou "Ne pas afficher".

Pour supprimer une rubrique de la requte en cours:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique supprimer et appuyez sur la touche [Suppr]. La
rubrique est automatiquement supprime de la requte.
Remarques:
La suppression dune rubrique supprime les conditions de slection existantes sur cette rubrique.
Pour supprimer une rubrique, il est galement possible de slectionner loption "Supprimer la rubrique"
dans le menu contextuel de la rubrique.

3.3.2 Trier les enregistrements slectionns par une requte de slection


Pour rendre le rsultat dune requte plus lisible, il est possible de trier les enregistrements selon une ou
plusieurs rubriques. Trier les enregistrements revient les classer dans un ordre croissant ou dcroissant.
Par exemple, il est possible de trier les clients par leur nom, de A Z.

Remarque: Seules les rubriques affiches dans le rsultat de la requte peuvent tre tries.
Lordre du tri est dfini lors de la cration de la requte. Il est cependant possible de:
ajouter ou supprimer une rubrique de tri.
modifier lordre de tri effectu sur une rubrique.

Partie 2 : Editeur de requtes 197


Lorsque plusieurs rubriques de tri sont dfinies, les tris sont imbriqus. Pour connatre lenchanement des
diffrentes rubriques, cliquez sur licne dans la partie centrale. Le tri commence par la premire
rubrique du tableau des rubriques tries.
Par exemple, dans la fentre ci-dessous, le rsultat de la requte est tri:
tout dabord par le total TTC des commandes,
ensuite par le pays des clients,
ensuite par la ville des clients,
pour finir par le nom des clients.

Les flches situes droite de la fentre permettent de modifier lenchanement des rubriques de tri.
Remarque: Les chiffres situs ct des flches permettent galement de connatre lenchanement des
diffrentes rubriques de tri.

Pour ajouter une rubrique de tri dans la requte de slection en cours:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique voulue.
3.Affichez le menu contextuel de la rubrique, slectionnez loption "Trier la rubrique" puis slectionnez
lordre de tri.

Remarques:
Pour ajouter une rubrique de tri, il est galement possible dans la partie droite, de cliquer sur le bouton
"Trier" et de slectionner loption "Trier sur la rubrique slectionne".
Lditeur de requtes permet galement de raliser un tri sur un paramtre. Il suffit de cliquer sur le bou-
ton "Trier" et de slectionner loption "Trier sur un paramtre". Dans ce cas, il suffit dindiquer le nom du
paramtre qui sera utilis pour le tri, ainsi que lordre de tri par dfaut. Cet ordre de tri pourra tre modi-
fi en excution si le contenu du paramtre contient lordre de tri. Par exemple: "Client.NomClient ASC".
Ce paramtre devra tre pass la requte lors de son excution. Pour plus de dtails, consultez "Deux
mthodes pour passer des paramtres une requte", page 221.

Pour supprimer une rubrique de tri dans la requte de slection en cours:


1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique voulue.
3.Affichez le menu contextuel de cette rubrique (clic droit).
4.Slectionnez loption "Trier la rubrique .. Ne pas trier".

198 Partie 2 : Editeur de requtes


Pour modifier lordre de tri dune rubrique dans la requte de slection en cours:
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique voulue.
3.Affichez le menu contextuel de cette rubrique (clic droit).
4.Slectionnez loption "Trier la rubrique" et slectionnez le nouveau sens de tri de la rubrique.

Astuce:
Pour ajouter, modifier ou supprimer un tri, cliquez directement dans la colonne de tri des rubriques de la
requte et slectionnez lopration effectuer dans le menu suivant:

3.3.3 Oprations possibles dans une requte de slection


Lditeur de requtes permet deffectuer des oprations sur les valeurs dune rubrique. Les oprations pos-
sibles sont:
la somme des valeurs de la rubrique.
la moyenne des valeurs de la rubrique.
le calcul de la valeur minimale de lensemble des valeurs de la rubrique.
le calcul de la valeur maximale de lensemble des valeurs de la rubrique.

Ces oprations sont effectues:


soit sur lensemble des enregistrements slectionns par la requte.
soit sur des sous-ensembles denregistrements (regroups automatiquement par la requte).
Par exemple, vous voulez connatre:
la somme totale des commandes passes par les clients habitant Paris.
la commande dont le montant est le plus petit.
le montant moyen dpens par le client Darwin.
...

Les oprations sont dfinies lors de la cration de la requte. Il est cependant possible dajouter, de modifier
ou de supprimer les oprations effectues dans une requte. Pour plus de dtails, consultez "Conditions de
slection", page 200.
Attention: Si le rsultat de la requte est affich dans un tat, les oprations effectuer sur la valeur des
rubriques doivent tre dfinies lors de la description de ltat.

Pour ajouter une opration dans la requte de slection en cours:


1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique sur laquelle une opration doit tre effectue.

Partie 2 : Editeur de requtes 199


3.Pour calculer:
la somme des valeurs de la rubrique, cliquez sur le bouton "Somme".
la moyenne des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez
loption "Moyenne".
la valeur maximale des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slection-
nez loption "Maximum".
la valeur minimale des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slection-
nez loption "Minimum".
4.Une rubrique correspondant au calcul demand est automatiquement ajoute aux rubriques de la
requte.
5.Validez. Lopration est automatiquement ajoute dans la requte.

Pour supprimer une opration dans la requte de slection en cours:


1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique de calcul supprimer.
3.Appuyez sur la touche [Suppr].

3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection
Dans le rsultat dune requte de slection, il est possible dafficher uniquement:
lanne partir dune rubrique de type date.
le mois partir dune rubrique de type date.
le dpartement partir dune rubrique contenant un code postal.

Pour modifier les valeurs affiches dans le rsultat de la requte de slection en cours:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la fentre de description, slectionnez une rubrique de type date ou contenant un code postal.
3.Cliquez sur le bouton "Anne, dpartement" et slectionnez loption:
"Mois" pour afficher uniquement le mois dans le rsultat de la requte.
"Anne" pour afficher uniquement lanne dans le rsultat de la requte.
"Dpartement" pour afficher uniquement le dpartement dans le rsultat de la requte.
4.Validez.

3.3.5 Conditions de slection


Les conditions de slection des enregistrements sappliquent aux rubriques utilises dans les requtes. Ces
conditions permettent de slectionner uniquement les enregistrements rpondant un ou plusieurs critres
spcifiques.
Par exemple:
clients dont le nom commence par "C".
articles dont le prix est suprieur 500 Euros.
commandes passes entre le "01/01/2000" et "01/06/2000".
...
Plusieurs conditions de slection peuvent porter sur une seule rubrique.
Les conditions de slection sont dfinies lors de la cration de la requte. Il est cependant possible dajouter,
de modifier ou de supprimer les conditions de slection utilises dans une requte. Les paragraphes sui-
vants dcrivent comment effectuer ces oprations.

200 Partie 2 : Editeur de requtes


Lorsquau moins deux conditions de slection sont prsentes dans une requte, il est ncessaire de spci-
fier lenchanement des conditions de slection. Pour plus de dtails, consultez "Enchanement des condi-
tions de slection", page 203.
Comment ajouter une condition de slection dans une requte ?
Pour ajouter une condition de slection dans une requte de slection:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute.
3.Cliquez sur le bouton "Condition de slection" et slectionnez loption "Nouvelle condition". Lassistant
de cration dune condition de slection saffiche.
4.Choisissez les critres de slection (gale , suprieur , ...) de la condition. Cette condition peut porter
sur une valeur donne, un paramtre, les enregistrements slectionns par une autre requte, ... Dans le
cas dune rubrique de type date, la condition de slection peut porter sur une date prdfinie (lanne en
cours, le mois en cours, aujourdhui).
Remarque: Vous pouvez slectionner une valeur donne grce licne . Le menu suivant apparat:

Il est alors possible: soit de slectionner une des valeurs possibles parmi celles prsentes dans le
fichier
soit de visualiser la totalit du fichier.
Attention: Cette option est disponible uniquement si le Live Data est activ. Pour plus de dtails,
consultez Live Data.
5.Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL
de la requte (prcd des caractres "--" ou "//"). Si la condition porte sur un paramtre, lors du GO de la
requte paramtre, le commentaire sera affich dans la fentre de saisie des paramtres.
6.Validez. La condition de slection est automatiquement ajoute la requte.

Pour ajouter une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute et cliquez sur la
colonne "Condition" correspondant la rubrique slectionne. Lassistant de cration dune condition de
slection saffiche.
4.Slectionnez loption "Je veux ajouter une condition" (cas dune rubrique sur laquelle au moins une
condition est effectue).
5.Choisissez les critres de slection (gale , suprieur , ...) de la condition. Cette condition peut porter
sur une valeur donne, un paramtre, une sous-requte, ...
6.Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL
de la requte (prcd des caractres "--" ou "//"). Si la condition porte sur un paramtre, lors du GO de la
requte paramtre, le commentaire sera affich dans la fentre de saisie des paramtres.
7.Validez. La condition de slection est automatiquement ajoute la requte.

Partie 2 : Editeur de requtes 201


Comment modifier une condition de slection dans une requte ?
Pour modifier une condition de slection dans une requte de slection:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique sur laquelle une condition doit tre modifie.
3.Cliquez sur le bouton "Condition de slection" et slectionnez loption "Modifier la condition".
4.Slectionnez si ncessaire la condition de slection modifier (cas dune rubrique sur laquelle plusieurs
conditions sont effectues).
5.Modifiez la condition de slection.
6.Validez. La condition de slection est automatiquement modifie.

Pour modifier une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition doit tre modifie et cliquez sur la colonne "Condi-
tion" correspondante. Lassistant des conditions de slection saffiche.
4.Slectionnez loption "Je veux modifier une condition existante".
5.Slectionnez si ncessaire la condition de slection modifier (cas dune rubrique sur laquelle plusieurs
conditions sont effectues).
6.Modifiez la condition de slection.
7.Validez. La condition de slection est automatiquement modifie.
Comment supprimer une condition de slection dans une requte ?
Pour supprimer une condition de slection dans une requte de slection:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique sur laquelle une condition doit tre supprime.
3.Cliquez sur le bouton "Condition de slection" et slectionnez loption "Supprimer une condition".
4.Slectionnez si ncessaire la condition de slection supprimer (cas dune rubrique sur laquelle plu-
sieurs conditions sont effectues).
5.Validez. La condition de slection est automatiquement supprime de la requte.

Pour supprimer une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition doit tre supprime et cliquez sur la colonne "Condi-
tion" correspondante. Lassistant des conditions de slection saffiche.
4.Slectionnez loption "Je veux supprimer une condition existante".
5.Slectionnez si ncessaire la condition de slection supprimer (cas dune rubrique sur laquelle plu-
sieurs conditions sont effectues).
6.Validez. La condition de slection est automatiquement supprime de la requte.

202 Partie 2 : Editeur de requtes


Astuce:
Pour ajouter, modifier ou supprimer une condition de slection dans une requte de slection, cliquez direc-
tement dans la colonne de condition des rubriques de la requte et slectionnez lopration effectuer dans
le menu suivant:

3.3.6 Enchanement des conditions de slection


Lorsquau moins deux conditions de slection sont prsentes dans une requte, il est ncessaire de spci-
fier lenchanement des conditions de slection avec les oprateurs conditionnels ET et OU:
Oprateur conditionnel ET: les enregistrements conservs auront rpondu aux deux conditions. Par
exemple, vous slectionnez les clients dont le nom commence par la lettre "A" ET habitant Londres.
Oprateur conditionnel OU: les enregistrements conservs auront rpondu une des deux conditions
ou aux deux conditions. Par exemple, vous slectionnez les clients habitant Londres OU habitant New
York.

Oprateur conditionnel OU
Oprateur conditionnel ET

Lenchanement des conditions de slection est dfini lors de la cration de la requte. Il est cependant pos-
sible de modifier cet enchanement.
Pour modifier lenchanement des conditions de slection dans la requte en cours, deux mthodes sont
possibles:
1re mthode: grce la fentre de description de la requte.
2me mthode: depuis la reprsentation graphique de la requte.

Partie 2 : Editeur de requtes 203


1re mthode: Grce la fentre de description de la requte
Pour modifier lenchanement des conditions de slection dans la requte de slection en cours grce la
fentre de description de la requte:
1.Affichez le menu contextuel de la requte (clic droit) et slectionnez loption "Description de la requte".
La fentre de description de la requte saffiche.
2.Cliquez sur le bouton "Condition de slection" et slectionnez loption "Conditions existantes".
3.Modifiez lenchanement des conditions de slection.
4.Validez. La modification est automatiquement effectue dans la requte.

Pour modifier lenchanement des conditions de slection dans la requte de modification ou de suppression
en cours grce la fentre de description de la requte:
1.Affichez le menu contextuel de la requte (clic droit) et slectionnez loption "Description de la requte".
La fentre de description de la requte saffiche.
2.Slectionnez longlet "Et/Ou".
3.Modifiez lenchanement des conditions de slection.
4.Validez. La modification est automatiquement effectue dans la requte.
2me mthode: Depuis la reprsentation graphique de la requte
Pour modifier lenchanement des conditions de slection dans la requte en cours depuis la reprsentation
graphique de la requte:
1.Slectionnez la condition de slection dont lenchanement doit tre modifi dans la reprsentation gra-
phique de la requte.
2.Slectionnez loption "Inverser ET/OU" dans le menu contextuel (clic droit) de la condition de slection en
cours.
3.Le nouvel enchanement des conditions de slection est automatiquement rpercut dans la requte.

3.3.7 Afficher les enregistrements correspondant une priode donne


Lorsquune rubrique de type "Date" est prsente dans la requte, il est possible de slectionner uniquement
les enregistrements correspondant une priode donne.
Par exemple:
les personnes nes entre le "01/01/1950" et le "01/01/1960".
les commandes passes le mois prcdent.
les articles vendus hier.
...

Pour afficher les enregistrements correspondant une priode donne:


1.Slectionnez loption "Description de la requte" du menu contextuel de la requte. La fentre de des-
cription de la requte saffiche
2.Dans la partie centrale, slectionnez une rubrique de type "Date".
3.Dans la partie droite, cliquez sur le bouton "Entre deux dates".
4.Spcifiez la date de dbut et la date de fin et validez.
Remarque: Pour les rubriques de type "DateHeure", lorsque les dates de dbut et de fin correspondent
des valeurs, lditeur de requtes propose des priodes prdfinies (mois en cours, semaine prcdente,
anne flottante, ...). Pour utiliser une de ces priodes prdfinies, cliquez sur le bouton "Priode prdfinie"
et slectionnez la priode voulue.

204 Partie 2 : Editeur de requtes


3.3.8 Limiter le nombre denregistrements affichs dune requte de slection
Lditeur de requtes de slection permet de limiter le nombre denregistrements afficher dans le rsultat
de la requte. Il est possible de:
slectionner uniquement les n premiers enregistrements du rsultat dune requte.
slectionner uniquement les n derniers enregistrements du rsultat dune requte.
slectionner uniquement les n enregistrements partir dun enregistrement donn du rsultat dune
requte.
Le nombre denregistrements slectionner peut tre dfini:
par valeur.
en pourcentage.
par un paramtre.

Par exemple, vous souhaitez connatre:


les dix meilleurs clients: les clients qui ont rapport le plus en terme de chiffre daffaires.
les 15 produits les moins bien vendus.
les 20 produits prsents partir de lenregistrement XXX.
...
Pour limiter le nombre denregistrements prsents dans le rsultat dune requte:
1.Affichez la fentre de description dune requte de slection: affichez le menu contextuel de la requte
(clic droit) et slectionnez loption "Description de la requte".
2.Cliquez sur le bouton "Les n premiers ...".
3.Dans la fentre qui saffiche:

Indiquez la plage denregistrements slectionner: les premiers, les derniers ou un ensemble denre-
gistrements.
Spcifiez le nombre denregistrements prendre en compte. Ce nombre peut correspondre:
une valeur.
Si loption "En pourcentage" est coche, la valeur doit correspondre un pourcentage de lensemble
des enregistrements.

Partie 2 : Editeur de requtes 205


un paramtre. Ce paramtre devra tre spcifi lors de lexcution de la requte. Pour plus de
dtails, consultez "Deux mthodes pour passer des paramtres une requte", page 221.
4.Validez.
Remarque: Lors de la slection dune plage denregistrements, spcifiez:
lindice du premier enregistrement slectionner.
le nombre denregistrements slectionner.

3.3.9 Conserver ou non les doublons


Lditeur de requtes permet de conserver ou non les enregistrements dupliqus (doublons) dans le rsultat
dune requte de slection (mot-cl SQL correspondant: DISTINCT). Par dfaut, les doublons sont conservs.
Pour supprimer les doublons, cliquez sur le bouton "Supprimer les doublons" dans la fentre de description
de la requte.
Pour conserver les doublons, cliquez sur le bouton "Conserver les doublons" dans la fentre de description
de la requte.

3.3.10 Jointure entre les fichiers de donnes


Lorsque plusieurs fichiers sont utiliss dans une requte, WinDev/WebDev recherche automatiquement les
liaisons dcrites dans lanalyse entre ces fichiers. Ces liaisons sont appeles des jointures sous lditeur de
requtes.
Par exemple, la requte suivante slectionne les numros des commandes passes par les clients habitant
Toulouse. Les fichiers COMMANDE et CLIENT sont relis par la rubrique NumClient. Lditeur de requtes a
automatiquement dfini la jointure entre ces deux fichiers.

Remarque: Les liaisons entre les fichiers apparaissent dans la reprsentation graphique de la requte uni-
quement si les deux fichiers relis sont utiliss par la requte.

206 Partie 2 : Editeur de requtes


Par dfaut, lditeur de requtes cre automatiquement les jointures. Cependant, ces jointures peuvent ne
pas correspondre au rsultat voulu. Il est donc possible dajouter ou de supprimer les jointures. Les para-
graphes suivants dcrivent comment effectuer ces oprations.

Pour ajouter une jointure dans la requte de slection en cours:


1.Slectionnez loption "diter la jointure" avec un clic droit sur la jointure. La fentre de description des
jointures de la requte saffiche.
2.Cliquez sur le bouton "Ajouter". Une fentre permettant de dfinir une nouvelle jointure saffiche.
3.Spcifiez les caractristiques de la jointure ajouter.
4.Validez. La jointure est automatiquement ajoute dans la requte.
Il est ainsi possible de crer des jointures multiples entre deux fichiers.

Pour supprimer une jointure dans la requte de slection en cours:


1.Slectionnez loption "diter la jointure" avec un clic droit sur la jointure. La fentre de description des
jointures de la requte saffiche.
2.Slectionnez la jointure supprimer.
3.Cliquez sur le bouton "Supprimer". La jointure est automatiquement supprime. Les jointures entre les
fichiers sont automatiquement optimises pour conserver le bon fonctionnement de la requte.

3.3.11 Cohrence avec lanalyse


La vrification de la cohrence avec lanalyse permet de mettre jour les rubriques manipules par la re-
qute en fonction des modifications effectues dans lanalyse.
Lors de la gnration de lanalyse, il est possible de reporter directement les modifications effectues sur les
lments concerns: fentres, requtes, pages, ... Si cette opration nest pas effectue, il est possible sous
lditeur de requtes de vrifier la cohrence avec lanalyse.
Pour effectuer la cohrence avec lanalyse de la requte en cours:
1.Sous le volet"Requte", dans le groupe "Analyser", cliquez sur "Cohrence avec lanalyse".
Remarque: cette option est disponible uniquement si des modifications ont t ralises dans lanalyse et
nont pas t reportes dans la requte.
2.Dans la fentre qui saffiche, slectionnez laction raliser pour chaque modification de lanalyse. Vali-
dez. Les modifications sont automatiquement ralises.

3.4 Ouvrir, fermer et enregistrer une requte


Pour ouvrir une requte sous lditeur:
double-cliquez sur son nom dans le volet "Explorateur de projet".
sous le volet "Accueil", dans le groupe "Gnral", droulez "Ouvrir" et slectionnez "Ouvrir". Slectionnez
un (ou plusieurs) fichier(s) de type ".WDR" et validez.
La requte est immdiatement affiche sous lditeur de requtes.

Pour fermer une requte:


cliquez sur la croix en haut droite de la fentre ddition de la requte.
sous le volet "Accueil", dans le groupe "Gnral", cliquez sur "Fermer". Si la requte contient des modifica-
tions non sauvegardes, il est possible denregistrer la requte. Pour enregistrer la requte, sous le volet
"Accueil", dans le groupe "Gnral", cliquez sur "Enregistrer" ou droulez "Enregistrer" et slectionnez
"Enregistrer sous" pour enregistrer la requte en la renommant.

Partie 2 : Editeur de requtes 207


Rcupration automatique
Pour viter tout problme lors du blocage du systme (coupure de courant par exemple), lditeur de re-
qutes propose un systme de rcupration automatique des lments ouverts sous les diffrents diteurs:
sous le volet "Accueil", dans le groupe "Environnement", droulez "Options" et slectionnez "Options gn-
rales de XXX".
dans longlet "Gnral", cochez loption "Enregistrement pour la rcupration automatique".
Lorsque ce systme est activ:
un enregistrement automatique des lments ouverts est effectu une priode rgulire (toutes les 10
minutes par dfaut).
lors de la r-ouverture dune requte aprs un blocage systme, une fentre de rcupration automatique
apparat. Cette fentre propose de rcuprer:
soit la requte telle quelle tait lors de la dernire sauvegarde ralise depuis lditeur de requtes.
soit la requte sauvegarde automatiquement par lditeur de requtes.
La version slectionne est automatiquement ouverte sous lditeur de requtes. La version non slec-
tionne est disponible dans la fentre de gestion des versions: sous le volet "Accueil", dans le groupe
"Gnral", droulez "Enregistrer" et slectionnez "Versions". La version non slectionne peut tre ouverte
tout moment.

3.5 Dossier de la requte


Lditeur de requtes cre automatiquement un dossier de programmation sur chaque requte. Ce dossier
contient:
la reprsentation graphique de la requte.
les informations gnrales de la requte (nom logique et physique de la requte, type de la requte, ana-
lyse associe la requte, ...).
les informations spcifiques aux rsultats de la requte (rubriques rsultat, paramtres de la requte,
critres de tri, ...).
les informations sur les caractristiques de la requte (conditions de slection, groupements, ...).
le code SQL correspondant la requte.

Le contenu de ce dossier est paramtrable, il peut contenir:


soit toutes les informations sur la requte.
soit une slection dinformations.

Pour diter le dossier de programmation de la requte en cours sous lditeur:


1.Sous le volet "Accueil", dans le groupe "Gnral", droulez et slectionnez "Imprimer le dossier du
projet".
2.Spcifiez les informations contenues dans ce dossier.
3.Choisissez le type ddition du dossier.
Remarque: Limpression de la reprsentation de la requte peut tre paramtre selon:
des zones dimpression.
une mise en page spcifique. Pour dfinir cette mise en page, droulez et slectionnez "Mise en
page du dossier".

208 Partie 2 : Editeur de requtes


Pour spcifier les zones dimpression de la reprsentation graphique:
1.Sous le volet "Affichage", dans le groupe "Edition", cochez loption "Zones dimpression". Des bordures
reprsentant les zones imprimables dans le dossier dinformation apparaissent sous lditeur de requtes.
2.Rduisez laffichage de la reprsentation graphique: sous le volet "Affichage", dans le groupe "Edition",
modifiez la valeur du "Zoom" (ou [Ctrl] + Roulette de la souris) pour visualiser lensemble de la requte.
3.A laide de la souris:
dplacez ces bordures lendroit dsir en maintenant le bouton de la souris enfonc (la couleur du
curseur de la souris est noire).
choisissez le nombre de pages sur lesquelles la reprsentation graphique doit tre imprime (le cur-
seur de la souris se transforme en double-flche Nord-Ouest / Sud-Est).

3.6 Optimiser une requte


Lditeur de requtes permet doptimiser la vitesse dexcution dune ou de plusieurs requtes de votre
projet.
Loptimisation dune requte repose sur le principe suivant: un assistant dtermine les cls composes
modifier et/ou ajouter dans lanalyse associe au projet.
Important

Le logiciel Etats & Requtes ne permet pas doptimiser la vitesse dexcution dune
requte.

Pour optimiser la vitesse dexcution de la requte en cours:


1.Sous le volet "Requte", dans le groupe "Analyser", cliquez sur "Optimiser la requte".
2.La fentre doptimisation dune requte saffiche et propose les diffrentes modifications possibles
effectuer dans lanalyse.

Pour optimiser la vitesse dexcution dune ou de plusieurs requtes:


1.Sous le volet "Requte", dans le groupe "Analyser", cliquez sur "Optimiser la requte".
2.La fentre doptimisation des requtes saffiche et propose les diffrentes modifications possibles
effectuer dans lanalyse.

Attention: Lajout dun nombre important de cls composes dans lanalyse augmente la taille des fichiers
dindex et peut ralentir les accs aux fichiers de donnes.

Remarque: Cette option est disponible uniquement si les conditions suivantes sont runies:
le Live Data est activ: sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description". Slec-
tionnez longlet "Live Data" et cochez "Activer le Live Data". Pour plus de dtails, consultez laide en ligne
(mot-cl : "Live Data").
les fichiers de donnes sont prsents dans le rpertoire de test du projet: sous le volet "Projet", dans le
groupe "Projet", cliquez sur "Description". Slectionnez longlet "Fichiers". Pour plus de dtails, consultez
laide en ligne (mot-cl: "Tester,Projet").

Optimisation et cls composes:


Pour optimiser vos requtes, lditeur propose la cration de cls composes. Lordre des composantes de la
cl compose na pas dimportance.
Il nest pas ncessaire de crer une nouvelle cl inversant juste lordre des composantes dune cl existante.

Partie 2 : Editeur de requtes 209


4. Tester et utiliser une requte

4.1 Test de la requte


Lditeur de requtes permet de tester directement le rsultat de la requte (icne ou option "Tester la re-
qute" du menu contextuel de la requte).
Lors du test de la requte, le code dinitialisation du projet est excut.

Remarques:
Il est possible de lancer plusieurs tests de requte en mme temps.
Lors du test dune requte paramtre, une fentre permettant de spcifier les diffrents paramtres
saffiche.
Dans cette fentre, vous pouvez slectionner une valeur existante grce licne . Le menu suivant
apparat:

210 Partie 2 : Editeur de requtes


Il est alors possible:
soit de slectionner une des valeurs possibles parmi celles prsentes dans le fichier,
soit de visualiser la totalit du fichier.
Attention: Cette option est disponible uniquement si le Live Data est activ. Pour plus de dtails,
consultez laide en ligne (mot-cl : "Live Data").
Le bouton permet dafficher automatiquement la moyenne, le total, les valeurs minimale et maxi-
male des diffrentes rubriques rsultat de type numrique.
Le logiciel Etats & Requtes ne permet pas de tester:
des requtes dinsertion,
Important

des requtes de modification,


des requtes de suppression.
Lors du test dune requte sous lditeur de requtes Utilisateur, le traitement dinitiali-
sation du projet est excut.

Selon le type de requte test, le rsultat du test est diffrent:


Le rsultat dune requte de slection correspond aux enregistrements slectionns par la requte.
Le rsultat dune requte dinsertion correspond lenregistrement qui va tre insr. Lors du test, lenre-
gistrement est directement insr dans le fichier.
Le rsultat dune requte de modification correspond aux enregistrements qui vont tre modifis. Lors du
test, il est possible:
soit de visualiser uniquement les enregistrements qui vont tre modifis,
soit de modifier directement les enregistrements dans le fichier.
Le rsultat dune requte de suppression correspond aux enregistrements qui vont tre supprims. Lors
du test, il est possible:
soit de visualiser uniquement les enregistrements qui vont tre supprims,
soit de supprimer directement les enregistrements dans le fichier.

Rsultat du test
Le rsultat de la requte peut ensuite au choix tre:
Export vers un fichier texte.
Export vers un fichier XML.
Export vers un fichier Excel.
Export vers un fichier HFSQL.
Imprim.
Il est galement possible de copier un enregistrement du rsultat de la requte dans le presse-papiers.

Mot de passe
Si un des fichiers de donnes participant la requte est protg par mot de passe, lors du test de la
requte:
Si le mot de passe est prcis dans le code dinitialisation du projet (fonction HPasse), la requte est
excute.
Si la gestion des erreurs HFSQL na pas t personnalise (fonction HSurErreur) et si le mot de passe
nest pas prcis par programmation, la fentre standard de demande du mot de passe est affiche.
Remarque: si la gestion des erreurs est personnalise dans le code dinitialisation du projet, cette ges-
tion des erreurs sera utilise.

Partie 2 : Editeur de requtes 211


4.1.1 Exporter le rsultat de la requte vers un fichier Word
Pour lopration suivante, nous considrons que le rsultat de la requte est affich.
Pour exporter le rsultat de la requte vers un fichier texte:
1.Slectionnez loption "Exporter la table vers Word" (ou loption "Exporter la table vers OpenOffice.org Wri-
ter") dans le menu contextuel (clic droit) du rsultat de la requte. La fentre de slection du fichier "RTF"
saffiche.
2.Spcifiez le nom et lemplacement du fichier "RTF".
3.Validez. Les enregistrements du rsultat de la requte sont automatiquement exports dans le fichier
"RTF".

4.1.2 Exporter le rsultat de la requte vers un fichier Excel


Pour lopration suivante, nous considrons que le rsultat de la requte est affich.
Pour exporter le rsultat de la requte vers un fichier Excel:
1.Slectionnez loption "Exporter la table vers Excel" (ou loption "Exporter la table vers OpenOffice.org
Calc") dans le menu contextuel (clic droit) du rsultat de la requte. La fentre de slection du fichier "XLS"
saffiche.
2.Spcifiez le nom et lemplacement du fichier "XLS".
3.Validez. Les enregistrements du rsultat de la requte sont automatiquement exports dans le fichier
"XLS".

4.1.3 Exporter le rsultat de la requte vers un fichier XML


Pour lopration suivante, nous considrons que le rsultat de la requte est affich.
Pour exporter le rsultat de la requte vers un fichier XML:
1.Slectionnez loption "Exporter la table vers XML" dans le menu contextuel (clic droit) du rsultat de la
requte. La fentre de slection du fichier XML saffiche.
2.Spcifiez le nom et lemplacement du fichier XML.
3.Validez. Les enregistrements du rsultat de la requte sont automatiquement exports dans le fichier
XML.

4.1.4 Exporter le rsultat de la requte vers un fichier de donnes HFSQL


Pour lopration suivante, nous considrons que le rsultat de la requte est affich.
Pour exporter le rsultat de la requte vers un fichier de donnes HFSQL:
1.Cliquez sur le bouton "Exporter vers un fichier HFSQL" ou slectionnez loption "Exporter dans un fichier
HFSQL" dans le menu contextuel (clic droit) du rsultat de la requte. La fentre de slection du fichier
HFSQL saffiche.
2.Spcifiez le nom et lemplacement du fichier de donnes HFSQL.
3.Validez. Les enregistrements du rsultat de la requte sont automatiquement exports dans le fichier de
donnes HFSQL. Le rsultat peut tre visualis par exemple avec WDMap.

4.1.5 Imprimer le rsultat de la requte


Pour lopration suivante, nous considrons que le rsultat de la requte est affich.

212 Partie 2 : Editeur de requtes


Pour imprimer le rsultat de la requte:
1.Slectionnez loption "Imprimer" dans le menu contextuel (clic droit) du rsultat de la requte ou cliquez
sur le bouton . La fentre de slection des rubriques imprimer souvre.
2.Indiquez les rubriques imprimer et validez.
3.Un aperu avant impression saffiche avec le rsultat de la requte.

4.2 Utiliser le rsultat dune requte


Le rsultat dune requte de slection peut tre utilis dans:
une application WinDev, WinDev Mobile ou un site WebDev,
une fentre (cre avec lassistant sous WinDev ou WinDev Mobile),
une page (cre avec lassistant sous WebDev),
un champ dune fentre (table, liste, combo, ... sous WinDev ou WinDev Mobile),
un champ dune page (zone rpte, table, liste, combo, ... sous WebDev),
un tat.
Le rsultat dune requte dinsertion, de modification ou de suppression peut tre utilis uniquement dans
un programme.
Important

Rappel: Le logiciel Etats & Requtes ne permet pas de crer: des requtes dinsertion,
des requtes de modification, des requtes de suppression.

Pour utiliser le rsultat dune requte en programmation, consultez Excution de la requte et manipulation
du rsultat avec les fonctions du WLangage.

4.2.1 Requte dans une fentre WinDev ou dans une page WebDev
Il est possible dutiliser une requte comme source de donnes dune fentre ou dune page. La fentre ou la
page affichera les enregistrements slectionns par la requte.
Important

Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis
une application WinDev uniquement si cette application gre les requtes cres avec
le logiciel Etats & Requtes.

Pour utiliser une requte dans une fentre:


1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Fentre" puis sur "Fentre".
Lassistant de cration dune fentre se lance.
2.Dans longlet R.A.D., choisissez le Pattern RAD utiliser et le type de fentre crer.
3.Spcifiez si ncessaire le gabarit de la fentre et validez la cration. Lassistant de cration dune
fentre saffiche.
4.Dans lassistant de cration, slectionnez la requte associer la fentre et les rubriques afficher
dans la fentre.
5.Validez. La fentre cre affichera les informations provenant de la requte associe.

Partie 2 : Editeur de requtes 213


Pour utiliser une requte dans une page:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Page" puis sur "Page".
Lassistant de cration dune page se lance.
2.Dans longlet R.A.D., choisissez le Pattern RAD utiliser et le type de page crer.
3.Spcifiez si ncessaire le modle de la page et validez la cration. Lassistant de cration dune page
saffiche.
4.Dans lassistant de cration, slectionnez la requte associer la page et les rubriques afficher dans
la page.
5.Validez. La page cre affichera les informations provenant de la requte associe.

4.2.2 Requte dans un champ dune fentre WinDev ou dune page WebDev
Tous les champs pouvant tre relis une source de donnes peuvent tre associs une ou plusieurs
rubriques rsultat de la requte (champs de saisie, liste, table, ...).
Il est possible dutiliser une requte comme source de donnes dun champ. Le champ affichera les enre-
gistrements slectionns par la requte.
Important

Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis
une application WinDev uniquement si cette application gre les requtes cres avec
le logiciel Etats & Requtes.

Pour afficher le rsultat de la requte dans un champ Liste, Combo, Zone rpte ou Table:
1.Ouvrez la fentre ou la page dans laquelle le champ Liste, Combo, Zone rpte ou Table doit tre
ajout.
2.Insrez le champ associ la requte (via le volet "Cration" du ruban). Lassistant de cration du
champ se lance.
3.Spcifiez que les informations affiches dans le champ proviennent dune requte existante.
4.Slectionnez la requte associer au champ et les rubriques afficher dans le champ.
5.Validez. Le champ cr affichera les informations provenant de la requte associe.
6.Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne
de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ
en cours.
HExcuteRequte(<Nom de la requte associe>)
Pour utiliser une rubrique rsultat de la requte dans un champ (autre quun champ Liste, Combo, Zone
rpte ou Table):
1.Ouvrez la fentre ou la page dans laquelle un champ associ une requte doit tre ajout.
2.Crez le champ associ la requte.
3.Sous le volet "Modification", dans le groupe "Aide ldition", cliquez sur "Description". La fentre de des-
cription du champ saffiche.
4.Affichez longlet "Liaison" de la fentre de description du champ.
5.Slectionnez la rubrique afficher dans loption "Rubrique relie".
6.Validez. Le champ cr affichera les informations provenant de la requte associe.
7.Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne
de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ
en cours.
HExcuteRequte(<Nom de la requte associe>)

214 Partie 2 : Editeur de requtes


Remarque: Lors de la cration dun champ Table associ une requte, il est possible de:
1.Slectionner directement la requte dans le volet "Projet".
2.Effectuer un "Drag and Drop" (Glisser/Dplacer) vers la fentre. Une table associe la requte est auto-
matiquement cre dans la fentre ou dans la page.

4.2.3 Requte dans un tat


Il est possible dutiliser une requte comme source de donnes dun tat. Ltat affichera les enregistre-
ments slectionns par la requte.
Pour utiliser une requte dans un tat, consultez Etat sur Requte.
Astuce: Sous le volet "Requte", dans le groupe "Liaison Fichier", loption "Crer un tat" permet de crer
automatiquement un tat bas sur la requte de slection en cours.

4.3 Excution de la requte et manipulation du rsultat avec les


fonctions du WLangage
La slection denregistrements dune requte nest pas obligatoirement affiche dans un tat, dans une
fentre, ... Cette slection peut galement tre utilise en programmation.
La plupart des fonctions HFSQL (fonctions de parcours, de recherche, de lecture, ...) peuvent tre utilises
aussi bien sur des fichiers de donnes que sur le rsultat dune requte. Pour utiliser ces fonctions sur une
requte, il est ncessaire dexcuter au pralable la requte (fonction HExcuteRequte).
Par exemple, la requte Client34 slectionne les clients habitant dans le dpartement de lHrault. La pro-
cdure ImprimeClient permet dimprimer une facture prdfinie pour chaque client. Le code suivant permet
de parcourir le rsultat de la requte Client34 et dimprimer une facture pour lensemble des clients slec-
tionns.
// Excution de la requte
ResExcution = HExcuteRequte(Client34)
// Erreur lors de lexcution de la requte ?
SI ResExcution = Vrai ALORS
// Parcours du rsultat de la requte
POUR TOUT Client34
// Impression de la facture pour chaque enregistrement
ImprimeClient(Client34.NomClient, Client34.PrnomClient, ...
Client34.AdresseClient, Client34.CodePostalClient, ...
Client34.VilleClient)
FIN
SINON
// Affichage du message derreur
Erreur("La requte na pas t excute.")
FIN
Mot de passe
Mot de passe de lanalyse: Si la requte est associe une analyse protge par un mot de passe en
excution, spcifiez ce mot de passe lors de louverture de lanalyse (fonction HOuvreAnalyse) dans le
traitement dinitialisation du projet.
Mot de passe du fichier: Si la requte est base sur un (ou plusieurs) fichier(s) protg(s) par un mot de
passe, spcifiez ce(s) mot(s) de passe grce la fonction HPasse avant dexcuter la requte (fonction
HExcuteRequte).

Partie 2 : Editeur de requtes 215


5. Requte avance

5.1 Prsentation
Dans les chapitres prcdents, nous vous avons prsent les requtes "Simples" pouvant tre cres avec
lditeur de requtes. Lditeur de requtes permet galement de raliser des requtes avances. Ainsi, il est
possible de:
utiliser le rsultat dune requte dans une autre requte. Cest le concept de sous-requtes.
utiliser des paramtres dans une requte. La valeur de ces paramtres sera spcifie uniquement lors de
lexcution de la requte. Cest le concept de requte paramtre.

5.2 Sous-requte
Une sous-requte est une requte dont le rsultat est utilis par une autre requte.
Par exemple, vous voulez slectionner les commandes dont le montant est suprieur au montant moyen des
commandes. Le montant moyen des commandes nest pas connu directement. Ce montant moyen va tre
retourn par une autre requte (appele ici sous-requte).
Une sous-requte peut tre utilise:
soit en tant que condition de slection.
soit en tant que fichier de la requte principale.
Limites:
Linstruction ORDER BY est interdite dans les sous requtes.
Les sous-requtes ne peuvent pas tre ralises avec lditeur de requtes.

5.2.1 Sous-requte en tant que condition de slection


Une sous-requte peut tre utilise en tant que condition de slection.
Les syntaxes autorises sont les suivantes:
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
WHERE Rubrique1 Oprateur (SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...])

SELECT Rubrique1 [, Rubrique2]


FROM Fichier1 [, Fichier2]
WHERE [NOT] EXISTS (SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...])
Dans cette syntaxe, <Oprateur> peut correspondre:
soit ALL, ANY (ou SOME), IN ou NOT IN
ALL: compare la valeur slectionne par la requte principale toutes les valeurs slectionnes dans
la sous-requte.
NOT IN: vrifie si la valeur slectionne par la requte principale nappartient pas la liste de valeurs
slectionnes dans la sous-requte.

216 Partie 2 : Editeur de requtes


IN: vrifie si la valeur slectionne par la requte principale appartient la liste de valeurs slection-
nes dans la sous-requte.
ANY (ou SOME): compare la valeur slectionne par la requte principale nimporte quelle valeur
slectionne dans la sous-requte.
ALL: compare la valeur slectionne par la requte principale toutes les valeurs slectionnes dans
la sous-requte.
soit un oprateur de comparaison (=, <, <=, >, >=, <> ou !=).
soit la combinaison de ALL, ANY (ou SOME) et dun oprateur de comparaison (=, <, <=, >, >=, <> ou
!=).
ALL: compare la valeur slectionne par la requte principale toutes les valeurs slectionnes dans
la sous-requte.
ANY (ou SOME): compare la valeur slectionne par la requte principale nimporte quelle valeur
slectionne dans la sous-requte.
ALL: compare la valeur slectionne par la requte principale toutes les valeurs slectionnes dans
la sous-requte.

Exemple: Le code SQL suivant permet de slectionner le numro des commandes dont le montant total est
suprieur au montant moyen de lensemble des commandes:
SELECT NumCommande
FROM COMMANDE
WHERE Montant > (SELECT AVG(Montant)
FROM COMMANDE)

5.2.2 Sous-requte utilise comme source de donnes dune requte


Une sous-requte peut tre utilise en tant que fichier de la requte principale.
La syntaxe autorise est la suivante:
SELECT Rubrique1 [, Rubrique2]
FROM (SELECT Rubrique1 FROM Fichier1 [WHERE ...])

5.3 Requte paramtre


Grce aux requtes paramtres, lutilisateur peut raliser simplement une slection denregistrements cor-
respondant ses besoins. Il lui suffit de prciser les diffrents paramtres prendre en compte.
Par exemple, une requte paramtre pourra tre utilise pour slectionner les commandes passes par un
client spcifique. Lutilisateur naura qu slectionner le nom du client. La requte utilisera ce nom comme
paramtre.

Pour inclure une requte paramtre dans une application WinDev, WinDev Mobile ou un site WebDev, il
est ncessaire de:
Crer une requte paramtre sous lditeur de requtes.
Modifier lapplication pour utiliser la requte paramtre.
La requte paramtre peut aussi bien tre utilise avec une fentre, un champ Table (liste ou combo), un
tat, ...

5.3.1 Cration dune requte paramtre


Quel que soit le type de la requte (slection, insertion, suppression, modification) et son mode de cration
(avec lassistant ou directement par SQL), il est possible dutiliser des paramtres. Le nom du paramtre est
indiqu lors de la cration de la requte.

Partie 2 : Editeur de requtes 217


Pour crer une requte paramtre:
1.Crez une requte. Pour plus de dtails sur la cration dune requte, consultez "Comment crer une
requte ?", page 168.
2.Lors de la dfinition des conditions de slection:
spcifiez que la condition de slection correspond un paramtre,
donnez le nom de ce paramtre.

5.3.2 Test dune requte paramtre


Pour tester une requte paramtre:
1.Ouvrez la requte paramtre sous lditeur de requtes.
2.Cliquez sur parmi les boutons daccs rapide.
3.Spcifiez la valeur du ou des paramtres utiliser pour le test de la requte. Dans cette fentre, vous
pouvez slectionner une valeur existante grce licne . Le menu suivant apparat:

4.Il est alors possible:


soit de slectionner une des valeurs possibles parmi celles prsentes dans le fichier.
soit de visualiser la totalit du fichier.
Attention: Cette option est disponible uniquement si le Live Data est activ. Pour plus de dtails,
consultez laide en ligne (mot-cl : Live Data).
5.Validez. Le rsultat de la requte saffiche selon la ou les valeurs spcifies.
Remarque: Si aucun paramtre nest slectionn (paramtre non coch), la ou les conditions utilisant les
paramtres seront ignores.

5.3.3 Utilisation dune requte paramtre


Une requte paramtre peut tre utilise:
Dans une fentre ou une page.
Dans un champ Table, un champ Liste, un champ Combo ou un champ Zone rpte.
Dans un tat.
Dans tous les cas, il est possible de grer les paramtres saisis dans un champ de saisie.
Utilisation dune requte paramtre dans une fentre ou une page
Principe
Lors de la cration dune fentre (ou dune page), il est possible de baser cette fentre (ou page) sur une
requte paramtre. La saisie des paramtres de la requte peut par exemple tre ralise dans une fentre
(ou page) prcdente.
Pour utiliser une fentre (ou une page) base sur une requte paramtre, il est ncessaire dexcuter la
requte (fonction HExcuteRequte):
soit avant douvrir la fentre ou la page.
soit dans le code de dclaration des globales de la fentre ou de la page.

218 Partie 2 : Editeur de requtes


Lors de lexcution de la requte, il est ncessaire de passer les paramtres ncessaires. Ces paramtres
peuvent tre passs:
soit directement dans la fonction WLangage HExcuteRequte.
soit en utilisant la notation <Nom de la requte>.<Nom du paramtre>, puis en utilisant la fonction HEx-
cuteRequte.
Pour plus de dtails sur le passage de paramtres la requte, consultez "Deux mthodes pour passer des
paramtres une requte", page 221.
Exemple
Pour afficher la liste des commandes de lanne XXXX, lutilisateur effectue les oprations suivantes:
saisie de lanne voulue dans la fentre FEN_SaisieParam.
clic sur le bouton "Voir le rsultat". La fentre FEN_ListeCommande saffiche. Cette fentre est base sur
la requte REQ_ParamCommande. Cette requte permet de slectionner les commandes effectues la
date indique par lutilisateur.
Le code suivant permet de:
1.ouvrir la fentre FEN_SaisieParam.
2.rcuprer la valeur saisie par lutilisateur.
3.excuter la requte REQ_ParamClient.
1. Ouverture de la fentre de saisie des paramtres dans le traitement dinitialisation de la fentre FEN_Lis-
teCommande:
// -- Traitement dinitialisation de la fentre FEN_ListeCommande
ParamRequte est une chane
// Ouverture de la fentre FEN_SaisieParam et
// rcupration de la saisie de lutilisateur
ParamRequte = Ouvre(FEN_SaisieParam)
2. Excution de la requte dans le traitement dinitialisation de la fentre FEN_ListeCommande:
// Excution de la requte
HExcuteRequte(REQ_ParamCommande, hRequteDefaut, ParamRequte)
// Code similaire:
// REQ_ParamCommande.Anne = ParamRequte
// HExcuteRequte(REQ_ParamCommande, hRequteDefaut)

Utilisation dune requte paramtre dans un champ Table, Zone rpte, Liste ou
Combo
Principe
Lorsquun champ Table fichier est li une requte paramtre (intgre ou non), il est ncessaire de passer
des paramtres la requte avant de lexcuter.
Si ces paramtres ne sont pas spcifis avant la premire excution de la requte, la requte ne sera pas
excute et le champ Table restera vide.
Pour passer les paramtres la requte, il est possible dutiliser:
soit la notation suivante:
<Nom Requte>.<Nom Paramtre1> = xxx
<Nom Requte>.<Nom Paramtre2> = xxx
<Nom Requte>.<Nom Paramtre3> = xxx
Dans ce cas, la requte est automatiquement excute lors de linitialisation du champ Table.

Partie 2 : Editeur de requtes 219


Remarque: il est galement possible dutiliser une des notations suivante:
le mot-cl MaSource:
MaSource.<Nom Paramtre1> = xxx
MaSource.<Nom Paramtre2> = xxx
MaSource.<Nom Paramtre3> = xxx
lindirection:
{"<Nom Requte>.<Nom Paramtre1>"} = xxx
ou
{"<Nom Requte>"}.<Nom Paramtre1> = xxx
soit la fonction HExcuteRequte.
Une de ces deux mthodes peut tre utilise par exemple dans le code de dclaration des globales de la
fentre ou dans le code dinitialisation du champ Table.
Pour plus de dtails, consultez laide en ligne.
Utilisation dune requte paramtre dans un tat
Principe
Pour utiliser un tat bas sur une requte paramtre, il est ncessaire dexcuter la requte avant douvrir
ltat. La requte peut tre excute avec la fonction iInitRequteEtat. Cette fonction permet dexcuter la
requte et dindiquer les paramtres de cette requte. Cette fonction peut tre appele:
soit dans le code dinitialisation de ltat,
soit avant la fonction iImprimeEtat.
Exemple
La fentre FEN_ClientFiche permet de parcourir les caractristiques des clients. Pour chaque client, lutilisa-
teur peut cliquer sur le bouton BTN_ImprimeCommande pour imprimer ltat ETAT_EtatCdeClient. Cet tat
est associ la requte REQ_CdeClient qui slectionne les commandes passes par un client donn.
Le code suivant permet dexcuter la requte REQ_CdeClient selon le client en cours et dimprimer ltat:
// -- Traitement de clic du bouton BTN_ImprimeCommande
// Excution de la requte selon le client en cours
iInitRequteEtat(ETAT_EtatCdeClient, NumClient)
// Impression de ltat
iImprimeEtat(ETAT_EtatCdeClient)

Paramtres provenant de champs de saisie


Dans la plupart des cas, la saisie des paramtres dune requte paramtre est effectue par lutilisateur
dans des champs de saisie.
Pour que votre requte sexcute mme si aucune valeur nest saisie par lutilisateur, cochez loption "NULL
si vide" des champs de saisie (onglet "Dtail" de la description du champ).
Grce cette option, si le champ de saisie est vide, la valeur du paramtre renvoye la requte correspon-
dra la constante NULL. Ainsi, lors de lexcution de la requte, aucune erreur ne sera gnre: la ou les
conditions dpendant de ce paramtre seront simplement ignores.
Le code SQL excut est:
SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = {Param1}

220 Partie 2 : Editeur de requtes


Pour cet exemple, le tableau ci-dessous dcrit lutilisation de loption "NULL si vide":
Valeur saisie par lutili- Option "NULL si vide" Code SQL excut
sateur
Aucune valeur Option coche <code sql> SELECT NomDesRubriques
FROM NomDesFichiers
</code>
Aucune valeur Option dcoche <code sql> SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique =
</code>
Une valeur est saisie Option coche ou dcoche <code sql> SELECT NomDesRubriques
FROM NomDesFichiers
WHERE Rubrique = ValeurSaisie
</code>

5.3.4 Deux mthodes pour passer des paramtres une requte


Pour passer des paramtres une requte paramtre utilise dans une fentre ou dans un champ (par
exemple champ Liste, Combo ou Table), le WLangage offre deux possibilits:
soit passer les paramtres directement dans la fonction WLangage HExcuteRequte.
soit utiliser la notation <Nom de la requte>.<Nom du paramtre>, puis la fonction HExcuteRequte.
Cette page daide prsente le mode dutilisation et les avantages de chacune de ces mthodes.
Remarque: Si la requte paramtre est utilise dans un tat, le mode de passage des paramtres varie.
Pour plus de dtails, consultez "Utilisation dune requte paramtre dans un tat", page 220.
Utiliser la fonction HExcuteRequte pour passer les paramtres une requte
Lors de lexcution dune requte avec la fonction HExcuteRequte, les derniers paramtres passs la
fonction correspondent aux paramtres de la requte.
La syntaxe utilise est la suivante:
<Rsultat> = HExcuteRequte(<Nom requte> [, <Connexion>] [, <Mode>
[, <Paramtres> [, ...]]])
Attention: Dans ce cas:
Les valeurs des paramtres de la requte doivent tre indiques dans leur ordre dinitialisation (visible
sous lditeur de requtes). Chaque paramtre doit correspondre au type attendu. Les diffrents para-
mtres sont spars par une virgule.
Pour spcifier les paramtres de la requte, il est ncessaire de spcifier le mode dinitialisation de la
requte.
Notation <Nom de la requte>.<Nom du paramtre>
Pour passer des paramtres une requte, il est possible de prciser au moteur HFSQL tous les paramtres
de la requte avant dexcuter la requte. Cette mthode permet de prciser les diffrents paramtres dans
nimporte quel ordre (intressant pour les requtes ncessitant de nombreux paramtres).
La syntaxe utiliser est la suivante:
<Nom de la requte>.<Nom du paramtre 1> = <Valeur du paramtre 1>
...
<Nom de la requte>.<Nom du paramtre N> = <Valeur du paramtre N>
<Rsultat> = HExcuteRequte(<Nom de la requte>
[, <Connexion>] [, <Mode>])

Partie 2 : Editeur de requtes 221


Attention:
Le nom du paramtre doit tre le nom spcifi lors de la cration de la requte sous lditeur de re-
qutes. Ce nom doit tre diffrent dun nom de rubrique.
Il nest pas possible dutiliser doprateurs dindirection ou la compilation dynamique (fonction Compile)
avec cette syntaxe.
A chaque excution de la requte avec la fonction HExcuteRequte, les paramtres sont r-initialiss
(remis 0).
Si au moins un paramtre est spcifi dans la fonction HExcuteRequte, tous les paramtres spcifis
prcdemment seront ignors.
La valeur du paramtre peut correspondre NULL.
Si un des paramtres nest pas prcis, la condition correspondante ne sera pas prise en compte.
Ne pas spcifier tous les paramtres
Quelle que soit la faon de passer les paramtres la requte, tous les paramtres de la requte ne doivent
pas obligatoirement tre prciss. Les conditions de la requte utilisant des paramtres non prciss seront
ignores.
Exemple: Soit la requte "REQ_Clients_nom_prnom" dont le code SQL est le suivant:
SELECT * FROM CLIENT WHERE NOM = {Param1} AND PRENOM = {Param2}
Les 2 paramtres sont donns:
HExcuteRequte(REQ_Clients_nom_prnom, hRequteDfaut, ...
"Dupond", "Jean")
excutera la requte
SELECT * FROM CLIENT WHERE NOM = Dupond AND PRENOM = Jean
Seul le nom est donn:
HExcuteRequte(REQ_Clients_nom_prnom, hRequteDfaut, "Dupond" )
excutera la requte
SELECT * FROM CLIENT WHERE NOM = Dupond
Seul le prnom est donn. Le nom doit cependant tre spcifi et correspondre NULL.
sNom est un Variant = Null
// Utilisation du variant obligatoire
// pour variable de type Null (non renseigne)
HExcuteRequte(REQ_Clients_nom_prnom, hRequteDfaut, ...
sNom, "Jean")
// OU
HExcuteRequte(REQ_Clients_nom_prnom, hRequteDfaut, ...
Null, "Jean")
excutera la requte:
SELECT * FROM CLIENT WHERE PRENOM = Jean

222 Partie 2 : Editeur de requtes


Index
A E
Afficher Editeur de requtes 161
N derniers enregistrements 205 Carte denregistrement 163
N premiers enregistrements 205 Configuration minimale 163
Rubrique 195 Documentation 162
Ajouter Fentre principale 163
Condition de slection 201 Installation 163
Jointure 206 Interface 163
Opration 199 Version Dveloppeur 161
Rubrique 195 Version Utilisateur 161
Tri sur une rubrique 197 Enchanement des conditions de slection
203
B Modifier 203
Enregistrement
Blocage systme 207 Insrer 172
Modifier 174
C N derniers enregistrements
N premiers enregistrements
205
205
Calcul 199 Priode donne 204
Caractristiques dune requte 195 Slectionner 169
Carte denregistrement 163 Supprimer 176
Champ dune fentre Enregistrer
Utiliser une requte dans un champ 214 Requte 207
Cohrence avec lanalyse 207 Etat
Combiner des requtes 178 Utiliser une requte dans un tat 215
Commande SQL 182 Excel 212
Comptage 195
Condition de slection
Ajouter 201
200
F
Enchanement 203 Fentre
Modifier 202 Fentre principale de lditeur 163
Supprimer 202 Utiliser une requte dans une fentre 213
Utiliser une sous-requte 216 Fermer une requte 207
Cration Fichier
Requte 168 Excel 212
XLS 212
D XML 212
Full-text 195
DELETE 176
Description
Fentre de description 188 H
Dossier 208 HExcuteRequte 215
Doublons 206 HExcuteRequteSQL 215
hRequteSansCorrection 182

Partie 2 : Editeur de requtes 223


I R
Imprimer Recherche full-text 195
Dossier 208 Rcupration automatique 207
Rsultat 212 Renommer
INSERT 172 Requte 207
Insertion denregistrements 172 Rubrique 195
Interface Requte
Editeur de requtes 163 Caractristiques 195
Code SQL 181
J Cohrence avec lanalyse
Compose 178
207

Jointure 206 Condition de slection 200


Ajouter 206 Crer 168
Supprimer 206 Dfinition 159
Description 188
L Dossier 208
Doublon 206
Lancer lditeur de requtes 163 Enregistrer 207
Excution 215
M Fermer 207
Imprimer 212
Menu Insertion 172
Ruban 165 Jointure 206
Mode de requte 187 Manipulation 215
Modifier Mode de cration 187
Condition de slection 202 Modification 174
Enchanement des conditions 203 N derniers enregistrements 205
Enregistrements 174 N premiers enregistrements 205
Valeurs affiches 200 Optimiser la vitesse dexcution 209
Ouvrir 207
O Paramtre 217
Prsentation 159
Opration 199
Rcupration automatique 207
Ajouter 199
Renommer 207
Supprimer 199
Requte avance 216
Optimiser la vitesse dexcution 209
Ordre de tri 197 Requte compose 178
Ouvrir Requte de modification 174
Requte 207 Requte de slection 169
Requte de suppression 176

P Requte dinsertion
Requte indpendante
172
187
Page Requte intgre 187
Utilisation dune requte paramtre 218 Rtro-analyse 181
Paramtres 217 Rubrique 195
Passer des paramtres 221 Slection 169
Priode donne 204 Sous-requte 216
Projet 167 Suppression 176
Test 210
Types disponibles 168
Utilisation 213

224 Partie 2 : Editeur de requtes


Utiliser avec les fonctions du WLangage Rsultat
215 Exporter vers un fichier Excel 212
Utiliser dans un champ 214 Exporter vers un fichier XML 212
Utiliser dans une fentre 213 Imprimer 212
Utiliser dans un tat 215 Modifier les valeurs affiches 200
Zone dimpression 208 Utiliser 213
Requte compose 178 Rtro-analyse 181
Cration 180 Ruban 165
Fentre de description 193 Rubrique 195
Requte de modification 174 Comptage 195
Condition de slection 200 Condition de slection 200
Cration 175 Opration 199
Fentre de description 194 Tri 197
Test 210
Requte de slection
Condition de slection
169
200
S
Doublon 206 SELECT 169
Fentre de description 188 Slection denregistrements 169
Jointure 206 Sous-Requte 216
Modifier les valeurs affiches 200 SQL 181
Oprations possibles 199 Commandes SQL 182
Priode donne 204 Supprimer
Rubrique 195 Condition de slection 202
Test 210 Enregistrements 176
Tri des enregistrements 197 Jointure 206
Requte de suppression 176 Opration 199
Condition de slection 200 Rubrique 195
Cration 177 Tri sur une rubrique 197
Fentre de description 194
Test 210 T
Requte dinsertion 172
Cration 173 Table
Fentre de description 194 Utilisation dune requte paramtre 219
Requte dinsertion Tester 210
Test 210 Tri 197
Requte en code SQL 181 Ajouter 197
Commandes SQL disponibles 182 Supprimer 197
Cration 181 Type de requtes 168
Mode dexcution 181
Requte et projet 167 U
Requte indpendante 187
Requte intgre 187 UNION 178
Requte paramtre 217 UPDATE 174
Crer 217 Utiliser le rsultat dune requte 213
Passer des paramtres 221
Tester 218 W
Utilisation dans un champ 219
Utilisation dans une page 218 WLangage 215
Utiliser 218

Partie 2 : Editeur de requtes 225


X Z
XML 212 Zone dimpression 208
Zone rpte
Utilisation dune requte 219

226 Partie 2 : Editeur de requtes


Partie 3
Logiciel Etats &
Requtes
228 Partie 3 : Logiciel Etats & Requtes
Logiciel Etats & Requtes - Sommaire
1. Diffuser le logiciel Etats & Requtes
1.1 Prsentation............................................................................................................................................231
1.2 Diffuser le logiciel Etats & Requtes avec votre application WinDev.................................................231
1.3 tape 1: Paramtrage du projet............................................................................................................232
1.4 tape 2: Paramtrage de lanalyse.......................................................................................................232
1.4.1 Fichiers de donnes et rubriques visibles ....................................................................... 232
1.4.2 Traduction des noms des fichiers de donnes et des rubriques .................................... 233
1.5 tape 3: Paramtrage des tats...........................................................................................................233
1.6 tape 3 bis: Paramtrage des requtes...............................................................................................234
1.7 tape 4: Cration de lexcutable et diffusion de lapplication..........................................................235
1.8 tape 5: Installation de lapplication WinDev chez vos utilisateurs finals.........................................236

2. Utiliser le logiciel Etats & Requtes


2.1 Lancement du logiciel Etats et Requtes..............................................................................................237
2.2 Principe dutilisation des tats...............................................................................................................237
2.2.1 Modification dun tat ........................................................................................................237
2.2.2 Utilisation dun tat modifi ..............................................................................................237
2.2.3 Utilisation dun nouvel tat ............................................................................................... 238
2.3 Principe dutilisation des requtes........................................................................................................238
2.3.1 Modification dune requte .............................................................................................. 238
2.3.2 Utilisation dune nouvelle requte ................................................................................... 238

3. Limitations par rapport lditeur dtats intgr

Partie 3 : Logiciel Etats & Requtes 229


230 Partie 3 : Logiciel Etats & Requtes
1. Diffuser le logiciel Etats & Requtes

1.1 Prsentation
Ce chapitre prsente les diffrentes manipulations effectuer pour quune application WinDev puisse tre
manipule avec le logiciel Etats & Requtes.
Le logiciel Etats & Requtes remplace le logiciel "WDEtat Utilisateur". Ce logiciel est dsormais gratuit et
librement redistribuable avec vos applications WinDev. Consultez la licence pour les conditions dutilisation
et de redistribution de ce logiciel.

1.2 Diffuser le logiciel Etats & Requtes avec votre application


WinDev
Pour diffuser le logiciel Etats & Requtes avec votre propre application WinDev, le fournisseur de lapplica-
tion WinDev doit:
Indiquer au niveau du projet que lapplication autorise le lancement du logiciel Etats & Requtes.
Dfinir dans lanalyse les fichiers et les rubriques manipulables avec le logiciel Etats & Requtes, et si
ncessaire les noms des fichiers et rubriques disponibles dans les diffrentes langues.
Dfinir les tats modifiables sous le logiciel Etats & Requtes.
Dfinir les requtes visibles sous le logiciel Etats & Requtes.
Crer lexcutable et le programme dinstallation de lapplication WinDev.
Installer lapplication WinDev chez les utilisateurs finaux.
Remarque: Afin de diminuer la taille du programme dinstallation, le logiciel "Etats & Requtes" peut tre
tlcharg directement depuis votre application:
soit par le menu automatique,
soit par laperu avant impression dun tat,
soit lors de lutilisation de la fonction LanceEtatsEtRequtes.
Traduisez les noms des fichiers de donnes et des rubriques
Vous diffusez le logiciel "Etats & Requtes" dans des pays diffrents (il existe en franais et en anglais). Les
langues utilises sont diffrentes: espagnol, roumain, chinois, sudois, ...
Si lutilisateur final souhaite crer des tats ou des requtes, il doit manipuler les noms des fichiers de don-
nes et des rubriques. Ces noms sont utiliss dans lanalyse par le concepteur de lapplication. Ces noms
sont bien souvent en franais, ce qui nest pas pratique pour lutilisateur chinois ou roumain.
Il est possible dindiquer une traduction pour les noms des fichiers de donnes et des rubriques dans lana-
lyse.

Partie 3 : Logiciel Etats & Requtes 231


1.3 tape 1: Paramtrage du projet
Pour utiliser le logiciel Etats & Requtes partir de votre application WinDev, il est ncessaire de configurer
le projet de votre application.
1.Affichez la fentre de description du projet: sous le volet "Projet", dans le groupe "Projet", cliquez sur
"Description".
2.Dans longlet "Avanc", cochez loption "Autoriser le lancement de "Etats et Requtes"".
3.Validez.
Remarques:
Par dfaut, les projets WinDev autorisent le lancement du logiciel Etats & Requtes.
Le code dinitialisation du projet est excut lors dun test dun tat ou dune requte depuis le logiciel
Etats & Requtes. Dans ce cas, la fonction EnModeTest renvoie Faux.

1.4 tape 2: Paramtrage de lanalyse

1.4.1 Fichiers de donnes et rubriques visibles


Par dfaut, tous les fichiers de donnes et leurs rubriques sont manipulables sous le logiciel Etats & Re-
qutes. Lutilisateur final peut utiliser ces donnes dans ses tats et ses requtes personnalises.
Pour limiter les donnes manipulables sous le logiciel Etats & Requtes (par exemple si votre application
contient des donnes sensibles), il est ncessaire de modifier lanalyse WinDev: il suffit de rendre les fi-
chiers de donnes et/ou les rubriques voulues "invisibles" sous le logiciel Etats & Requtes.
Remarque: Les tats et les requtes crs directement depuis WinDev et bass sur des fichiers de donnes
et/ou des rubriques invisibles peuvent tre excuts et/ou modifis depuis le logiciel Etats & Requtes.
Pour dfinir un fichier de donnes invisible sous le logiciel Etats & Requtes:
1.Sous lditeur danalyses de WinDev, slectionnez le fichier de donnes voulu.
2.Affichez la fentre de description des rubriques du fichier (option "Description du fichier de donnes" du
menu contextuel).
3.Dans longlet "Etats et Requtes", dcochez loption "Visible par lutilisateur final", dans le logiciel "Etats
et Requtes"".
4.Validez.
Remarque: Toutes les rubriques du fichier de donnes seront automatiquement rendues invisibles.
Pour dfinir une rubrique de fichier invisible sous le logiciel Etats & Requtes:
1.Sous lditeur danalyses de WinDev, slectionnez le fichier de donnes contenant la rubrique voulue.
2.Affichez la fentre de description du fichier (option "Description des rubriques" du menu contextuel).
3.Slectionnez la rubrique voulue.
4.Dans longlet "Etats et Requtes", dcochez loption "Visible par lutilisateur final, dans le logiciel "Etats
et Requtes"".
5.Validez.
Remarque: La proprit ..VisibleUtilisateurFinal permet galement de connatre ou de modifier la visibilit
dune rubrique sous le logiciel Etats & Requtes.
Attention: Pour prendre en compte les modifications effectues dans lanalyse WinDev, il est bien entendu
ncessaire de gnrer lanalyse WinDev: sous le volet "Analyse", dans le groupe "Analyse", droulez "Gnra-
tion" et slectionnez "Gnration".

232 Partie 3 : Logiciel Etats & Requtes


1.4.2 Traduction des noms des fichiers de donnes et des rubriques
Par dfaut, lorsque lutilisateur final manipule les fichiers de donnes et les rubriques lors de la cration
dun tat ou dune requte, tous les noms utiliss correspondent ceux dfinis par le dveloppeur dans
lanalyse. Ces noms ne sont bien souvent pas dans la langue de lutilisateur. Il est possible de proposer une
traduction pour les lments suivants directement dans lanalyse WinDev:
Nom du fichier de donnes,
Libell du fichier de donnes,
Nom de la rubrique,
Libell de la rubrique.
Remarque: Si votre projet doit tre traduit, pensez traduire ces informations. WDMSG extrait et rintgre
automatiquement ces informations.
Pour dfinir les paramtres multilangues dun fichier de donnes sous le logiciel Etats & Requtes:
1.Sous lditeur danalyses de WinDev, slectionnez le fichier de donnes voulu.
2.Affichez la fentre de description des rubriques du fichier (option "Description du fichier de donnes" du
menu contextuel).
3.Dans longlet "Etats et Requtes", indiquez le nom du fichier de donnes et son libell dans les diff-
rentes langues gres par lanalyse.
Remarque: Le nom utilis ne doit pas correspondre un nom de fichier de donnes existant dans lana-
lyse.
4.Validez.
Pour dfinir les paramtres multilangues dune rubrique de fichier sous le logiciel Etats & Requtes:
1.Sous lditeur danalyses de WinDev, slectionnez le fichier de donnes contenant la rubrique voulue.
2.Affichez la fentre de description du fichier (option "Description des rubriques" du menu contextuel).
3.Slectionnez la rubrique voulue.
4.Dans longlet "Etats et Requtes", indiquez le nom de la rubrique et son libell dans les diffrentes lan-
gues gres par lanalyse.
5.Validez.
Attention: Pour prendre en compte les modifications effectues dans lanalyse WinDev, il est bien entendu
ncessaire de gnrer lanalyse WinDev: sous le volet "Analyse", dans le groupe "Analyse", droulez "Gnra-
tion" et cliquez sur "Gnration".

1.5 tape 3: Paramtrage des tats


Pour rendre un tat de votre application modifiable sous le logiciel Etats & Requtes:
1.Ouvrez ltat sous lditeur dtats.
2.Affichez la fentre de description de ltat (option "Description de ltat" du menu contextuel de ltat).
3.Dans longlet "Dtail", cochez loption "Etat modifiable sous Etats & Requtes".
4.Cochez:
loption "Interface modifiable uniquement" pour que linterface de ltat uniquement soit modifiable
sous Etats & Requtes.
loption "Tout modifiable (interface et code)" pour que ltat soit entirement modifiable sous Etats &
Requtes.
5.Validez et enregistrez ltat.

Partie 3 : Logiciel Etats & Requtes 233


Pour rendre plusieurs tats de votre application modifiables sous le logiciel Etats & Requtes:
1.Sous le volet "Projet", dans le groupe "Audit et performances", droulez "Audit ddition" et slectionnez
"Assistant dintgration des nouveauts". Lassistant se lance.
2.Affichez ltape de lassistant intitule "Etats et Requtes".
3.Slectionnez loption "Autoriser le lancement de "Etats et Requtes"". Passez ltape suivante.
4.Pour chaque tat concern, cochez:
loption "Interface des tats modifiable uniquement / Requte visible" pour que linterface de ltat uni-
quement soit modifiable sous Etats & Requtes.
loption "Contrle total des tats (interface et code modifiables)" pour que ltat soit entirement modi-
fiable sous Etats & Requtes.
5.Validez.
Remarques:
La proprit ..InterfaceModifiableAvecEtatsEtRequtes permet de savoir si linterface dun tat est modi-
fiable sous le logiciel Etats & Requtes.
La proprit ..ToutModifiableAvecEtatsEtRequtes permet de savoir si un tat est entirement modifiable
sous le logiciel Etats & Requtes.

1.6 tape 3 bis: Paramtrage des requtes


Par dfaut, une requte nest ni visible ni modifiable sous le logiciel Etats & Requtes.
Il est uniquement possible de la rendre visible sous le logiciel Etats & Requtes. Il nest pas possible de la
rendre modifiable.
Pour rendre une requte de votre application visible sous le logiciel Etats & Requtes:
1.Ouvrez la requte sous lditeur de requtes.
2.Affichez la fentre de description de la requte (option "Description de la requte" du menu contextuel
de la requte).
3.Cliquez sur le bouton "Avanc".
4.Dans longlet "Etats & Requtes", cochez loption "Visible sous Etats & Requtes".
5.Validez et enregistrez la requte.
Pour rendre plusieurs requtes de votre application visibles sous le logiciel Etats & Requtes:
1.Sous le volet "Projet", dans le groupe "Audit et performances", droulez "Audit ddition" et slectionnez
"Assistant dintgration des nouveauts". Lassistant se lance.
2.Affichez ltape de lassistant intitule "Etats et Requtes".
3.Slectionnez loption "Autoriser le lancement de "Etats et Requtes"". Passez ltape suivante.
4.Pour chaque requte concerne, cochez loption "Requte visible" pour que la requte soit visible sous
Etats & Requtes.
5.Validez.
Remarque: Les requtes sont uniquement visibles sous le logiciel Etats & Requtes. Elles ne sont pas modi-
fiables. Le logiciel Etats & Requtes permet de faire les manipulations suivantes sur une requte:
excuter et visualiser le rsultat de la requte.
utiliser la requte comme base pour la construction dautres requtes.
raliser une copie de la requte (option "Enregistrer sous").
utiliser la requte comme source de donnes dun tat.

234 Partie 3 : Logiciel Etats & Requtes


1.7 tape 4: Cration de lexcutable et diffusion de lapplication
La cration et la diffusion dune application WinDev utilisant le logiciel Etats & Requtes se fait de la mme
faon que pour une application classique. Cest lors de la cration de la procdure dinstallation, que vous
pouvez indiquer les paramtres spcifiques au logiciel Etats & Requtes.
Lorsque votre application WinDev est entirement dcrite (fentres, tats, requtes, ...), crez lexcutable
correspondant.
Crez ensuite le programme dinstallation. Dans lassistant de cration du programme dinstallation, dans
ltape "Modules complmentaires":
1.Cochez loption "Intgrer linstallation de Etats et Requtes". Le package dinstallation du logiciel Etats et
Requtes est automatiquement recherch. Ce pack dinstallation est prsent dans le sous-rpertoire "Ins-
tall\Etats et Requtes" du rpertoire dinstallation de WinDev.
Attention: Incorporer le logiciel Etats et Requtes augmente la taille de votre installation de faon non
ngligeable (environ 160 Mo).
Il est galement possible de distribuer le pack dinstallation Etats et Requtes sparment. Si le logiciel
Etats et Requtes nest pas inclus dans linstallation, il pourra tre tlcharg directement depuis lappli-
cation (soit par le menu automatique, soit depuis laperu avant impression dun tat, soit par la fonction
LanceEtatsEtRequtes). Par dfaut, le logiciel est tlcharg sur un site FTP de PC SOFT. Il est possible
de personnaliser ladresse de tlchargement du logiciel (par exemple site dune socit, ...). Pour plus de
dtails, consultez laide en ligne.
2.Spcifiez si ncessaire les rpertoires correspondant aux tats et requtes modifis ou crs par lutili-
sateur final:
le rpertoire des tats et requtes personnels correspond au rpertoire des tats et requtes visibles
uniquement par lutilisateur qui les a crs.
le rpertoire des tats et requtes partags correspond au rpertoire des tats et requtes visibles par
tous les utilisateurs de lapplication.
3.Autorisez ou non la modification de ces rpertoires lors de linstallation de lapplication.
Remarque: La fonction fRepEtatsEtRequtes permet de connatre le rpertoire des tats et requtes per-
sonnels et/ou partags.

Personnaliser ladresse de tlchargement


Si le logiciel Etats & Requtes na pas t inclus dans le programme dinstallation, le tlchargement de ce
logiciel sera automatiquement propos lors de lutilisation du menu automatique, lors de la visualisation
dun tat, ou lors du lancement du logiciel.
Par dfaut ladresse de tlchargement correspond un site FTP de PC SOFT.
Pour utiliser un autre site:
1.Crez un fichier texte LoginFTP.INI. Ce fichier doit tre plac dans le mme rpertoire que lexcutable de
lapplication.
2.Ce fichier doit contenir les lments suivants:
[FTP]
Login = Login de lutilisateur sur le serveur FTP
PSW = Mot de passe de lutilisateur sur le serveur FTP
Serv = Serveur FTP (par exemple ftp.pcsoft.fr)
Dir = Rpertoire de tlchargement (par exemple WX19/latest)
Remarques:
Si le pack de tlchargement est la racine, il faut mettre uniquement "." dans lentre Dir.
Le nom du fichier tlcharger est "WD{{DOCPARAM_version}}0PACKER.exe".

Partie 3 : Logiciel Etats & Requtes 235


1.8 tape 5: Installation de lapplication WinDev chez vos
utilisateurs finals
Linstallation dune application utilisant le logiciel Etats & Requtes est identique linstallation dune appli-
cation classique.
Lors de linstallation, si vous avez inclus le logiciel "Etats & Requtes" dans le programme dinstallation, luti-
lisateur devra simplement indiquer sil souhaite installer le logiciel Etats & Requtes.
Si le logiciel Etats & Requtes na pas t inclus dans le programme dinstallation, le tlchargement de ce
logiciel sera automatiquement propos lors de lutilisation du menu automatique, lors de la visualisation
dun tat, ou lors du lancement du logiciel.

236 Partie 3 : Logiciel Etats & Requtes


2. Utiliser le logiciel Etats & Requtes

2.1 Lancement du logiciel Etats et Requtes


Pour que les utilisateurs finaux personnalisent les tats de votre application ou crent leurs propres tats et
leurs propres requtes, il suffit de lancer le logiciel Etats & Requtes.
Pour permettre vos utilisateurs finaux de lancer le logiciel Etats & Requtes:
soit affichez vos tats sous la fentre daperu avant impression. Les utilisateurs finaux pourront lancer
le logiciel Etats & Requtes en cliquant licne .
soit ajoutez le menu "?" dans la fentre principale de votre application: sous le volet "Fentre", dans le
groupe "Barres et menus", droulez "Menu principal" et slectionnez "Ajouter le menu ?". Dans lassis-
tant de cration de ce menu, cochez les options "Crer, modifier un tat" et "Crer, modifier une requte".
soit utilisez la fonction LanceEtatsEtRequtes dans votre application.
Si le logiciel "Etats et requtes" nest pas install, une fentre saffichera permettant de tlcharger le logi-
ciel.

2.2 Principe dutilisation des tats

2.2.1 Modification dun tat


Lors de la modification dun tat, le fichier correspondant (fichier ".WDE") est automatiquement extrait de la
bibliothque de lapplication et copi dans le rpertoire des "Etats et requtes personnels" (dfini lors de la
cration de la procdure dinstallation de lapplication WinDev).
Cest cet tat que lutilisateur final modifie.

2.2.2 Utilisation dun tat modifi


Ltat modifi peut tre test directement sous le logiciel "Etats & Requtes". Dans ce cas, le traitement
dinitialisation du projet sera excut.
Par dfaut, seul lutilisateur ayant ralis des modifications sur un tat utilisera cet tat modifi dans lappli-
cation WinDev.
Pour quun tat modifi soit utilis par tous les autres utilisateurs de lapplication, lutilisateur final doit
slectionner loption "Fichier .. Partager llment avec les autres utilisateurs". Le fichier correspondant
ltat modifi (fichier " .WDE") sera alors automatiquement supprim du rpertoire des "Etats et requtes
personnels" et copi dans le rpertoire des "Etats et requtes partags".
Lors de lexcution dun tat depuis lapplication WinDev, le fichier de ltat est recherch:
tout dabord, dans le rpertoire des "Etats et requtes personnels".
puis, dans le rpertoire des "Etats et requtes partags".
enfin, dans la bibliothque de lapplication WinDev.
Remarque: Une indication prsente dans le titre de la fentre daperu avant impression informe les utilisa-
teurs que ltat utilis correspond un tat modifi.
Pour utiliser nouveau ltat dans sa version originale, il suffit vos utilisateurs finaux de supprimer physi-
quement le fichier de ltat modifi (fichier ".WDE") dans le rpertoire des "Etats et requtes personnels" et/
ou dans le rpertoire des "Etats et requtes partags".

Partie 3 : Logiciel Etats & Requtes 237


2.2.3 Utilisation dun nouvel tat
Vos utilisateurs finaux pourront imprimer leurs nouveaux tats directement depuis le logiciel Etats & Re-
qutes:
soit en lanant une impression (icne ).
soit en testant ltat (icne ).
Dans ce cas, le traitement dinitialisation du projet est excut.
Il nest donc pas ncessaire de programmer limpression de ltat.
Pour que limpression dtats raliss avec le logiciel Etats & Requtes soit possible directement partir
dune application WinDev, vous devez prvoir cette fonctionnalit dans votre application.
Vous pouvez par exemple intgrer une fentre permettant lutilisateur final de:
slectionner un tat ralis avec le logiciel Etats & Requtes.
lancer lexcution de cet tat.

2.3 Principe dutilisation des requtes

2.3.1 Modification dune requte


Les requtes de lapplication peuvent tre uniquement visibles sous le logiciel Etats & Requtes. Elles ne
sont pas modifiables. Le logiciel Etats & Requtes permet de faire les manipulations suivantes sur une re-
qute:
excuter et visualiser le rsultat de la requte.
utiliser la requte comme base pour la construction dautres requtes.
raliser une copie de la requte (option "Enregistrer sous"). Une nouvelle requte sera alors cre.
utiliser la requte comme source de donnes dun tat.

2.3.2 Utilisation dune nouvelle requte


Vos utilisateurs finaux pourront excuter leurs nouvelles requtes:
soit directement depuis le logiciel Etats & Requtes en cliquant sur licne .
Dans ce cas, le traitement dinitialisation du projet sera excut.
soit depuis lapplication WinDev.
Pour que lexcution de requtes ralises avec le logiciel Etats & Requtes soit possible directement partir
dune application WinDev, vous devez prvoir cette fonctionnalit dans votre application.
Vous pouvez par exemple intgrer une fentre permettant lutilisateur final de:
slectionner une requte avec le logiciel Etats & Requtes.
lancer lexcution de cette requte et afficher son rsultat dans une table (en utilisant par exemple la
fonction ConstruitTableFichier).

238 Partie 3 : Logiciel Etats & Requtes


3. Limitations par rapport lditeur
dtats intgr
Le logiciel Etats & Requtes ne permet pas de:
crer des tats sur une vue HFSQL.
crer des tats sur une zone mmoire.
crer des tats sur un champ table.
crer des tats sur variable.
crer des tats sur une source de donnes programme.
crer des gabarits dtats.
crer des requtes dinsertion.
crer des requtes de modification.
crer des requtes de suppression.
utiliser des fonctions de modification des enregistrements (fonctions HAjoute, HModifie, HSupprime,...).
Cependant, le logiciel Etats & Requtes permet de personnaliser la majorit des types dtats crs avec
lditeur dtats intgr WinDev/WebDev/WinDev Mobile (couleur, police, taille,...).

Partie 3 : Logiciel Etats & Requtes 239


240 Partie 3 : Logiciel Etats & Requtes

Vous aimerez peut-être aussi