Vous êtes sur la page 1sur 238

WinDev 16 - WebDev 16 - WinDev Mobile 16 Documentation version 16(1) - 1010

Visitez rgulirement le site www.pcsoft.fr, espace tlchargement 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 dutilisation, abonnez-vous la LST (revue trimestrielle + CD), en franais.

Cette documentation nest pas contractuelle. Des modifications ont pu intervenir dans le logiciel depuis la parution de ce manuel. Veuillez consulter laide en ligne.

Tous les noms de produits ou autres marques cits dans cet ouvrage sont des marques dposes par leurs propritaires respectifs. PC SOFT 2010 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre effectue sans lautorisation expresse de PC SOFT.

SOMMAIRE
PARTIE 1 - GNRATEUR DTATS
1. INTRODUCTION 2. COMMENT CRER UN TAT ? 3. SOURCES DE DONNES DUN TAT 4. DESCRIPTION / MANIPULATIONS DUN TAT 5. BLOCS DUN TAT 6. CHAMPS DUN TAT 7. UTILISER DES TABLEAUX DANS UN TAT 8. ETATS AVEC SAISIE 9. ETATS IMBRIQUS 10. IMPRIMER UN TAT PAR PROGRAMMATION 11. PROGRAMMATION DUN TAT 13 28 46 54 63 72 95 104 107 111 132

PARTIE 2 - GNRATEUR DE REQUTES


1. INTRODUCTION 2. COMMENT CRER UNE REQUTE ? 3. DESCRIPTION DUNE REQUTE 4. TESTER ET UTILISER UNE REQUTE 5. REQUTE AVANCE 155 165 183 205 212

PARTIE 3 - LOGICIEL ETATS & REQUTES


1. DIFFUSER LE LOGICIEL ETATS & REQUTES 2. UTILISER LE LOGICIEL ETATS & REQUTES 3. LIMITATIONS PAR RAPPORT LDITEUR DTATS INTGR WINDEV 229 234 237

PARTIE 1 Editeur dtats

EDITEUR DTATS - SOMMAIRE


1. INTRODUCTION .................................................................................................................................. 13
1.1 Qu'est ce qu'un tat? .....................................................................................................................................13 1.2 L'diteur d'tats ..............................................................................................................................................17 1.2.1 Prsentation rapide...................................................................................................................... 17 1.2.2 Diffrences entre lditeur dtats intgr et le logiciel Etats & Requtes.............................. 18 1.3 Interface principale de lditeur dtats ......................................................................................................21 1.4 Menus droulants de lditeur dtats .........................................................................................................22 1.5 Les principales barres doutils de lditeur dtats .....................................................................................25 1.5.1 Barre doutils des champs........................................................................................................... 25 1.5.2 Barre doutils dalignement des champs.................................................................................... 26 1.5.3 Barre doutils dencadrement des champs ................................................................................ 26 1.5.4 Raccourcis clavier......................................................................................................................... 26

2. COMMENT CRER UN TAT ? ............................................................................................................... 28


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

3. SOURCES DE DONNES DUN TAT ...................................................................................................... 46


3.1 Prsentation ...................................................................................................................................................46 3.2 Etat sur un fichier de donnes ......................................................................................................................46 3.2.1 Prsentation.................................................................................................................................. 46 3.2.2 Caractristiques............................................................................................................................ 47 3.3 Etat sur une requte ......................................................................................................................................47 3.3.1 Prsentation.................................................................................................................................. 47 3.3.2 Les diffrents types de requtes................................................................................................. 48 3.4 Etat sur une variable ......................................................................................................................................49

Partie 1 : Editeur dtats

3.5 Etat sur une vue HyperFileSQL Classic ........................................................................................................ 49 3.5.1 Prsentation.................................................................................................................................. 49 3.5.2 Caractristiques............................................................................................................................ 49 3.6 Etat sur une zone mmoire ...........................................................................................................................50 3.6.1 Prsentation.................................................................................................................................. 50 3.6.2 Caractristiques............................................................................................................................ 50 3.7 Etat sur un champ Table ............................................................................................................................... 51 3.7.1 Prsentation.................................................................................................................................. 51 3.7.2 Caractristiques............................................................................................................................ 51 3.8 Etat sur fichier texte .......................................................................................................................................52 3.8.1 Prsentation.................................................................................................................................. 52 3.8.2 Caractristiques............................................................................................................................ 53 3.9 Etat sur une source de donnes programme ........................................................................................... 53

4. DESCRIPTION / MANIPULATIONS DUN TAT ..........................................................................................54


4.1 Prsentation ................................................................................................................................................... 54 4.2 Visualiser et modifier la description de ltat ............................................................................................. 54 4.2.1 Gestion de la source de donnes................................................................................................ 54 4.2.2 Options daffichage dans laperu avant impression ................................................................ 55 4.2.3 Gestion des blocs ......................................................................................................................... 55 4.2.4 Options .......................................................................................................................................... 55 4.2.5 Formulaire et image de fond ....................................................................................................... 56 4.2.6 Langue........................................................................................................................................... 56 4.3 Ouvrir, fermer et enregistrer un tat ............................................................................................................ 56 4.4 Utiliser un formulaire dans un tat .............................................................................................................. 57 4.4.1 Informations spcifiques au formulaire...................................................................................... 58 4.4.2 Intgrer un formulaire dans un tat............................................................................................ 59 4.4.3 Image du formulaire..................................................................................................................... 59 4.4.4 Etat bas sur un fichier PDF ........................................................................................................ 60 4.5 Visualisation de ltat en 3 dimensions ...................................................................................................... 60 4.6 Changer le gabarit associ ltat .............................................................................................................. 62 4.7 Changer le modle dtats associ ltat .................................................................................................62

5. BLOCS DUN TAT ...............................................................................................................................63


5.1 Prsentation ................................................................................................................................................... 63 5.2 Les diffrents types de blocs ........................................................................................................................64 5.2.1 Bloc Dbut de document ............................................................................................................. 65 5.2.2 Bloc Haut de page ........................................................................................................................ 65 5.2.3 Bloc Haut de rupture .................................................................................................................... 65 5.2.4 Bloc Corps ..................................................................................................................................... 65 5.2.5 Bloc Complment de corps.......................................................................................................... 66 5.2.6 Bloc Bas de rupture...................................................................................................................... 66 5.2.7 Bloc Bas de page.......................................................................................................................... 66 5.2.8 Bloc Fin de document .................................................................................................................. 66 5.2.9 Bloc Itration................................................................................................................................. 66 5.3 Caractristiques des blocs dun tat ............................................................................................................ 66 5.4 Paramtres et options dimpression des blocs .......................................................................................... 67

Partie 1 : Editeur dtats

5.5 Manipuler les blocs sous lditeur dtats ...................................................................................................68 5.5.1 Crer un bloc................................................................................................................................. 68 5.5.2 Supprimer un bloc ........................................................................................................................ 68 5.5.3 R-ordonner les blocs................................................................................................................... 69 5.6 Manipuler les blocs par programmation .....................................................................................................69 5.6.1 Traitements des blocs dun tat.................................................................................................. 69 5.6.2 Manipuler un bloc dans un traitement WLangage..................................................................... 70 5.6.3 Proprits associes aux blocs dun tat................................................................................... 71

6. CHAMPS DUN TAT ........................................................................................................................... 72


6.1 Les diffrents types de champs ...................................................................................................................72 6.1.1 Champ Libell ............................................................................................................................... 72 6.1.2 Champ Rubrique........................................................................................................................... 74 6.1.3 Champ Calcul.............................................................................................................................. 74 6.1.4 Champ Image................................................................................................................................ 75 6.1.5 Champ Code-barres...................................................................................................................... 76 6.1.6 Champ RTF.................................................................................................................................... 76 6.1.7 Champ Pr-dfini .......................................................................................................................... 78 6.1.8 Champ Graphe.............................................................................................................................. 78 6.1.9 Champ Forme ............................................................................................................................... 80 6.1.10 Champ Interrupteur.................................................................................................................... 80 6.1.11 Champ Etat Interne.................................................................................................................... 81 6.1.12 Champ Lien URL......................................................................................................................... 81 6.1.13 Champ de saisie......................................................................................................................... 82 6.2 Caractristiques des champs dun tat .......................................................................................................83 6.2.1 Fentre de description dun champ ............................................................................................ 83 6.2.2 Dtail de la fentre de description.............................................................................................. 84 6.3 Multilingue des champs dun tat ................................................................................................................84 6.4 Groupe de champs .........................................................................................................................................85 6.5 Manipuler les champs sous lditeur ...........................................................................................................85 6.5.1 Crer un champ ............................................................................................................................ 85 6.5.2 Slectionner un ou plusieurs champs ........................................................................................ 86 6.5.3 Copier un champ .......................................................................................................................... 87 6.5.4 Copier le style dun champ .......................................................................................................... 87 6.5.5 Dplacer un champ ...................................................................................................................... 88 6.5.6 Supprimer un champ.................................................................................................................... 88 6.5.7 Utiliser un champ hors tat ......................................................................................................... 88 6.6 Aligner les champs dun tat ........................................................................................................................89 6.6.1 Options dalignement ................................................................................................................... 89 6.6.2 Correcteur dinterface en temps rel.......................................................................................... 90 6.6.3 Zoom.............................................................................................................................................. 90 6.6.4 Rgles et repres.......................................................................................................................... 90 6.6.5 Grille magntique ......................................................................................................................... 91 6.7 Manipuler les champs par programmation ................................................................................................92 6.7.1 Traitements des champs dun tat ............................................................................................. 92 6.7.2 Manipuler un champ dans un traitement WLangage ................................................................ 92 6.7.3 Proprits associes aux champs dun tat............................................................................... 93

Partie 1 : Editeur dtats

7. UTILISER DES TABLEAUX DANS UN TAT ...............................................................................................95


7.1 Prsentation ................................................................................................................................................... 95 7.2 Crer un tableau dans un tat ...................................................................................................................... 97 7.2.1 Cration dun tat de type tableau.............................................................................................. 97 7.2.2 Cration dun tat de type tableau crois .................................................................................. 98 7.2.3 Insertion dun tableau dans un tat............................................................................................ 98 7.3 Description du tableau .................................................................................................................................. 99 7.3.1 Caractristiques du tableau ........................................................................................................ 99 7.3.2 Caractristiques des colonnes ..................................................................................................100 7.4 Manipulation des cellules du tableau ........................................................................................................100 7.4.1 Slectionner un lment du tableau.........................................................................................101 7.4.2 Afficher la description du tableau .............................................................................................101 7.4.3 Ajouter une cellule dans un tableau .........................................................................................101 7.4.4 Ajouter une colonne dans un tableau.......................................................................................101 7.4.5 Redimensionner les cellules du tableau ..................................................................................102 7.4.6 Dplacer une colonne du tableau.............................................................................................103 7.4.7 Enlever ou supprimer une colonne dun tableau.....................................................................103

8. ETATS AVEC SAISIE .......................................................................................................................... 104


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

9. ETATS IMBRIQUS ........................................................................................................................... 107


9.1 Prsentation .................................................................................................................................................107 9.2 Crer un tat imbriqu ................................................................................................................................107 9.2.1 Principe........................................................................................................................................107 9.2.2 Exemple.......................................................................................................................................108 9.3 Particularits des tats secondaires .........................................................................................................109 9.3.1 Blocs de l'tat secondaire..........................................................................................................109 9.3.2 Orientation des tats secondaires ............................................................................................109 9.3.3 Saut de page de l'tat secondaire ............................................................................................109 9.3.4 Etat secondaire bas sur une requte paramtre.................................................................109 9.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique...........................109 9.4 Imprimer un tat imbriqu .........................................................................................................................109 9.5 Diffrences entre les tats imbriqus et les tats internes ....................................................................110

10. IMPRIMER UN TAT PAR PROGRAMMATION ..................................................................................... 111


10.1 Prsentation ...............................................................................................................................................111 10.1.1 Principe dimpression en WinDev ...........................................................................................111 10.1.2 Principe dimpression en WebDev ..........................................................................................112 10.1.3 Principe dimpression en WinDev Mobile...............................................................................112

10

Partie 1 : Editeur dtats

10.2 Etat sur fichier de donnes ...................................................................................................................... 115 10.2.1 Imprimer un tat sur fichier de donnes................................................................................115 10.2.2 Imprimer un tat born bas sur un fichier de donnes ......................................................116 10.2.3 Imprimer un tat paramtr bas sur un fichier de donnes ..............................................117 10.2.4 Imprimer un tat paramtr et born bas sur un fichier de donnes ...............................119 10.3 Etat sur une requte ................................................................................................................................. 120 10.3.1 Imprimer un tat sur requte sans paramtre ......................................................................121 10.3.2 Imprimer un tat sur requte paramtre .............................................................................121 10.4 Etat sur un champ table ........................................................................................................................... 122 10.5 Etat sur une variable ................................................................................................................................ 124 10.5.1 Imprimer un tat sur variable..................................................................................................124 10.5.2 Imprimer un tat paramtr sur variable...............................................................................125 10.6 Etat sur une vue HyperFileSQL Classic ................................................................................................... 126 10.7 Etat sur zone mmoire ............................................................................................................................. 128 10.8 Etat sur fichier texte ................................................................................................................................. 130 10.9 Fonctions d'impression ............................................................................................................................ 131

11. PROGRAMMATION DUN TAT ......................................................................................................... 132


11.1 Prsentation .............................................................................................................................................. 132 11.2 Enchanement des traitements associs un tat .............................................................................. 132 11.3 Traitements associs ltat .................................................................................................................. 133 11.3.1 Traitement "Ouverture" ............................................................................................................133 11.3.2 Traitement "Lecture des donnes" .........................................................................................134 11.3.3 Traitement "Filtre" ....................................................................................................................134 11.3.4 Traitement "Fermeture" ...........................................................................................................134 11.4 Traitement de rupture .............................................................................................................................. 135 11.5 Procdure de tri ........................................................................................................................................ 135 11.6 Etat paramtr .......................................................................................................................................... 136 11.6.1 Crer un tat paramtr ..........................................................................................................136 11.6.2 Imprimer un tat paramtr....................................................................................................137 11.6.3 Tester un tat paramtr.........................................................................................................138 11.7 Manipuler un tat dans un traitement WLangage ................................................................................ 139 11.8 Mots-cls associs aux tats ................................................................................................................... 139 11.9 Proprits associes aux tats ............................................................................................................... 139 11.10 Fonctions du WLangage ........................................................................................................................ 141 11.10.1 Fonctions du WLangage dconseilles dans les traitements ............................................141 11.10.2 Fonctions dimpression du WLangage utilisables dans un tat.........................................141

Partie 1 : Editeur dtats

11

12

Partie 1 : Editeur dtats

1. INTRODUCTION
1.1 Qu'est ce qu'un tat?
Un tat permet dobtenir une vue personnalise dinformations : donnes saisies dans une base de donnes, donnes prsentes dans un fichier texte, ... Selon le produit utilis, les informations de ltat peuvent tre affiches dans diffrents formats : En WinDev, un tat peut tre affich lcran, enregistr dans un fichier HTML, PDF, PCL, directement dit sur une imprimante, ... En WebDev, un tat peut tre enregistr dans un fichier HTML ou PDF, envoy par e-mail, affich dans le navigateur de lInternaute, ou bien encore directement dit sur une imprimante connecte au serveur, ... En WinDev Mobile, un tat peut tre imprim directement sur une imprimante (au format PCL) ou enregistr dans un fichier PCL. Un tat est constitu de : blocs dlimitant les diffrentes parties de ltat (pour plus de dtails, consultez Blocs dun tat, page 63). champs dans lesquels les diffrentes donnes de ltat sont affiches (pour plus de dtails, consultez Champs dun tat, page 72). 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)

Etat Tableau + Graphe affich au format PDF

14

Partie 1 : Editeur dtats

Fiche dinformations dun fournisseur

Les schmas ci-dessous prsentent une dfinition simplifie d'un tat : les donnes imprimer sont issues dune source de donnes (fichier de donnes, vue HyperFileSQL, requte, zone mmoire, variable WLangage ou fichier texte, ...). ltat regroupe, trie et met en forme les donnes. l'excution de ltat peut tre dirige vers : - en WinDev : l'cran, 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. En WinDev :

Partie 1 : Editeur dtats

15

En WebDev :

En WinDev Mobile :

16

Partie 1 : Editeur dtats

1.2 L'diteur d'tats


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 prsent dans une analyse ou dun fichier de donnes quelconque, du rsultat dune requte, dune vue sur un fichier HyperFileSQL, dune zone mmoire, dun champ Table prsent dans une fentre, dune variable (variable globale au projet ou variable utilise dans ltat en cours), dun fichier texte, ... 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 l'tat. A la fin de la description de ltat, ltat correspondant vos choix est gnr. Ltat peut tre directement excut : directement partir de l'diteur partir dun site ou d'une 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). L'diteur d'tats est un diteur simple utiliser, il offre de nombreuses possibilits : Choix de la destination de l'excution 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, ltat peut uniquement tre enregistr au format PCL et imprim sur une imprimante PCL. Choix des rubriques imprimer : Il n'est pas ncessaire d'imprimer toutes les rubriques de vos fichiers de donnes, vous choisissez les rubriques imprimer. Possibilit d'imprimer 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 structure 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.

Partie 1 : Editeur dtats

17

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. Pour plus de dtails, consultez Le tri, page 38 et Les ruptures, page 39. Impression d'tiquettes : 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 couleur. 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). Imbrication d'tats : Depuis un tat vous pouvez appeler un autre tat pour crer des tats imbriqus. Choix du nombre de colonnes : Vous pouvez imprimer les donnes dun tat sur plusieurs colonnes.

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 uniquement 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 intgr. permet dindiquer les diffrences entre lditeur dtats Utilisateur et lditeur dtats

Editeur dtats intgr

Avec lditeur dtats intgr, il est possible de crer des tats 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 ou USB de votre ordinateur pendant lutilisation de lditeur. La cl lectronique nest en aucun cas ncessaire lutilisateur final pour excuter un tat depuis une application WinDev, WinDev Mobile ou WebDev. Plusieurs exemples sont livrs avec lditeur dtats intgr. Dans ces exemples, vous retrouverez les principaux tats pouvant tre utiliss dans des applications (facture, listes, tiquettes, ...).

18

Partie 1 : Editeur dtats

Pour connatre les exemples prsentant des tats, affichez le guide (option "? .. Consulter le guide") et 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, certaines manipulations sont ncessaires. Pour plus de dtails, consultez Diffuser le logiciel Etats & Requtes, page 229.
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 (le guide que vous tenez entre les mains) 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 "Manuel de programmation", au "Guide dauto-formation" et aux "Concepts". Aide en ligne Laide en ligne vous guide dans vos manipulations sous lditeur. Pour accder laide en ligne : soit slectionnez loption "? .. Sommaire" ou "? .. Index de laide". soit appuyez sur la touche [F1].
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.

Partie 1 : Editeur dtats

19

Configuration minimale pour le logiciel Etats & Requtes Pour pouvoir utiliser le logiciel Etats & Requtes, vous devez avoir une machine avec les caractristiques minimales suivantes : 512 Mo de mmoire centrale (1 Go ou plus conseills). 800 Mo despace disque. sous Windows 2000, 2003, XP, Vista, Seven ou suprieur. Remarque : Pour connatre la configuration minimale ncessaire pour linstallation de WinDev, consultez le manuel de programmation.
Enregistrez-vous

La carte denregistrement jointe votre produit est trs importante. Elle vous permet de bnficier des diffrents services gratuits que PC SOFT offre sa clientle : assistance du Support Technique Gratuit, informations sur les nouveauts, suivi des volutions du produit, ... Retournez votre carte denregistrement dment remplie ds aujourdhui.

Important
20

Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l"Assistance 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

1.3 Interface principale de lditeur dtats


Pour lancer lditeur dtats, il suffit de crer un nouvel tat (option "Fichier .. Nouveau .. Etat") ou douvrir un tat existant (via le volet "Explorateur de projet" par exemple).

Barres doutils et menu droulant Permet un accs rapide aux principales fonctionnalits de lditeur dtats. Il est possible de : personnaliser la barre doutils (option "Affichage .. Barres doutils .. Personnaliser les barres doutils"). afficher / masquer la barre doutils (option "Affichage .. Barres doutils .. Barre contextuelle"). dplacer la barre doutils laide de la souris. Rgles dalignement Permettent d'aligner les champs dans l'tat. 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 la souris). Volets verticaux Affiche : les raccourcis vers les principales fonctionnalits disponibles sous l'diteur dtats (volet "Commandes"), les lments (fichiers, variables, rubriques, tats, champs, ...) disponibles dans le projet en cours (volet "Explorateur de projet"). Partie 1 : Editeur dtats 21

la description des lments de ltat via le modifieur.

Important

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

Fentre de code Affiche les diffrents traitements associs ltat, ses blocs et ses champs. Fentre de description Permet de visualiser et/ou de modifier les caractristiques : du ou des champs slectionns. de l'tat en cours. Documents ouverts Affiche un bouton pour chaque document ouvert sous l'diteur dtats. Pour afficher l'lment voulu au premier plan, il suffit de cliquer sur le "bouton" correspondant. Volets horizontaux Affiche : les diffrents lments du code (liste des classes, des procdures locales ou globales, volet "Code"), 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 d'un lment (volet "Dbogueur"), ...

1.4 Menus droulants de lditeur dtats


Les tableaux ci-aprs indiquent les actions principales des options des menus "Insertion", "Etat", "Champ", "Code" et "Affichage" spcifiques lditeur dtats.
Menu Insertion

Option Nouveau champ Nouvelle rupture Nouveau bloc Nouveau tableau Nouvelle colonne Nouvel tat interne Date Heure 22 Partie 1 : Editeur dtats Insre une rupture.

Action Insre le champ spcifi dans ltat. Insre un nouveau bloc dans ltat en cours. Insre un tableau dans ltat en cours (uniquement si ltat na pas de tableau). Insre une colonne dans le tableau prsent dans ltat. Insre un champ tat interne dans ltat en cours. Insre un champ pr-dfini de type date. Insre un champ pr-dfini de type Heure.

Numro de page Nombre de pages

Insre un champ pr-dfini correspondant au numro de la page en cours. Insre un champ pr-dfini correspondant au nombre total de pages de ltat.

Numro de page / Nombre de pages Insre un champ pr-dfini indiquant le numro de la page en cours par rapport au nombre total de pages de ltat. Un modle (Hritage)
Menu Etat

Associe un modle dtats ltat en cours.

Option Description Mise en page Format des tiquettes Editer la requte Editer les tris Editer les conditions de slection Editer les ruptures Editer les groupes Liste des modles utiliss Liste des champs surchargs Mettre jour les tats associs Rtro-modlisation des modles

Action Affiche la fentre de description de ltat Affiche la fentre de slection du format de la page Affiche la fentre de description du format des tiquettes (pour un tat de type tiquette) Affiche la requte de base de ltat (pour un tat sur requte intgre) Affiche la fentre de description des tris et des ruptures Affiche la fentre de description des conditions de slection Affiche la fentre de description des tris et des ruptures Affiche la fentre de description des groupes de champs Affiche la liste des modles utiliss par ltat en cours Affiche la liste des champs surchargs dans ltat en cours Met jour les tats associs au modle en cours Cre une modlisation souple partir des modles utiliss sur ltat en cours. Permet de slectionner le gabarit appliquer ltat en cours Liste les champs et les blocs prsents dans ltat

Impact des modifications du modle Liste les tats concerns par la mise jour du modle. Appliquer un gabarit Champs et blocs de ltat
Menu Champ

Option Description Editer le texte Choisir un style Tableau Groupes de champs Alignement

Action Affiche la fentre de description du (des) champ(s) slectionn(s) Permet de modifier le texte du champ slectionn directement depuis lditeur Permet de choisir un style pour le champ slectionn. Permet de grer le tableau prsent dans ltat Affiche la fentre de description des groupes de champs Permet de grer les options dalignement sur les champs slectionns Partie 1 : Editeur dtats 23

Altitude Gras Italique Soulign Cadre Cadrer droite Cadrer gauche Centrer Justifier Adapter la taille Abonnement
Menu Code

Permet de grer les effets de superposition des champs Active ou non le gras pour le texte du (des) champ(s) slectionn(s) Active ou non litalique pour le texte du (des) champ(s) slectionn(s) Active ou non le soulign pour le texte du (des) champ(s) slectionn(s) Permet dentourer le(s) champ(s) slectionn(s) dun cadre Aligne le texte droite dans le(s) champ(s) slectionn(s) Aligne le texte gauche dans le(s) champ(s) slectionn(s) Centre le texte dans le(s) champ(s) slectionn(s) Justifie le texte dans le(s) champ(s) slectionn(s) Adapte la taille de llment slectionn son contenu Affiche les caractristiques dabonnement du champ slectionn

Option Tester ltat Terminer le test Code de ltat Code de la slection Procdures locales Tous les codes de ltat Compiler ltat
Menu Affichage

Action Permet de lancer le test de ltat en cours Permet darrter le test en cours Affiche les traitements associs ltat dans une fentre de code Affiche les traitements associs au champ slectionn dans une fentre de code Affiche les procdures locales de ltat dans le volet "Code" Affiche tous les traitements associs ltat, ses blocs et ses champs Permet de compiler ltat

Option Visualiser ltat en 3D Langue affiche Zoom Barres doutils Rgle Grille active Grille visible Options Description de la slection 24 Partie 1 : Editeur dtats

Action Permet de visualiser ltat en 3 dimensions Permet de slectionner la langue dans laquelle ltat est affich sous lditeur Ralise un zoom dans lditeur dtat selon le facteur de zoom spcifi. Paramtre les barres doutils affiches et linterface gnrale. Active ou dsactive laffichage des rgles dalignement Active la grille magntique Rend la grille magntique visible Configure laffichage de ltat en cration sous lditeur Affiche la fentre de description du (des) champ(s) slectionn(s)

1.5 Les principales barres doutils de lditeur dtats


Plusieurs barres doutils sont affiches dans lditeur dtats : la barre doutils des champs. la barre doutils dalignement des champs. la barre doutils dencadrement des champs. Ces barres doutils peuvent tre actives ou rendues invisibles par loption "Affichage .. Barres doutils ..".

1.5.1 Barre doutils des champs


Cette barre doutils permet de crer les diffrents types de champs dans un tat et de configurer lalignement de ces champs.

Cre un libell Cre une rubrique Cre un champ calcul Cre une image Cre un code-barres Cre un champ texte RTF Cre un champ pr-dfini Cre un graphe Cre une forme (ligne horizontale, verticale, ...) Cre un interrupteur Cre un tat interne Cre un lien Cre un champ de saisie Dplace les images du formulaire Options dalignement du champ

Arrondit le cadre du champ Descend laltitude du champ Monte laltitude du champ Met le champ en arrire-plan Met le champ en avant-plan Couleur du texte Taille de la police Police Aligne le texte droite Centre le texte Aligne le texte gauche Attribut soulign Attribut italique Attribut gras

Partie 1 : Editeur dtats

25

1.5.2 Barre doutils dalignement des champs


Cette barre doutils permet de simplifier le positionnement des champs dans un tat.

Correcteur dinterface Aligne les bords hauts Aligne les bords gauches Aligne les bords intrieurs droits Justifie gauche les bords intrieurs et extrieurs Ajuste la largeur Centre horizontalement Ajuste lespacement horizontal Gre lalignement personnalis Aligne les bords bas Aligne les bords droits Justifie les bords intrieurs et extrieurs Justifie droite les bords intrieurs et extrieurs Ajuste la hauteur Centre verticalement Ajuste lespacement vertical

1.5.3 Barre doutils dencadrement des champs


Cette barre doutils permet dencadrer les champs dans un tat.

Aucune bordure Encadre le champ Bordure gauche Bordure en haut Bordure droite Bordure en bas

1.5.4 Raccourcis clavier


Voici les principaux raccourcis clavier utilisables sous lditeur dtats : Action Afficher la description du champ ou de la cellule Afficher la liste des champs de ltat en cours Afficher la liste des classes dans le volet "Explorateur de projet" Afficher la liste des procdures globales dans le volet "Explorateur de projet" Afficher la liste des procdures locales dans le volet "Explorateur de projet" Afficher le nom des blocs complet / Afficher le nom des blocs en abrg Afficher / Rendre invisible le bord des champs Afficher / Rendre invisible le nom des champs Afficher / Rendre invisible les marges de l'tat 26 Partie 1 : Editeur dtats F4 F12 Shift + F8 Ctrl + F8 F8 F10 F5 F7 F11 Raccourci

Afficher / Rendre invisible les rgles Aide Annuler la dernire action Arrter le mode test (lors de test du projet ou de ltat) Coller le contenu du presse-papiers Copier le style de llment slectionn Copier llment slectionn Couper llment slectionn Dplacer le champ ou la colonne slectionne droite / gauche

Ctrl + R F1 Ctrl + Z Shift + F5 Ctrl + V ou Shift + Inser Ctrl + Shift + C Ctrl + C ou Ctrl + Inser Ctrl + X ou Alt + Suppr Flche droite / gauche

Afficher le code associ llment slectionn dans le volet "Visualisation con- Ctrl + Shift + F2 textuelle du code" diter le code de la slection Enregistrer l'tat Enregistrer sous Enregistrer tout Fermer tous les lments ouverts Imprimer le dossier concernant l'tat en cours Masquer les volets horizontaux Masquer tout (volets verticaux et horizontaux) Mettre en gras le champ slectionn Mettre en italique le champ slectionn Nouveau (Cration d'un lment) Ouvrir (Ouverture d'un lment) Ouvrir un projet Rtablir (Restaurer la dernire action) Souligner le champ slectionn Supprimer la slection Tracer le projet Tester le projet Tester l'tat en cours Visualiser ltat en 3D Zoom 100 % Zoom + / Attention : Le signe "+" signifie que les touches doivent tre utilises simultanment

F2 Ctrl + S Ctrl + Shift + S Alt + S Ctrl + Shift + W Ctrl + P Ctrl + Q Ctrl + W Ctrl + G Ctrl + I Ctrl + N Ctrl + O Ctrl + Shift + O Ctrl + Y ou Ctrl + Shift + Z Ctrl + U Suppr Alt + F9 Ctrl + F9 F9 Alt + D Ctrl + Alt + 0 Ctrl + roulette de souris

Partie 1 : Editeur dtats

27

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 donnes, lditeur dtats doit connatre la description des fichiers de donnes qui est contenue dans l'analyse, l'analyse tant associe un projet.

Ici, une analyse WinDev est partage entre deux projets (WinDev, WinDev Mobile ou WebDev). Le projet peut tre charg par loption "Fichier .. Ouvrir un projet".

28

Partie 1 : Editeur dtats

2.2 Cration d'un tat


2.2.1 Prsentation
Pour crer un nouvel tat, il suffit de slectionner loption "Fichier .. Nouveau .. Etat". Lassistant de cration dun tat se lance automatiquement. Crer un tat consiste : 1. Choisir le type dtat, 2. Slectionner la source de donnes de ltat, 3. Dcrire les lments qui constituent ltat (champs, conditions de tri et de slection, ...), 4. Gnrer et enregistrer ltat correspondant aux options slectionnes. Ces diffrentes tapes sont ralises grce lassistant de cration dtat. 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 pourront tre modifies par la suite. Ltat pourra ensuite tre excut : soit depuis l'diteur dtats, soit depuis une application WinDev ou WinDev Mobile, 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 lditeur dtats Utilisateur et lditeur dtats intgr. Les diffrents types dtats disponibles sont les suivants : Etat Tableau Etat Fiche Etat Etiquette Etat Mailing personnalis (non disponible sous WinDev Mobile) Etat Vierge Etat sur Formulaire Etat multi-colonne Etat Tableau + Graphe (non disponible sous WinDev Mobile) Etat Tableau crois

Etat 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, requte, ...).

Partie 1 : Editeur dtats

29

Exemples dutilisation simple Tableau de synthse Facture Liste dtaille Regroupement de donnes selon un critre Pour plus de dtails, consultez Utiliser des tableaux dans un tat, page 95.

Etat 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 de ltat affiche les donnes de plusieurs enregistrements. Exemples dutilisation Liste dtaille Regroupement de donnes selon un critre

30

Partie 1 : Editeur dtats

Etat Etiquette :
Lecture de la source de donnes de ltat Chaque enregistrement lu dans la source de donnes correspond une tiquette. Exemples dutilisation Etiquettes de prix Etiquettes dadresse Informations spcifiques la cration des tiquettes Certaines informations spcifiques sont ncessaires la cration des tiquettes : le nombre d'exemplaires identiques imprimer pour chaque tiquette. le format des tiquettes et/ou de la planche d'tiquettes. Ce format peut correspondre : - soit un format personnalis : 1. Slectionnez l'lment "<Personnalis>" dans la combo "Constructeur". 2. Spcifiez le format de la planche d'tiquettes sur laquelle les tiquettes seront imprimes. 3. Spcifiez le format des tiquettes. 4. Spcifiez le nombre d'tiquettes imprimer sur la largeur d'une page. - soit un format pr-dfini : 1. Slectionnez la marque des tiquettes utilises dans la combo "Constructeur". 2. Slectionnez le modle des tiquettes utilises dans la combo "Modle". 3. Les informations spcifiques aux tiquettes utilises (libell du modle, taille des tiquettes et nombre d'tiquettes imprimes sur la largeur d'une planche d'tiquettes) s'affichent. Remarque : L'option "pouces" permet dafficher la taille des tiquettes en pouces. Partie 1 : Editeur dtats 31

Etat Mailing personnalis (non disponible sous WinDev Mobile) :


Lecture de la source de donnes de ltat Chaque enregistrement lu dans la source de donnes correspond une page. Exemples dutilisation Publipostage Lettre publicitaire Lettre de rappel Email

32

Partie 1 : Editeur dtats

Etat Vierge (ou libre) :

Partie 1 : Editeur dtats

33

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 reus Formulaire de saisie des absences Formulaire de saisie des produits rceptionns

Etat 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 Formulaire des impts

Informations spcifiques au formulaire Certaines informations spcifiques sont ncessaires la cration dun tat sur formulaire : le fichier contenant l'image du formulaire. La taille de l'tat est automatiquement calcule en fonction de la taille de l'image du formulaire. 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 lditeur dtats. - soit dindiquer le numro de la page utiliser en fond dtat. Ltat imprimera uniquement une page du fichier PDF. l'impression ou non de l'image du formulaire. 34 Partie 1 : Editeur dtats

Remarque : Si l'image du formulaire est imprime avec l'tat, cette image ne sera pas imprime audel des marges physiques de l'imprimante. le dcoupage du formulaire en fonction du nombre d'enregistrements imprim par page : - si par exemple, le formulaire contient les caractristiques d'un seul client, un seul enregistrement doit tre imprim par page. Dans ce cas, l'tat cr contient uniquement le bloc Corps. - si par exemple, le formulaire contient les caractristiques de plusieurs clients, plusieurs enregistrements doivent tre imprims par page. Dans ce cas, l'tat cr contient un bloc Haut de page, un bloc Corps et un bloc Bas de page. Pour chaque enregistrement imprim sur la page, le bloc Corps sera rpt. Pour imprimer correctement l'tat, il est ncessaire de modifier la position des champs de l'tat et la position de l'image du formulaire dans le bloc Corps. Pour plus de dtails, consultez Intgrer un formulaire dans un tat, page 59.

Etat Tableau + Graphe (non disponible sous WinDev Mobile) :


Lecture de la source de donnes de ltat Les donnes lues dans la source de donnes sont affiches : dans un tableau. Chaque ligne du tableau correspond un enregistrement lu. dans un graphe. Exemples dutilisation Tableau et graphe reprsentant les dpenses ralises par catgorie. Tableau et graphe reprsentant la rpartition du chiffre daffaires par produit. Informations spcifiques la cration du graphe Certaines informations spcifiques sont ncessaires la cration dun graphe : le type du graphe (boursier, camembert, histogramme, ...). la ou les valeurs affiches dans le graphe. Ces valeurs proviennent des rubriques associes l'tat. le libell de la valeur. Ce libell provient dune rubrique associe l'tat. Ce libell correspond : - soit l'tiquette d'une catgorie de donnes (ou d'un secteur) d'un graphe. - soit l'tiquette d'une srie de donnes d'un graphe. Etiquette de catgorie Etiquette de srie

la frquence des graduations sur l'axe vertical/horizontal du graphe (si ncessaire). l'aspect du graphe (relief, couleur dgrad et quadrillage). les titres des axes si ncessaire. Il est galement possible de crer un champ Graphe dans un tat existant. Pour plus de dtails, consultez Champ Graphe, page 78.

Partie 1 : Editeur dtats

35

Etat Tableau Crois :


Lecture de la source de donnes de ltat Les donnes lues dans la source de donnes sont affiches dans un tableau deux entres. Exemple dutilisation Tableau reprsentant la rpartition du chiffre daffaires par produit et par mois (ou par anne).

36

Partie 1 : Editeur dtats

2.2.3 Source de ltat


La source de ltat dtermine la provenance des donnes imprimes dans ltat. Plusieurs sources de donnes sont disponibles : 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 (HyperFileSQL Classic, Oracle, ...). Les fichiers et les rubriques de fichiers pouvant tre utiliss dans les tats crs avec le logiciel Etats & Requtes sont dfinis par le dveloppeur sous lditeur danalyses de WinDev. Pour plus de dtails sur la prparation ncessaire lutilisation dune application WinDev avec le logiciel Etats & Requtes, consultez Diffuser le logiciel Etats & Requtes, page 229.

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 prsent dans une fentre ou dans une page : Les donnes imprimer proviennent dun champ table prsent dans une des fentres de lapplication ou dans une des pages du site. Les enregistrements sont slectionns par la table, ltat ne fait que les imprimer.

Important Important Important

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, 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 globale au projet, une variable de type tableau globale une fentre ou une page, une variable de type tableau globale une collection de procdures. Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur variable.

Autre source : Les autres sources de donnes peuvent tre : 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 enregistrements stocks dans une zone mmoire. 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 lditeur dtats intgr (couleur, polices, taille, ...).

Partie 1 : Editeur dtats

37

Vue sur un fichier HyperFileSQL Classic : Les donnes imprimer proviennent dune vue HyperFileSQL.

Important Important
Le tri

Le logiciel Etats & Requtes ne permet pas de crer des tats sur une vue HyperFileSQL. Cependant, il est possible de personnaliser des tats sur une vue HyperFileSQL 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 l'tat, choisissez un tat sur une source programme. Pour plus de dtails, consultez le paragraphe Etat sur une source de donnes programme, page 53. Le logiciel Etats & Requtes ne permet pas de crer des tats sur une source de donnes programme.

Pas de source de donnes : Ltat ne sera li aucune source de donnes. Ces diffrentes sources de donnes sont dtailles dans le chapitre Sources de donnes dun tat, page 46. Remarque : Si vous slectionnez une des sources de donnes prcdemment cites, l'diteur d'tats se charge entirement de la programmation du parcours des enregistrements afficher dans l'tat. Pour programmer et slectionner vous-mme les enregistrements afficher dans l'tat, 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 sont automatiquement 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.

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

38

Partie 1 : Editeur dtats

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 procdure globale du projet, soit une procdure locale ltat. Pour plus de dtails, consultez Procdure de tri, page 135. Pour plus de dtails sur le tri des enregistrements, consultez laide en ligne (mot-cl : "Trier, Etat").
Les ruptures

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

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

Partie 1 : Editeur dtats

39

Pour plus de dtails sur les blocs dun tat, consultez le paragraphe Blocs dun tat, page 63. 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 l'tat. 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 Traitement de rupture, page 135. 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. Pour plus de dtails, consultez le paragraphe Champ Calcul, page 74.

2.2.6 Gabarit
Si le projet est associ un gabarit, il est possible de slectionner ce mme gabarit pour vos tats. Vos tats imprims auront le mme style que votre application. Ce gabarit pourra tre modifi aprs la cration de ltat. Pour plus de dtails, consultez le paragraphe Changer le gabarit associ ltat, page 62. Attention toutefois aux dures dimpression dtats contenant des images, 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 cration de ltat. Pour plus de dtails, consultez le chapitre Description / manipulations dun tat, page 54.

2.3 Enregistrement de ltat


Pour enregistrer un tat, slectionnez loption "Fichier .. Enregistrer". 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 (WinDev / WinDev Mobile) ou lors de la cration de la bibliothque du site (WebDev).

40

Partie 1 : Editeur dtats

2.4 Test de ltat


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

2.4.1 Lancer le test


Pour tester l'tat en cours : 1. Cliquez sur l'icne ou slectionnez l'option "Code .. Tester ltat" (touche F9). Un cran saffiche permettant de choisir le mode d'impression 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 : l'tat est enregistr dans un fichier RTF et affich dans un diteur de texte (Word par exemple). Fichier PDF : l'tat est enregistr dans un fichier PDF et affich dans un logiciel de visualisation des fichiers PDF (Adobe Acrobat par exemple). Pour plus de dtails sur ces diffrents modes, consultez Impression dun tat, page 43. 2. Choisissez le mode d'impression voulu et validez. Si votre tat nest pas enregistr, WinDev, Partie 1 : Editeur dtats 41

WinDev Mobile ou WebDev propose automatiquement de lenregistrer sous le nom donn dans lassistant de cration dtat. 3. Si ncessaire, fournissez des renseignements supplmentaires : si l'tat est born, une fentre s'affiche permettant de saisir les bornes de l'tat. Pour plus de dtails, consultez Etat born, page 47. si l'tat est bas sur une requte paramtre, une fentre saffiche permettant de saisir les paramtres de la requte. Pour plus de dtails, consultez Etat sur requte paramtre, page 48. si l'tat est paramtr, donnez une valeur par dfaut aux paramtres dans la dclaration des paramtres. Pour plus de dtails, consultez Etat paramtr, page 136.

2.4.2 Arrter le test


Pour arrter le test, plusieurs mthodes sont possibles : 1re mthode : Fermez l'aperu de l'tat 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 l'icne prsent dans la barre d'icnes.

2.4.3 Rpertoire des fichiers de donnes utiliser en test


Pour indiquer les fichiers de donnes utiliss lors du test de l'application sous l'diteur : 1. Affichez la description du projet (option "Projet .. Description du projet"). 2. Dans l'onglet "Fichiers", slectionnez l'emplacement des fichiers de test : Rpertoire EXE du projet ou rpertoire courant (option slectionne par dfaut) : Les fichiers de donnes se trouveront dans le sous-rpertoire EXE du projet. Rpertoire spcifique : Les fichiers de donnes se trouveront dans le rpertoire indiqu. Rpertoire des donnes de l'application : Ce choix est conseill sous Windows Vista. Les fichiers de donnes "locaux" se trouveront dans un rpertoire accessible et modifiable par l'application (sans ncessiter de droits spcifiques).

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


Lors du test d'un tat li un fichier de donnes protg par mot de passe, aucun mot de passe n'est demand. Les mots de passe ncessaires doivent tre prciss par programmation dans le traitement "Ouverture" de l'tat : Si l'tat est li un (ou plusieurs) fichier(s) 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 l'tat, une erreur WLangage est affiche lors du test de l'tat.

2.4.5 WinDev Mobile : Ouverture dune fentre en mode test dans le code du projet
Lors du test d'un tat, si une fentre est ouverte dans le code d'initialisation 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 l'ouverture de la fentre. Par exemple :
SI EnModeTest = Faux alors Ouvre(MaFentre)

Il est cependant possible d'utiliser des fonctions ouvrant des botes d'information systme (par exemple Info ou Trace). 42 Partie 1 : Editeur dtats

2.5 Impression dun tat


2.5.1 Modes dimpression disponibles
Plusieurs modes d'impression sont disponibles pour un tat. Ces diffrents modes sont prsents dans le tableau suivant : Impression lors du test d'un tat sous l'diteur Impression papier Aperu avant impression Fichier HTML (avec feuille de styles) Fichier HTML (sans feuille de styles) Fichier RTF Fichier XML Fichier PDF Fichier texte Envoi dun fax Fichier PCL Fichier XLS X X X X X X X X X X Impression d'un tat depuis la fentre d'aperu (WinDev uniquement) * X Impression d'un tat par programmation (fonction iAperu ou iDestination et iImprimeEtat) X X (WinDev uniquement) X X X X X X X X X

* Les destinations proposes par laperu peuvent tre modifies dans longlet "Dtail" de la description de ltat ou par programmation avec la fonction iParamtreAperu. Pour plus de dtails sur chaque mode dimpression, consultez laide en ligne. WinDev Mobile : Lors du test dun tat sous lditeur, toutes les options sont disponibles. Cependant, lors de limpression dun tat par programmation, seules les impressions sur une imprimante PCL ou sur un fichier PCL sont disponibles. Remarque : Par dfaut, le mode d'impression de l'tat est automatiquement demand lors du test de chaque tat dans une fentre spcifique. Pour ne pas afficher cette fentre lors du test de l'tat, dcochez l'option "Demander le mode d'impression" dans les options d'dition de l'diteur d'tats (option "Affichage .. Options .. Modifier les options", onglet "Impression"). Dans ce cas, l'tat 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. La mise en page et le contenu de l'tat peuvent ainsi tre vrifis. Il est bien entendu possible de lancer l'impression de l'tat. Remarque : Sous WebDev et WinDev Mobile, laperu avant impression est disponible uniquement en mode test. Laperu avant impression offre diverses possibilits : Zoom paramtrable, et affichage de ltat en mode plein cran. Affichage des diffrentes pages de ltat sous forme de vignettes. Partie 1 : Editeur dtats 43

Affichage du nombre total de pages imprimer. Recherche dans la totalit des pages. Impression de la page en cours ou de la totalit des pages. Impression directe. Choix de la destination de limpression grce une barre de boutons. Possibilit dannoter ltat affich. Si ltat est imprim depuis laperu, les annotations seront galement imprimes.
La barre de boutons de laperu avant impression

La barre de boutons permettant de raliser les oprations suivantes : Enregistrement et visualisation de ltat au format RTF (Rich Text Format). Enregistrement et visualisation de ltat au format XLS. Enregistrement et visualisation de ltat au format HTML. Enregistrement et visualisation de ltat au format PDF (Portable Document Format). Enregistrement et visualisation de ltat au format XML (eXtensible Markup Language). Visualisation de ltat dans un email. Ajout dun fichier PDF un email.

Un menu contextuel reprenant la majorit des options de la barre d'outils et de la barre de boutons. Pour plus de dtails sur la barre de boutons, consultez laide en ligne. Remarques : Pour visualiser laperu avant impression dun tat, une imprimante doit tre installe sur le poste en cours. Aperu d'une impression ralise avec les fonctions WLangage : Si vous ralisez une impression avec les fonctions WLangage, il est galement possible de profiter des fonctionnalits de l'aperu avant impression. La barre de boutons sera affiche, et les annotations pourront tre utilises. Pour afficher uniquement certains boutons dans la barre de boutons de l'aperu avant impression : - soit utilisez la fonction iParamtreAperu. Cette fonction, utilise dans le code d'initialisation du projet permet par exemple de choisir quels seront les boutons affichs pour tous les tats de l'application.

44

Partie 1 : Editeur dtats

- soit paramtrez directement les boutons affichs pour chaque tat dans la description de ltat (onglet "Dtail"). Lors de l'utilisation de la barre de boutons, l'aperu avant impression est automatiquement ferm aprs l'enregistrement du fichier. Si ltat en cours est modifiable par lutilisateur final, les icnes suivants lui permettent de : modifier ltat en cours, icne : . crer un nouvel tat, icne : .

La barre dannotations

La barre de boutons dannotations permet de raliser les oprations suivantes : Ralisation dun dessin laide du pinceau (permet par exemple dentourer des informations). Insertion de flches. Insertion de cadres (pour entourer une zone par exemple). Insertion de texte (pour raliser des commentaires par exemple). Insertion dimages. Il est bien sr possible de choisir lpaisseur des traits ainsi que la couleur utilise.
La barre de recherche

La barre de recherche permet de rechercher un mot ou un ensemble de mots dans ltat. Le rsultat de la recherche est surlign en vert.
Autres fonctionnalits de laperu avant impression (WinDev uniquement)

Personnalisation de l'aperu : Votre application utilise un gabarit? Pourquoi ne pas utiliser ce gabarit galement pour la fentre d'aperu avant impression. WinDev permet en effet de personnaliser la fentre d'aperu avant impression. Pour plus de dtails, consultez laide en ligne (mot-cl : "Personnaliser, Fentre daperu"). Aperu d'une impression ralise avec les fonctions WLangage : Si vous ralisez une impression avec les fonctions WLangage, il est galement possible de profiter des fonctionnalits de l'aperu avant impression. Paramtrage de la barre de boutons : Pour afficher uniquement certains boutons : - soit utilisez la fonction iParamtreAperu. Cette fonction, utilise dans le code d'initialisation du projet permet par exemple de choisir quels seront les boutons affichs pour tous les tats de l'application. - soit paramtrez directement les boutons affichs pour chaque tat dans la description de l'tat (onglet "Dtail"). Pour paramtrer les options des diffrents modes dimpression, utilisez : - la fonction iParamtrePDF pour paramtrer limpression dans un fichier PDF, - la fonction iParamtreExport pour paramtrer lenvoi demails, - la fonction iParamtreXLS pour paramtrer limpression dans un fichier XLS. Impression depuis l'aperu : Pour savoir si l'utilisateur a effectu une impression depuis l'aperu avant impression, utilisez la fonction iImpressionDemande. Lors de lutilisation de la barre de boutons, laperu avant impression est automatiquement ferm aprs limpression du document dans un fichier.

Important

Partie 1 : Editeur dtats

45

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 (page 46) Etat sur une requte (page 47) Etat sur une variable (page 49) Etat sur une vue HyperFileSQL (page 49) Etat sur une zone mmoire (page 50) Etat sur un champ Table (page 51) Etat sur fichier texte (page 52) Etat sur une source de donnes programme (page 53)

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 donnes (HyperFileSQL Classic ou Client/Serveur, accd par un Accs Natif, ...). Si les enregistrements proviennent de plusieurs fichiers, il est conseill dutiliser un tat sur requte (voir paragraphe suivant). La cration d'un tat sur un fichier de donnes s'effectue grce l'assistant de cration d'un tat (option "Fichier .. Nouveau .. tat"). Ce type d'tat peut tre cr uniquement si le projet en cours est associ une analyse. Lorsque l'tat sur un fichier de donnes est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). modifier la cl de parcours du fichier (onglet "Donnes" de la description de l'tat). dfinir des bornes (onglet "Donnes" de la description de l'tat). Ces bornes permettent de dlimiter les enregistrements imprimer dans l'tat ajouter ou supprimer des champs Rubriques lis au fichier de donnes associ l'tat. Pour plus de dtails sur limpression dun tat sur un fichier de donnes, consultez Etat sur fichier de donnes, page 115.

Important
46

Les fichiers de donnes et les rubriques de fichier pouvant tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur danalyses de WinDev. Pour plus de dtails sur la prparation ncessaire lutilisation dune application WinDev avec le logiciel Etats & Requtes, consultez Diffuser le logiciel Etats & Requtes, page 229.

Partie 1 : Editeur dtats

3.2.2 Caractristiques
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 l'tat. Cette cl est dfinie dans le fichier de donnes.
Etat born

Un tat sur un fichier de donnes peut tre born sur la cl de parcours utilise. Ainsi, un tat sur le fichier "Client" peut imprimer la liste complte des clients ou uniquement les clients dont le nom commence par la lettre "C" ou "E" si ltat est born. Pour plus de dtails sur les tats borns, consultez laide en ligne (mot-cl : "Borne, Bornes d'un tat").

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 possible, par exemple, de slectionner toutes les commandes des clients habitant le dpartement 84, et de raliser un total du montant des commandes par client. Lutilisation de requte dans un tat permet de raliser rapidement des tats complexes. La requte prslectionne tous les enregistrements. Ltat organise toutes les donnes slectionnes et ralise les diffrents calculs. Attention : Pour optimiser le temps dimpression, 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 de la requte (fichier ".WDR"). La requte peut tre r-utilise dans un autre tat. 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. La requte est dite intgre. soit la requte est base sur des donnes provenant d'une connexion (non disponible sous WinDev Mobile). Ce type dtat sur requte est conserv par compatibilit. Pour plus de dtails, consultez laide en ligne. Remarque : Ce type d'tat sur requte est disponible mme si aucune analyse n'est associe au projet WinDev. Astuce : Sous lditeur de requtes, licne requte de slection en cours. permet de crer automatiquement un tat bas sur la

Pour plus de dtails sur limpression dun tat sur requte, consultez Etat sur une requte, page 120.

Partie 1 : Editeur dtats

47

3.3.2 Les diffrents types de requtes


Etat sur requte indpendante

La requte doit tre cre avec lditeur de requtes avant la cration de ltat (pour plus de dtails sur la cration dune requte, consultez Comment crer une requte?, page 165). 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 saffiche lors de la fermeture de la requte. Il est ainsi possible de reporter les modifications effectues sur la requte dans tous les lments du projet utilisant cette requte (y compris les tats). Pour plus de dtails sur la synchronisation, consultez Synchronisation de la requte, page 201.
Etat sur requte intgre

La requte est cre directement lors de la cration de ltat. Cette requte sera modifie directement depuis lditeur dtats (option "Etat .. Description .. Donnes .. Editer"). Si des modifications sont ralises dans la requte, lditeur dtats liste les modifications ralises et les incidences sur ltat. Remarque : Pour passer du mode intgr au mode indpendant (c'est--dire pour extraire une requte d'un tat) : 1. Affichez l'tat sur la requte intgre (sous l'diteur d'tats). 2. Slectionnez l'option "Editer la requte" du menu contextuel de l'tat (ou slectionnez l'option "Etat .. Editer la requte"). La requte s'affiche sous l'diteur de requtes. 3. Slectionnez l'option "Fichier .. 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 attendent un paramtre lors de lexcution de la requte. Ce paramtre pourra par exemple correspondre la valeur dun champ saisie dans une fentre de lapplication ou une page du site. Par exemple, pour imprimer la facture dun client donn, il suffit de crer un tat bas sur une requte paramtre. Dans cette requte, le paramtre sera le nom du client. Pour imprimer ltat, il faudra donc prciser la valeur du paramtre avant de lancer limpression : lors du test de ltat bas sur une requte paramtre, une fentre (ou une page) saffiche permettant de saisir les paramtres de la requte. en excution, les paramtres de la requte devront tre spcifis laide de la fonction iInitRequteEtat (avant lutilisation de la fonction iImprimeEtat).

Important
48

Si la requte est cre avec le logiciel Etats & Requtes, il nest pas ncessaire dutiliser 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 & Requtes, une fentre saffiche permettant de saisir les paramtres de la requte.

Pour plus de dtails sur limpression des requtes paramtres, consultez Imprimer un tat sur requte paramtre, page 121. Remarque : Pour plus de dtails sur les tats paramtrs, consultez Etat paramtr, page 136.

Partie 1 : Editeur dtats

3.4 Etat sur une variable


Un tat sur une variable permet dimprimer directement des donnes provenant dune variable WLangage. Cette variable peut tre : une variable de type tableau, globale au projet. une variable de type tableau, globale une fentre ou une page. une variable de type tableau, globale une collection de procdures. Lorsque l'tat sur une variable est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la variable associe l'tat.

Important Important

Le logiciel Etats & Requtes ne permet ni de crer ni de personnaliser des tats sur variable.

Pour plus de dtails sur limpression dun tat sur une variable WLangage, consultez Etat sur une variable, page 124.

3.5 Etat sur une vue HyperFileSQL Classic


3.5.1 Prsentation
Un tat sur une vue HyperFileSQL permet d'imprimer des enregistrements provenant d'une vue HyperFileSQL Classic ou Client/Serveur. Ce type dtats est conserv par compatibilit. Rappel : Une vue HyperFileSQL correspond une "image mmoire" de tout ou partie d'un fichier de donnes. Une vue est stocke en mmoire, ce qui la rend insensible aux modifications effectues sur le fichier associ. Une fois cre (fonction HCreVue), une vue se manipule comme un fichier de donnes HyperFileSQL. Pour plus de dtails, consultez laide en ligne (mot-cl : "Vue HyperFileSQL"). Le logiciel Etats & Requtes ne permet pas de crer des tats sur une vue HyperFileSQL. Cependant, il est possible de personnaliser des tats sur une vue HyperFileSQL crs sous lditeur dtats intgr (couleur, polices, taille, ...).

Lorsque l'tat sur une vue HyperFileSQL est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la vue HyperFileSQL associe l'tat. Pour plus de dtails sur limpression dun tat sur une vue HyperFileSQL, consultez "Imprimer un tat sur une vue HyperFileSQL", page 126.

3.5.2 Caractristiques
Fichier de base

Un tat sur une vue HyperFileSQL est li au fichier de base de cette vue HyperFileSQL. L'tat permet d'imprimer les enregistrements provenant de ce fichier de base.

Partie 1 : Editeur dtats

49

Ordre dimpression des enregistrements

L'ordre d'impression des enregistrements correspond l'ordre des enregistrements dfini dans la vue HyperFileSQL (lors de la cration de la vue ou dfini avec la fonction HTrieVue).

3.6 Etat sur une zone mmoire


3.6.1 Prsentation
Un tat sur une zone mmoire permet dimprimer les enregistrements stocks dans une zone mmoire (cre par programmation avec la fonction MemCre). La zone mmoire doit obligatoirement contenir tous les numros des enregistrements du fichier imprimer. Il est ainsi possible par exemple de : stocker dans une zone mmoire les numros denregistrements slectionns par un ou plusieurs traitements. imprimer les enregistrements uniquement lorsque la slection aura t ralise. Pour tester un tat sur zone mmoire, il est ncessaire de : crer et d'initialiser la zone mmoire. imprimer l'tat. Lorsque l'tat sur une zone mmoire est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la zone mmoire associe l'tat.

Important
50

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

Pour plus de dtails sur limpression dun tat sur une zone mmoire, consultez Etat sur zone mmoire, page 128. Remarques : Ce type dtats nest pas disponible sous WinDev Mobile. Ce type dtats est conserv par compatibilit.

3.6.2 Caractristiques
Fichier de base

Un tat sur une zone mmoire est li au fichier de base de cette zone mmoire. L'tat permet d'imprimer les enregistrements provenant de ce fichier de base.
Ordre dimpression des enregistrements

L'ordre d'impression des enregistrements correspond l'ordre des numros d'enregistrements dfini dans la zone mmoire.

Partie 1 : Editeur dtats

3.7 Etat sur un champ Table


3.7.1 Prsentation
Ltat sur un champ Table permet dimprimer directement les informations affiches dans un champ table (fichier ou mmoire) prsent dans une fentre de lapplication ou dans une page du site.

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, colonne relie, ...).

Un tat sur un champ Table peut imprimer : soit toutes les lignes affiches dans la table (possibilit de filtrer les donnes de la table avec la loupe). soit uniquement les lignes slectionnes par lutilisateur (cas des tables multi-slection, o les lignes sont slectionnes grce la touche [Ctrl]). Cette option nest pas disponible sous WebDev. Il est possible de crer un tat sur un champ Table : soit depuis lditeur de fentres ou de pages. L'tat cr correspond alors un tat de type tableau. soit depuis lditeur dtats. L'assistant de cration d'un tat s'ouvre et permet de choisir le type d'tat crer (tableau, fiche, ...). Pour plus de dtails, consultez laide en ligne (mot-cl : "Table, Etat sur un champ table"). Lorsque l'tat sur un champ Table est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis au champ Table associ l'tat. Pour plus de dtails sur limpression dun tat sur un champ table, consultez Etat sur un champ table, page 122.

3.7.2 Caractristiques
Correspondance des enregistrements

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 d'un tat de type tableau, l'ordre d'affichage des colonnes dans l'tat correspond par dfaut l'ordre des colonnes dans la fentre (ou dans la page) en cours d'dition. En WinDev, si l'utilisateur modifie l'ordre des colonnes dans la fentre, l'ordre d'affichage des colonnes dans l'tat ne sera pas modifi dynamiquement.

Partie 1 : Editeur dtats

51

Cette liste : comporte trois rubriques : "Nom", "Socit" et "Ville". contient autant denregistrements que de clients.

Tester un tat sur un champ Table

Il est impossible de tester un tat sur table directement depuis lditeur dtats, car la fentre ou la page contenant la table doit tre ouverte. Il est donc ncessaire de : programmer limpression dun tat sur table. Pour plus de dtails, consultez "Imprimer un tat sur un champ table", page 122. tester directement la fentre / la page (ou le projet) permettant de lancer limpression.

3.8 Etat sur fichier texte


3.8.1 Prsentation
Dans un tat sur fichier texte, les informations imprimer sont lues dans un fichier au format texte, et sont directement affectes dans les champs de ltat. Ce type dtat convient particulirement lorsque des informations imprimer ont t importes dans un fichier au format texte (importation de donnes depuis Excel par exemple). Pour crer un tat sur un fichier texte, il est possible : soit d'utiliser lassistant de cration dun tat sur un fichier texte. La cration de l'tat et la lecture des enregistrements sont automatiquement ralises par l'diteur d'tats. Aucune programmation n'est ncessaire. soit de programmer entirement la lecture des enregistrements. La cration de l'tat est simplifie grce l'assistant de cration des tats. Cependant, la lecture des enregistrements dans le fichier texte ncessite une programmation complte en WLangage.

52

Partie 1 : Editeur dtats

Pour plus de dtails sur la cration dun tat sur fichier texte, consultez laide en ligne (mot-cl : "Fichier texte, Etat sur un fichier texte"). Lorsque l'tat sur un fichier texte est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). modifier la mthode de lecture des enregistrements de l'tat (lecture automatique ou programme). Pour plus de dtails, consultez laide en ligne (mot-cl : "Fichier texte, Etat sur un fichier texte"). ajouter ou supprimer des champs Rubriques lis au fichier texte associ l'tat. Pour plus de dtails sur limpression dun tat sur un fichier texte, consultez Etat sur fichier texte, page 130.

3.8.2 Caractristiques
Correspondance des enregistrements

Chaque ligne du fichier texte doit correspondre un enregistrement. Chaque ligne contient plusieurs informations, appeles rubriques. Chaque rubrique est spare par un sparateur.

3.9 Etat sur une source de donnes programme


Dans un tat sur une source de donnes programme, la lecture des enregistrements afficher dans l'tat ncessite une programmation complte en WLangage. La source de donnes peut tre de n'importe quel type (fichier HyperFileSQL, requte, fichier texte, fichier d'une base de donnes tierce, ...).

Important

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

Pour plus de dtails sur la cration dun tat sur une source de donnes programme, consultez laide en ligne (mot-cl : "Source de donnes d'un tat, Source de donnes programme"). Lorsque l'tat sur une source de donnes programme est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la source de donnes de l'tat.

Partie 1 : Editeur dtats

53

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 "Etat .. Description"). Pour plus de dtails sur chacune des options des diffrents onglets, consultez l'aide contextuelle de la fentre de description (icne , en haut droite). 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 d'un tat. Ces manipulations se font principalement partir de la fentre de description de l'tat. Il est possible de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat) : soit en changeant le type de la source d'alimentation de l'tat (passer par exemple d'un 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 l'tat si la source de donnes est vide (onglet "Dtail" de la description de l'tat). En effet, si la source de donnes est vide, l'diteur d'tats offre la possibilit soit d'imprimer l'tat, soit d'afficher un message d'avertissement sans imprimer l'tat. Le message d'avertissement est paramtrable. Remarque : Si l'tat est bas sur une requte, l'option "Etat .. Editer la requte" permet d'diter directement la requte dans l'diteur de requtes. Il est alors possible de modifier cette requte.

54

Partie 1 : Editeur dtats

4.2.2 Options daffichage dans laperu avant impression


Le paramtrage des options d'affichage dans l'aperu avant impression est ralis dans l'onglet "Dtail" de la description de l'tat. Il est possible de : spcifier les formats d'exports proposs par l'aperu avant impression. Les formats cochs seront disponibles pour l'utilisateur. paramtrer le message affich si la source de donnes est vide. spcifier si l'tat est modifiable sous le logiciel "Etats et requtes" et sous quelles conditions. Pour plus de dtails, consultez "Logiciel Etats & Requtes". spcifier si le code compil doit tre intgr. Cette option est ncessaire dans des cas trs rares. spcifier sil 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. spcifier si l'impression doit tre effectue page aprs page. Dans ce cas, l'impression est envoye au spooler d'impression aprs chaque page imprime. spcifier si la premire page est une page de couverture. Dans ce cas, la premire page sera affiche droite dans l'aperu (en mode d'affichage par pages doubles).

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 "Etat .. Description"). Pour plus de dtails sur la gestion des blocs, consultez le paragraphe Blocs dun tat, page 63.

4.2.4 Options
Longlet "Options" de la fentre de description de ltat est le suivant :

Partie 1 : Editeur dtats

55

Cet onglet 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 (pour plus de dtails, consultez R-ordonner les blocs, page 69). le style du tableau si ltat contient un tableau (pour plus de dtails, consultez Utiliser des tableaux dans un tat, page 95). le style des tiquettes si ltat est de type tiquette. la liste des modles utiliss par ltat.

4.2.5 Formulaire et image de fond


La majorit des types dtats peuvent tre raliss partir dun formulaire ou imprims sur une image de fond. L'onglet "Fond" permet de dfinir l'image utilise en tant que formulaire dans l'tat. Cette image pourra au choix tre imprim ou non avec l'tat. Lutilisation dun formulaire 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 formulaire. 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 57.

4.2.6 Langue
Un tat peut tre multilingue, cest--dire qu lexcution cet tat pourra tre affich et imprim dans plusieurs langues. Longlet "Langue" de la description du projet 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 (option "Affichage .. Langue affiche") et de saisir directement les traductions dans ltat en dition. le masque daffichage des champs de type rubrique, calcul ou pr-dfini. 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 : soit de slectionner loption "Fichier .. Ouvrir ". soit de double-cliquer directement sur un fichier de type "WDE". soit de double-cliquer sur le nom dun tat dans le volet "Explorateur de projet". Pour fermer ltat en cours, il suffit dutiliser loption "Fichier .. Fermer". Si ltat contient des modifications non sauvegardes, lditeur dtats propose automatiquement denregistrer ltat.

56

Partie 1 : Editeur dtats

Pour enregistrer ltat en cours, slectionnez loption "Fichier .. Enregistrer". Remarque : Loption "Fichier .. Enregistrer sous" permet denregistrer ltat en le renommant. Rcupration automatique Pour viter tout problme lors dun blocage du systme (coupure de courant par exemple), WinDev / WebDev / WinDev Mobile proposent un systme de rcupration automatique des lments ouverts sous les diffrents diteurs (option "Outils .. Options gnrales de WinDev / WebDev / WinDev Mobile .. Gnral .. Enregistrement pour la rcupration automatique"). Lorsque ce systme est activ : un enregistrement automatique des lments ouverts est automatiquement effectu une priode donne (toutes les 10 minutes par dfaut). lors de la r-ouverture 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 slectionne est disponible dans la fentre de gestion des versions (option "Fichier .. Versions") et peut tre ouverte tout moment.

4.4 Utiliser un formulaire dans un tat


L'diteur d'tats offre la possibilit d'imprimer des tats sur des formulaires pr-imprims (fichier image ou fichier PDF). Par exemple, il est possible d'imprimer directement les adresses des clients sur les formulaires de courrier recommand de la poste, des billets de trains sur des formulaires pr-imprims, ... En dition, le formulaire est affich en image de fond de l'tat : le positionnement des champs pourra tre ralis au millimtre prs. Par exemple :

Partie 1 : Editeur dtats

57

En excution, il est possible d'imprimer ou non l'image du formulaire avec l'tat. Par dfaut, l'image du formulaire n'est pas imprime avec l'tat. Par exemple :

Pour imprimer des tats sur des formulaires pr-imprims, il est possible : soit de crer un tat fiche de type "Formulaire". Pour plus de dtails, consultez le paragraphe suivant. soit dintgrer un formulaire dans un tat existant.

4.4.1 Informations spcifiques au formulaire


Certaines informations spcifiques sont ncessaires lutilisation dun formulaire dans un tat : le fichier contenant l'image du formulaire. La taille de l'tat est automatiquement calcule en fonction de la taille de l'image du formulaire. Pour un format A4, la taille d'une image en 75 DPI doit tre 595 x 842 pixels. Pour un format A4, la taille d'une image en 150 DPI doit tre 1275 x 1753 pixels. Si l'image du formulaire correspond un fichier PDF contenant plusieurs pages, il est possible : soit d'imprimer toutes les pages du PDF. Un tat compos de plusieurs pages est alors cr sous l'diteur d'tats. soit d'indiquer le numro de la page utiliser en fond de l'tat. L'tat imprimera uniquement une page du fichier PDF. l'impression ou non de l'image du formulaire. Remarque : Si l'image du formulaire est imprime avec l'tat, cette image ne sera pas imprime au-del des marges physiques de l'imprimante. le dcoupage du formulaire en fonction du nombre d'enregistrements imprim par page : si par exemple, le formulaire contient les caractristiques d'un seul client, un seul enregistrement doit tre imprim par page. Dans ce cas, l'tat cr contient uniquement le bloc Corps. si par exemple, le formulaire contient les caractristiques de plusieurs clients, plusieurs enregistrements doivent tre imprims par page.

58

Partie 1 : Editeur dtats

Dans ce cas, l'tat cr contient un bloc Haut de page, un bloc Corps et un bloc Bas de page. Pour chaque enregistrement imprim sur la page, le bloc Corps sera rpt. Pour imprimer correctement l'tat, il est ncessaire de modifier la position des champs de l'tat et la position de l'image du formulaire dans le bloc Corps.

4.4.2 Intgrer un formulaire dans un tat


Crez 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 l'enregistrer sous forme d'image. Pour un format A4, la taille d'une image en 75 DPI doit tre 595 x 842 pixels. Pour un format A4, la taille d'une image en 150 DPI doit tre 1275 x 1753 pixels. Remarque : Les formats d'image autoriss sont les suivants : ".BMP", ".JPEG", ".GIF", ".PCD", ".PSD", ".TGA", ".TIF", ".PNG", ".ICO", ".EMF", ".WMF", ".CUR", ".OS2", ".PCX", ".ICW" ou ".PDF". Pour intgrer un formulaire dans un tat : 1. Affichez l'onglet "Fond" de la description de l'tat (option "Etat .. Description"). 2. Slectionnez l'image 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. L'diteur d'tats affichera alors toutes les pages du PDF. Les champs ncessaires l'tat pourront tre positionns sur les diffrentes pages de l'tat sous l'diteur. soit la page contenant le formulaire utiliser. Ce numro de page peut tre modifi par programmation grce la proprit NumroPage. L'tat affich sous l'diteur d'tats ne contiendra qu'une seule page. 4. Spcifiez si l'image du formulaire doit tre imprime ou non en mme temps que l'tat. Si l'image du formulaire est imprime avec l'tat, cette image ne sera pas imprime au-del des marges physiques de l'imprimante. Pour imprimer totalement l'image du formulaire, il est conseill de cocher l'option "Ignorer les marges physiques de l'imprimante". Si l'image du formulaire ne doit pas tre imprime avec l'tat (cas d'une impression sur un papier primprim par exemple), l'option "Ignorer les marges physiques de l'imprimante" ne doit pas tre slectionne. Dans le cas contraire, les champs imprims seront dcals par rapport au formulaire primprim.

4.4.3 Image du formulaire


Limage du formulaire apparat en fond de ltat en dition. 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 chacun des blocs en fonction du rsultat voulu. Pour dplacer l'image du formulaire affiche dans chaque bloc : 1. Cliquez sur licne prsent dans la barre d'icnes. Le curseur de la souris se transforme en main. 2. Cliquez dans le bloc o l'image du formulaire doit tre dplace. 3. Pour dplacer l'image du formulaire d'un 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. Cliquez une nouvelle fois sur l'icne laire. pour dsactiver le mode de dplacement de l'image du formu-

Partie 1 : Editeur dtats

59

Remarque : Le curseur de la souris doit tre dplac dans la zone du bloc pour tre pris en compte.

4.4.4 Etat bas sur un fichier PDF


Si vous avez choisi que l'tat affiche toutes les pages d'un fichier PDF, si l'tat est bas sur un fichier de donnes, ou une requte, les diffrentes pages seront imprimes pour chaque enregistrement de la source de donnes utilise. Remarque : Ce type d'tat peut consommer beaucoup de ressources mmoire (notamment en aperu avant impression). L'utilisation d'un fichier PDF en fond de page ncessite le framework GDI+. Sous l'diteur, il est conseill d'utiliser un zoom infrieur ou gal 100% pour visualiser correctement le fichier PDF utilis en fond d'tat.

4.5 Visualisation de ltat en 3 dimensions


Votre tat affiche des champs qui se superposent? Vous voulez connatre l'altitude de vos champs : quels sont les champs affichs en premier plan? L'affichage en deux dimensions devient vite limit pour ce genre d'opration. Lditeur dtats permet d'avoir une vue spatiale d'un tat en proposant de visualiser l'tat en trois dimensions. L'altitude des diffrents champs de l'tat apparat alors immdiatement. Un champ slectionn dans ce mode d'affichage reste slectionn lors du passage l'affichage en deux dimensions. Vous pouvez choisir simplement le meilleur angle de vision grce la souris et aux touches du clavier. Attention : pour utiliser cette fonctionnalit, une configuration spcifique est ncessaire. Exemple :

60

Partie 1 : Editeur dtats

Pour afficher une vue en 3 dimensions de vos tats : 1. Affichez l'tat sous l'diteur. 2. Slectionnez l'option "Affichage .. Visualiser l'tat en 3D" (ou les touches ALT + D). 3. L'tat apparat en 3 dimensions. Remarque : Pour afficher une vue en 3 dimensions de votre tat et animer cette vue, utilisez les touches [ALT] + [SHIFT]. Pour optimiser la vue de l'tat, vous pouvez utiliser la souris ou le clavier. Dplacements la souris Rotation (bouton gauche de la souris) Translation (bouton droit de la souris) Dplacements au clavier Rotation Utilisez les flches ainsi que les touches + et - du clavier numrique. Il est galement possible d'utiliser les chiffres du clavier numrique. Maintenez la touche SHIFT du clavier enfonce et utilisez les flches du clavier numrique. Utilisez la combinaison de touches : - SHIFT + pour raliser un zoom avant - SHIFT - pour raliser un zoom arrire. / (du pav numrique) pour diminuer l'cart entre les champs. * (du pav numrique) pour augmenter l'cart entre les champs Touche 0 du clavier numrique : r-initialisation complte Touche 5 du clavier numrique : R-initialisation en conservant l'espace entre les champs. Touche [Arrt dfil]. Touche [Echap] pour annuler Cliquez dans la vue de l'tat, et dplacez la souris tout en maintenant le bouton gauche de la souris enfonc. Cliquez dans la vue de l'tat, et dplacez la souris tout en maintenant le bouton droit de la souris enfonc.

Translation Zoom

Modification de l'cart entre les champs (modification entre les diffrents plans d'affichage)

R-initialisation de l'affichage

Animation de la vue en 3 Dimensions

Remarque : Pour dsactiver la visualisation en 3 dimensions, utilisez la touche [ECHAP]. Actions possibles depuis l'affichage en 3D d'un tat En mode 3 dimensions, seules certaines actions sont disponibles sur les champs de l'tat. Il est possible par exemple de : slectionner un champ. afficher la description du champ. afficher le code source du champ. Partie 1 : Editeur dtats 61

Conditions ncessaires l'utilisation de la vue en 3 dimensions d'un tat Pour visionner vos tats en 3 dimensions, il est ncessaire de possder sur le poste en cours : DirectX version 8.0.A minimum. Une carte acclratrice 3D avec ses drivers jour. Un mode d'affichage en 16 bits ou 32 bits.

4.6 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 appliqu un ou plusieurs tats (par exemple pour harmoniser le "look" des tats dune application). Pour changer ou appliquer un gabarit pr-dfini un tat, slectionnez loption "Etat .. Appliquer un gabarit", et slectionnez le gabarit souhait. 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 d'tat").

Important Important
62

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

4.7 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 caractristiques du modle peuvent tre surcharges par ltat utilisant le modle. Pour changer ou appliquer un modle un tat, slectionnez loption "Etat .. Liste des modles utiliss", et slectionnez le modle souhait. Remarque : Pour plus de dtails sur la cration des modles dtats, consultez laide en ligne (mot-cl : "Modle, Modle dtats").

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

Partie 1 : Editeur dtats

5. BLOCS DUN TAT


5.1 Prsentation
Un tat imprim cr avec lditeur dtats est compos de plusieurs parties : un dbut de document un haut de page un corps de page un bas de page une fin de document une ou plusieurs ruptures, si ltat est tri

Partie 1 : Editeur dtats

63

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

Etat en dition

Aperu de lexcution de ltat

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

64

Partie 1 : Editeur dtats

Les diffrents types de blocs sont les suivants (dans leur ordre dapparition sous lditeur dtats) : Bloc Dbut de document Bloc Haut de page Bloc Haut de rupture Bloc Corps Bloc Complment de corps Bloc Bas de rupture Bloc Bas 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, l'intitul des blocs est affich en complet sur la gauche des tats en dition. Pour afficher ces intituls en abrg, dslectionnez l'option "Affichage .. Options .. Voir le nom des blocs complet". La suite de ce chapitre prsente les diffrents types de blocs et leurs caractristiques.

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 Haut de page


Le bloc Haut de page est imprim chaque nouvelle page. Par dfaut, le bloc Haut de page est imprim la suite du bloc Dbut de document. Le bloc Haut de page contient des informations qui doivent figurer en haut de chaque page, par exemple le titre, ou un champ pr-dfini indiquant la date du jour. Attention : Si la destination de limpression est un fichier HTML, le bloc haut de page ne sera dit quune seule fois.

5.2.3 Bloc Haut de rupture


Le bloc Haut de rupture est optionnel. 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 fois que la valeur de largument de tri change. 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 programmation grce la proprit Visible).

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 fin de page" coche dans l'onglet "Dtail" de la fentre de description du bloc). Remarque : Le bloc Corps ne peut pas tre supprim. Il est cependant possible de rendre ce bloc invisible (dans la fentre de description du bloc ou par programmation grce la proprit Visible).

Partie 1 : Editeur dtats

65

5.2.5 Bloc Complment de corps


Le bloc Complment de corps est li au bloc Corps. Ce bloc permet par exemple de complter ldition jusquen bas de page. 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 optionnel. Il 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 fois que la valeur de largument de tri change. Ce bloc contient gnralement des champs compteurs ou totaux sur les enregistrements correspondant 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).

5.2.7 Bloc Bas de page


Le bloc Bas de page est excut la fin de chaque page. Le bloc Bas 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 : Si la destination de limpression est un fichier HTML, le bloc bas de page ne sera dit quune seule fois.

5.2.8 Bloc Fin de document


Le bloc Fin de document est imprim 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).

5.2.9 Bloc Itration


Le bloc Itration est un bloc libre, cr manuellement sous lditeur dtats (option "Insertion .. Nouveau bloc"). Le plus souvent, ce bloc peut tre utilis comme nimporte quel autre type de bloc. Par exemple, un bloc Itration peut tre utilis pour remplacer un bloc Haut 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 possible dimprimer un bloc spcifique grce la fonction iImprimeBloc.

5.3 Caractristiques des blocs dun tat


Pour afficher la fentre de description d'un bloc : soit double-cliquez sur l'intitul du bloc. soit slectionnez l'option "Etat .. Champs et blocs de l'tat" (touche [F12]), slectionnez le bloc et cliquez sur le bouton "Description". soit slectionnez l'option "Description du bloc" du menu contextuel du bloc (clic droit de la souris sur lintitul du bloc).

66

Partie 1 : Editeur dtats

Par exemple, fentre de description d'un bloc Haut de rupture :

Selon le type de bloc slectionn, la fentre de description permet de configurer : le nom du bloc. la rubrique de rupture lie au bloc (blocs de rupture uniquement). les paramtres et les options d'impression du bloc. la hauteur du bloc. l'aspect du bloc (couleur de fond, cadre, ...). Remarque : Les caractristiques dun bloc peuvent tre galement visualises dans le volet Modifieur. Pour afficher ce volet, slectionnez loption "Affichage .. Barres doutils .. Modifieur". Il suffit ensuite de cliquer sur lintitul du bloc pour visualiser sa description dans le modifieur.

5.4 Paramtres et options dimpression des blocs


Les diffrents paramtres et options d'impression d'un bloc sont dfinis dans l'onglet "Dtail" de sa description (double-clic sur l'intitul du bloc). Les paramtres et les options d'impression des blocs d'un tat sont les suivants : Scable : Si un bloc est scable et si l'espace restant pour imprimer la totalit du bloc sur une page est insuffisant, le contenu du bloc est imprim sur plusieurs pages. Si un bloc n'est pas scable et si l'espace restant pour imprimer la totalit du bloc sur une page est insuffisant, le contenu du bloc est imprim sur la page suivante. Visible : Le bloc peut tre affich ou non. Si un bloc est invisible, le bloc et ses champs ne seront pas imprims dans l'tat. Cette caractristique peut tre modifie en programmation grce la proprit Visible. Rpt jusqu'en bas de page : Le bloc peut tre recopi jusqu' ce que la fin de la page soit atteinte. Partie 1 : Editeur dtats 67

Saut de page aprs le bloc : Un saut de page peut tre automatiquement gnr aprs l'impression du bloc. Attention : Si la destination de limpression est un fichier HTML, les sauts de pages ne sont pas grs. Compltion jusqu'en bas de page : Un bloc peut tre tir jusqu'en bas de page. Remarque : Cette option est utile si le bloc a une image de fond ou une couleur de fond. Attention : Si la destination de limpression est un fichier HTML, la compltion jusquen bas de page nest pas gre. Prolonger les colonnes jusqu'en bas de page (uniquement pour les blocs contenant un tableau) : Les colonnes d'un tableau peuvent tre prolonges jusqu' ce que la fin de la page soit atteinte. Remarque : Pour prolonger les colonnes d'un tableau jusqu'en bas de page, il est galement possible d'ajouter un bloc Complment de corps. Les blocs Complment de corps sont automatiquement tirs jusqu'en bas de page. Attention : Si la destination de limpression est un fichier HTML, la prolongation des colonnes jusquen bas de page nest pas gre. Afficher le bloc dans chaque colonne de l'tat (pour les tats multi-colonnes) : Si l'tat est un tat multi-colonne, il est possible de choisir si le bloc doit tre affich sur chaque colonne ou sur toutes les colonnes. Conserver la place du bas de page lorsqu'il est invisible (uniquement pour les blocs Bas de page) : Par dfaut, la place occupe par le bloc Bas de page est toujours conserve dans les pages de l'tat (que le bloc soit visible ou non). Grce cette option, il est possible de conserver la place occupe par le bloc Bas de page uniquement dans les pages o le bloc est visible. Cette option permet d'optimiser le remplissage des pages de l'tat.

5.5 Manipuler les blocs sous lditeur dtats


5.5.1 Crer un bloc
Pour crer un bloc dans un tat, utilisez : soit l'option "Insertion .. Nouveau bloc". soit l'option "Ajouter un bloc" du menu contextuel de l'tat (clic droit sur l'tat en cours de cration). soit le bouton "Ajouter un bloc" dans l'onglet "Blocs" de la description de l'tat. 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).

5.5.2 Supprimer un bloc


Pour supprimer un bloc d'un tat, utilisez : soit loption "Supprimer le bloc" du menu contextuel du bloc supprimer (clic droit de la souris 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 programmation grce la proprit Visible).

68

Partie 1 : Editeur dtats

5.5.3 R-ordonner les blocs


Lditeur dtats permet de r-ordonner les blocs prsents dans un tat. Lors de limpression de ltat, les diffrents blocs seront imprims selon lordre spcifi sous lditeur dtats. L'ordre dexcution des traitements des blocs correspond lordre d'impression des blocs. Lordre dimpression des blocs de ltat peut tre dfini : soit dans longlet "Options" de la fentre de description de ltat (option "Etat .. Description"). soit dans longlet "Gnral" de la fentre de description de chaque bloc (option "Description du bloc" du menu contextuel du bloc). Pour plus de dtails sur les diffrents ordres dimpression des blocs, consultez laide en ligne (mot-cl : "Bloc d'un tat, Ordre dimpression").

5.6 Manipuler les blocs par programmation


Chaque bloc de ltat est associ diffrents traitements. Ces traitements permettent daffiner le fonctionnement 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.

5.6.1 Traitements des blocs dun tat


Les traitements associs aux blocs d'un tat sont les suivants : Traitements Initialisation Conditions d'excution Excut lors de linitialisation du bloc. L'ordre d'excution des traitements au lancement d'un tat (y compris lors d'un test) est le suivant : traitement "Ouverture de ltat". traitement "Initialisation" des blocs de l'tat. traitement "Initialisation" des champs. Ce traitement permet par exemple de : initialiser des champs "Calcul". initialiser des variables globales dclares dans le traitement "Dbut d'impression" de l'tat. effectuer des substitutions de blocs. Avant impression Avant l'impression d'un bloc, les oprations suivantes sont ralises : lecture de l'enregistrement 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). S'il ny a pas assez de place pour imprimer le bloc inscable en cours, il y a passage la page suivante (et impression des blocs Bas de page, Haut de page et Complment de corps si besoin). 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.

Partie 1 : Editeur dtats

69

Avant impression (suite)

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 (fonction iSubstBloc).

Aprs impression

Excut aprs l'impression 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?

(Bloc Haut de rupture uniquement) Excut avant le traitement "Avant impression" du bloc Haut de rupture. Pour plus de dtails, consultez Traitement de rupture, page 135.

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. Pour visualiser les traitements spcifiques un bloc, utilisez : soit l'option "Code du bloc" du menu contextuel du bloc (clic droit sur l'intitul du bloc). soit l'icne "Code" de la description du bloc. Certaines fonctions et proprits sont spcifiques la manipulation des blocs. Remarque : Les traitements associs un bloc de l'tat sont excuts lors de l'impression de ce bloc. Dans ces traitements, vous pouvez utiliser du code WLangage. Pour plus de dtails sur lenchanement de ces traitements, consultez le chapitre Enchanement des traitements associs un tat, page 132.

5.6.2 Manipuler un bloc dans un traitement WLangage


Pour manipuler un bloc d'un tat dans un traitement WLangage, il suffit : soit d'utiliser directement le nom de ce bloc. Cette syntaxe est valable uniquement si ce bloc est manipul depuis l'tat auquel il appartient. soit d'utiliser 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

70

Partie 1 : Editeur dtats

5.6.3 Proprits associes aux blocs dun tat


Les diffrentes proprits utilisables avec les blocs d'un tat sont les suivantes : Proprit Cadre CouleurFond Etat Hauteur HauteurInitiale Image Largeur Nom Visible Effet Permet de connatre et de modifier les caractristiques du cadre d'un bloc. Permet de connatre et de modifier la couleur de fond d'un bloc Permet de connatre et de modifier l'tat d'affichage d'un bloc Permet de connatre et de modifier la hauteur d'un bloc Permet de connatre la hauteur de cration d'un bloc Permet de connatre et de modifier l'image de fond d'un bloc Permet de connatre et de modifier la largeur d'un bloc Permet de connatre le nom d'un bloc Permet de savoir si un bloc est visible et de rendre visible / invisible un bloc

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

Partie 1 : Editeur dtats

71

6. CHAMPS DUN TAT


6.1 Les diffrents types de champs
Lditeur dtats met votre disposition plusieurs types de champs : Champ Libell Rubrique Champ calcul Image Code-barres Champ RTF Champ pr-dfini Graphe Forme Interrupteur Etat interne Lien URL Champ de saisie Voici une description rapide de tous les types de champs disponibles, de leurs caractristiques et des manipulations possibles sur ces champs. Pour plus de dtails, consultez laide en ligne (mot-cl : "Champ d'un tat (types de champs)").

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 [%NomProduit%] 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-lignes et la taille du champ doit tre suffisante. Rappel : L'option "Auto-Extensible" permet d'augmenter automatiquement la taille du champ en fonction de son contenu.

72

Partie 1 : Editeur dtats

Exemples : Libell dun champ Libell de colonnes dun tableau

Modifier le libell Le libell d'un champ "Libell" peut tre modifi : soit par programmation (proprit Libell). soit sous l'diteur d'tats. 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 la barre de mise en forme :

Mthode 2 : 1. Slectionnez le champ. 2. Affichez la fentre de description du champ (option "Champ .. Description"). 3. Saisissez le nouveau libell dans chaque langue gre par le champ. 4. Modifiez si ncessaire la mise en forme du libell dans l'onglet "Style". Libells multilingues Si votre application ou votre site est multilingue, il est possible de saisir un libell diffrent pour chaque langue gre par l'tat. Selon la langue d'excution du projet, le libell correspondant sera imprim. Pour plus de dtails, consultez Multilingue des champs dun tat, page 84. Transformer un champ "Libell" en champ "RTF" Pour afficher du texte au format RTF dans un champ "Libell", cochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "Libell" se transforme alors en champ "RTF". Toutes les caractristiques du champ "Libell" sont conserves. Pour plus de dtails sur les avantages dun champ RTF, consultez le paragraphe Champ RTF, page 76.

Partie 1 : Editeur dtats

73

6.1.2 Champ Rubrique


Le champ "Rubrique" permet d'diter le contenu d'une rubrique dun fichier de donnes ou dune variable. La rubrique peut tre : une rubrique de la source de donnes de l'tat (fichier de donnes, requte, variable, ...). une rubrique d'un fichier de donnes accessible par une liaison. une variable (globale au projet ou ltat). Ce champ peut galement tre affect par programmation. Exemples : Fichier listant les caractristiques des clients Champ li une rubrique du fichier

Pour dfinir la rubrique lie au champ "Rubrique" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique ou cette variable dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas directement la source de donnes de l'tat, 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 l'tat. 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 l'tat. 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. Pour plus de dtails sur le type "Montaire + Euro", consultez laide en ligne (mot-cl : "Montaire + Euro").

6.1.3 Champ Calcul


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

74

Partie 1 : Editeur dtats

Exemples : Somme de la ligne

Somme du tableau

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 l'tat. 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 l'tat. 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. Pour plus de dtails sur le type "Montaire + Euro", consultez laide en ligne (mot-cl : "Montaire + Euro").

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 ou une variable de la source de donnes (par exemple, si la source de donnes est un fichier de donnes HyperFileSQL, la rubrique peut tre de type mmo Image, ou de type chane de caractres contenant le chemin complet de limage). Le champ "Image" est alors li cette rubrique. Exemple :

Partie 1 : Editeur dtats

75

Pour dfinir la rubrique lie au champ "Image" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. Images multilingues Si votre application ou votre site est multilingue, il est possible de slectionner une image diffrente pour chaque langue gre par l'tat. Cette option est intressante par exemple lorsque les images contiennent du texte. Selon la langue d'excution du projet, l'image correspondante sera imprime. Pour plus de dtails, consultez Multilingue des champs dun tat, page 84.

6.1.5 Champ Code-barres


Le champ "Code-barres" permet dimprimer trs simplement des codes-barres dans vos tats. La valeur d'un champ "Code-barres" correspond une chane alphanumrique. Le champ "Code-barres" peut tre associ une rubrique ou une variable de la source de donnes de ltat ou tre affect par programmation. Lditeur dtats propose de nombreux types de code-barres et permet aussi bien de les imprimer horizontalement que verticalement. Exemple :

Pour dfinir la rubrique lie au champ "Code-barres" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, 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 %].

76

Partie 1 : Editeur dtats

Par exemple, le texte du champ peut correspondre : Le fournisseur [%NomFournisseur%] vend le produit [%NomProduit%] pour [%PrixTTC%]. Les rubriques NomFournisseur, NomProduit et PrixTTC seront remplaces par leur valeur lexcution de ltat. provenir dune rubrique ou dune variable de type texte prsente dans la source de donnes de l'tat. 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 dutilisation de champ "RTF" : Intitul dun tat utilisant des polices de couleurs diffrentes.

Modifier le texte dun champ "RTF" Le texte d'un champ "RTF" peut tre modifi : soit par programmation (proprit Libell). soit sous l'diteur d'tats : 1. Slectionnez le champ (cliquez sur le champ par exemple). 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 texte du champ. 4. Modifiez si ncessaire la mise en forme du texte grce la barre de mise en forme :

Transformer un champ "Libell" en champ "RTF" Pour afficher du texte au format RTF dans un champ "Libell", cochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). 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 l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "Rubrique" devient un champ "RTF". Toutes les caractristiques du champ "Rubrique" sont conserves. 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 l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "RTF" devient un champ "Rubrique". Toutes les caractristiques du champ "RTF" sont conserves.

Partie 1 : Editeur dtats

77

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 :

Date du jour dimpression de ltat

Pour modifier le type d'information affich dans un champ "Pr-dfini" : 1. Affichez l'onglet "Gnral" de la fentre de description du champ "Pr-dfini" (option "Champ .. Description"). 2. Slectionnez le type d'information affich (combo "Type"). 3. Validez.

6.1.8 Champ Graphe


Le champ "Graphe" permet de visualiser et dimprimer un graphe dans vos tats. Les types de graphes disponibles sont les suivants : Histogramme (group ou empil, vertical ou horizontal), Courbe, aire, Nuage de points, radar, Camembert (graphe en secteur), beignet, hmicycle, Graphe boursier (Chandelier, MinMax ou BarCharts), ... Remarques : Ce champ nest pas disponible sous WinDev Mobile. Ce champ ne peut pas tre li une variable.

78

Partie 1 : Editeur dtats

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, ...). le mode dalimentation du graphe (source identique celle de ltat ou alimentation par programmation). le nombre de sries. la source du libell de la srie. Ce libell provient dune rubrique prsente dans la source de donnes associe l'tat. Ce libell correspond : - soit l'tiquette d'une catgorie de donnes (ou d'un secteur) d'un graphe. - soit l'tiquette d'une srie de donnes d'un graphe. Etiquette de catgorie Etiquette de srie

Partie 1 : Editeur dtats

79

Pour chaque srie : la couleur et le libell de la srie. la source de la srie. Les valeurs de la srie proviennent dun champ ou dune rubrique prsente dans la source de donnes associe ltat. le bloc dalimentation. la frquence des graduations sur l'axe vertical/horizontal du graphe (si ncessaire). l'aspect du graphe (relief, couleur dgrad et quadrillage). les titres des axes si ncessaire. Il est galement possible de crer un tat de type Graphe ou de type Tableau + Graphe. Pour plus de dtails, consultez Les diffrents types dtats disponibles, page 29.

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 de donnes HyperFileSQL, 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. Exemple :

Pour dfinir la rubrique lie au champ "Interrupteur" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. 80 Partie 1 : Editeur dtats

6.1.11 Champ Etat Interne


Grce aux champs de type "Etat interne", il est possible d'imprimer plusieurs tats (tats secondaires) dans un seul tat (tat principal) sans programmation. Par exemple, l'tat 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 d'imprimer 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 avec saisie, page 104, ou laide en ligne (motcl : "Etat imbriqu").

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 e-mail, un lien vers une adresse de site Internet, ... Le champ "Lien URL" est actif uniquement si l'tat est imprim dans un fichier HTML ou affich dans la fentre daperu avant impression. Dans les autres cas, le champ "Lien URL" est visible mais inactif.

Partie 1 : Editeur dtats

81

Exemple :

Pour dfinir la rubrique ou la variable lie au champ "Lien URL" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique ou cette variable dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. Remarque : En excution, les liens URL sont facilement identifiables grce au signe .

6.1.13 Champ de saisie


Un champ de saisie permet de saisir et d'afficher du texte dans un tat. Il est ainsi possible d'utiliser un champ de saisie : pour permettre l'utilisateur de saisir des informations imprimer, pour permettre l'utilisateur de modifier les informations imprimer, ... Le champ de saisie est actif uniquement si l'tat est affich en mode "Aperu avant impression" ou sil est imprim dans un fichier PDF. Dans les autres cas, le champ de saisie est visible mais inactif. Pour plus de dtails sur lutilisation des champs de saisie, consultez Etats avec saisie, page 104.

82

Partie 1 : Editeur dtats

6.2 Caractristiques des champs dun tat


Les diffrentes caractristiques d'un champ 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.

6.2.1 Fentre de description dun champ


Pour afficher la fentre de description d'un champ : soit double-cliquez sur le champ. soit slectionnez l'option "Description" du menu contextuel du champ (clic droit de la souris). soit slectionnez le champ et slectionnez l'option "Champ .. Description" (touches [ALT + ENTREE]). soit slectionnez le champ et slectionnez l'option "Affichage .. Description de la slection". soit slectionnez l'option "Etat .. Champs et blocs de l'tat" (touche [F12]). Slectionnez ensuite le champ et cliquez sur le bouton "Description". Par exemple, fentre de description d'un champ rubrique :

Remarque : Il est possible d'afficher la fentre de description pour une slection de champs. Seules les caractristiques communes aux diffrents champs slectionns seront affiches.

Partie 1 : Editeur dtats

83

6.2.2 Dtail de la fentre de description


La fentre de description regroupe les diffrentes caractristiques du ou des champs slectionns par onglet : Onglet Gnral Caractristiques Permet de spcifier le nom du champ et toutes les caractristiques d'affichage du champ. Par exemple : le libell du champ (ce libell peut tre multilingue). le type d'information affich dans le champ (texte, numrique, ...). le masque d'affichage utilis pour le champ (ce masque peut tre multilingue). Pour plus de dtails, consultez laide en ligne (mot-cl : "Masque, Masque multilingue"). l'image 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 d'un champ, consultez directement l'aide sur le type de ce champ. Permet de dfinir : les diffrents paramtres d'impression du champ (visible, scable, ...). la taille du champ. la position du champ dans l'tat et dans le bloc auquel le champ appartient. 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. Permet de dfinir : l'aspect du champ (couleur de fond, cadre, ...). la police utilise dans le champ. Remarque : La police utilise dans le champ peut galement tre dfinie grce aux icnes de la barre d'outils "Barre contextuelle".

Dtail

Liaison Style

Remarque : Pour plus de dtails sur chacune des caractristiques des diffrents onglets, consultez l'aide contextuelle de la fentre de description (icne en haut droite).

6.3 Multilingue des champs dun tat


Dans une application ou un site multilingue, lditeur dtats gre le multilingue pour les lments suivants d'un tat : les libells, les masques daffichage, les images, les liens. En excution, lditeur dtats slectionnera automatiquement le libell, le masque ou l'image correspondant la langue d'excution du projet. Rappel : La langue d'excution du projet par dfaut est dfinie dans la description du projet (option "Projet .. Description du projet", onglet "Langues"). Pour plus de dtails sur le multilingue dans les champs dun tat, consultez laide en ligne (mot-cl : "Multilingue, Champs d'un tat").

84

Partie 1 : Editeur dtats

6.4 Groupe de champs


Un groupe de champs est un ensemble de champs regroups de faon modifier (ou consulter) leurs caractristiques communes (par exemple leur tat de visibilit) en une seule opration, par programmation. Sous l'diteur d'tats, 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 d'une fiche d'tat civil, certains champs sont relatifs au sexe masculin alors que d'autres sont relatifs au sexe fminin. 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 d'un tat").

6.5.1 Crer un champ


Pour crer un champ dans un tat, vous pouvez : soit utiliser loption "Insertion .. Nouveau champ" et slectionner le type de champ insrer. soit utiliser la barre doutils de lditeur dtats.
Cre un libell Cre une rubrique Cre un champ calcul Cre une image Cre un code-barres Cre un champ texte RTF Cre un champ pr-dfini Cre un graphe Cre une forme Cre un interrupteur Cre un tat interne Cre un lien URL Cre un champ de saisie

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

Partie 1 : Editeur dtats

85

6.5.2 Slectionner un ou plusieurs champs


Lditeur dtats permet de slectionner un ou plusieurs champs d'un tat l'aide du clavier ou de la souris. Pour slectionner un champ, cliquez sur le champ slectionner. Le champ slectionn s'affiche avec des poignes.

Le nom du champ slectionn apparat dans la barre de messages. Il peut tre modifi directement.

Pour slectionner plusieurs champs en mme temps : Mthode 1 : 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 s'affichent 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 l'affichage de la fentre 7 onglets (option "Description" du menu contextuel de la slection), seules les options communes aux champs slectionns sont affiches. Mthode 2 : laide du lasso. Le lasso de la souris correspond une zone de slection des champs. Cette zone est matrialise par un rectangle en pointills.

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 rectangle en pointills (le lasso de la souris). 3. Une fois la slection ralise, relchez le bouton de la souris. 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, maintenez la touche [Shift] enfonce pendant les diffrentes tapes de slection.

86

Partie 1 : Editeur dtats

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 l'affichage de la fentre 7 onglets (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 : "Slectionner, Un champ").

6.5.3 Copier un champ


Un ou plusieurs champs peuvent tre copis dans un mme tat ou d'un tat vers un autre. La description et le code du champ copi seront identiques ceux du champ d'origine. Pour copier un champ dans un mme tat : 1. Slectionnez le champ copier. 2. Cliquez sur l'icne "Copier" ( ) de la barre doutils standard de l'diteur d'tats. Remarque : Il est galement possible de slectionner l'option "dition .. Copier" ou l'option "Copier" du menu contextuel du champ. 3. Cliquez sur l'icne "Coller" ( ) de la barre doutils standard de l'diteur d'tats. Remarque : Il est galement possible de slectionner l'option "dition .. Coller" ou l'option "Coller" du menu contextuel du champ. 4. Positionnez le champ l'aide de la souris (le contour du champ apparat en pointill et permet de positionner le nouveau champ). Pour copier un champ d'un tat dans un autre tat : Mthode 1 : 1. Dans le premier tat, slectionnez le champ copier. 2. Cliquez sur l'icne "Copier" ( ) de la barre doutils standard de l'diteur d'tats. Remarque : Il est galement possible de slectionner l'option "dition .. Copier" ou l'option "Copier" du menu contextuel du champ. 3. Affichez l'tat de destination sous l'diteur d'tats. 4. Cliquez sur l'icne "Coller" ( ) de la barre doutils standard de l'diteur d'tats. Remarque : Il est galement possible de slectionner l'option "dition .. Coller" ou l'option "Coller" du menu contextuel du champ. 5. Positionnez le champ l'aide de la souris (le contour du champ apparat en pointill et permet de positionner le nouveau champ). Mthode 2 : (les deux tats doivent tre affichs sous l'diteur) 1. Dans le premier tat, slectionnez le champ copier. 2. Maintenez le bouton gauche de la souris enfonc et faites glisser le champ dans l'tat destination. 3. Relchez la souris une fois le champ positionn dans l'tat destination (le contour du champ en pointill permet de positionner rapidement le champ coll).

6.5.4 Copier le style dun champ


La copie du style d'un champ consiste recopier les caractristiques du style d'un 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 type diffrent. Dans ce cas, seules les caractristiques de style communes aux deux champs sont copies. Partie 1 : Editeur dtats 87

La copie du style peut tre effectue entre deux champs appartenant au mme tat ou entre deux champs appartenant des tats diffrents. Remarque : Le style d'un champ correspond aux caractristiques spcifies dans l'onglet "Style" de la fentre de description du champ. Pour raliser une copie de style entre deux champs : 1. Slectionnez le champ comportant le style copier. 2. Cliquez sur l'icne (ou slectionnez l'option "dition .. Reproduire le style", [Ctrl]+[Shift]+[C]).

Le curseur de la souris se transforme en pinceau : 3. Slectionnez le champ o le style doit tre copi. Ce champ peut tre d'un type diffrent du champ dont le style est copi. Remarque : Pour appliquer le style d'un 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 d'un 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 Correcteur dinterface en temps rel, page 90). Remarques : Un champ appartient obligatoirement un bloc. Le dplacement des champs slectionns peut galement s'effectuer 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 d'un 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 l'tat en dition et en excution. Il est galement possible de positionner un champ dans la fentre d'accueil d'un tat : le champ est alors "hors tat". Ce champ sera visible uniquement en dition. Ce champ ne sera pas imprim.

88

Partie 1 : Editeur dtats

Un champ "hors tat" permet par exemple de conserver un champ d'un tat sans l'imprimer. Il est ainsi possible d'utiliser le contenu du champ en programmation (comme une variable). Pour crer un champ "hors tat" : 1. Slectionnez l'option "Insertion .. Nouveau champ" et slectionnez le type de champ insrer. Remarque : Il est galement possible d'utiliser les icnes prsentes dans la barre doutils de l'diteur d'tats. 2. Cliquez dans la partie gauche de la fentre d'accueil 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 votre tat : les options dalignement le correcteur dinterface en temps rel (positionnement automatique) le zoom les rgles et les repres la grille magntique Ce paragraphe dtaille les diffrents moyens permettant daligner les champs prsents dans un tat. Pour plus de dtails, consultez laide en ligne (mot-cl : "Alignement").

6.6.1 Options dalignement


Pour optimiser l'alignement des champs dans un tat, il est possible d'utiliser les options d'alignement. Ces options permettent d'aligner plusieurs champs prsents dans l'tat. Il est possible d'aligner les champs : soit grce aux options du menu "Champ .. Alignement". soit grce la barre d'outils d'alignement (option "Affichage .. Barres doutils .. Alignement") :
Correcteur dinterface Aligne les bords hauts Aligne les bords gauches Aligne les bords intrieurs droits Justifie gauche les bords intrieurs et extrieurs Ajuste la largeur Centre horizontalement Ajuste lespacement horizontal Gre lalignement personnalis Aligne les bords bas Aligne les bords droits Justifie les bords intrieurs et extrieurs Justifie droite les bords intrieurs et extrieurs Ajuste la hauteur Centre verticalement Ajuste lespacement vertical

Partie 1 : Editeur dtats

89

6.6.2 Correcteur dinterface en temps rel


Lors du dplacement dun champ dans un tat, le correcteur dinterface en temps rel (appel aussi positionnement automatique) affiche automatiquement des guides. Ces guides sont magntiss et permettent daligner le champ dplac avec les champs prsents dans l'tat. Le correcteur dinterface en temps rel est activ par dfaut. Pour dsactiver le correcteur dinterface en temps rel : 1. Slectionnez loption "Affichage .. Options .. Modifier les options" (ou appuyez sur la touche [F12]). Les options ddition de lditeur dtats saffichent. 2. Affichez longlet "Magntisme" et dcochez loption "Positionnement automatique actif".

6.6.3 Zoom
Pour obtenir un alignement irrprochable de vos champs, ralisez un zoom sur votre tat. Pour spcifier un facteur de zoom prcis : soit slectionnez loption "Affichage .. Zoom..." et choisissez le facteur de zoom. soit saisissez directement le facteur de zoom dans la barre de messages.

Pour raliser un zoom : 1. Appuyez sur la touche [Ctrl]. 2. Modifiez le facteur de zoom avec la roulette de la souris tout en maintenant la touche [Ctrl] enfonce.

6.6.4 Rgles et repres


Sous l'diteur dtats, lors de la cration ou de la modification d'un tat, il est possible de faire apparatre des rgles d'alignement. Dans ces rgles, des guides magntiques sont affichs : tout champ approch d'un guide est automatiquement "attir" par celui-ci. Ce magntisme permet d'utiliser les guides pour faciliter le positionnement, l'alignement ou le redimensionnement des champs de ltat. Les rgles sont affiches par l'option "Affichage .. Rgles" ([Ctrl]+[R]). Deux types de guides peuvent alors tre utiliss : - les guides, permettant d'aligner et de disposer les champs l'intrieur des tats. - les guides de bordure, permettant de dterminer une marge de taille identique de chaque ct de ltat.
Repres Repres de bordure

Guides

90

Partie 1 : Editeur dtats

Remarque : Loption "Guide visible" du menu contextuel des rgles permet de visualiser ltat avec ou sans ses guides. Visibles ou non, les guides sont toujours actifs : un champ dplac vers un repre est automatiquement accol celui-ci. Les repres sont facilement manipulables l'aide de la souris dans l'diteur dtats. Lorsque la souris survole un repre, le curseur se transforme en une double flche. Pour crer un repre : Mthode 1 : Cliquez sur une des rgles de ltat. Le repre est cr sur la graduation la plus proche. Mthode 2 : Slectionnez loption "Ajouter un repre" dans le menu contextuel (clic droit) de la rgle. Le repre est cr sur la graduation la plus proche. Pour dplacer un repre : 1. Cliquez sur le repre prsent dans la rgle. Le curseur se transforme en une double flche. 2. Faites glisser le curseur vers la nouvelle position du repre. Pour supprimer un repre, slectionnez l'option "Supprimer un repre" du menu contextuel (clic droit) dun repre. Pour supprimer tous les repres dune rgle, slectionnez loption "Tout supprimer" du menu contextuel dune rgle. Pour copier les repres et les guides : 1. Slectionnez loption "Copier les guides" du menu contextuel des rgles. 2. Ouvrez ltat dans laquelle la copie des repres et des guides doit tre effectue. 3. Affichez si ncessaire les rgles dans cet tat (option "Affichage .. Rgles"). 4. Slectionnez loption "Coller" dans le menu contextuel des rgles. Les repres de bordure permettent d'tablir une "marge" dans ltat en cours. Les repres de bordure sont situs l'extrmit des rgles. Pour dplacer la marge gauche ou droite de ltat, pointez sur la rgle horizontale sur un repre de bordure. Lorsque le curseur prend la forme d'une double flche, faites glisser la marge. Pour dplacer la marge du haut ou du bas de ltat, pointez sur la rgle verticale sur un repre de bordure. Lorsque le curseur prend la forme d'une double flche, faites glisser la marge. Remarques : Les repres de bordure ne peuvent tre supprims. Pour ignorer les bordures dans un tat, les repres de bordure peuvent tre rduits au minimum. Les repres de bordure opposs sont solidaires : le dplacement d'un repre de bordure entrane le dplacement du repre de bordure oppos.

6.6.5 Grille magntique


La grille magntique facilite le positionnement et l'alignement des champs dun tat. La taille de la grille est exprime en centimtres. Pour afficher la grille sous l'diteur d'tats, utilisez l'option "Affichage .. Grille Visible". Pour utiliser le magntisme de la grille, utilisez l'option "Affichage .. Grille Active". Lorsque la grille est en fonctionnement (magntisme activ), elle peut tre temporairement dsactive en maintenant la touche [Shift] enfonce lors des dplacements. De mme, lorsque la grille est dbranche (magntisme dsactiv), elle peut tre temporairement active l'aide de la touche [Shift]. Partie 1 : Editeur dtats 91

6.7 Manipuler les champs par programmation


6.7.1 Traitements des champs dun tat
Les traitements associs aux champs d'un tat sont les suivants : Traitements Initialisation Conditions d'excution Excut lors de linitialisation de ltat. L'ordre d'excution des traitements au lancement d'un tat (y compris lors d'un test) est le suivant : traitement "Ouverture" de l'tat. traitement "Initialisation" des blocs de l'tat. traitement "Initialisation" des champs. Excut avant limpression du champ. Excut lors dun clic de souris sur le champ (uniquement dans laperu avant impression. Une toile permet l'utilisateur d'identifier simplement les champs clicables Excut lors de l'entre du curseur de saisie dans le champ. Ce traitement est disponible uniquement pour les champs de saisie utiliss en aperu avant impression. Excut chaque modification du contenu du champ (saisie ou effacement d'une lettre par exemple). Ce traitement est disponible uniquement pour les champs de saisie utiliss en aperu avant impression. 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.

Avant impression Clic sur

Entre dans

Modification de

Sortie de

Dans ces traitements, vous pouvez saisir du code en WLangage. Pour plus de dtails sur lenchanement de ces traitements, consultez le chapitre Enchanement des traitements associs un tat, page 132. Pour visualiser et/ou modifier les traitements d'un champ : Vous pouvez : soit slectionner le champ et appuyer sur la touche [F2]. soit slectionner le champ et slectionner l'option "Code .. Code de la slection". soit slectionner le champ et afficher le volet "Code" (option "Affichage .. Barres doutils .. Code"). soit slectionner l'option "Code" du menu contextuel du champ (clic droit sur le champ). soit cliquer l'icne "Code" de la description du champ.

6.7.2 Manipuler un champ dans un traitement WLangage


Pour manipuler un champ d'un tat dans un traitement WLangage, il suffit : soit d'utiliser directement le nom de ce champ. Cette syntaxe est valable uniquement si ce champ est manipul depuis l'tat auquel il appartient. soit d'utiliser la notation suivante : "<NomEtat>.<NomChamp>". Un champ peut tre manipul : soit dans une fonction WLangage, soit avec une proprit WLangage, soit en affectation directe. 92 Partie 1 : Editeur dtats

Par exemple :
// Modification de la couleur de fond du champ ChTotalHT // dans l'tat EtCommande ChTotalHT..CouleurFond = BleuClair // quivalent EtCommande.ChTotalHT..CouleurFond = BleuClair

6.7.3 Proprits associes aux champs dun tat


Les diffrentes proprits utilisables avec les champs dun tat sont les suivantes : Proprit Altitude CadrageHorizontal CadrageVertical Cadre Couleur CouleurFond DeviseAffichage DeviseMmoire DroiteAGauche Etat Groupe Hauteur HauteurFuture HauteurInitiale HauteurPixel Image Largeur LargeurInitiale LargeurPixel Libell MasqueSaisie Multiligne Nom Effet Permet de grer l'altitude (superposition) d'un champ. Permet de connatre et de modifier le cadrage horizontal des champs de type Libell, Calcul, Champ pr-dfini, Champ rubrique. Permet de connatre et de modifier le cadrage vertical des champs de type Libell, Calcul, Champ pr-dfini, Champ rubrique. Permet de connatre et de modifier les caractristiques du cadre d'un champ d'un tat. Permet de grer la couleur du texte d'un champ. Permet de grer la couleur de fond d'un champ. Permet de connatre et de modifier la devise utilise lors de l'affichage d'une valeur dans un champ de type "Montaire + Euro". Permet de connatre et modifier la devise utilise lors de la manipulation d'un champ de type "Montaire + Euro" Permet de connatre le sens d'criture rel, effectif sur un champ. Permet de connatre et de modifier l'tat d'un champ Permet de savoir si le champ appartient ou non un groupe de champs Permet de connatre et de modifier la hauteur d'un champ (en centimtres) Permet de connatre la hauteur future d'un champ Auto-extensible Permet de connatre la hauteur initiale d'un champ (lors de l'ouverture de l'tat) Permet de connatre et de modifier la hauteur d'un champ (en pixels) Permet de connatre et de modifier l'image de fond d'un champ Permet de connatre et de modifier la largeur d'un champ (en centimtres) Permet de connatre la largeur initiale d'un champ (lors de l'ouverture de l'tat) Permet de connatre et de modifier la largeur d'un champ (en pixels) Permet de connatre et de modifier le texte d'un champ libell Permet de connatre et de modifier le masque daffichage d'un champ Permet de savoir si un champ est multiligne et de modifier cette option Permet de connatre le nom d'un champ

Partie 1 : Editeur dtats

93

NomEtatInterne Police PoliceAlphabet PoliceBarre PoliceCondense PoliceEtendue PoliceGras PoliceItalique PoliceLarge PoliceNom PoliceSouligne PoliceTaille RubriqueAffiche SensEcriture Taille URL Valeur Vide Visible X XInitial Y YInitial

Permet de connatre et de spcifier le nom de l'tat imprim dans un champ de type "Etat Interne" Permet de connatre et de modifier les caractristiques de la police utilise dans un champ Permet de connatre et de modifier lalphabet utilis pour la police dun champ Permet de connatre et de modifier l'attribut "Barr" pour le contenu d'un champ Permet de savoir si les caractres du texte affich sont condenss ou non, et de condenser ou non les caractres du texte affich Permet de savoir si les caractres du texte affich sont tendus ou non et d'tendre ou non les caractres du texte affich Permet de connatre et de modifier l'attribut "Gras" pour le contenu d'un champ Permet de connatre et de modifier l'attribut "Italique" pour le contenu d'un champ Permet de savoir si les caractres du texte affich sont largis ou non, et d'largir ou non les caractres du texte affich Permet de connatre et de modifier la police utilise dans un champ Permet de connatre et de modifier l'attribut "Soulign" pour le contenu d'un champ Permet de connatre et de modifier la taille de la police utilise dans un champ Permet de connatre et modifier la rubrique affiche par le champ de l'tat Permet de connatre ou de modifier le sens d'criture utilis dans un champ (utile pour la gestion des langues de type arabe ou hbreux). Permet de connatre et de modifier le nombre maximum de caractres contenus dans un champ Permet de connatre et de modifier ladresse associe un champ de type URL Permet de connatre et de modifier la valeur d'un champ Permet de savoir si la valeur de la rubrique lie un champ, pour l'enregistrement en cours d'impression, est renseigne ou non Permet de savoir si un champ est visible et de rendre visible/invisible un champ Permet de connatre et de modifier l'abscisse d'un champ Permet de connatre l'abscisse initiale d'un champ (lors de l'ouverture de l'tat) Permet de connatre et de modifier l'ordonne d'un champ Permet de connatre l'ordonne initiale d'un champ (lors de l'ouverture de l'tat)

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

94

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 appels "Cellules du tableau". Gnralement, un tat contient un seul tableau. Pour afficher plusieurs tableaux dans le mme tat, il est ncessaire d'utiliser des tats internes (voir page 81) ou des tats imbriqus (voir page 104). Un tableau est constitu de trois parties : la ligne den-tte, affichant lintitul des colonnes du tableau. Cette ligne est optionnelle. Si elle est affiche, cette ligne doit tre : la premire ligne du tableau. affiche chaque nouveau tableau. Cette ligne est habituellement affiche dans un bloc Haut de page ou Haut de rupture. les lignes de donnes, affichant les informations provenant de la source de donnes. Pour chaque enregistrement prsent dans la source de donnes, une nouvelle ligne est affiche lors de lexcution de ltat. Toutes les donnes de l'enregistrement sont affiches sur une mme ligne. La ligne de donnes est habituellement associe au bloc Corps. Sous lditeur dtats, seule une ligne de donnes apparat. En excution, cette ligne de donnes est rpte autant de fois que ncessaire. 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 Bas de page. Remarque : Les diffrentes cellules des totaux ne sont pas obligatoirement places sur la mme ligne. Par exemple :

Avantage de l'utilisation de 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 automatiquement dcales. En excution, si une valeur ne peut tre totalement affiche dans une cellule d'un tableau auto-extensible, toutes les cellules de la ligne vont prendre la mme hauteur afin que la valeur puisse tre affiche entirement. Lditeur dtats propose deux types de tableaux : les tableaux simples. les tableaux croiss (tableaux deux entres). Partie 1 : Editeur dtats 95

Quelques exemples dtats avec tableaux :

Liste de produits (tableau simple)

Bon de commande listant les produits commands dans un tableau (tableau simple)

96

Partie 1 : Editeur dtats

Vente par anne et par type de produit (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 de type Tableau. Pour plus de dtails, consultez "Etat Tableau", page 29. soit directement lors de la cration dun tat de type Tableau + Graphe. Pour plus de dtails, consultez "Etat Tableau + Graphe", page 35. soit directement lors de la cration dun tat de type Tableau crois. Pour plus de dtails, consultez "Etat Tableau crois", page 36. 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, slectionnez loption "Fichier .. Nouveau .. Etat". Lassistant de cration dtat se lance. Les principales tapes de la cration dun tat de type tableau sont les suivantes : Slection du type dtat crer : le type tableau. Slection de la source de donnes de ltat. Pour plus de dtails, consultez Sources de donnes dun tat, page 46. Slection des rubriques de tri (si ncessaire). Pour plus de dtails, consultez Le tri, page 38. Slection des rubriques de rupture. Pour plus de dtails, consultez Les ruptures, page 39. 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. Slection du gabarit. Pour plus de dtails, consultez Gabarit, page 40. Partie 1 : Editeur dtats 97

7.2.2 Cration dun tat de type tableau crois


L'diteur d'tats offre la possibilit de crer des tats de type "Tableau Crois". L'tat est alors constitu uniquement d'un tableau deux entres. Pour crer un tat de type Tableau crois, slectionnez loption "Fichier .. Nouveau .. Etat". Lassistant de cration dtat se lance. 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", l'assistant propose de : - conserver uniquement le jour, le mois ou l'anne 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", l'assistant propose de : - conserver uniquement le jour, le mois ou l'anne de ces dates. - dfinir la priode prendre en compte (date de dbut et date de fin). L'information afficher dans les cellules du tableau. Cette information peut correspondre : - soit au nombre d'enregistrements correspondant l'intersection des lignes et des colonnes. Par exemple : le nombre de commandes effectues par anne et par client. Le client "Dubois" a effectu 2 commandes en 2005 et 3 en 2006. - soit la somme, la moyenne, le maximum ou le minimum d'une rubrique. Par exemple : le nombre de produits commands par produit et par anne. En 2005, 279 canaps ont t commands. - soit une rubrique. Par exemple : la note attribue par chaque juge pour un certain patineur. Aux championnats d'Europe 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 l'tat va tre imprim. Par dfaut, l'tat est imprim sur une feuille au format A4. Le gabarit de l'tat si ncessaire. Le nom et le titre de l'tat. Ce nom (nom du fichier ".WDE" correspondant l'tat) permettra didentifier l'tat dans vos applications ou vos sites.

7.2.3 Insertion dun tableau dans un tat


Un tableau peut tre insr dans tout tat qui ne contient pas dj un tableau (sauf les tats de type Etiquette). Remarque : Seul un tableau simple peut tre insr. Il n'est pas possible d'insrer un tableau crois dans un tat existant. Cet tat doit contenir au moins deux blocs : le bloc Corps et un bloc den-tte (Haut de page, Haut de rupture ou Dbut de document). Pour insrer un tableau dans un tat, utilisez loption "Champ .. Tableau .. Nouveau tableau". Lassistant de cration de tableau se lance. Selon la source de donnes en cours, il est possible : soit de slectionner les rubriques saffichant dans le tableau (tat sur fichier, requte, ...). Les rubriques slectionnes sont automatiquement intgres dans le tableau. soit de prciser les en-ttes de tableau (tat sans source de donnes, tat sur fichier texte). Dans tous les cas, la ligne den-tte du tableau est cre dans le bloc den-tte et la ligne de donnes est insre dans le bloc Corps de ltat.

98

Partie 1 : Editeur dtats

7.3 Description du tableau


Pour afficher la description du tableau, il suffit de slectionner l'option "Description du tableau" du menu contextuel d'un lment du tableau (cellule appartenant len-tte, 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. Pour plus de dtails sur les diffrentes options proposes dans cette fentre, consultez l'aide contextuelle (icne en haut droite et clic sur l'option voulue). Remarque : Pour afficher directement les caractristiques dune colonne, slectionnez les cellules de la colonne (pour plus de dtails, consultez Slectionner un lment du tableau, page 101) et slectionnez loption "Affichage .. Description de la slection".

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 affich dans la colonne est trs long).

Partie 1 : Editeur dtats

99

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 len-tte du tableau (bloc affichant len-tte), ainsi que ses caractristiques. La position et la taille du tableau sur la page. Onglet "Cadre" : Paramtrage du quadrillage du tableau Longlet "Cadre" permet de paramtrer 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 lensemble 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 fentre 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 programmation. Selon la rubrique slectionne, le type est automatiquement mis jour. Le calcul associ la colonne. Il suffit de slectionner le type de calcul effectu sur les rubriques affiches dans la colonne. Le champ calcul correspondant sera affich dans la ligne de totaux du tableau. Le type de donnes affich dans la colonne. Deux onglets sont affichs dans la partie basse si le nom de la colonne est slectionn. Ces onglets permettent de configurer les caractristiques de la colonne. Onglet "Colonne" : Paramtrage des colonnes Longlet "Colonne" permet de paramtrer les caractristiques 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 par la description du tableau. Ce paragraphe prsente comment manipuler les cellules du tableau individuellement. Les principales manipulations ralisables 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 100 Partie 1 : Editeur dtats

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.

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 de la cellule. Une colonne dun tableau : soit cliquez deux fois successivement sur une cellule de la colonne. Les poignes de slection apparaissent autour des cellules de la colonne. soit survolez len-tte 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.

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 et slectionnez l'option "Description du tableau" du menu contextuel. soit slectionnez une cellule et slectionnez l'option "Champ .. Tableau .. Description du tableau". soit cliquez trois fois successivement sur une cellule (l'ensemble 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 l'option "Ajouter une colonne existante". 4. Slectionnez la colonne o lajout doit se faire et la position du champ dans la colonne (en-tte, donnes ou total). 5. Validez l'ajout de la cellule.

7.4.4 Ajouter une colonne dans un tableau


Il est possible d'ajouter une colonne un tableau. Cette nouvelle colonne peut correspondre ou non un champ existant.

Partie 1 : Editeur dtats

101

Pour ajouter un champ existant dans un tableau en tant que colonne : 1. Slectionnez le champ. 2. Vous pouvez : soit raliser un "Drag and Drop" (glisser / dplacer) du champ vers le tableau. Aprs confirmation, une nouvelle colonne est cre la suite des colonnes existantes. La description des cellules de cette nouvelle colonne correspond au champ initial. soit slectionner loption "Ajouter au tableau" du menu contextuel du champ. Lassistant dajout au tableau se lance et permet de spcifier les caractristiques de cette nouvelle colonne. Pour insrer une nouvelle colonne : 1. Vous pouvez : soit slectionner l'option "Insrer une colonne" du menu contextuel du tableau. soit slectionner l'option "Insertion .. Nouvelle colonne". 2. Saisissez le libell de l'en-tte de la nouvelle colonne. 3. Slectionnez si ncessaire la rubrique lie la nouvelle colonne et validez l'ajout 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

102

Partie 1 : Editeur dtats

Pour redimensionner une cellule : 1. Slectionnez la cellule correspondante sous lditeur. Des poignes noires apparaissent. 2. Survolez la poigne noire correspondant au ct redimensionner. Lorsque le curseur de la souris se transforme en double flche, maintenez le bouton gauche enfonc et redimensionnez la cellule. 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, le bloc pourra galement tre redimensionn automatiquement. En effet, le curseur de la souris est diffrent en fonction de lobjet redimensionner : une petite double flche noire indique que la cellule est en cours de redimensionnement, une grande double flche verte indique que le bloc est 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 tableau. 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 par "Drag and Drop" dune cellule de la colonne sous lditeur. soit depuis la fentre de description de la table : les boutons flchs permettent de dplacer la colonne slectionne.

7.4.7 Enlever ou supprimer une colonne dun 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 peuvent tre manipules indpendamment du tableau. supprime : les cellules de la colonne ne sont plus dans le tableau, ni dans ltat. Pour enlever une colonne du tableau : 1. Slectionnez une des cellules de la colonne enlever du tableau. 2. Utilisez une des options suivantes : soit loption "Enlever du tableau" du menu contextuel du champ. soit loption "Champ .. Tableau .. Enlever du tableau". Remarque : Si la colonne enlever n'est pas situe l'extrmit gauche du tableau, l'diteur d'tats propose de raliser automatiquement le dplacement de la colonne au dbut du tableau avant d'enlever la colonne. 3. Les cellules constituant la colonne sont indpendantes et peuvent tre dplaces dans ltat. 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 options suivantes : soit la touche [Suppr] du clavier. soit loption "Supprimer" du menu contextuel du champ. soit loption "Champ .. Tableau .. Supprimer colonne". soit 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 cellule nentranera pas la suppression de la colonne mais uniquement la suppression de la cellule. Partie 1 : Editeur dtats 103

8. ETATS AVEC SAISIE


8.1 Prsentation
Lditeur d'tats 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 lutilisateur 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 d'tats. Le plus souvent, les champs de saisie sont utiliss sur les tats de type Formulaire, utilisant par exemple un PDF en fond d'tat (voir page 57).

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 Comment crer un tat?, page 28). 2. Dans les zones o une saisie doit tre effectue, crez des champs de saisie. 3. Enregistrez l'tat. 4. Lors d'une impression, l'utilisateur pourra saisir directement dans les champs de saisie. La saisie est disponible : dans l'aperu avant impression. dans les tats imprims au format PDF.

8.2.2 Caractristiques des champs de saisie


Lors de la cration d'un 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, c'est--dire le nombre maximum de caractres autoris dans le champ. Si ce paramtre correspond 0, il n'y a aucune limite. le cadrage horizontal, la valeur initiale, le style du libell et de la zone de saisie. Remarques : Champ de saisie multiligne : si l'utilisateur 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 n'est pas li une rubrique d'un fichier de donnes, une rubrique d'une requte ni une variable. Pour afficher des informations provenant d'un fichier, d'une requte ou dune variable, il est ncessaire de raliser une affectation du champ par programmation. 104 Partie 1 : Editeur dtats

Le cadre de la zone de saisie n'est pas paramtrable (paisseur, couleur, ...). Il n'est pas possible d'utiliser un type montaire (le symbole Euro n'est 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 Initialisation Avant impression Entre Sortie A chaque modification Condition d'excution Excut l'ouverture de l'tat. Excut avant l'impression du champ. Excut lors de l'entre du curseur de saisie dans le champ. Excut lors du changement de champ (touche TAB, changement de champ par la souris, ...). Excut chaque modification du contenu du champ (saisie ou effacement d'une lettre par exemple).

8.3 Saisie dans laperu avant impression (WinDev uniquement)


Lorsqu'un tat est affich en aperu avant impression, les champs de saisie sont actifs. Dans ce cas, l'utilisateur pourra saisir les informations voulues puis imprimer l'tat dans un des formats proposs. Un message est affich dans l'aperu avant impression pour informer l'utilisateur de la possibilit de saisir des informations. Par dfaut, l'utilisateur 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 l'aperu avant impression. Il est possible d'afficher par programmation des donnes provenant de la base de donnes. Il suffit de lier l'tat un fichier de donnes ou une requte, puis d'affecter la rubrique voulue au champ de saisie dans le traitement "Avant impression" du champ de saisie. Il est possible d'enregistrer par programmation des donnes modifies par l'utilisateur dans l'aperu avant impression. Prenons un exemple simple, la modification d'un enregistrement affich dans l'tat. Dans chaque champ de saisie dont la valeur doit tre modifie, il suffit de : - affecter la valeur saisie la rubrique - modifier l'enregistrement. 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 = Saisie_Nom HModifie(Client)

Partie 1 : Editeur dtats

105

8.4 Saisie dans un fichier PDF


Lorsqu'un tat est imprim dans un fichier PDF, les champs de saisie sont actifs. Dans ce cas, l'utilisateur 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 l'impression. Si l'utilisateur final possde Adobe Acrobat en version complte, les donnes saisies pourront tre enregistres au format PDF (Acrobat Reader ne permet pas d'enregistrer les fichiers PDF). Il est possible d'afficher par programmation des donnes provenant de la base de donnes. Il suffit de lier l'tat un fichier de donnes ou une requte, puis d'affecter 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 d'un formulaire au format PDF contenant plusieurs pages, il est possible de crer un tat affichant les diffrentes pages du PDF (option "Imprimer toutes les pages du PDF" dans l'onglet "Fond" de la description de l'tat). Ces pages sont visibles et modifiables sous l'diteur d'tats : il est possible de positionner les champs de saisie sur n'importe quelle page de l'tat. Pour plus de dtails, consultez Utiliser un formulaire dans un tat, page 57.

106

Partie 1 : Editeur dtats

9. ETATS IMBRIQUS
9.1 Prsentation
Les tats imbriqus permettent d'imprimer plusieurs tats (tats secondaires) dans un seul tat (tat principal). Ces tats peuvent avoir une orientation diffrente (portrait / paysage). Par exemple, l'tat principal suivant est compos de : un tat affichant les caractristiques spcifiques une commande (numro de commande, date, client, ...). un tat affichant les produits de la commande en cours.

Remarque : L'diteur d'tats permet galement d'utiliser des tats secondaires dans un tat principal grce aux champs de type "Etat interne". Pour plus de dtails, consultez le paragraphe Champ Etat Interne, page 81.

9.2 Crer un tat imbriqu


9.2.1 Principe
La cration d'un tat principal compos de plusieurs tats secondaires est ralise en plusieurs tapes : 1. Cration d'un tat principal. 2. Cration du ou des tats secondaires. Ces tats peuvent avoir une orientation diffrente de ltat principal.

Partie 1 : Editeur dtats

107

3. Impression des tats secondaires dans l'tat principal grce la fonction iImprimeEtat. Cette fonction doit tre utilise : soit dans le traitement "Avant impression" du bloc : l'tat secondaire sera imprim avant ce bloc. soit dans le traitement "Fin dimpression" du bloc : l'tat secondaire sera imprim aprs ce bloc. Si les tats imbriqus ont des orientations diffrentes, il est ncessaire de lancer limpression de ltat imbriqu dans le code "Aprs impression du bas de page". 4. Configuration de limpression des hautes et bas de pages de ltat imbriqu (fonction iHautBasPageImbriqu). Cette fonction peut tre utilise : soit dans le code douverture de ltat principal : elle sera prise en compte pour tous les tats imbriqus 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 l'tat principal. Pour plus de dtails, consultez le paragraphe Imprimer un tat imbriqu, page 109.

9.2.2 Exemple
Les manipulations ncessaires la cration d'tats imbriqus sont illustres par l'exemple suivant : L'tat "EtatCommande" est un tat bas sur le fichier "Commande". Cet tat permet d'imprimer les caractristiques de chaque commande (date de commande, numro client, montant de la commande, ...). Une rupture sur la rubrique "NumCommande" permet de sparer les diffrentes commandes. La requte "RequteProduitCommand" slectionne l'ensemble des produits d'une commande spcifie. Cette requte attend en paramtre un numro de commande. L'tat "EtatProduitCommand" est bas sur la requte "RequteProduitCommand". Cet tat imprime uniquement les produits slectionns par la requte "RequteProduitCommand". L'tat "EtatProduitCommand" correspond l'tat secondaire. Cet tat sera imprim aprs chaque rupture. 1. Crez l'tat "EtatCommande" (option "Fichier .. Nouveau .. Etat"). Cet tat correspond l'tat principal. 2. Crez la requte "RequteProduitCommand". Pour plus de dtails sur la cration dune requte, consultez Comment crer une requte?, page 165. 3. Crez l'tat "EtatProduitCommand" (option "Fichier .. Nouveau .. Etat"). Cet tat correspond l'tat secondaire. Remarque : Le bloc Bas de page de cet tat ne sera pas imprim. Pour plus de dtails sur les blocs de l'tat imbriqu imprims, consultez le paragraphe Blocs de l'tat secondaire, page 109. 4. Dans le traitement "Aprs impression" du bloc Bas de rupture de l'tat "EtatCommande", saisissez le code suivant :
// Initialiser la requte et passer en paramtre le // numro de commande en cours d'impression iInitRequteEtat(EtatProduitCommand, MaSource.NumCommande) // Imprimer l'tat imbriqu iImprimeEtat(EtatProduitCommand)

108

Partie 1 : Editeur dtats

9.3 Particularits des tats secondaires


9.3.1 Blocs de l'tat secondaire
Lors de l'impression d'un tat secondaire (grce la fonction iImprimeEtat), tous les blocs de l'tat secondaire sont imprims sauf les blocs suivants : le bloc Haut de page. le bloc Bas de page. Pour imprimer ces blocs, utilisez la fonction iHautBasPageImbriqu. Remarque : Si l'tat secondaire contient un tableau dont l'en-tte est prsent dans le bloc Haut de page, seul le bloc Bas de page ne sera pas imprim (tous les autres blocs seront imprims). Dans ce cas, le bloc Haut de page sera imprim avant la premire ligne du tableau (de l'tat secondaire).

9.3.2 Orientation des tats secondaires


Ltat secondaire et ltat principal peuvent avoir des orientations diffrentes (portrait / paysage). Ces orientations sont prises en compte dans laperu avant impression et dans limpression directe. Dans cette version, les diffrentes orientations ne sont pas gres dans les diffrents formats dexport des tats (PDF, RTF, ...).

9.3.3 Saut de page de l'tat secondaire


Les sauts de page dfinis dans un tat secondaire seront pris en compte lors de l'impression de l'tat principal.

9.3.4 Etat secondaire bas sur une requte paramtre


Si l'tat 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.

9.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique
Si l'tat secondaire est bas sur une requte manipulant une connexion spcifique, utilisez la fonction iInitRequteEtatConnexion pour excuter cette requte (et lui passer si ncessaire des paramtres). Cette fonction doit tre utilise avant la fonction iImprimeEtat.

9.4 Imprimer un tat imbriqu


Pour imprimer un tat principal compos de plusieurs tats secondaires, il suffit de : 1. Paramtrer la destination de l'impression de l'tat principal : grce la fonction iAperu (aperu avant impression, impression dans un fichier HTML, ...) dans WinDev. grce la fonction iDestination (impression dans un fichier HTML, ...) dans WebDev ou WinDev Mobile. 2. Prciser le nom de l'tat principal imprimer grce la fonction iImprimeEtat. Remarques : Si des paramtres supplmentaires doivent tre passs l'tat principal, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de l'tat. La fonction iListeEtatsImbriqus permet dobtenir la liste des tats secondaires imbriqus dans un tat principal.

Partie 1 : Editeur dtats

109

Exemple : L'tat "EtatCommande" est compos d'un tat principal et d'un tat secondaire. L'tat "EtatCommande" s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatCommande iImprimeEtat(EtatCommande)

Code WebDev :
// Paramtre la destination de limpression iDestination(iHTML, fRepWeb() + "\Etat.htm") iImprimeEtat(EtatCommande) // Envoie le fichier au navigateur FichierAffiche(fRepWeb() + "\Etat.htm")

Code WinDev Mobile :


// Paramtre la destination de limpression iDestination(iPCL, "\\MonRseau\MonImprimante") // Impression de l'tat EtatCommande iImprimeEtat(EtatCommande)

9.5 Diffrences entre les tats imbriqus et les tats internes


Les tats internes permettent galement d'imprimer 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 l'impression de l'tat imbriqu (fonction iImprimeEtat). Dans un tat interne, les tats secondaires ne peuvent pas tre des tats paramtrs. Pour plus de dtails sur les tats paramtrs, consultez Etat paramtr, page 136. Remarque : Pour simplifier l'utilisation des tats secondaires, lditeur dtats permet de crer : des tats internes. Pour plus de dtails, consultez le paragraphe Champ Etat Interne, page 81. des tats bass sur des requtes. Pour plus de dtails, consultez le paragraphe Etat sur une requte, page 47.

110

Partie 1 : Editeur dtats

10. IMPRIMER UN TAT PAR PROGRAMMATION


Dans le logiciel Etats & Requtes, il est possible dimprimer un tat : soit en lanant une impression (icne ). soit en testant ltat (icne ou option "Code .. Tester ltat"). 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, 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. lancer lexcution de cet tat.

10.1 Prsentation
Nous avons vu dans les chapitres prcdents la cration dun tat (page 28) et le test de cet tat (page 41). 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.

10.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. Les paragraphes suivants prsentent : limpression par programmation dun tat sur fichier de donnes. limpression par programmation dun tat sur une requte. limpression par programmation dun tat sur une vue HyperFileSQL. limpression par programmation dun tat sur une zone mmoire. limpression par programmation dun tat sur un champ Table. limpression par programmation dun tat sur une variable. limpression par programmation dun tat sur un fichier texte. limpression par programmation dun tat sur une requte SQL via une connexion. Partie 1 : Editeur dtats 111

Important

10.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. ... Attention : Si la destination de limpression est un fichier HTML, PDF, XML ou RTF, vrifiez les points suivants : 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 DonneIdentifiant ou HeureSys pour nommer vos tats (par exemple : NomFichier = "EtatClient" + HeureSys() + ".HTML"). Ce principe doit tre adapt et complt selon la source de donnes utilise dans chaque tat. Les paragraphes suivants prsentent : limpression par programmation dun tat sur fichier de donnes. limpression par programmation dun tat sur une requte. limpression par programmation dun tat sur une vue HyperFileSQL. limpression par programmation dun tat sur une zone mmoire. limpression par programmation dun tat sur un champ Table. limpression par programmation dun tat sur une variable. limpression par programmation dun tat sur un fichier texte. limpression par programmation dun tat sur une requte SQL via une connexion.

10.1.3 Principe dimpression en WinDev Mobile


Le principe d'impression d'un tat sous WinDev Mobile est trs simple : un fichier PCL est cr lors de l'impression de l'tat et ce fichier est ensuite envoy l'imprimante destination. Le contenu du fichier PCL est spcifique l'imprimante utilise. Pour imprimer un tat cr avec l'diteur d'tats, les tapes sont les suivantes : 1. Configuration des paramtres d'impression : Impression avec slection de l'imprimante par l'utilisateur. Impression directe sur une imprimante choisie lors du dveloppement. 2. Impression de l'tat. Ce principe doit tre adapt et complt selon la source de donnes utilise dans chaque tat. 112 Partie 1 : Editeur dtats

Remarques : Selon l'imprimante choisie pour l'impression, le rsultat de l'impression d'un tat peut tre diffrent. Sous Windows Pocket 2002, la mmoire disponible n'est pas suffisante pour raliser des impressions d'tats.
Cas 1 : Impression avec choix de limprimante par lutilisateur

Lors de l'impression, l'utilisateur choisit dans une fentre spcifique l'imprimante utiliser. Si aucune imprimante n'est rpertorie, l'utilisateur peut ajouter une nouvelle imprimante. Pour raliser ce type d'impression, il suffit de : 1. Utiliser la fonction iConfigure ou iParamtre (sans prciser de paramtres). 2. Utiliser la fonction iImprimeEtat en indiquant le nom de l'tat imprimer. Exemple : L'tat EtatClient sera imprim sur l'imprimante choisie par l'utilisateur dans la fentre de configuration de l'impression. Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines impressions ralises par cette application. Code correspondant :
// Slection de l'imprimante iConfigure() // Imprimer l'tat iImprimeEtat(EtatClient)

Cas 2 : Impression directe sur une imprimante

WinDev Mobile propose 2 modes d'impression directe sur une imprimante : impression directe en dfinissant le type d'imprimante utilis. impression sur une des imprimantes rfrences sur le Pocket PC. Impression sur un type d'imprimante Il est possible d'imprimer directement un tat sur une imprimante associe un Pocket PC. Dans ce cas, il suffit de : 1. Paramtrer la destination de l'impression avec la fonction iDestination. Il est ainsi possible de spcifier si l'impression se fait dans un fichier PCL, sur une imprimante infra-rouge, Wi-fi, Bluetooth ou rseau. 2. Utiliser la fonction iParamtre avec le paramtre "TypeImprimante" pour spcifier le type d'imprimante utiliser. L'imprimante utilise doit correspondre une des imprimantes reconnues par WinDev Mobile. 3. Imprimer l'tat avec la fonction iImprimeEtat.

Partie 1 : Editeur dtats

113

Exemple : L'tat EtatClient sera imprim sur l'imprimante de type DeskJet 350, connecte par infrarouge au Pocket PC. Code correspondant :
// Impression sur une imprimante infra-rouge iDestination(iPCL, "IRDA:") // Spcification du type d'imprimante iParamtre("TypeImprimante=DeskJet 350") // Imprimer l'tat iImprimeEtat(EtatClient)

Impression sur une imprimante rfrence sur le Pocket PC Pour imprimer sur une des imprimantes rfrences sur le Pocket PC (sans ouvrir de fentre de choix d'imprimante), il suffit de : 1. Paramtrer l'imprimante utiliser avec la fonction iConfigure. Il suffit de prciser le nom de l'imprimante utiliser. Ce nom doit correspondre un nom indiqu dans la fentre de choix des imprimantes. 2. Imprimer avec la fonction iImprimeEtat. Exemple : L'tat EtatClient sera imprim sur l'imprimante "ImpInfra" configure sur le Pocket PC. Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines impressions ralises par cette application. Code correspondant :
// Slection de l'imprimante par programmation iConfigure("ImpInfra") // Imprimer l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient)

Astuce : Les imprimantes rfrences sur un Pocket PC sont conserves dans la base de registres du Pocket PC. Pour ajouter une nouvelle configuration d'imprimante par programmation, il suffit de modifier la base de registres du Pocket PC. Pour plus de dtails, consultez laide en ligne. Les paragraphes suivants prsentent : limpression par programmation dun tat sur fichier de donnes. limpression par programmation dun tat sur une requte. limpression par programmation dun tat sur une vue HyperFileSQL. limpression par programmation dun tat sur un champ Table. limpression par programmation dun tat sur un fichier texte.

114

Partie 1 : Editeur dtats

10.2 Etat sur fichier de donnes


Limpression dun tat bas sur un fichier de donnes reprend le principe de base dcrit ci-dessus. Cependant, 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.

10.2.1 Imprimer un tat sur fichier de donnes


Pour imprimer un tat sur un fichier de donnes, il suffit de : 1. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser le nom de l'tat imprimer grce la fonction iImprimeEtat. Exemple WinDev et WinDev Mobile : L'tat "EtatClient" est un tat bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients. L'tat "EtatClient" s'imprime lors d'un clic sur le bouton "Client". Dans cet exemple, le code de clic du bouton "Client" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient)

Code WinDev Mobile :


// Slection de l'imprimante iConfigure() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient)

Exemple WebDev : L'tat "EtatClient" est un tat bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients. L'tat "EtatClient" saffiche dans un fichier PDF lors d'un clic sur le lien "Client". Le fichier PDF est ensuite affich sur le navigateur.

Partie 1 : Editeur dtats

115

Dans cet exemple, le code de clic serveur du lien "Client" est le suivant :
// Gnre un nom de fichier PDF unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)

Remarque : La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom du fichier de donnes associ l'tat.

10.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 : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. la valeur de la borne minimale de l'tat. la valeur de la borne maximale de l'tat. Exemple WinDev et WinDev Mobile : L'tat "EtatClient" est un tat born bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients dont le nom commence par la lettre "D". La borne minimale correspond "D". La borne maximale correspond "D"+hValMax. L'tat "EtatClient" s'imprime lors d'un clic sur le bouton "ClientD". Dans cet exemple, le code de clic du bouton "ClientD" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient,"D","D"+hValMax)

Code WinDev Mobile :


// Slection de l'imprimante iConfigure() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient,"D","D"+hValMax)

116

Partie 1 : Editeur dtats

Exemple WebDev : L'tat "EtatClient" est un tat born bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients dont le nom commence par la lettre "D". La borne minimale correspond "D". La borne maximale correspond "D"+hValMax. L'tat "EtatClient" s'imprime dans un fichier HTML et est envoy au navigateur lors du clic sur le bouton "ClientD". Dans cet exemple, le code de clic du bouton "ClientD" est le suivant :

// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient,"D","D"+hValMax) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)

10.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 : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. les diffrents paramtres attendus par l'tat (dans l'ordre spcifi dans l'tat). Exemple WinDev : L'tat "EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre : le texte de ce mailing saisi dans le champ de saisie "TexteMailing". la date prvue de l'envoi de ce mailing saisie dans le champ de saisie "DateEnv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client".

Partie 1 : Editeur dtats

117

Dans cet exemple : le code de clic du bouton "Imprimer" est le suivant :


// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat avec le passage des paramtres iImprimeEtat(EtatParam, TexteMailing, DateEnv)

le code de l'tat est le suivant :


// Rcupre les paramtres passs l'tat et passe // les paramtres par dfaut pour le test de l'tat PROCEDURE EtatParam(sTexte="Dfaut", sDate=DateDuJour())

Exemple WinDev Mobile : L'tat "EtatParam" correspond une facture. Cet tat attend en paramtre la date prvue de livraison saisie dans le champ de saisie "DateLiv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client". Dans cet exemple : le code de clic du bouton "Imprimer" est le suivant :
// Slection de limprimante iConfigure() // Imprimer l'tat avec le passage des paramtres iImprimeEtat(EtatParam, DateLiv)

le code de l'tat est le suivant :


// Rcupre les paramtres passs l'tat et passe // les paramtres par dfaut pour le test de l'tat PROCEDURE EtatParam(sDate=DateDuJour())

Exemple WebDev : L'tat "EtatCommande" est un tat paramtr permettant dimprimer la commande dun client identifi par son numro de client. L'tat "EtatCommande" saffiche dans un fichier PDF. Ce fichier PDF est envoy au navigateur lors d'un clic sur le bouton "Commande". Dans cet exemple : le code de clic du bouton "Commande" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"Facture_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Gnre le bon de commande iImprimeEtat(EtatCommande, CLIENT.CLCLEUNIK)

118

Partie 1 : Editeur dtats

// Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf")

le code de l'tat est le suivant :


// Rcupre les paramtres passs l'tat et passe les // paramtres par dfaut pour le test de l'tat PROCEDURE EtatCommande(nIdClient=450)

10.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 : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. la valeur de la borne minimale de l'tat. la valeur de la borne maximale de l'tat. les diffrents paramtres attendus par l'tat (dans l'ordre spcifi dans l'tat). Exemple WinDev : L'tat "EtatParam" 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 "TexteMailing". la date prvue de l'envoi de ce mailing saisie dans le champ de saisie "DateEnv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat avec passage de bornes // et de paramtres iImprimeEtat(EtatParam, "D","E", TexteMailing, DateEnv)

Partie 1 : Editeur dtats

119

Exemple WinDev Mobile : L'tat "EtatParam" 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 "DateLiv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Slection de limprimante iConfigure() // Imprimer l'tat avec passage de bornes // et de paramtres iImprimeEtat(EtatParam, "D","E", DateLiv)

Exemple WebDev : L'tat "EtatParam" correspond limpression des factures dun client spcifique pour le mois de janvier 2008. La borne minimale correspond : "01/01/2008" et la borne maximale : "31/01/2008". Cet tat attend en paramtre le numro du client concern. Cet tat saffiche dans un fichier PDF lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :

// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatParam_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat avec passage de bornes et du paramtre iImprimeEtat(EtatParam, "01012008","31012008", NumCli) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf")

10.3 Etat sur une requte


Pour imprimer un tat bas sur une requte, il faut distinguer deux cas : Etat sur une requte sans paramtre. Etat sur une requte avec paramtres. Remarques : Si des paramtres doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de l'tat imprimer. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom de la requte associe l'tat. 120 Partie 1 : Editeur dtats

10.3.1 Imprimer un tat sur requte sans paramtre


Pour imprimer un tat bas sur une requte sans paramtres, il suffit de : 1. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser le nom de l'tat imprimer grce la fonction iImprimeEtat. Par exemple : Pour imprimer l'tat "EtatRequte" sous WinDev :
// Ouverture de la fentre d'aperu iAperu() // Impression de l'tat EtatRequte iImprimeEtat(EtatRequte)

Pour imprimer l'tat "EtatRequte" sous WinDev Mobile :


// Slection de limprimante iConfigure() // Impression de l'tat EtatRequte iImprimeEtat(EtatRequte)

Pour imprimer l'tat "EtatRequte" sous WebDev, dans un fichier au format HTML :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatRequte_" + ... DateSys()+HeureSys()+".htm" // Paramtre la destination de limpression iDestination(iHTML, Fichier) // Imprime l'tat EtatRequte iImprimeEtat(EtatRequte) // Extrait le nom et lextension du fichier gnr NomFichier est une chane = fExtraitChemin(Fichier, ... fFichier+fExtension) // Envoie le fichier dans le navigateur FichierAffiche(NomFichier)

10.3.2 Imprimer un tat sur requte paramtre


Pour imprimer un tat bas sur une requte avec paramtres, il suffit de : 1. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Passer les paramtres la requte grce la fonction iInitRequteEtat. 3. Prciser le nom de l'tat imprimer grce la fonction iImprimeEtat.

Partie 1 : Editeur dtats

121

Par exemple : L'tat "EtatRequte" 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 l'impression de l'tat. Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Passer les paramtres la requte associe l'tat iInitRequeteEtat(EtatRequte, NomSocit, TypeSocit) // Imprimer la liste des socits iImprimeEtat(EtatRequte)

Code WinDev Mobile :


//Slection de l'imprimante iConfigure() // Passer les paramtres la requte associe l'tat iInitRequeteEtat(EtatRequte, NomSocit, TypeSocit) // Imprimer la liste des socits iImprimeEtat(EtatRequte)

Code WebDev :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatRequte_" + ... DateSys()+HeureSys()+".htm" // Paramtre la destination de limpression iDestination(iHTML, Fichier) // Passer les paramtres la requte associe l'tat iInitRequeteEtat(EtatRequte, NomSocit, TypeSocit) // Imprime l'tat EtatRequte iImprimeEtat(EtatRequte) // Extrait le nom et lextension du fichier gnr NomFichier est une chane = fExtraitChemin(Fichier, ... 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.

10.4 Etat sur un champ table


L'impression d'un tat sur un champ Table doit tre ralise uniquement partir de la fentre affichant le champ Table imprimer. Si le bouton n'a 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 : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 3. Prciser le nom de l'tat imprimer grce la fonction iImprimeEtat. 122 Partie 1 : Editeur dtats

Remarques : Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de l'tat imprimer. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit SlectionSeule permet de connatre et de modifier les enregistrements imprimer dans l'tat : impression de tous les enregistrements ou uniquement des enregistrements slectionns. Exemple WinDev et WinDev Mobile : L'ensemble des informations imprimer est contenu dans le champ Table "TableClient" prsent dans la fentre "FenClient". L'tat imprimer est nomm "EtatClient" et s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient)

Code WinDev Mobile :


// Slection de l'imprimante iConfigure() // Imprimer l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient)

Exemple WebDev : L'ensemble des informations imprimer est contenu dans le champ Table "TableClient" prsent dans la page "PageClient". L'tat imprimer est nomm "EtatClient" et saffiche dans un fichier PDF lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)

Partie 1 : Editeur dtats

123

10.5 Etat sur une variable


10.5.1 Imprimer un tat sur variable
Pour imprimer un tat 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 : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 4. Prciser le nom de ltat imprimer avec la fonction iImprimeEtat. Exemple WinDev et WinDev Mobile : L'tat "EtatgglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat permet d'imprimer la liste des vnements d'un agenda Google. L'tat "EtatgglEvenement" s'imprime lors d'un clic sur le bouton "Evnement". Dans cet exemple, le code de clic du bouton "Evnement" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatgglEvenement iImprimeEtat(EtatgglEvenement)

Code WinDev Mobile :


// Slection de l'imprimante iConfigure() // Imprimer l'tat EtatgglEvenement iImprimeEtat(EtatgglEvenement)

Exemple WebDev : L'tat "EtatgglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat permet d'imprimer la liste des vnements d'un agenda Google. L'tat "EtatgglEvenement" s'affiche dans un fichier PDF lors d'un clic sur le lien "Evnement". Le fichier PDF est ensuite affich sur le navigateur. Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+ ... "EtatgglEvenement_" + DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat EtatgglEvenement iImprimeEtat(EtatgglEvenement) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf")

124

Partie 1 : Editeur dtats

// Supprime le fichier fSupprime(Fichier)

Remarques : La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom de la variable associe l'tat. La variable doit avoir t cre et initialise avant de lancer l'impression de l'tat.

10.5.2 Imprimer un tat paramtr sur 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 l'impression de l'tat : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 4. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. les diffrents paramtres attendus par l'tat (dans l'ordre spcifi dans l'tat). Exemple WinDev et WinDev Mobile : Une fentre liste les agendas et leurs vnements. L'tat "EtatgglEvenement" s'imprime lors d'un clic sur le bouton "Imprimer les vnements de l'agenda". Cet tat attend en paramtre l'agenda pour lequel les vnements doivent tre lists. Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatgglEvenement // avec passage de paramtre iImprimeEtat(EtatgglEvenement, Agenda[1])

Code WinDev Mobile :


// Slection de l'imprimante iConfigure() // Imprimer l'tat EtatgglEvenement // avec passage de paramtre iImprimeEtat(EtatgglEvenement, Agenda[1])

Exemple WebDev : L'tat "EtatgglEvenement" s'affiche dans un fichier PDF lors d'un clic sur le lien "Imprimer les vnements de l'agenda". Le fichier PDF est ensuite affich sur le navigateur. Cet tat attend en paramtre l'agenda pour lequel les vnements doivent tre lists.

Partie 1 : Editeur dtats

125

Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :


// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+ ... "EtatgglEvenement_" + DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat EtatgglEvenement iImprimeEtat(EtatgglEvenement, MonAgenda) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)

Remarques : La variable doit avoir t cre et initialise avant de lancer l'impression de l'tat. Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer la variable associe l'tat.

10.6 Etat sur une vue HyperFileSQL Classic


Pour imprimer un tat sur une vue HyperFileSQL Classic, il suffit de : 1. Crer la vue HyperFileSQL avec la fonction HCreVue (ou la fonction HFusionneVue). 2. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 3. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. le nom de la vue HyperFileSQL Classic utilise. Remarques : La vue HyperFileSQL doit avoir t cre et initialise avant de lancer l'impression de l'tat. Seule une vue HyperFileSQL Classic ou HyperFileSQL Client/Serveur peut tre utilise. Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de la vue HyperFileSQL utilise. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit NomVue utilise dans le code de l'tat permet de connatre et de changer la vue HyperFileSQL associe l'tat. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le fichier de donnes de base de la vue HyperFileSQL associe l'tat.

126

Partie 1 : Editeur dtats

Exemple WinDev : L'utilisateur slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). ouvrir la fentre d'aperu avant impression (fonction iAperu). imprimer l'tat "EtatVue" (fonction iImprimeEtat). Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Cration de la vue SI PAS HCreVue("VueCommande", LIGNECDE,"*","Rfrence",... "", "", hVueExclusive + hVueInterruptible) ALORS Erreur(HErreurInfo()) SINON // Ouverture de la fentre d'aperu iAperu() // Impression de l'tat EtatVue iImprimeEtat(EtatVue,"VueCommande") FIN

Exemple WinDev Mobile : L'utilisateur slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). imprimer l'tat "EtatVue" (fonction iImprimeEtat). Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Cration de la vue SI PAS HCreVue("VueCommande", LIGNECDE,"*","Rfrence",... "", "", hVueExclusive + hVueInterruptible) ALORS Erreur(HErreurInfo()) SINON // Slection de limprimante iConfigure() // Impression l'tat EtatVue iImprimeEtat(EtatVue,"VueCommande") FIN

Exemple WebDev : Linternaute slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). visualiser l'tat "EtatVue" dans un fichier PDF (fonction iImprimeEtat).

Partie 1 : Editeur dtats

127

Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :


// Cration de la vue SI PAS HCreVue("VueCommande", LIGNECDE,"*","Rfrence",... "", "", hVueExclusive + hVueInterruptible) ALORS Erreur(HErreurInfo()) SINON // Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatVue_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime ltat EtatVue iImprimeEtat(EtatVue, "VueCommande") // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf") FIN

10.7 Etat sur zone mmoire


Pour imprimer un tat sur une zone mmoire, il suffit de : 1. Crer la zone mmoire avec la fonction MemCre. 2. Ajouter des enregistrements dans la zone mmoire avec la fonction MemAjoute et de trier si ncessaire ces enregistrements grce la fonction MemTrie. 3. Paramtrer la destination de limpression : 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, ...). 4. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. le nom de la zone mmoire utilise. 5. Supprimer la zone mmoire avec la fonction MemSupprimeTout la fin de l'impression de l'tat. Remarques : Pour optimiser les ressources utilises sur un Pocket PC, limpression dun tat bas sur une zone mmoire nest pas disponible sous WinDev Mobile. Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de la zone mmoire utilise. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit NomZoneMem utilise dans le code de l'tat permet de connatre et de changer le nom de la zone mmoire associe l'tat. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom du fichier de base de la zone mmoire associe l'tat.

128

Partie 1 : Editeur dtats

Exemple WinDev : L'utilisateur slectionne les clients auxquels une offre commerciale doit tre envoye. Le nom des clients slectionns est contenu dans le champ liste "Destinataire". Aprs avoir slectionn l'ensemble des clients, l'utilisateur clique sur le bouton "Imprimer" pour imprimer l'tat "EtatZoneMem". Lors d'un clic sur le bouton "Imprimer" : la zone mmoire "ZoneMem" est cre. le numro d'enregistrement de chaque client slectionn est rcupr et ajout dans la zone mmoire "ZoneMem". l'tat "EtatZoneMem" est imprim. la zone mmoire "ZoneMem" est dtruite. Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
nIndice est un entier // Cration la zone mmoire MemCre("ZoneMem") // Parcours de la liste Destinataire et // initialisation de la zone mmoire POUR nIndice = 1 A Destinataire..Occurrence // Recherche de l'enregistrement en cours HLitRecherche(Client, Nom, Destinataire[nIndice]) SI HTrouve(Client) ALORS // Ajout des lments dans la zone mmoire MemAjoute("ZoneMem", "", HNumEnr()) FIN FIN // Ouverture de la fentre d'aperu iAperu() // Impression de l'tat iImprimeEtat(EtatZoneMem, "ZoneMem") // Destruction de la zone mmoire MemSupprimeTout("ZoneMem")

Exemple WebDev : Linternaute slectionne les clients auxquels une offre commerciale doit tre envoye. Le nom des clients slectionns est contenu dans le champ liste "Destinataire". Aprs avoir slectionn l'ensemble des clients, linternaute clique sur le bouton "Imprimer" pour imprimer l'tat "EtatZoneMem". Lors d'un clic sur le bouton "Imprimer" : la zone mmoire "ZoneMem" est cre. le numro d'enregistrement de chaque client slectionn est rcupr et ajout dans la zone mmoire "ZoneMem". l'tat "EtatZoneMem" est affich dans un fichier PDF. la zone mmoire "ZoneMem" est dtruite.

Partie 1 : Editeur dtats

129

Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :


nIndice est un entier // Cration de la zone mmoire MemCre("ZoneMem") // Parcours de la liste Destinataire et // initialisation de la zone mmoire POUR nIndice = 1 A Destinataire..Occurrence // Recherche de l'enregistrement en cours HLitRecherche(Client,Nom,Destinataire[nIndice]) SI HTrouve(Client) ALORS // Ajout des lments dans la zone mmoire MemAjoute("ZoneMem", "", HNumEnr()) FIN FIN // Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatZoneMem_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat iImprimeEtat(EtatZoneMem, "ZoneMem") // Destruction de la zone mmoire MemSupprimeTout("ZoneMem") // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf")

10.8 Etat sur fichier texte


L'impression d'un tat sur un fichier texte est identique quel que soit le type de lecture des enregistrements (automatique ou programme). Il suffit de : 1. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser le nom de l'tat imprimer grce la fonction iImprimeEtat. Remarques : Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de l'tat imprimer. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom du fichier texte associ l'tat (dans le cas o la lecture des enregistrements est automatique). Exemple WinDev et WinDev Mobile : L'tat "EtatClient" est un tat bas sur le fichier texte "Client.TXT". Ce fichier texte contient les caractristiques des clients. L'tat "EtatClient" s'imprime lors d'un clic sur le bouton "Client".

130

Partie 1 : Editeur dtats

Dans cet exemple, le code de clic du bouton "Client" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient)

Code WinDev Mobile :


// Slection de limprimante iConfigure() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient)

Exemple WebDev : L'tat "EtatClient" est un tat bas sur le fichier texte "Client.TXT". Ce fichier texte contient les caractristiques des clients. Ce fichier est accessible depuis le serveur. L'tat "EtatClient" saffiche dans un fichier PDF lors d'un clic sur le bouton "Client". Dans cet exemple, le code de clic du bouton "Client" est le suivant :

// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)

10.9 Fonctions d'impression


Les principales fonctions intervenant dans limpression des tats sont les suivantes : Fonctions iAperu / iDestination iImprimeEtat iInitRequteEtat iHautBasPageImbriqu Effet Paramtre la destination de limpression Imprime un tat ralis avec l'diteur d'tats Initialise la requte lie l'tat (cas d'une requte paramtre) Imprime ou non les hauts et bas de page de l'tat imbriqu

Pour plus de dtails sur ces fonctions et leur utilisation, consultez laide en ligne. Remarque : Ces fonctions sont uniquement les fonctions ncessaires limpression de ltat. Dautres fonctions dimpression peuvent tre utilises pour raliser des traitements spcifiques. Ces fonctions sont prsentes dans le paragraphe Fonctions du WLangage, page 141. Partie 1 : Editeur dtats 131

11. PROGRAMMATION DUN TAT


11.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 d'un tat").

11.2 Enchanement des traitements associs un tat


Lors de l'impression d'un tat, diffrentes oprations sont ralises. L'ordre de ralisation de ces oprations est le suivant : 1. 2. 3. 4. Excution du traitement "Ouverture" de ltat Excution des traitements "Initialisation" des blocs et "Initialisation" des champs Initialisation de la source de donnes Pour les tats bass sur un fichier, une vue ou une zone mmoire : Excution du traitement "Filtre" de l'tat Excution des procdures de tri de l'tat Initialisation des marges et positionnement du mode Portrait / Paysage Redimensionnement si ncessaire de l'tat selon le format spcifi Impression du bloc Dbut de document et excution de ses traitements * Impression du bloc Haut de page et excution de ses traitements pour chaque page de l'tat * Boucle dimpression : Lecture de l'enregistrement Excution du traitement "Filtre" de l'tat (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 l'tat 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 programmes. Si OK, change de rupture et impression d'un ou de plusieurs blocs Haut et Bas de rupture. Impression du bloc Corps Remarque : Lors de l'impression d'un 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 Impression du bloc Fin de document et excution de ses traitements * Impression du bloc Bas de page et excution de ses traitements pour chaque page de l'tat * Excution du traitement "Fermeture" de l'tat

5. 6. 7. 8. 9.

10 11. 12.

132

Partie 1 : Editeur dtats

* L'ordre d'impression des blocs Dbut de document, Haut de page, Bas de page et Fin de document peut tre modifi dans l'onglet "Options" de la description de l'tat (option "Etat .. Description"). 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. Pour plus de dtails sur : les traitements associs aux blocs, consultez Traitements des blocs dun tat, page 69. les traitements associs aux champs, consultez Traitements des champs dun tat, page 92. les diffrents types de blocs, consultez Les diffrents types de blocs, page 64. les procdures de tri, consultez Procdure de tri, page 135.

11.3 Traitements associs ltat


Les diffrents traitements associs aux tats sont les suivants (ordre d'apparition sous l'diteur de code) : Ouverture Lecture des donnes Filtre Fermeture Ces traitements sont excuts lors de l'impression de l'tat.

11.3.1 Traitement "Ouverture"


Le traitement "Ouverture" est excut lors du lancement de limpression de l'tat. Exemples d'utilisation 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 l'impression (fonction iAperu ou iDestination). passer des paramtres la requte lie l'tat (fonction iInitRequteEtat). rcuprer les paramtres passs l'tat. changer la source de donnes de l'tat. Mot de passe du fichier source de l'tat Si le fichier source de l'tat est protg par un mot de passe, prcisez ce mot de passe avant louverture du fichier (grce la fonction HPasse par exemple). Si le fichier na pas t ouvert avant l'impression de l'tat, il est possible de prciser le mot de passe dans le traitement "Ouverture" de ltat. Initialisation des variables Lors de l'impression d'un tat depuis l'aperu avant impression, l'tat est automatiquement r-excut lorsque : l'utilisateur change d'imprimante. l'utilisateur utilise un des boutons de la barre de boutons (Impression en mode PDF, HTML, dans un email, ...). Dans ce cas, les donnes imprimes dans l'tat peuvent tre diffrentes de celles visualises dans l'aperu. Il est conseill d'initialiser les variables ncessaires l'tat dans le traitement "Ouverture de l'tat" plutt que dans le code du bouton qui lance l'impression. Partie 1 : Editeur dtats 133

11.3.2 Traitement "Lecture des donnes"


Le traitement "Lecture des donnes" est excut lors du parcours des enregistrements imprimer (dans la boucle dimpression), aprs la lecture de lenregistrement. Exemples d'utilisation 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 denregistrements imprimer. tats bass sur un fichier texte Pour les tats bass sur un fichier texte (avec lecture programme), le traitement "Lecture des donnes" permet de lire les enregistrements prsents dans le fichier texte pour les imprimer.

11.3.3 Traitement "Filtre"


Ce traitement est excut : lors de l'initialisation 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 l'tat. Exemples d'utilisation 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 "Filtre" 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.

11.3.4 Traitement "Fermeture"


Ce traitement est excut lorsque limpression de l'tat est termine, juste avant de fermer ltat. Ce traitement ne doit pas contenir de fonctions dimpression. Exemples d'utilisation Ce traitement permet par exemple de : connatre l'tat de l'impression en cours (fonction iStatusImpressionEtat). ouvrir une bote de dialogue.

134

Partie 1 : Editeur dtats

11.4 Traitement de rupture


Si votre tat comprend une ou plusieurs ruptures, 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 rupture). le code de rupture renvoie la valeur de la rupture. Si la valeur change, la rupture est automatiquement ralise par ltat (voir exemple ci-aprs). La valeur de la rupture peut correspondre la valeur d'une rubrique, d'un champ de l'tat, d'une variable, ... Remarque : Si la valeur de la rupture correspond la valeur d'un champ de l'tat, la valeur retourne sera fausse si ce champ est contenu dans le bloc Corps de l'tat. 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 l'identifiant du fournisseur nFournisseur = ExtraitChane(gfsLigne, 1, TAB) // Rechercher le nom du fournisseur HLitRecherchePremier(FOURNISSEUR, NumFournisseur, nFournisseur) SI HTrouve() ALORS // Initialiser le champ NomFournisseur = FOURNISSEUR.Societe FIN // Renvoyer l'identifiant du fournisseur RENVOYER nFournisseur

Important : Le code de rupture est excut uniquement si la rupture correspondante est une rupture programme (non relie un critre de tri). Pour plus de dtails sur les ruptures, consultez laide en ligne (mot-cl : "Rupture dans un tat").

11.5 Procdure de tri


Par ailleurs, 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. Pour mettre en place une procdure de tri : 1. Slectionnez l'option "Etat .. diter les tris". La liste des critres de tri de l'tat s'affiche. 2. Cliquez sur le bouton "Nouveau critre de tri". 3. Cochez l'option "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 l'ajout du nouveau critre de tri.

Partie 1 : Editeur dtats

135

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

11.6 Etat paramtr


Lors de l'impression d'un tat, il est possible de passer des paramtres cet tat. L'tat est alors appel "Etat paramtr". Par exemple, votre tat correspond un mailing publicitaire envoy tous les clients de votre socit. Avant d'excuter cet tat, le texte du mailing est saisi dans un champ. Ce texte correspond alors un paramtre attendu par l'tat.

11.6.1 Crer un tat paramtr


La cration d'un tat paramtr est compose de plusieurs tapes : 1. Cration d'un tat. 2. Modification de cet tat pour grer les paramtres : Rcupration des paramtres dans le code "Ouverture" de l'tat l'aide de la syntaxe suivante :
PROCEDURE <NomEtat>(<NomParam1>,... <NomParam2> = "<ValeurParDfautParam2>",... ... <NomParamN> = "<ValeurParDfautParamN>")

136

Partie 1 : Editeur dtats

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 : "Paramtres, Paramtres d'une procdure"). Utilisation de ces paramtres dans les champs de l'tat. 3. Modification si ncessaire de l'application ou du site afin de spcifier les diffrents paramtres. 4. Impression de l'tat avec passage des paramtres. Exemple : La programmation ncessaire la cration d'un tat paramtr est illustre par l'exemple suivant : L'tat "EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "TexteMailing". 1. Crez l'tat "EtatParam" (option "Fichier .. Nouveau .. Etat .. Mailing"). Cet tat est li au fichier "Client" de votre analyse. 2. Personnalisez cet tat. 3. Dans le traitement "Ouverture" de l'tat "EtatParam", saisissez le code suivant :
// Rcuprer le paramtre pass l'tat et // passer un paramtre par dfaut pour le test de l'tat PROCEDURE EtatParam(sTexte = "Valeur par dfaut")

4. Dans le bloc Corps de cet tat, ajoutez le champ Libell "TexteMailing" permettant d'afficher le texte du mailing. 5. Dans le traitement "Avant impression" du champ "TexteMailing", saisissez le code suivant :
// Rcuprer le texte du mailing TexteMailing = sTexte

6. Dans une fentre de l'application ou dans une page du site, ajoutez : le champ de saisie "TexteMailing" permettant l'utilisateur de saisir le texte du mailing. le bouton "Imprimer" permettant de lancer l'impression de l'tat.

11.6.2 Imprimer un tat paramtr


Pour imprimer un tat paramtr, il suffit de : 1. Paramtrer la destination de limpression : 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 l'utilisateur slectionne l'imprimante utiliser par dfaut. 2. Prciser les paramtres suivants grce la fonction iImprimeEtat : le nom de l'tat imprimer. les paramtres. Remarques : Si l'tat est bas sur une vue HyperFileSQL, le nom de cette vue HyperFileSQL doit tre indiqu dans la fonction iImprimeEtat, avant les paramtres. Pour plus de dtails, consultez Etat sur une vue HyperFileSQL Classic, page 49.

Partie 1 : Editeur dtats

137

Si l'tat 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 Etat sur une zone mmoire, page 50. Si l'tat 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 Etat born, page 47. Exemple : L'tat "EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "TexteMailing". L'tat "EtatParam" s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat avec le passage de paramtre iImprimeEtat(EtatParam, TexteMailing)

Code WinDev Mobile


//Slection de l'imprimante iConfigure() // Imprimer l'tat avec le passage de paramtre iImprimeEtat(EtatParam, libellExemplaire)

Code WebDev
// Paramtre la destination de limpression iDestination(iHTML,"EtatPM_" + DonneIdentifiant() + ".htm") // Imprime l'tat avec le passage du paramtre iImprimeEtat(EtatParam, TexteMailing) // Envoie le fichier dans le navigateur FichierAffiche("EtatPM_" + DonneIdentifiant() + ".htm")

11.6.3 Tester un tat paramtr


Pour tester un tat paramtr directement depuis l'diteur d'tats, il est conseill de donner une valeur par dfaut aux paramtres dans la dclaration des paramtres. Par exemple, pour tester l'tat de l'exemple prcdent, saisissez le code suivant dans le traitement "Ouverture" de l'tat "EtatParam" :
// Rcuprer le paramtre pass l'tat et // passer un paramtre par dfaut pour le test de l'tat PROCEDURE EtatParam(sTexte = "Valeur par dfaut")

138

Partie 1 : Editeur dtats

11.7 Manipuler un tat dans un traitement WLangage


Pour manipuler un tat dans un traitement WLangage, il suffit d'utiliser 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 l'tat "EtatParam" iImprimeEtat(EtatParam) // Modifier le nombre d'exemplaires de l'tat "Client" Client..NbCopie = 10

11.8 Mots-cls associs aux tats


Les diffrents mots-cls utilisables dans les tats sont les suivants : Mot-cl MaSource MonEtat Permet de manipuler l'tat en cours Effet Permet de manipuler la source de donnes courante

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

11.9 Proprits associes aux tats


Les diffrentes proprits des tats sont les suivantes : Proprits BasPageColl BorneMax Effet Permet grer la position du bloc de bas de page Permet de connatre et de modifier la borne maximale d'un tat bas sur un fichier (la borne maximale correspond la valeur maximale accepte pour la cl de parcours du fichier source de l'tat) Permet de connatre et de modifier la borne minimale d'un tat bas sur un fichier (la borne minimale correspond la valeur minimale accepte pour la cl de parcours du fichier source de l'tat) Permet de connatre le sens d'criture rel, effectif sur un tat. Permet de connatre et de modifier l'espacement horizontal entre les tiquettes d'un tat de type "tiquette" Permet de connatre et de modifier l'espacement vertical entre les tiquettes d'un tat de type "tiquette" Permet de connatre et de modifier ltat daffichage dun bloc dun tat Permet de connatre et de modifier la hauteur des tiquettes d'un tat de type "tiquette" Permet de savoir si l'tat en cours d'impression s'imprime en mode HTML Partie 1 : Editeur dtats 139

BorneMin

DroiteAGauche EspaceH EspaceV Etat HauteurEtiquette HTML

ImpressionAChaquePage InterfaceModifiableAvecEtatsEtRequtes LargeurEtiquette MargeBasse MargeDroite MargeHaute MargeGauche MsgTriSel NbColonne NbCopie NbEnrImprim NbEnrLu NbEnrTotal NbEtiquette NbExemplaireEtiquette Nom NomSource NomVue NomZoneMem NumEtiquetteDeDpart ODBCCodeSQL ODBCMotDePasse ODBCNomBase ODBCNomConnexion ODBCNomUtilisateur RubriqueParcourue

Permet de demander ou non l'impression d'un tat page par page Permet de savoir si l'interface d'un tat est modifiable sous le logiciel Etats & Requtes Permet de connatre et de modifier la largeur des tiquettes d'un tat de type "tiquette" Permet de connatre et de modifier la marge basse d'un tat Permet de connatre et de modifier la marge de droite d'un tat Permet de connatre et de modifier la marge haute d'un tat Permet de connatre et de modifier la marge de gauche d'un tat Permet de connatre et de modifier le message de patience affich lors du tri et de la slection des enregistrements de l'tat Permet de connatre le nombre de colonnes d'un tat. Permet de connatre et de modifier le nombre d'exemplaires imprimer Permet de connatre le nombre d'enregistrements dj imprims Permet de connatre le nombre d'enregistrements lus Permet de connatre et de modifier le nombre d'enregistrements imprimer Permet de connatre et de modifier le nombre d'tiquettes imprimes sur la largeur d'une page Permet de connatre et de modifier le nombre d'exemplaire d'tiquettes Permet de connatre le nom d'un tat Permet de connatre le nom de la source de donnes de l'tat et de changer la source de donnes de l'tat Permet de connatre le nom de la vue HyperFileSQL associe un tat Permet de connatre le nom de la zone mmoire associe un tat Permet de connatre et de modifier le numro de l'tiquette sur la planche d'tiquettes partir de laquelle l'impression est effectue Permet de connatre et de modifier le code SQL de la requte ralise sur une base de donnes accde par un driver ODBC Permet de connatre et de prciser le mot de passe associ l'utilisateur autoris accder une base de donnes via un driver ODBC Permet de connatre et de prciser le nom de la base utilise par la requte ralise sur une base de donnes accde via un driver ODBC Permet de connatre et de prciser le nom de la connexion utilise pour manipuler une base de donnes accde via un driver ODBC Permet de connatre et de prciser le nom de l'utilisateur autoris accder une base de donnes via un driver ODBC Permet de connatre et de modifier la rubrique utilise pour le parcours automatique d'un tat sur fichier

140

Partie 1 : Editeur dtats

SlectionSeule SensEcriture ToutModifiableAvecEtatsEtRequtes

Permet de connatre et de modifier le mode d'impression des lignes slectionnes dans un tat sur table Permet de connatre et de modifier le sens d'criture utilis dans un tat. Permet de savoir si un tat est entirement modifiable sous le logiciel Etats & Requtes

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

11.10 Fonctions du WLangage


La plupart des fonctions du WLangage peuvent tre utilises dans les traitements dun tat (cr avec l'diteur d'tats). Cependant, certaines fonctions sont dconseilles telles que les fonctions d'impression spcifiques l'impression en WLangage ou les fonctions d'accs aux enregistrements manipuls par l'tat.

11.10.1 Fonctions du WLangage dconseilles dans les traitements


Il est dconseill d'utiliser 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 d'impression : iEllipse, iFinImprime, iHauteurImage, iImprime, iImprimeCodeBarre, iImprimeImage, iImprimeMot, iImprimeZone, iImprimeZoneRTF, iLargeurImage, iLien, iLigne, iPosX, iPosY, iSauteLigne, iTrait, iTraitH et iTraitV. Fonctions d'accs un enregistrement : Toutes les fonctions HyperFileSQL du WLangage entranant la modification de lenregistrement en mmoire ou de lenregistrement en cours dans le fichier de base de l'tat sont dconseilles dans les traitements de ltat, du bloc ou des champs. En effet, ces fonctions risquent de modifier le parcours du fichier de base de l'tat. Ces fonctions sont principalement : HAjoute, HCration, HCrationSiInexistant, HDernier, HEcrit, HLitxxx, HModifie, HPrcdent, HPositionne, HPremier, HRaye, HRecherche, HRecule, HSuivant, HSupprime, ...

Important

Dans le logiciel Etats & Requtes, lutilisation des fonctions de modification des enregistrements (HAjoute, HModifie, HSupprime, ...) est interdite.

11.10.2 Fonctions dimpression du WLangage utilisables dans un tat


Les fonctions dimpression suivantes peuvent tre utilises dans un tat : Fonctions iAperu / iDestination iCadre iCadreArrondi iConfigure Effets Paramtre la destination de l'impression d'un tat Imprime un cadre aux coordonnes spcifies Imprime un cadre avec des bords arrondis aux coordonnes spcifies Configure l'imprimante

Partie 1 : Editeur dtats

141

iConfigureEtat

Configure l'imprimante en ouvrant directement la fentre de configuration. Cette fentre est initialise avec les paramtres choisis lors du dveloppement (orientation de l'tat, marges, ) de l'tat spcifi Cre une nouvelle police d'impression Renvoie : le nom complet du dernier fichier gnr lors de limpression (PDF, RTF, Texte, ...) la liste des fichiers duplicata crs. Envoie une commande ESCAPE une imprimante Paramtre l'affichage de la fentre permettant l'abandon de l'impression en cours Arrte immdiatement l'impression de l'tat en cours Force l'arrt de l'impression d'un tat Force l'impression d'un bloc Complment de corps Imprime ou non les hauts et bas de page de l'tat imbriqu Calcule la hauteur de la page imprimable (en millimtres) en tenant compte des marges (hautes ou bases) dfinies Calcule la hauteur disponible (en millimtres) restant sur la page en cours en tenant compte des marges (hautes ou bases) dfinies Calcule la hauteur de la police du texte imprimer (en millimtres) Calcule la hauteur ncessaire d'une zone de largeur fixe pour que l'ensemble d'un texte puisse tre imprim dans cette zone (en millimtres) Permet de savoir si l'utilisateur a demand l'abandon de l'impression du document en cours Permet de savoir si l'utilisateur a demand l'impression du document depuis l'aperu avant impression Force l'impression d'un bloc de l'tat en cours d'impression Force l'impression d'un bloc Complment de corps en spcifiant la hauteur du bloc de complment Imprime un duplicata. Imprime un tat ralis avec l'diteur d'tats (tat imbriqu) Rcupre les caractristiques de l'imprimante en cours ou de l'imprimante par dfaut Initialise la requte lie l'tat (cas d'une requte paramtre) Initialise la requte lie l'tat (cas d'une requte base sur une connexion spcifique) Calcule la largeur de la page imprimable (en millimtres) en tenant compte des marges (gauches ou droites) dfinies

iCrePolice iDernierFichier

iEscape iFentreAbandon iFermeEtat iFinEtat iForceComplment iHautBasPageImbriqu iHauteurPage iHauteurRestantePage iHauteurTexte iHauteurZone iImpressionAbandonne iImpressionDemande iImprimeBloc iImprimeComplmentCorps iImprimeDuplicata iImprimeEtat iInfoImprimante iInitRequteEtat iInitRequteEtatConnexion iLargeurPage

142

Partie 1 : Editeur dtats

iLargeurTexte iListeEtatsImprims

Calcule la largeur du texte imprimer en millimtres, en fonction de la police spcifie Renvoie la liste des tats imbriqus en cours d'impression (tats lancs par la fonction iImprimeEtat dans un des traitements de l'tat en cours d'impression) Renvoie la liste des imprimantes installes sur le poste en cours Modifie la gestion de la couleur Magenta, afin que cette couleur soit considre comme transparente ou non dans toutes les prochaines impressions Dfinit les marges "logiques" d'impression Convertit les coordonnes d'un point (exprimes en millimtres) en coordonnes systme Renvoie le numro de la colonne en cours (tats multi-colonnes). Renvoie ou initialise le numro de la page en cours d'impression Paramtre l'impression Paramtre l'affichage ou non de chaque bouton prsent dans l'aperu avant impression Configure l'imprimante en ouvrant directement la fentre de configuration. Cette fentre est initialise avec les paramtres choisis lors du dveloppement (orientation de l'tat, marges, ) de l'tat spcifi Permet de paramtrer les exportations ralises depuis l'aperu avant impression. Cette fonction permet notamment de paramtrer diffrents paramtres pour l'envoi d'emails depuis l'aperu avant impression. Fixe les options de protection du fichier PDF gnr Fixe les options du fichier XLS gnr lors de l'impression. Convertit les coordonnes d'un point (exprimes en coordonnes systme) en millimtres Slectionne la police par dfaut Slectionne l'unit utiliser pour la hauteur des polices (cres avec la fonction iCrePolice) : point DIDOT ou point PICA Rinitialise les paramtres d'impression Permet de slectionner le rpertoire dans lequel les images doivent tre gnres lors d'une impression au format HTML. Gnre un saut de page : le code correspondant est envoy dans la file d'impression de l'imprimante Cre une nouvelle police d'impression depuis la fentre standard de slection de polices de Windows Renvoie l'tat d'impression en cours

iListeImprimante iMagentaTransparent

iMarge iMMVersPica iNumColonne iNumPage iParamtre iParamtreAperu iParamtreEtat

iParamtreExport

iParamtrePDF iParamtreXLS iPicaVersMM iPolice iPoliceDidot iRAZ iRepImageHTML iSautePage iSelectPolice iStatusImpressionEtat

Partie 1 : Editeur dtats

143

iSubstBloc iTermineColonne iTerminePage

Substitue un bloc de l'tat par un autre, au cours de l'impression de l'tat Force un saut de colonne dans un tat multicolonnes. Force le passage la page suivante en cours d'impression d'un tat

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

144

Partie 1 : Editeur dtats

INDEX
3 dimensions 60

A
Ajouter Cellule dans un tableau Colonne dans un tableau Aligner Correcteur dinterface Grille magntique Options dalignement Rgles et repres Zoom Aligner des champs Aperu avant impression Assistant Cration dtat 101 101 90 91 89 90 90 89 43 29

Types de blocs Borne

64 47

C
Calcul Calculs dans un tat Caractristiques Blocs dun tat Champs dun tat Tableau Carte denregistrement Case cocher Cellule Ajouter Hauteur Largeur Redimensionner Slection Cercle Champ Aligner Calcul Caractristiques Champ hors tat Champ pr-dfini Champ RTF Code-barres Copier Copier le style Crer Dplacer Description Etat interne Forme Graphe Groupe de champs Image Interrupteur Libell Lien URL Multilangue Proprits associes Rubrique Slectionner Supprimer 74 40 66 83 99 20 80 100 101 102 102 102 101 80 72 89 74 83 88 78 76 76 87 87 85 88 83 81 80 78 85 75 80 72 81 84 93 74 86 88 145

B
Barre Doutils Bas de page Bas de rupture Bloc Bas de page Bas de rupture Caractristiques Complment de corps Corps Crer un bloc Dbut de document Description Fin de document Haut de page Haut de rupture Itration Options dimpression Paramtrage Paramtres Position Programmation Proprits associes R-ordonner Supprimer un bloc Traitements associs 21, 25 66 66 63 66 66 66 66 65 68 65 66 66 65 65 66 67 55 67 56, 69 69 71 69 68 69

Partie 1 : Editeur dtats

Traitements associs Types de champs Champ hors tat Champ table Imprimer ltat Clavier (raccourcis) Cl de parcours Code-barres Colonne Ajouter Dplacer Enlever Slectionner Supprimer Complment de corps Copier Champ Style dun champ Corps Correcteur dinterface Crer Bloc Champs Etat Etat paramtr Tableau

92 72 88 122 26 47 76 101 103 103 101 103 66 87 87 65 90 68 85 29 136 97

D
Date systme Dbut dimpression (traitement) Dbut de document Dplacer Champ Colonne (tableau) Description Blocs dun tat Champs dun tat Etat Tableau Devise affiche Devise mmorise Documents ouverts Double-Affichage 78 133 65 88 103 66 83 54 99 74, 75 74, 75 22 75

E
Editeur dtats Barre doutils Carte denregistrement 146 Partie 1 : Editeur dtats 17 25 20

Configuration Configuration minimale Documentation Fentre principale Installation Menus droulants Raccourcis clavier Version Dveloppeur Version Utilisateur Enlever une colonne (tableau) Enregistrer Etat Etat 3 Dimensions Blocs Borne Calculs Champs dun tat Cration Description Enregistrer Etat imbriqu Fermer Fonctions Format Formulaire Gabarit Imprimer Langues Marges Mot-cls associs Ouvrir Paramtr Programmation Proprits associes Rcupration Source de donnes Structure Tester Traitements Types disponibles Utiliser des tableaux Etat born Etat Etiquette Etat Fiche Etat imbriqu Etat interne Etat Mailing personnalis Etat paramtr Crer

19 19 19 21 19 22 26 18 18 103 40 13 60 63 47 40 72 29 54 40 107 56 141 40 56, 57 40 43, 111, 115 56 40 139 56 136 132 139 56 46 15 41 133 29 95 47 31 30 107 81 32 136 136

Imprimer Tester Etat sur champ table Imprimer Etat sur fichier Imprimer Etat sur fichier texte Imprimer Etat sur Formulaire Etat sur requte Imprimer Etat sur variable Imprimer Etat sur vue HyperFileSQL Imprimer Etat sur zone mmoire Imprimer Etat Tableau Etat Tableau + Graphe Etat Tableau Crois Etat Vierge Etiquette (type dtat) Excuter un tat

137 138 122 115 130 34 120 124 126 128 29 35 36 33 31 115 Haut de page Haut de rupture Heure systme HTML

G
Gabarit Graphe Type de champ Graphe + Tableau (type dtat) Grille magntique Groupe de champs Guides 40, 62 78 35 91 85 90

H
65 65 78 43

I
Image Imbriquer des tats Impression Aperu avant impression Fichier texte HTML Papier PDF RTF XML Imprimer Etat Etat paramtr Etat sur champ table Etat sur fichier texte Etat sur requte Etat sur vue HyperFileSQL Etat sur zone mmoire Sur un formulaire Insrer un tableau Interface Interrupteur Itration 75 107 43 43 43 43 43 43 43 111 137 122 130 120 126 128 56 98 21, 90 80 66

F
Fentre de code Fentre de description Fentre principale de lditeur Fermer un tat Fiche (type dtat) Fichier de donnes Imprimer ltat Fichier HTML Fichier PDF Fichier RTF Fichier texte Imprimer ltat Fichier XML Filtre (traitement) Fin de document Fin impression (traitement) Fonctions du WLangage Format de la page Forme Formulaire Intgrer dans un tat Type dtat 22 22 21 56 30 46 115 43 43 43 43, 52 130 43 134 66 134 141 40 80 56, 57 59 34

L
Lancer lditeur dtats Langues dun tat Lecture des donnes (traitement) Libell 21 56 134 72

Partie 1 : Editeur dtats

147

Libre (type dtat) Lien URL Ligne Ligne de tableau Slection Logiciel Etats et Requtes

33 81 80 101 18

M
Magntisme Mailing personnalis (type dtat) Marges dimpression Menu droulant Modle dtats Montaire + Euro Mot-cls Etats Multilangue des champs dun tat 90 32 40 21 62 74 139 84

N
Nombre de pages Numro de page 78 78

Redimensionner les cellules dun tableau 102 Rgles dalignement 21, 90 R-ordonner des blocs 69 Repres dalignement 90 Requte 47 Imprimer ltat 120 Requte indpendante 47 Requte intgre 47 Requte paramtre 48 Requte indpendante 47 Requte intgre 47 Requte paramtre 48 RTF 43, 76 Rubrique 74 Devise 74, 75 Double-affichage 74, 75 Rupture 38 Programme 135 Traitement de rupture 135

S
Slectionner un ou plusieurs champs Source de donnes de ltat Description Fichier Fichier texte Requte Source de donnes programme Table Variable WLangage Vue HyperFileSQL Zone mmoire Source de ltat Structure dun tat Style du tableau Supprimer Bloc Champ Colonne 86 54 46 52 47 53 51 49 49 50 46 15 56 68 88 103

O
Options dimpression des blocs Ouvrir un tat 67 56

P
Paramtre Blocs dun tat Etat PDF Position des blocs Pr-dfini Programmation Blocs dun tat Etat Proprits associes Blocs dun tat Champs dun tat Etats 67 136 43 56, 69 78 69 132 71 93 139

T
Table Tableau Ajouter une cellule Ajouter une colonne Caractristiques Cellule dun tableau Crer 51 95 101 101 99 100 97

R
Raccourcis clavier Rectangle Rcupration automatique 148 Partie 1 : Editeur dtats 26 80 56

Dplacer une colonne Description Description du tableau Enlever une colonne Insrer un tableau dans un tat Redimensionner les cellules Slection dun lment Style Supprimer une colonne Tableau (type dtat) Crer Tableau crois (type dtat) Crer Tester Etat Etat paramtr Trait Traitement Blocs dun tat Champs dun tat Dbut dimpression Etat Filtre Fin impression Lecture des donnes

103 99 101 103 98 102 101 56 103 29 97 36 98 41 138 80 69 92 133 133 134 134 134

Rupture Tri Type Type dtat Type de blocs Type de champs

135 38 29 64 72

V
Variable WLangage Vierge (type dtat) Visualisation de ltat en 3 dimensions Volet Vue HyperFileSQL Imprimer ltat 49 33 60 21 49 126

X
XML 43

Z
Zone mmoire Imprimer ltat Zoom 50 128 90

Partie 1 : Editeur dtats

149

150

Partie 1 : Editeur dtats

PARTIE 2 Editeur de requtes

EDITEUR DE REQUTES - SOMMAIRE


1. INTRODUCTION ................................................................................................................................. 155
1.1 Quest-ce quune requte? ......................................................................................................................... 155 1.2 Editeur de requtes ..................................................................................................................................... 157 1.2.1 Prsentation................................................................................................................................157 1.2.2 Diffrences entre lditeur de requtes intgr et le logiciel Etats & Requtes ...................157 1.2.3 Interface principale de lditeur de requtes ...........................................................................159 1.3 Menus droulants de lditeur de requtes ............................................................................................. 161 1.4 Barre doutils de lditeur de requtes ..................................................................................................... 162 1.5 Raccourcis clavier ....................................................................................................................................... 163 1.6 Requte et projet ........................................................................................................................................ 164

2. COMMENT CRER UNE REQUTE ? ..................................................................................................... 165


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

3. DESCRIPTION DUNE REQUTE ........................................................................................................... 183


3.1 Prsentation ................................................................................................................................................ 183 3.2 Fentre de description ................................................................................................................................ 183 3.2.1 Afficher la fentre de description dune requte .....................................................................183 3.2.2 Fentre de description dune requte de slection.................................................................183 3.2.3 Fentre de description dune requte compose....................................................................188 3.2.4 Fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL..........................................................................................................................................189 3.3 Caractristiques dune requte ................................................................................................................. 190 3.3.1 Rubriques utilises dans une requte de slection ................................................................190

Partie 2 : Editeur de requtes

153

3.3.2 Trier les enregistrements slectionns par une requte de slection...................................192 3.3.3 Oprations possibles dans une requte de slection .............................................................193 3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection..........................194 3.3.5 Conditions de slection..............................................................................................................195 3.3.6 Enchanement des conditions de slection..............................................................................197 3.3.7 Afficher les enregistrements correspondant une priode donne......................................199 3.3.8 Limiter le nombre denregistrements affichs dune requte de slection...........................199 3.3.9 Conserver ou non les doublons.................................................................................................200 3.3.10 Jointure entre les fichiers ........................................................................................................200 3.3.11 Synchronisation de la requte ................................................................................................201 3.4 Ouvrir, fermer et enregistrer une requte .................................................................................................201 3.5 Dossier de la requte ...................................................................................................................................202 3.6 Optimiser une requte .................................................................................................................................203

4. TESTER ET UTILISER UNE REQUTE ..................................................................................................... 205


4.1 Test de la requte ........................................................................................................................................205 4.1.1 Exporter le rsultat de la requte vers un fichier Word...........................................................207 4.1.2 Exporter le rsultat de la requte vers un fichier Excel...........................................................207 4.1.3 Exporter le rsultat de la requte vers un fichier XML ............................................................208 4.1.4 Imprimer le rsultat de la requte ............................................................................................208 4.2 Utiliser le rsultat dune requte ................................................................................................................208 4.2.1 Requte dans une fentre WinDev ou dans une page WebDev.............................................209 4.2.2 Requte dans un champ dune fentre WinDev ou dune page WebDev..............................209 4.2.3 Requte dans un tat.................................................................................................................210 4.3 Excution de la requte et manipulation du rsultat avec les fonctions du WLangage ......................211

5. REQUTE AVANCE ........................................................................................................................... 212


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

154

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 donnes. La structure de la requte dfinit les donnes manipules. Une requte peut interroger un ou plusieurs fichiers. Lditeur de requtes permet de crer trs simplement des requtes, sans avoir programmer.

Partie 2 : Editeur de requtes

155

Par exemple, pour lapplication Gestion Commerciale, vous voulez connatre : les commandes passes en mars 2006. Vous allez crer une requte qui va slectionner dans le fichier COMMANDE uniquement les commandes dont la date est comprise entre le 01/03/2006 et le 31/03/2006. La requte REQ_CommandeMars2006 interroge le fichier COMMANDE.

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

156

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 cration dune requte est trs simple et intuitive. La requte est automatiquement gnre (en code SQL optimis) 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 requtes 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 uniquement 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 permet dindiquer les diffrences entre lditeur de requtes Utilisateur et lditeur de requtes intgr.
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 du produit utilis est ncessaire lutilisation de lditeur de requtes. Elle doit tre prsente sur le port parallle ou USB 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 utilises dans des applications. Pour connatre les exemples prsentant des requtes, affichez le guide (option "? .. Consulter le guide") et 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 & Requtes, certaines manipulations sont ncessaires. Pour plus de dtails, consultez Diffuser le logiciel Etats & Requtes, page 229. Partie 2 : Editeur de requtes 157

Documentation

Le logiciel Etats & Requtes et lditeur de requtes intgr sont livrs avec la mme aide en ligne. Seul lditeur de requtes intgr est livr avec une documentation papier. Documentation papier La documentation papier (le guide que vous tenez entre les mains) 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 aux "Manuel de programmation", au "Guide dautoformation" et aux "Concepts". Aide en ligne Laide en ligne vous guide dans vos manipulations sous lditeur. Pour accder laide en ligne : soit slectionnez loption "? .. Sommaire" ou "? .. Index de laide". soit appuyez sur la touche [F1].
Installation

Installation de lditeur de requtes intgr Lditeur de requtes Dveloppeur est automatiquement install en mme temps que WinDev. Installation du logiciel Etats & Requtes Linstallation du logiciel Etats & Requtes est simple, il suffit de suivre les instructions lors de linstallation de lapplication WinDev.

158

Partie 2 : Editeur de requtes

1.2.3 Interface principale de lditeur de requtes


Pour afficher lditeur de requtes, il suffit de crer une nouvelle requte (option "Fichier .. Nouveau .. Requte") ou douvrir une requte existante (option "Fichier .. Ouvrir").

Barre doutils et menu droulant Permet un accs rapide aux principales fonctionnalits de lditeur de requtes. Il est possible de : personnaliser la barre doutils (option "Affichage .. Barres doutils .. Personnaliser les barres doutils"). afficher / masquer la barre doutils (option "Affichage .. Barres doutils .. Barre contextuelle"). dplacer la barre doutils laide de la souris. 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 dans lditeur de requtes selon un facteur de zoom spcifi : soit par loption "Affichage .. Zoom", soit laide de la souris : [Ctrl] + Roulette de la souris.

Partie 2 : Editeur de requtes

159

Volets Affiche : les raccourcis vers les principales fonctionnalits disponibles sous l'diteur en cours (volet "Commande"), les fonctionnalits les plus utilises (volet "Commande"), les lments (fichiers, rubriques, tats, champs, ...) disponibles dans le projet en cours (volet "Explorateur de projet").

Important Important
160

Dans le logiciel Etats & Requtes, seuls les lments accessibles sont lists dans le volet "Projet".

Liste des rubriques et des paramtres de la requte slectionne Si la requte est excute par programmation (fonction HExcuteRequte), lordre de passage des paramtres (cas dune requte paramtre) correspond lordre indiqu dans cette liste. Pour plus de dtails, consultez le paragraphe Requte paramtre, page 213.

Dans le logiciel Etats & Requtes, la liste des rubriques et des paramtres de la requte slectionne nest pas disponible.

Fentre de description de la requte en cours (option "Requte .. Description de la requte") 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 navigateur permet de se dplacer aisment dans cette requte. Documents ouverts Affiche un bouton pour chaque document ouvert (tats, requtes, ...) sous l'diteur. Pour afficher l'lment voulu au premier plan, il suffit de cliquer sur le "bouton" correspondant.

Partie 2 : Editeur de requtes

1.3 Menus droulants de lditeur de requtes


Les tableaux ci-aprs indiquent les actions des options des menus "Requte" et "Affichage" spcifiques lditeur de requtes.
Option Requte

Option Description de la requte Editer les paramtres Editer les liaisons/jointures Tester la requte Code SQL Retro-analyse de la requte Cohrence avec lanalyse

Action Ouvre la fentre de description de la requte. Affiche la liste des paramtres de la requte (uniquement pour les requtes paramtres). Affiche la fentre de description des jointures de la requte (si la requte est base sur plusieurs fichiers lis). Excute la requte en mode test et affiche son rsultat. Affiche le code SQL correspondant la requte sous lditeur de code. Gnre la reprsentation graphique de la requte SQL en cours Affiche la liste des incohrences entre lanalyse WinDev ou WebDev et la requte (uniquement si des modifications ont t apportes dans lanalyse et que la synchronisation de lanalyse avec le projet na pas t prise en compte). Dtermine les modifications effectuer dans lanalyse associe au projet pour optimiser la vitesse dexcution de la requte en cours Gnre un tat bas sur la requte en cours. Cre une perso-note. Une perso-note correspond un pense-bte associ un lment du projet.

Optimiser la requte Crer un tat avec cette requte Nouvelle Perso-Note

Option Affichage

Option Grille Active

Action Active la grille magntique dans lditeur. Cette grille permet de positionner les lments de la requte selon des repres verticaux et horizontaux. Affiche la grille magntique dans lditeur (affiche des repres verticaux et horizontaux). Affiche la zone dimpression. Les zones dimpressions sont dlimites par des lignes discontinues dans lditeur de requtes. Limpression du graphe de la requte sera ralise selon ces zones. Ralise un zoom dans lditeur de requtes selon le facteur de zoom spcifi. Paramtre les barres doutils affiches et linterface gnrale de WinDev ou WebDev Anime ou non les flux de la requte.

Grille Visible Zones dimpression

Zoom Barres doutils Animation du flux

Remarque : Les options ddition de lditeur de requtes sont accessibles par loption de menu "Outils .. Options .. Options de lditeur de requtes".

Partie 2 : Editeur de requtes

161

1.4 Barre doutils de lditeur de requtes


La barre doutils de lditeur de requtes est la suivante :

Edite la description de la requte Edite les conditions de slection Edite les tris Edite les proprits avances Edite les paramtres de la requte paramtre Affiche le code SQL associ Edite les options de configuration de lditeur de requtes Affiche ou masque la grille Optimise laffichage de la requte Rtro-analyse de la requte Cre un tat bas sur la requte en cours Optimise la requte en cours Optimise les requtes du projet

Cette barre doutils peut tre active ou rendue invisible par loption "Affichage .. Barres doutils ...".

162

Partie 2 : Editeur de requtes

1.5 Raccourcis clavier


Voici les principaux raccourcis clavier utilisables sous lditeur de requtes : Afficher la liste des classes dans le volet "Visualisation de code" Afficher la liste des procdures globales dans le volet "Visualisation de code" Afficher le code SQL dans le volet "Code" Aide Annuler la dernire action Arrter le mode test (lors de test du projet ou de la requte) Coller le contenu du presse-papiers Copier l'lment slectionn Couper l'lment slectionn Shift + F8 Ctrl + F8 F2 F1 Ctrl + Z Shift + F5 Ctrl + V ou Shift + Inser Ctrl + C ou Ctrl + Inser Ctrl + X ou Alt + Suppr

diter le code associ la requte slectionne dans le volet "Visualisation de Ctrl + Shift + F2 code" Enregistrer Enregistrer sous Enregistrer tout Fermer tout Imprimer le dossier concernant la requte en cours Masquer tout (volets verticaux et horizontaux) Nouveau (Cration d'un lment) Ouvrir (Ouverture d'un lment) Ouvrir un projet Rtablir (Restaurer la dernire action) Slectionner tout Supprimer la slection Tester la requte en cours Zoom + / Attention : + signifie que les touches doivent tre utilises simultanment.

Ctrl + S Ctrl + Shift + S Alt + S Ctrl + Shift + W Ctrl + P Ctrl + W Ctrl + N Ctrl + O Ctrl + Shift + O Ctrl + Y ou Ctrl + Shift + Z Ctrl + A Suppr F9 Ctrl + roulette de souris

Partie 2 : Editeur de requtes

163

1.6 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 ou WebDev. 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 ou WebDev 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.

Analyse

Requte

Projet

Requtes

Fentres

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.

164

Partie 2 : Editeur de requtes

2. COMMENT CRER UNE REQUTE ?


2.1 Prsentation
Pour crer une requte, lditeur de requtes propose deux mthodes : cration de la requte laide dun assistant ou dune fentre de description, et gnration automatique du code SQL. saisie du code SQL. Pour plus de dtails, consultez le paragraphe Requte en code SQL, page 176. Lditeur de requtes permet de crer plusieurs types de requtes : Requte de slection : Permet de visualiser une slection denregistrements provenant dune base de donnes. Pour plus de dtails, consultez Requte de slection, page 166. Requte dinsertion : Permet dajouter des enregistrements dans un fichier dune base de donnes. Pour plus de dtails, consultez Requte dinsertion, page 168.

Important Important Important

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

Requte de modification : Permet de modifier des enregistrements dans un fichier dune base de donnes. Pour plus de dtails, consultez Requte de modification, page 170.

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

Requte de suppression : Permet de supprimer des enregistrements dans un fichier dune base de donnes. Pour plus de dtails, consultez Requte de suppression, page 172.

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

Requte compose : Permet de combiner des requtes de slection. Pour plus de dtails, consultez Requte compose, page 174. Remarque : Tous les types de requtes peuvent tre bass sur des rubriques appartenant : soit un fichier dcrit dans l'analyse. soit une requte prcdemment cre. Requtes dinsertion, de modification et de suppression : La possibilit de crer des requtes dinsertion, de modification et de suppression est supporte pour compatibilit avec la norme SQL. Lutilisation des ordres WLangage natifs (fonctions HLitPremier, HLitSuivant, HAjoute, HModifie, HSupprime, ...) est beaucoup plus adapte la programmation de ce type de traitement. Partie 2 : Editeur de requtes 165

SQL est un langage de requte destin linterrogation des donnes, mais nest pas adapt aux modifications 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 ou WebDev sont irremplaables et fortement conseilles. Rappel : Le logiciel Etats & Requtes ne permet pas de crer : des requtes dinsertion. des requtes de modification. des requtes 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 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, ...). Les paragraphes suivants prsentent les diffrents types de requtes et leur mode de cration.

2.2 Requte de slection


2.2.1 Prsentation
Une requte de slection (ordre SQL correspondant : SELECT) permet de raliser une slection denregistrements dans une base de donnes. Cest le type de requte le plus utilis. Pour raliser cette slection, les informations ncessaires 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 suprieur 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 des rubriques rsultat de la requte (rsultat tri par codes postaux, par prix, ...). Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190. Par exemple, vous voulez obtenir la somme totale des commandes par client habitant en Cte-dOr (21). Seuls les clients ayant un cumul de commandes suprieur 3000 Euros seront conservs. Le rsultat sera tri par ordre croissant du cumul des commandes.

166

Partie 2 : Editeur de requtes

Important

Pour raliser cette requte, le rsultat sera automatiquement regroup par nom du client, par code postal et par ville.

Source de donnes de la requte

Jointures (pour plus de dtails, voir page 200)

Conditions de slection (pour plus de dtails, voir page 195) Tri des enregistrements (pour plus de dtails, voir page 192)

Rubriques rsultat de la requte

Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
SELECT CLIENT.NomClient AS NomClient, CLIENT.CodePostal AS CodePostal, CLIENT.Ville AS Ville, SUM(COMMANDE.TotalTTC) AS la_somme_TotalTTC FROM CLIENT, COMMANDE WHERE CLIENT.NumClient = COMMANDE.NumClient AND CLIENT.CodePostal LIKE '21%' GROUP BY CLIENT.NomClient, CLIENT.CodePostal, CLIENT.Ville HAVING SUM(COMMANDE.TotalTTC) > 3000 ORDER BY la_somme_TotalTTC ASC

Partie 2 : Editeur de requtes

167

2.2.2 Cration dune requte de slection


Pour crer une nouvelle requte de slection : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte de slection (option "Slectionner (SELECT)"). 3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. 4. Validez lcran de lassistant. La fentre de description de la requte saffiche. Cette fentre permet de dcrire compltement votre requte. Cette fentre est dtaille dans le paragraphe Fentre de description dune requte de slection, page 183.

Important Important
168

Dans le logiciel Etats & Requtes, lassistant de cration pose toutes les questions ncessaires la cration dune requte.

5. Aprs validation de la description de votre requte, la reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. 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". Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". 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 d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.

2.3 Requte dinsertion


2.3.1 Prsentation
Une requte dinsertion (ordre SQL correspondant : INSERT) permet dajouter des enregistrements dans un fichier dune base de donnes.

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

Pour raliser cette insertion, les informations ncessaires sont les suivantes : le fichier dans lequel des donnes vont tre insres. les rubriques dans lesquelles de nouvelles valeurs vont tre insres.

Partie 2 : Editeur de requtes

Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190. Par exemple, cration dun nouveau client dans le fichier "Client".

Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
INSERT INTO Client ( Civilite, NomClient, Adresse1, CodePostal, Ville ) VALUES( 'Melle.', 'Montgomery', '15 rue Jacques Prvert', '21000', 'DIJON' )

2.3.2 Cration dune requte dinsertion


Pour crer une nouvelle requte dinsertion : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte dinsertion (option "Ajouter (INSERT)"). 3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. Validez lcran de lassistant. 4. Slectionnez le fichier de donnes dans lequel des donnes vont tre insres. Passez lcran suivant. 5. Cliquez sur la colonne "Valeur/Paramtres" des rubriques pour lesquelles de nouvelles valeurs vont tre insres. Une fentre permettant de slectionner la valeur ou le paramtre insrer s'ouvre. 6. Spcifiez la valeur ou le paramtre contenant la valeur insrer. Les nouvelles valeurs insrer peuvent correspondre : soit la valeur par dfaut dfinie dans l'analyse WinDev ou WebDev. soit une valeur spcifique. Dans ce cas, prcisez cette valeur. soit une valeur contenue dans un paramtre. Dans ce cas, prcisez le nom du paramtre. Partie 2 : Editeur de requtes 169

soit une valeur nulle. 7. Validez votre choix. 8. Rptez les oprations 5 7 pour chaque rubrique pour laquelle une valeur doit tre insre. Passez ensuite lcran suivant de lassistant. 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. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 11. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Pour modifier lensemble des caractristiques dune requte, slectionnez loption "Requte .. Description de la requte". Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". 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 d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.

2.4 Requte de modification


2.4.1 Prsentation
Une requte de modification (ordre SQL correspondant : UPDATE) permet de modifier des enregistrements dans un fichier dune base de donnes.

Important
170

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

Pour raliser cette modification, les informations ncessaires 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 modifier (clients habitant Nantes, produits dont le prix est suprieur 40 Euros, ...). Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190.

Partie 2 : Editeur de requtes

Par exemple, la cliente N 45762 s'est marie. Sa civilit et son nom de famille ont t modifis.

Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
UPDATE Client SET Civilite = 'Mme.', NomClient = 'Vauvert' WHERE Client.NumClient = 45762

2.4.2 Cration dune requte de modification


Pour crer une nouvelle requte de modification : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte de modification (option "Modifier (UPDATE)"). 3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. Passez lcran suivant de lassistant. 4. Slectionnez le fichier de donnes dans lequel des donnes vont tre modifies. Passez lcran suivant de lassistant. 5. Pour chaque rubrique dont la valeur doit tre modifie, cliquez sur la colonne "Valeur/Paramtres". Une fentre permettant de slectionner la valeur ou le paramtre modifier s'ouvre. 6. Spcifiez la valeur ou le paramtre contenant la nouvelle valeur de la rubrique. Les valeurs modifies peuvent correspondre : soit la valeur par dfaut dfinie dans l'analyse WinDev ou WebDev. Partie 2 : Editeur de requtes 171

soit une valeur spcifique. Dans ce cas, prcisez cette valeur. soit une valeur contenue dans un paramtre. Dans ce cas, prcisez le nom du paramtre. soit une valeur nulle. 7. Validez votre choix. 8. Rptez les oprations 5 7 pour chaque rubrique pour laquelle une valeur doit tre modifie. 9. Dfinissez les conditions de slection. Pour plus de dtails sur les conditions de slection dune requte, consultez le paragraphe Conditions de slection, page 195. Passez lcran suivant 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. 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 habitant Brest. Passez lcran suivant 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. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 13. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". 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 d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.

2.5 Requte de suppression


2.5.1 Prsentation
Une requte de suppression (ordre SQL correspondant : DELETE) permet de supprimer des enregistrements dun fichier dans une base de donnes.

Important
172

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

Partie 2 : Editeur de requtes

Pour raliser cette suppression, les informations ncessaires sont les suivantes : 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, ...). Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190. Par exemple, suppression des commandes passes avant le 1er janvier 2000.

Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
DELETE FROM COMMANDE WHERE COMMANDE.DateCommande < '20000101'

2.5.2 Cration dune requte de suppression


Pour crer une nouvelle requte de suppression : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte de suppression (option "Supprimer (DELETE)"). 3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. Passez lcran suivant de lassistant. 4. Slectionnez le fichier de donnes dans lequel des donnes vont tre supprimes. Passez lcran suivant de lassistant. 5. Dfinissez les conditions de slection. Pour plus de dtails sur les conditions de slection dune requte, consultez le paragraphe Conditions de slection, page 195. Passez lcran suivant de lassistant.

Partie 2 : Editeur de requtes

173

6. 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 habitant Brest. Passez lcran suivant de lassistant. 7. Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra didentifier la requte dans vos programmes. 8. Spcifiez le libell de la requte. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 9. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". 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 d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.

2.6 Requte compose


2.6.1 Prsentation
Les requtes composes permettent de combiner plusieurs requtes de slection (instruction SELECT). 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 Nice. 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).

174

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 rubriques 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 Nice n'apparatront qu'une seule fois dans le rsultat de la requte.

Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.NomClient LIKE 'A%' UNION SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.Ville LIKE 'Nice'

Pour que les personnes qui sont la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Nice apparaissent plusieurs fois dans le rsultat de la requte, le code SQL sera le suivant :
SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.NomClient LIKE 'A%' UNION ALL SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.Ville LIKE 'Nice'

2.6.2 Cration dune requte compose laide de la fentre de description


Pour crer une nouvelle requte compose laide de la fentre de description : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte compose (option "Unir (UNION)").

Partie 2 : Editeur de requtes

175

3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. 4. Validez lcran de lassistant. La fentre de description de la requte saffiche. Cette fentre vous permet de dcrire compltement votre requte. Remarque : Cette fentre est prsente dans le paragraphe Fentre de description dune requte compose, page 188. 5. Saisissez le nom et le libell de la requte. 6. Slectionnez les requtes de slection qui serviront lunion (cadre de gauche). Remarque : Les rubriques rsultat de la requte compose seront celles de la premire requte excute. 7. Prcisez si les doublons doivent tre conservs ou non (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 automatiquement sous lditeur de requtes. 10. Slectionnez loption "Fichier .. Enregistrer" pour sauvegarder la requte. Remarque : Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant.

2.7 Requte en code SQL


Les paragraphes prcdents ont prsent comment raliser une requte laide de lassistant. Lditeur de requtes offre galement la possibilit de crer une requte directement en code SQL (si vous matrisez ce langage). Dans le logiciel Etats & Requtes, les commandes SQL suivantes ne sont pas autorises : INSERT UPDATE DELETE

2.7.1 Cration dune requte en code SQL


Pour crer une requte en code SQL : 1. Slectionnez loption "Fichier .. Nouveau .. Requte". Lassistant de cration dune requte se lance. 2. Choisissez de crer une requte en saisissant directement le code SQL (option "Saisir le code SQL"). 3. Si votre projet nest pas li une analyse WinDev ou WebDev, 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 est dfini 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 176 Partie 2 : Editeur de requtes

Important

conditions de slection seront pris en compte lors de la rtro-analyse de la requte : les autres commentaires seront automatiquement supprims. Les commentaires sur les conditions de slection paramtres 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.NunClient FROM CLIENT WHERE WL.Gauche(Client.CodePostal,2)=34

8. Sauvegardez le code SQL (option "Fichier .. Enregistrer"). 9. Cliquez sur licne pour reprsenter graphiquement la requte (ou slectionnez loption "Requte .. Rtro-analyse de la requte"). Attention : Cette fonctionnalit est disponible uniquement si les commandes SQL utilises dans la requte sont reconnues par le moteur HyperFileSQL. Pour connatre ces commandes, consultez Commandes SQL disponibles, page 177.

2.7.2 Modes dexcution dune requte en code SQL


Lditeur de requtes permet d'excuter simplement des requtes en code SQL. Ces requtes peuvent tre : soit saisies directement sous l'diteur de requtes. La requte est alors excute avec la fonction HExcuteRequte. soit directement saisies dans la fonction HExcuteRequteSQL dans lditeur de code. Deux modes d'excution des requtes SQL sont disponibles : Excution d'une requte SQL avec vrification du code SQL : Cette option est disponible par dfaut pour toutes les requtes SQL excutes depuis WinDev, WinDev Mobile ou WebDev. Le code SQL de la requte doit utiliser uniquement les commandes listes ci-dessous. Dans ce cas, le moteur HyperFileSQL effectue une vrification du code SQL de la requte. Excution d'une requte SQL sans vrification du code SQL (utilisation de la constante hRequteSansCorrection) : Cette option est conseille pour les requtes excutes via un accs natif ou OLE DB. Dans ce cas, le moteur HyperFileSQL n'effectue 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 commandes SQL supportes par la base de donnes accde sont utilisables. Remarque : La constante hRequteSansCorrection est galement disponible lors du test d'une requte depuis 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.3 Commandes SQL disponibles


Les "commandes SQL" (instructions, fonctions, clauses, ...) utilisables dans une requte SQL vrifie par le moteur HyperFileSQL sont les suivantes : ALL Utilis avec l'instruction SELECT : Slectionne tous les enregistrements Utilis avec l'oprateur UNION : Slectionne les enregistrements communs Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212. Ajoute des mois la date spcifie

ADD_MONTH

Partie 2 : Editeur de requtes

177

AS ASC ASCII AVG AND

Cre un alias pour chaque rubrique et chaque fichier utilis Utilis avec la clause ORDER BY : dfinit l'ordre ascendant Renvoie le code ASCII dun caractre ou du premier caractre dune chane. Calcule la moyenne d'un ensemble de valeurs Combine plusieurs conditions de slection (l'une et l'autre) Pour plus de dtails, consultez le paragraphe Enchanement des conditions de slection, page 197 Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Slectionne des enregistrements dont la valeur d'une rubrique appartient une plage de valeurs Renvoie la chane de caractres reprsentant "entier" en binaire Renvoie uniquement les n derniers enregistrements du rsultat d'une requte Evalue une liste de conditions et renvoie lun des rsultats possibles. Renvoie la racine cubique d'un nombre. Renvoie la valeur arrondie par excs d'un nombre Renvoie la taille (le nombre de caractres) d'une expression Renvoie la taille (le nombre de caractres) d'une expression Retourne la premire expression non nulle parmi ses arguments Concatne plusieurs chanes entre elles Renvoie le nombre d'enregistrements prsents dans un fichier ou dans un groupement d'enregistrements Permet de dcrire un fichier de donnes et de le crer. Convertit en degrs un angle exprim en radians. Supprime des enregistrements d'un fichier Utilis avec la clause ORDER BY : Dfinit l'ordre descendant Utilis avec l'instruction SELECT : Supprime les enregistrements dupliqus (doublons) du rsultat de la requte Effectue une division entire. Permet de supprimer un fichier de donnes physiquement Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Utilis avec linstruction SELECT : Dfinit les fichiers utiliss Utilis avec l'instruction DELETE : Dfinit les fichiers utiliss Classe une slection d'enregistrement par groupe

ANY BETWEEN BIN BOTTOM CASE CBRT CEIL / CEILING CHAR_LENGTH CHARACTER_LENGTH COALESCE CONCAT COUNT CREATE TABLE DEGREES DELETE DESC DISTINCT DIV DROP TABLE EXISTS FULL OUTER JOIN FROM GROUP BY 178

Partie 2 : Editeur de requtes

HAVING HEX IN

Permet de spcifier une ou plusieurs conditions sur des groupes d'enregistrements gnrs par la clause GROUP BY Renvoie en hexadcimal un entier (exprim en base 10). Slectionne des enregistrements dont les valeurs correspondent une liste de valeurs spcifie Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Ralise une jointure interne. Pour plus de dtails, consultez laide en ligne Ajoute un enregistrement dans un fichier de donnes Permet dajouter les enregistrements renvoys par une requte SELECT dans un fichier de donnes. Renvoie la position d'une chane de caractres Utilis avec l'instruction INSERT : Dfinit le fichier utilis Slectionne des enregistrements pour lesquels la valeur d'une rubrique est nulle Calcule la date du dernier jour du mois spcifi Retourne le dernier identifiant automatique calcul. Extrait les premiers caractres du contenu d'une rubrique de fichier ou d'une chane de caractres Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Renvoie la taille (le nombre de caractres) du contenu d'une rubrique ou d'une chane de caractres Renvoie la taille (le nombre de caractres) du contenu d'une rubrique ou d'une chane de caractres Slectionne des enregistrements pour lesquels la valeur d'une rubrique correspond une valeur spcifie (avec des caractres gnriques) Permet de limiter le nombre denregistrements retourns par la commande SELECT. Convertit en minuscules le contenu d'une rubrique ou une chane de caractres 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. Renvoie une chane de caractres : soit sans les espaces situs gauche. soit sans une liste de caractres. Permet de faire une requte sur un index full-text. Renvoie lindice de pertinence de lenregistrement trait.

INNER JOIN INSERT INSERT avec slection INSTR INTO IS NULL IF NULL LAST_DAY LAST_INSERT_ID LEFT LEFT OUTER JOIN LEN LENGTH LIKE LIMIT LOWER LPAD

LTRIM

MATCH ... AGAINST

Partie 2 : Editeur de requtes

179

MAX MID MIN MONTHS_BETWEEN NEW_TIME NEXT_DAY NOT

Renvoie la plus grande valeur d'une rubrique pour tous les enregistrements slectionns dans le fichier Extrait une sous-chane, partir d'une position donne Renvoie la plus petite valeur d'une rubrique pour tous les enregistrements slectionns dans le fichier Renvoie le nombre de mois entre deux dates Renvoie la date aprs conversion du fuseau horaire Renvoie le premier jour de la semaine suivant la date ou le jour spcifi Inverse la signification de l'oprateur logique utilis Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Remplace les valeurs nulles de la colonne par une valeur de substitution Renvoie en octal un entier (exprim en base 10) Renvoie la taille (le nombre de caractres) d'une expression Utilis lors de la cration d'une jointure. Pour plus de dtails, consultez laide en ligne Combine plusieurs conditions de slection (l'une ou l'autre) Pour plus de dtails, consultez le paragraphe Enchanement des conditions de slection, page 197 Trie les enregistrements slectionns Renvoie la position de la premire occurrence d'une chane de caractres Renvoie la position d'une chane de caractres dans une expression Convertit en radians un angle exprim en degrs. Renvoie un nombre alatoire compris entre 0.0 et 1.0 (inclus). Renvoie une chane de caractres : soit en remplaant toutes les occurrences d'un mot prsent dans une chane par un autre mot. soit en remplaant toutes les occurrences d'un mot prsent dans une chane. Extrait les derniers caractres du contenu d'une rubrique de fichier ou d'une chane de caractres Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Renvoie la date arrondie au format spcifi 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.

NVL OCT OCTET_LENGTH ON OR

ORDER BY PATINDEX POSITION RADIANS RANDOM REPLACE

RIGHT RIGHT OUTER JOIN ROUND RPAD

180

Partie 2 : Editeur de requtes

RTRIM

Renvoie une chane de caractres : soit sans les espaces situs droite. soit sans une liste de caractres Recherche des enregistrements dans un ou plusieurs fichiers Utilis avec l'instruction UPDATE : Dfinit les noms des rubriques utilises Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Renvoie la valeur phontique Renvoie la valeur phontique (adapt au franais) Extrait une sous-chane, partir d'une position donne Extrait une sous-chane, partir d'une position donne Renvoie la somme totale des valeurs d'une rubrique pour tous les enregistrements slectionns dans le fichier Renvoie la date et l'heure courante Renvoie uniquement les n premiers enregistrements du rsultat d'une requte Renvoie une chane de caractres en remplaant tous les caractres indiqus par d'autres caractres 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. Renvoie la date tronque au format spcifi Renvoie la valeur entire dfinie par la norme Unicode du premier caractre de l'expression indique. Ralise des requtes composes Met jour des enregistrements d'un fichier Convertit en majuscules le contenu d'une rubrique ou une chane de caractres Gnre un UUID (Identifiant Unique Universel). Un UUID est un entier sur 128 bits reprsent en hexadcimal sous forme d'une chane de caractres de la forme aaaaaaaa-bbbb-cccc-ddddeeeeeeeeeeee. Un UUID est garanti comme tant unique chaque appel de la fonction. Utilis avec l'instruction INSERT : Dfinit les valeurs ajoutes Permet de spcifier la ou les condition(s) de slection d'une requte Partie 2 : Editeur de requtes 181

SELECT SET SOME SOUNDEX SOUNDEX_LIKE SOUNDEX2 SOUNDEX2_LIKE SUBSTR SUBSTRING SUM SYSDATE TOP TRANSLATE TRIM

TRUNC UNICODE UNION UPDATE UPPER UUID

VALUES WHERE

Pour plus de dtails sur ces commandes SQL et leur utilisation, consultez laide en ligne. Si votre base de donnes utilise des mots-cls SQL spcifiques, vous pouvez directement saisir le code de la requte.

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 (option "Fichier .. Nouveau .. Requte") : Cette mthode a t dtaille dans les paragraphes prcdents. Cette requte correspond un lment (fichier ".WDR") et peut tre utilise comme source de donnes dun tat, dun champ dune fentre ou dune page (liste, combo, table, zone rpte), en programmation, dans une autre requte, ... La requte est dite indpendante. Cration de la requte depuis lassistant de cration de ltat ou du champ bas sur cette requte (option "Une requte que je veux dfinir maintenant" dans lassistant de cration dun tat ou de cration dun champ). 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. Une requte intgre peut tre transforme en une requte indpendante. Pour passer du mode intgr au mode indpendant (c'est--dire pour extraire une requte d'un tat) : 1. Affichez l'tat sur requte intgre (sous l'diteur d'tats). 2. Slectionnez l'option "Editer la requte" du menu contextuel de l'tat (ou slectionnez l'option "Etat .. Editer la requte"). La requte s'affiche sous l'diteur de requtes. Attention : Ltat doit avoir t enregistr au moins une fois. 3. Slectionnez l'option "Fichier .. Exporter .. Vers une requte indpendante". 4. Enregistrez la nouvelle requte. La requte est dsormais indpendante. Pour passer du mode intgr au mode indpendant (c'est--dire pour extraire une requte d'un champ) : 1. Affichez la fentre ou la page sous lditeur. 2. Slectionnez le champ. 3. Slectionnez l'option "Requte Intgre .. Ouvrir la requte associe" du menu contextuel du champ. La requte s'affiche sous l'diteur de requtes. Attention : La fentre ou la page doit avoir t enregistre au moins une fois. 4. Slectionnez l'option "Fichier .. Exporter .. Vers une requte indpendante". 5. Enregistrez la nouvelle requte. La requte est dsormais indpendante.

182

Partie 2 : Editeur de requtes

3. DESCRIPTION DUNE REQUTE


3.1 Prsentation
Dans les chapitres prcdents, nous avons vu les diffrentes tapes ncessaires la cration dune requte. 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 (voir page 183). fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL (voir page 189). fentre de description dune requte compose (voir page 188).

3.2.1 Afficher la fentre de description dune requte


Pour afficher la fentre de description d'une requte : soit double-cliquez sur la reprsentation graphique de la requte. soit slectionnez l'option "Description de la requte" du menu contextuel de lditeur de requtes. soit slectionnez l'option "Requte .. Description de la requte".

3.2.2 Fentre de description dune requte de slection


La fentre de description d'une 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", ...

Partie 2 : Editeur de requtes

183

Cette fentre de description s'affiche : lors de la cration d'une requte de slection (option "Fichier .. Nouveau .. Requte"). depuis une requte de slection affiche sous l'diteur de requtes (option "Requte .. Description de la requte").

Remarque : L'aide furtive de cette fentre (aide verte et transparente) s'affiche automatiquement. Cette aide furtive est affiche uniquement lorsque le curseur de la souris est immobile. Pour supprimer cette aide : pour la session en cours : appuyez simultanment sur les touches [Alt]+[F1]. dfinitivement : affichez les options de configuration de l'diteur de requtes (option "Outils .. Options .. Options de lditeur de requtes") et cochez l'option "Ne pas afficher l'aide furtive".

184

Partie 2 : Editeur de requtes

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

Affiche lanalyse associe au projet en cours. Liste des diffrentes rubriques pouvant tre utilises dans la requte. Ces rubriques appartiennent : soit un fichier de l'analyse associe au projet en cours. soit une requte du projet en cours. Remarque : Pour slectionner plusieurs rubriques, maintenez la touche [Ctrl] enfonce.

Important

Les fichiers et les rubriques de fichier pouvant tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur danalyses. Pour plus de dtails sur la prparation ncessaire lutilisation dune application WinDev avec le logiciel Etats & Requtes, consultez Diffuser le logiciel Etats & Requtes, page 229.

Permet d'ajouter ou de supprimer la ou les rubriques slectionnes dans la requte. Les lments slectionns sont affichs dans la partie centrale. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond un calcul sur certaines rubriques pouvant tre utilises dans la requte. 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.

Partie 2 : Editeur de requtes

185

Partie centrale : Cette partie contient les lments suivants :

Liste des diffrentes rubriques utilises dans la requte. Pour plus de dtails sur les rubriques dune requte, consultez le paragraphe Rubriques utilises dans une requte de slection, page 190. 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 l'ordre d'affichage / de tri des diffrentes rubriques dans le rsultat de la requte. Modifie l'ordre d'affichage de la liste des lments de la requte : : correspond l'ordre d'affichage des lments dans le rsultat de la requte. : correspond l'enchanement des tris dans le rsultat de la requte.

Dtails des options dfinies pour la rubrique slectionne.

186

Partie 2 : Editeur de requtes

Partie de droite : Cette partie permet de dfinir les diffrentes actions appliquer sur les rubriques de la requte. Pour plus de dtails sur les diffrentes actions possibles, consultez le paragraphe Caractristiques dune requte, page 190.

Rubrique sur laquelle les actions seront appliques. Permet : soit d'afficher 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 d'un 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 d'enregistrements prsents dans une slection d'enregistrements. soit au nombre d'enregistrements prsents dans un fichier de donnes. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond la somme d'un ensemble d'enregistrements. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond : soit la moyenne d'un ensemble d'enregistrements. soit la valeur minimale d'un ensemble d'enregistrements. soit la valeur maximale d'un ensemble d'enregistrements. Modifie les valeurs affiches dans le rsultat de la requte. Il est possible d'afficher uniquement : l'anne partir d'une rubrique de type date. le mois partir d'une rubrique de type date. le dpartement partir d'une 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 l'enchanement des conditions existantes. 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.

Partie 2 : Editeur de requtes

187

Permet de : grer les jointures (ajouter, modifier, supprimer, r-initialiser). vrifier ou non la syntaxe SQL utilise (en mode test uniquement).

3.2.3 Fentre de description dune requte compose


La fentre de description d'une requte compose est constitue de plusieurs parties. Cette fentre de description 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 rubriques de la premire requte excute. visualiser la requte en code SQL ou en langage naturel. grer les enregistrements "doublons". trier les enregistrements. Cette fentre de description s'affiche : lors de la cration d'une requte compose (option "Fichier .. Nouveau .. Requte"). depuis une requte compose affiche sous l'diteur de requtes (option "Requte .. Description de la requte").

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

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 suppression ou en code SQL
Le logiciel Etats & Requtes de requtes Utilisateur ne permet pas de crer : des requtes dinsertion. des requtes de modification. des requtes de suppression.

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 HyperFileSQL doit ou non vrifier les commandes SQL utilises (option "Excuter avec hRequteSansCorrection 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 suppression). connatre et/ou modifier lenchanement des conditions de slection (cas dune requte de modification ou de suppression). Remarque : Pour plus de dtails sur chacune des caractristiques des diffrents onglets, consultez l'aide contextuelle de la fentre de description (icne ).

Important

Partie 2 : Editeur de requtes

189

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 associe lapplication en cours. Ces rubriques correspondent aux rubriques des fichiers de donnes dcrits dans lanalyse. Il est possible dappliquer sur ces rubriques des oprations de calcul. Il est possible dutiliser une rubrique dindex full-text. La requte effectuera alors une recherche fulltext. rubriques dune requte du projet en cours. Ces rubriques correspondent aux rubriques utilises dans les requtes intgres lapplication. rubriques de comptage. Ce type de rubriques permet de compter le nombre denregistrements prsents dans la requte, ou le nombre denregistrements prsents dans un groupement denregistrements. rubrique de calcul. Ce type de rubrique permet deffectuer un calcul sur les valeurs dune rubrique. Pour plus de dtails, consultez le paragraphe Oprations possibles dans une requte de slection, page 193. rubriques "calcules". Ce type de rubrique permet dajouter au rsultat de la requte une rubrique dont la valeur correspond un 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. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie gauche de la fentre, double-cliquez sur la rubrique ajouter. Cette rubrique apparat dans la partie centrale de la fentre. Pour effectuer une recherche full-text : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description 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 enregistrement. Remarque : seuls les enregistrements ayant un indice de pertinence suprieur 0 sont conservs dans le rsultat de la requte.

190

Partie 2 : Editeur de requtes

Pour ajouter une rubrique de comptage dans la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, cliquez 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 autre 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. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie gauche de la fentre, cliquez sur 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 l'analyse 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.". d'imbriquer les fonctions WLangage et le code SQL utilis. 3. Prcisez la formule mathmatique de la rubrique et validez. La rubrique est automatiquement ajoute. Pour modifier une rubrique de type "rubrique calcule" dans la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique calcule modifier. 3. Dans la partie gauche de la fentre, 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 de la rubrique et validez. La rubrique est automatiquement modifie. Pour renommer une rubrique rsultat dans la requte en cours (cration dun alias) : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique renommer. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Afficher/Renommer". 4. Saisissez le nouveau nom de la rubrique et validez. La rubrique est automatiquement renomme.

Partie 2 : Editeur de requtes

191

Pour afficher/rendre invisible une rubrique dans le rsultat de la requte : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique afficher/rendre invisible. 3. Dans la partie droite de la fentre, 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 possible 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. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique supprimer et cliquez sur le bouton (ou 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 slectionns par la requte 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. Lorsque plusieurs rubriques de tri sont dfinies, les tris sont imbriqus. Pour connatre lordre denchanement des diffrentes rubriques, cliquez sur licne dans la partie centrale. Remarque : Les chiffres situs ct des flches permettent galement de connatre lenchanement des diffrentes rubriques de tri. Par exemple, dans la fentre ci-dessous, le rsultat de la requte est tri : tout dabord par le total TTC des commandes, ensuite par la ville des clients, pour finir par le nom des clients.

192

Partie 2 : Editeur de requtes

Les flches situes droite de la liste permettent de modifier lenchanement des rubriques de tri. 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 un tri sur une rubrique. modifier le sens de tri effectu sur une rubrique. Les paragraphes suivants dcrivent comment effectuer ces oprations. Pour ajouter un tri sur une rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique voulue. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Trier" et slectionnez l'option "Trier sur la rubrique slectionne". 4. Spcifiez lordre de tri et validez. Pour supprimer le tri dune rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle le tri doit tre supprim. 3. Affichez le menu contextuel de cette rubrique (clic droit). 4. Slectionnez loption "Trier la rubrique .. Ne pas trier". Pour modifier le sens de tri dune rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle le tri doit tre modifi. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Trier" et slectionnez l'option "Modifier lordre de tri". 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 possibles 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.

Partie 2 : Editeur de requtes

193

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, il est possible de 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, le montant des commandes par pays et par anne, ... Les oprations sont dfinies lors de la cration de la requte. Il est cependant possible dajouter ou de supprimer les oprations effectues dans une requte. Les paragraphes suivants dcrivent comment effectuer ces oprations. 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 plus de dtails sur la cration dun tat, consultez le paragraphe Comment crer un tat?, page 28. Pour ajouter une opration dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une opration doit tre effectue. 3. Pour calculer : la somme des valeurs de cette 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 de lensemble des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez loption "Maximum". la valeur minimale de lensemble des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez loption "Minimum". 4. Validez. Lopration est automatiquement ajoute dans la requte. Pour supprimer une opration dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique de calcul supprimer. 3. Appuyez sur la touche [Suppr] (ou slectionnez loption "Supprimer la rubrique" du menu contextuel de la rubrique).

3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection
Dans le rsultat dune requte de slection, il est possible d'afficher uniquement : l'anne partir d'une rubrique de type date. le mois partir d'une rubrique de type date. le dpartement partir d'une rubrique contenant un code postal.

194

Partie 2 : Editeur de requtes

Pour modifier les valeurs affiches dans le rsultat de la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche 2. Dans la partie centrale de la fentre, slectionnez une rubrique de type date ou contenant un code postal. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Anne, dpartement" et slectionnez l'option : "Mois" pour afficher uniquement le mois dans le rsultat de la requte. "Anne" pour afficher uniquement l'anne 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 correspondant 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 suivants dcrivent comment effectuer ces oprations.
Comment ajouter une condition de slection dans une requte ?

Pour ajouter une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Nouvelle condition". La fentre 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, une sous-requte, ... Remarque : Vous pouvez slectionner une valeur donne grce l'icne . 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 (option "Projet .. Description du projet", onglet "Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "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 "//"). Partie 2 : Editeur de requtes 195

6. Validez. La condition de slection est automatiquement ajoute la requte. Pour ajouter une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". 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" correspondante. Lassistant de cration dune condition de slection saffiche. 4. Slectionnez si ncessaire 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 "//"). 7. Validez. La condition de slection est automatiquement ajoute.
Comment modifier une condition de slection dans une requte?

Pour modifier une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition doit tre modifie. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Modifier la condition". La fentre des conditions de slection saffiche. 4. Slectionnez si ncessaire la condition modifier (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 5. Modifiez la condition de slection. Remarque : Vous pouvez slectionner une valeur donne grce l'icne . 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 (option "Projet .. Description du projet .. Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). 6. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL de la requte (prcd des caractres "//"). 7. Validez. La condition de slection est automatiquement modifie. Pour modifier une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Requte". 3. Slectionnez la rubrique sur laquelle une condition de slection doit tre modifie et cliquez sur la colonne "Condition" correspondante. Lassistant des conditions de slection saffiche. 4. Slectionnez loption "Je veux modifier une condition existante". 5. Slectionnez si ncessaire la condition modifier (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 6. Modifiez la condition de slection. 7. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code 196 Partie 2 : Editeur de requtes

SQL de la requte (prcd des caractres "//"). 8. Validez. La condition de slection est automatiquement modifie.
Comment supprimer une condition de slection dans une requte?

Pour supprimer une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition doit tre supprime. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Supprimer une condition". 4. Slectionnez si ncessaire la condition supprimer (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 5. Validez la suppression. La condition de slection est automatiquement supprime de la requte. Pour supprimer une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Requte". 3. Slectionnez la rubrique sur laquelle une condition de slection doit tre supprime et cliquez sur la colonne "Condition" correspondante. Lassistant des conditions de slection saffiche. 4. Slectionnez loption "Je veux supprimer une condition existante". 5. Slectionnez si ncessaire la condition supprimer (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 6. Validez. La condition de slection est automatiquement supprime. Astuce : Pour ajouter, modifier ou supprimer une condition de slection dans une requte de slection, cliquez directement 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 spcifier 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 Nantes. Oprateur conditionnel OU : les enregistrements conservs auront rpondu une des deux conditions ou aux deux conditions. Par exemple, vous slectionnez les clients habitant Toulouse OU habitant Brest.

Partie 2 : Editeur de requtes

197

Oprateur conditionnel ET

Oprateur conditionnel OU

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

Pour modifier lenchanement des conditions de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, 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 : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez 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 : 1. Dans la reprsentation graphique de la requte, slectionnez la condition de slection dont lenchanement doit tre modifi. 2. Slectionnez loption "Inverser ET/OU" du menu contextuel (clic droit) de la condition de slection en cours. 3. Le nouvel enchanement des conditions de slection est automatiquement pris en compte. 198 Partie 2 : Editeur de requtes

3.3.7 Afficher les enregistrements correspondant une priode donne


Lorsquune rubrique de type "Date" est prsente dans une requte de slection, 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 dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche 2. Dans la partie centrale de la fentre, slectionnez une rubrique de type "Date". 3. Dans la partie droite de la fentre, 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, l'diteur 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.

3.3.8 Limiter le nombre denregistrements affichs dune requte de slection


Lditeur de requtes permet de slectionner uniquement : les n premiers / derniers enregistrements du rsultat dune requte, les n enregistrements partir de lenregistrement x.

Par exemple, vous souhaitez connatre : les dix meilleurs clients : les clients ayant rapport le plus en terme de chiffre daffaires, les 15 produits les moins bien vendus, ... Pour limiter le nombre denregistrements prsents dans le rsultat de la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, cliquez sur le bouton "Les n premiers". 3. Indiquez le nombre des premiers, des derniers enregistrements slectionner ou encore le nombre denregistrements afficher partir dun enregistrement donn. Partie 2 : Editeur de requtes 199

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


Lorsque plusieurs fichiers sont utiliss dans une requte de slection, lditeur de requtes 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 uniquement si les fichiers relis sont utiliss par la requte. 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 paragraphes suivants dcrivent comment effectuer ces oprations. Pour ajouter une jointure dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Cliquez sur le bouton "Ajouter". Une fentre permettant de dfinir une nouvelle jointure saffiche. 3. Spcifiez les caractristiques de la jointure ajouter. 200 Partie 2 : Editeur de requtes

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 "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Slectionnez la jointure supprimer. 3. Cliquez sur le bouton "Supprimer". La jointure est automatiquement supprime. Les jointures entre les fichiers sont optimises pour conserver le bon fonctionnement de la requte. R-initialisation des jointures dune requte de slection La r-initialisation des jointures permet de supprimer toutes les modifications effectues sur les jointures depuis la cration de la requte. Lditeur de requtes recre automatiquement des jointures optimises. Pour r-initialiser les jointures de la requte de slection en cours : 1. Slectionnez loption "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Cliquez sur le bouton "Rinitialiser". Les jointures cres manuellement sont supprimes.

3.3.11 Synchronisation de la requte


La synchronisation de la requte permet de mettre jour les lments WinDev ou WebDev (tats, champs, ...) bass sur la requte en fonction des modifications apportes la requte. Seules les modifications suivantes sont conserves et automatiquement synchronises lors de la fermeture de la requte : renommage de la requte. cration dune ou de plusieurs rubriques rsultat. renommage dune ou de plusieurs rubriques rsultat. suppression dune ou de plusieurs rubriques rsultat. Rappel : Les rubriques rsultat correspondent aux rubriques dont la valeur est affiche dans le rsultat de la requte. A chaque sauvegarde de la requte, un groupe dinformations est cr si des modifications ont t effectues sur la requte. Un groupe dinformations contient les modifications effectues depuis la dernire sauvegarde de la requte. A la fermeture de la requte, les modifications effectues sur la requte sont automatiquement reportes dans les lments du projet (tats, tables, ...) utilisant la requte : il y a synchronisation de la requte. Pour visualiser lhistorique des modifications effectues sur la requte en cours, affichez longlet "Synchroniser" des options de configuration de lditeur de requtes (option "Affichage .. Configuration des requtes"). La liste de ces modifications est conserve dans le fichier ".WDR" de la requte en cours.

3.4 Ouvrir, fermer et enregistrer une requte


Louverture dune requte se fait simplement par loption "Fichier .. Ouvrir", et en slectionnant un (ou plusieurs) fichier(s) de type ".WDR". La requte est immdiatement affiche sous lditeur de requtes. Pour fermer une requte, il suffit dutiliser loption "Fichier .. Ferme". Si la requte contient des modifications non sauvegardes, il est possible denregistrer la requte. Lenregistrement dune requte peut tre effectu avec loption "Fichier .. Enregistrer" ou "Fichier .. Enregistrer sous" pour enregistrer la requte en la renommant. Partie 2 : Editeur de requtes 201

Rcupration automatique Pour viter tout problme lors du blocage du systme (coupure de courant par exemple), lditeur de requtes propose un systme de rcupration automatique des lments ouverts sous les diffrents diteurs (option "Outils .. Options de XXX .. Gnral .. 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 slectionne est disponible dans la fentre de gestion des versions (option "Fichier .. Versions") et 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, analyse 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. Slectionnez loption "Fichier .. Imprimer le dossier". 2. Spcifiez les informations contenues dans ce dossier. 3. Choisissez le type ddition du dossier. Remarques : Limpression de la reprsentation de la requte peut tre paramtre selon : des zones dimpression. une mise en page spcifie (option "Fichier .. Mise en page du dossier"). Pour spcifier les zones dimpression de la reprsentation graphique : 1. Slectionnez loption "Affichage .. Zones dimpression". Des bordures reprsentant les zones imprimables dans le dossier dinformation apparaissent sous lditeur de requtes. 2. Rduisez laffichage de la reprsentation graphique (option "Affichage .. Zoom" ou [Ctrl] + Roulette de la souris) pour visualiser lensemble de la requte.

202

Partie 2 : Editeur de requtes

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 curseur 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, cliquez sur licne (ou slectionnez loption "Requte .. Optimiser la requte"). 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, cliquez sur licne . 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 (option "Projet .. Description du projet", onglet "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 (option "Projet .. Description du projet .. Fichiers"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Tester, Projet"). Optimisation et cls composes : Pour optimiser vos requtes, l'diteur propose la cration de cls composes. L'ordre des composantes de la cl compose n'a pas d'importance. Il n'est pas ncessaire de crer une nouvelle cl inversant juste l'ordre des composantes d'une cl existante.

Partie 2 : Editeur de requtes

203

204

Partie 2 : Editeur de requtes

4.TESTER ET UTILISER UNE REQUTE


4.1 Test de la requte
Lditeur de requtes permet de tester directement le rsultat de la requte. Il suffit de cliquer sur licne dans la barre dicnes (ou de slectionner loption "Requte .. Tester la requte"). Lors du test de la requte, le code d'initialisation du projet est excut.

Remarques : Il est possible de lancer plusieurs tests de requtes diffrentes en mme temps. Le bouton permet d'afficher automatiquement la moyenne, le total, les valeurs minimale et maximale des diffrentes rubriques rsultat de type numrique.

Le logiciel Etats & Requtes ne permet pas de crer et/ou de tester : des requtes dinsertion. des requtes de modification. des requtes de suppression.

Important

Partie 2 : Editeur de requtes

205

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, cet enregistrement est directement insr dans le fichier concern. 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 doivent tre modifis, - soit de modifier directement les enregistrements dans le fichier concern. 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 doivent tre supprims, - soit de supprimer directement les enregistrements dans le fichier concern.
Rsultat de la requte

Le rsultat du test de la requte peut ensuite tre : export vers un fichier Word (voir page 207), export vers un fichier XML (voir page 208), export vers un fichier Excel (voir page 207), export vers un fichier HyperFileSQL. imprim (voir page 208). Il est galement possible de copier un enregistrement du rsultat de la requte dans le presse-papiers (option "Copier" du menu contextuel).
Test dune requte paramtre

Lors du test dune requte paramtre, une fentre permettant de spcifier les diffrents paramtres saffiche. Pour plus de dtails, consultez le paragraphe Requte paramtre, page 213.
Mot de passe

Si un des fichiers 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 d'initialisation du projet, avec la fonction HPasse, la requte est excute. si la gestion des erreurs HyperFileSQL n'a pas t personnalise (fonction HSurErreur), et si le mot de passe n'est 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 d'initialisation du projet, cette gestion des erreurs sera utilise.
Test dune requte sans vrification du code SQL

Pour les requtes utilisant des fichiers accds via un Accs Natif ou via un provider OLE DB, le moteur HyperFileSQL peut n'effectuer aucune vrification de la requte. Pour plus de dtails, consultez le paragraphe Modes dexcution dune requte en code SQL, page 177.

206

Partie 2 : Editeur de requtes

4.1.1 Exporter le rsultat de la requte vers un fichier Word


Pour lopration suivante, nous considrons que le rsultat du test de la requte est affich sous lditeur. Pour exporter le rsultat de la requte vers un fichier texte : 1. Slectionnez loption "Exporter la table vers Word" dans le menu contextuel (clic droit) du rsultat de la requte. La fentre de slection du fichier texte saffiche. 2. Spcifiez le nom et lemplacement du fichier RTF. 3. Choisissez le type de sparateur utilis entre les diffrentes rubriques de chaque enregistrement (option "Type") : - Sparateur : Tabulation : Les rubriques seront spares par des tabulations. - Sparateur : Point virgule : Les rubriques seront spares par des points virgule. 4. 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 du test de la requte est affich sous lditeur. Pour exporter le rsultat de la requte vers un fichier Excel : 1. Slectionnez loption "Exporter la table vers Excel" dans le menu contextuel (clic droit) du rsultat de la requte. La fentre de slection du fichier Excel saffiche. 2. Spcifiez le nom et lemplacement du fichier Excel. 3. Validez. Les enregistrements du rsultat de la requte sont automatiquement exports dans le fichier Excel.

Partie 2 : Editeur de requtes

207

4.1.3 Exporter le rsultat de la requte vers un fichier XML


Pour lopration suivante, nous considrons que le rsultat du test de la requte est affich sous lditeur. 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. Une feuille de style XSL est automatiquement gnre.

4.1.4 Imprimer le rsultat de la requte


Pour lopration suivante, nous considrons que le rsultat du test de la requte est affich sous lditeur. Pour imprimer le rsultat de la requte : 1. Cliquez sur le bouton "Imprimer" (ou slectionnez loption "Imprimer" dans le menu contextuel du rsultat de la requte). La fentre de slection des rubriques imprimer souvre. 2. Spcifiez et validez les rubriques imprimer. Un aperu avant impression saffiche avec le rsultat de la requte. 3. Cliquez sur licne pour imprimer 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.

208

Partie 2 : Editeur de requtes

Le rsultat dune requte dinsertion, de modification ou de suppression peut tre utilis uniquement dans un programme. 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 le paragraphe Excution de la requte et manipulation du rsultat avec les fonctions du WLangage, page 211.

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 Important

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. Slectionnez loption "Fichier .. Nouveau .. Fentre". 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. Pour utiliser une requte dans une page : 1. Slectionnez loption "Fichier .. Nouveau .. Page". 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 enregistrements slectionns par la requte.

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.

Partie 2 : Editeur de requtes

209

Pour afficher le rsultat de la requte dans une liste, une combo, une zone rpte ou une table : 1. Ouvrez la fentre ou la page dans laquelle la liste, la combo, la zone rpte ou la table doit tre ajoute. 2. Insrez le champ associ la requte (option "Insertion .. Champ..."). Lassistant de cration du champ souvre. 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 quune liste, une combo, une zone rpte ou une 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. Slectionnez loption "Affichage .. Description de la slection". La fentre de description 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>)

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 automatiquement 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 enregistrements slectionns par la requte. Pour utiliser une requte dans un tat, consultez Etat sur une requte, page 47. Astuce : Licne permet de crer automatiquement un tat bas sur la requte de slection en cours.

210

Partie 2 : Editeur de requtes

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, dans une page, ... Cette slection peut galement tre utilise en programmation. La plupart des fonctions HyperFileSQL (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 procdure 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 slectionns.
// 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.CPClient, Client34.VilleClient) FIN SINON // Affichage du message derreur Erreur("La requte na pas t excute.") FIN

Mot de passe

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

211

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 source de donnes de la requte principale. Limites : Les sous-requtes ne peuvent pas tre ralises avec lditeur de requtes. L'instruction ORDER BY est interdite dans les sous-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 [NOT] EXISTS (SELECT Rubrique1 [, Rubrique2] FROM Fichier1 [, Fichier2] [WHERE ...]) SELECT Rubrique1 [, Rubrique2] FROM Fichier1 [, Fichier2] WHERE Rubrique1 Oprateur (SELECT Rubrique1 [, Rubrique2] FROM Fichier1 [, Fichier2] [WHERE ...])

Dans cette syntaxe, <Oprateur> peut correspondre : soit ALL, ANY, IN, NOT IN ou SOME. soit un oprateur de comparaison (=, <, <=, >, >=, <> ou !=). soit la combinaison de ALL, ANY ou SOME et d'un oprateur de comparaison (=, <, <=, >, >=, <> ou !=). 212 Partie 2 : Editeur de requtes

Exemple : Le code SQL suivant permet de slectionner le numro des commandes dont le montant total est suprieur au montant moyen de l'ensemble 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, l'utilisateur peut raliser simplement une slection d'enregistrements correspondant 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. L'utilisateur n'aura 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 ou le site afin de lancer une requte paramtre. La requte paramtre peut aussi bien tre utilise avec une fentre, un champ Table (zone rpte, 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 l'assistant ou directement par SQL), il est possible d'utiliser des paramtres. Le nom du paramtre est indiqu lors de la cration de la requte. Pour crer une requte paramtre : 1. Crez une requte (pour plus de dtails sur la cration dune requte, consultez le paragraphe Comment crer une requte?, page 165). 2. Lors de la dfinition des conditions de slection : spcifiez que la condition de slection correspond un paramtre. donnez le nom de ce paramtre. Pour plus de dtails sur les conditions de slection, consultez le paragraphe Conditions de slection, page 195.

Partie 2 : Editeur de requtes

213

5.3.2 Test dune requte paramtre


Pour tester une requte paramtre : 1. Ouvrez la requte paramtre sous l'diteur de requtes (option "Fichier .. Ouvrir"). 2. Cliquez sur licne dans la barre dicnes (ou utilisez l'option "Requte .. Tester la requte"). 3. Spcifiez la valeur du ou des paramtres utiliser pour le test de la requte. Remarque : Vous pouvez slectionner une valeur donne grce l'icne . 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 (option "Projet .. Description du projet .. Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). 4. 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 dans une page. dans une table, une liste, une combo ou une 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 d'une fentre (ou une 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 d'excuter la requte (fonction HExcuteRequte) : soit avant d'ouvrir la fentre (ou la page). soit dans le code de dclaration des globales de la fentre (ou de la page). Lors de l'excution de la requte, il suffit de passer les paramtres ncessaires. Ces paramtres peuvent tre passs : soit directement dans la fonction HExcuteRequte. soit en utilisant la notation <Nom de la requte>.<Nom du paramtre>, puis en utilisant la fonction HExcuteRequte. Pour plus de dtails sur le passage de paramtres la requte, consultez le paragraphe Deux mthodes pour passer des paramtres une requte, page 218.

214

Partie 2 : Editeur de requtes

Exemple Pour afficher la liste des commandes de l'anne XXXX, l'utilisateur effectue les oprations suivantes : saisie de l'anne voulue dans la fentre SaisieParam. clic sur le bouton "Voir le rsultat". La fentre ListeCommande s'affiche. Cette fentre est base sur la requte ReqParamCommande. Cette requte permet de slectionner les commandes effectues la date indique par l'utilisateur. Le code suivant permet de : ouvrir la fentre SaisieParam, rcuprer la valeur saisie par lutilisateur, excuter la requte ReqParamClient. 1. Ouverture de la fentre de saisie des paramtres dans le traitement d'initialisation de la fentre ListeCommande :
-- Traitement dinitialisation de la fentre FicheClient ParamRequte est une chane // Ouverture de la fentre SaisieParam // rcupration de la saisie de lutilisateur ParamRequte = Ouvre(SaisieParam)

2. Excution de la requte dans le traitement d'initialisation de la fentre ListeCommande :


// Excution de la requte HExcuteRequte(ReqParamClient, hRequteDefaut, ParamRequte) // Code similaire : //ReqParamCommande.Anne = ParamRequte //HExcuteRequte(ReqParamCommande)

Utilisation dune requte paramtre dans une table, une zone rpte, une liste, un combo

Prsentation Une table, une liste, une zone rpte ou une combo peut tre utilise pour afficher le contenu d'un fichier ou d'une requte. Une table, une liste, une zone rpte ou une combo peut tre lie une requte : indpendante. Cette requte existe dj dans le projet : il suffit de slectionner cette requte parmi les requtes de votre projet. intgre la table, la liste ou la combo : cette requte sera cre dans l'assistant de cration du champ Table. Cette requte sera disponible uniquement pour ce champ et sera sauvegarde avec la fentre qui l'utilise. Dans ce cas, la fentre contient tous les lments qui sont ncessaires son fonctionnement. paramtre : cette requte (indpendante ou intgre) ncessite des paramtres pour s'excuter et afficher le rsultat dans la table. Remarque : ce paragraphe prsente uniquement le cas des tables, mais le fonctionnement est identique pour les listes, les combos et les zones rptes. Tables fichier bases sur des requtes indpendantes Une table fichier base sur une requte indpendante (non paramtre) affiche les enregistrements de cette requte.

Partie 2 : Editeur de requtes

215

Par dfaut, la requte est excute et charge en mmoire lors de sa premire utilisation. Le rsultat d'une requte utilise dans une table fichier reste en mmoire lors de la fermeture de la fentre ou de la page associe. Si cette requte est r-utilise, elle ne sera pas r-excute. Pour r-excuter cette requte, il est ncessaire d'utiliser : soit la fonction HAnnuleDclaration : Si la fonction HAnnuleDclaration n'est pas appele, la prochaine initialisation du champ table (rouverture de la fentre par exemple) ne r-excutera pas la requte. Les donnes rcupres lors de la dernire excution de la requte seront utilises. Si la table est base sur une requte paramtre, consultez le paragraphe "Table fichier base sur une requte paramtre (intgre ou non)". Si la fonction HAnnuleDclaration est appele, la prochaine initialisation du champ table (rouverture de la fentre par exemple) r-excutera la requte. soit la fonction TableAffiche (ou ListeAffiche pour une liste) : il est possible de forcer la r-excution de la requte avec la fonction TableAffiche en utilisant la constante taRExcuteRequte. Tables fichier bases sur une requte intgre (non paramtre) Une table fichier base sur une requte intgre (non paramtre) affiche les enregistrements de cette requte. Par dfaut, la requte est excute et charge en mmoire lors de l'affichage de la table. Le rsultat d'une requte intgre une table fichier est automatiquement effac de la mmoire lors de la fermeture de la fentre associe. Si cette requte est r-utilise, elle sera r-excute. Il est possible de forcer la r-excution de la requte avec la fonction TableAffiche (ou ListeAffiche pour une liste) en utilisant la constante taRExcuteRequte. Table fichier base sur une requte paramtre (intgre ou non) Lorsqu'une table fichier est lie une requte paramtre (intgre ou non), il est ncessaire de passer des paramtres la requte avant de l'excuter. Si ces paramtres ne sont pas spcifis avant la premire excution de la requte, la requte ne sera pas excute, et la table restera vide. Pour passer les paramtres la requte, il est possible d'utiliser : 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 l'initialisation de la table. Remarque : il est galement possible d'utiliser une des notations suivantes : - le mot-cl MaSource :
MaSource.<Nom Paramtre1> = xxx MaSource.<Nom Paramtre2> = xxx MaSource.<Nom Paramtre3> = xxx

- l'indirection :
{"<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 d'initialisation de la table.

216

Partie 2 : Editeur de requtes

Cas particuliers : Initialisation d'un champ Table ou utilisation de TableAffiche sans la constante taRExcuteRequte. Si aucun paramtre de la requte n'a t modifi depuis la dernire excution de la requte, la requte n'est pas r-excute. La table affichera les enregistrements correspondants la dernire excution de la requte. Aprs modification des paramtres de la requte, la fonction TableAffiche (ou ListeAffiche pour une liste) permet de r-excuter la requte. La table affiche alors les enregistrements correspondant aux paramtres spcifis. Utilisation de la fonction TableAffiche avec la constante taRExcuteRequte. Pour forcer la r-excution de la requte, il suffit d'utiliser la fonction TableAffiche (ou ListeAffiche pour une liste) avec la constante taRExcuteRequte. Rappel : la structure des paramtres de la requte tant r-initialise chaque excution de la requte, n'oubliez pas de re-dfinir les paramtres souhaits avant d'utiliser cette fonction.
Utilisation dune requte paramtre dans un tat

Principe Pour utiliser un tat bas sur une requte paramtre, il est ncessaire d'excuter la requte avant d'ouvrir l'tat. La requte peut tre excute avec la fonction iInitRequteEtat. Cette fonction permet d'excuter la requte, et de passer les paramtres de cette requte. Cette fonction peut tre appele : soit dans le code d'initialisation de l'tat, soit avant la fonction iImprimeEtat. Exemple La fentre ClientFiche permet de parcourir les caractristiques des clients. Pour chaque client, lutilisateur peut cliquer sur le bouton ImprimeCommande pour imprimer ltat EtatCdeClient. Cet tat est associ la requte ReqCdeClient qui slectionne les commandes passes selon un client donn. Le code suivant permet dexcuter la requte ReqCdeClient selon le client en cours et dimprimer ltat :
-- Traitement de clic du bouton ImprimeCommande // Excution de la requte selon le client en cours iInitRequteEtat(EtatCdeClient, NumClient) // Impression de ltat iImprimeEtat(EtatCdeClient)

Paramtre(s) provenant de champs de saisie

Dans la plupart des cas, la saisie des paramtres d'une requte paramtre est effectue par l'utilisateur 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 correspondra 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. Par exemple, le code SQL excut est :
SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique = {Param1}

Partie 2 : Editeur de requtes

217

Pour cet exemple, le tableau ci-dessous dcrit lutilisation de loption "NULL si vide" : Valeur saisie par lutilisateur Aucune valeur Aucune valeur Option "NULL si vide" Option coche Option dcoche Code SQL excut
SELECT NomDesRubriques FROM NomDesFichiers SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique =

Une valeur est saisie

Option coche ou dco- SELECT NomDesRubriques FROM NomDesFichiers che


WHERE Rubrique = ValeurSaisie

5.3.4 Deux mthodes pour passer des paramtres une requte


Pour passer des paramtres une requte paramtre utilise dans une fentre, une page ou dans un champ (liste, zone rpte, combo ou table), le WLangage offre deux possibilits : soit passer les paramtres directement dans la fonction HExcuteRequte. soit utiliser la notation <Nom de la requte>.<Nom du paramtre>, puis la fonction HExcuteRequte. Remarque : Si la requte paramtre est utilise dans un tat, le mode de passage des paramtres varie. Pour plus de dtails, consultez le paragraphe Utilisation dune requte paramtre dans un tat, page 217.
Utiliser HExcuteRequte pour passer les paramtres une requte

Lors de l'excution d'une 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 de la requte> [, <Connexion>] [, <Mode> [, <Paramtres> [, ...]]])

Attention : Dans ce cas : Les valeurs des paramtres de la requte doivent tre indiques dans leur ordre d'initialisation (visible sous l'diteur de requtes). Chaque paramtre doit correspondre au type attendu. Les diffrents paramtres sont spars par une virgule. Pour spcifier les paramtres de la requte, il est ncessaire de spcifier le mode d'initialisation de la requte.
Notation <Nom de la requte>.<Nom du paramtre>

Pour passer des paramtres une requte, il est possible de prciser au moteur HyperFileSQL tous les paramtres de la requte avant d'excuter la requte. Cette mthode permet de prciser les diffrents paramtres dans n'importe quel ordre (intressant pour les requtes ncessitant de nombreux paramtres). La syntaxe utiliser est la suivante :
<Nom de la <Nom de la ... <Nom de la <Rsultat> requte>.<Nom du paramtre 1> = <Valeur du paramtre 1> requte>.<Nom du paramtre 2> = <Valeur du paramtre 2> requte>.<Nom du paramtre n> = <Valeur du paramtre n> = HExcuteRequte(<Nom de la requte> [, <Connexion>] [, <Mode>])

218

Partie 2 : Editeur de requtes

Attention : Le nom du paramtre doit tre le nom spcifi lors de la cration de la requte sous l'diteur de requte. 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 n'est 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. Par exemple : Soit la requte "Clients_nom_prnom" dont le code SQL est le suivant :
SELECT * FROM CLIENT WHERE NOM = {Param1} ET PRENOM = {Param2}

Les 2 paramtres sont donns : HExcuteRequte(Clients_nom_prnom, hRequteDfaut, "Dupond", "Jean") excutera la requte : SELECT * FROM CLIENT WHERE NOM = 'Dupond' ET PRENOM = 'Jean' Seul le nom est donn : HExcuteRequte(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(Clients_nom_prnom, hRequteDfaut, sNom, "Jean") Ou HExcuteRequte(Clients_nom_prnom, hRequteDfaut, Null, "Jean") excutera la requte SELECT * FROM CLIENT WHERE PRENOM = 'Jean'

Partie 2 : Editeur de requtes

219

220

Partie 2 : Editeur de requtes

INDEX
A
Afficher N derniers enregistrements N premiers enregistrements Rubrique Ajouter Condition de slection Jointure Opration Rubrique Tri sur une rubrique 199 199 192 195 200 194 190 193 Fentre de description Dossier Doublons 183 202 200

E
Editeur de requtes Configuration minimale Documentation Fentre principale Installation Interface Version Dveloppeur Version Utilisateur Enchanement des conditions de slection Modifier Enregistrement Insrer Modifier N derniers enregistrements N premiers enregistrements Priode donne Slectionner Supprimer Enregistrer Requte Etat Utiliser une requte dans un tat Excel Exporter la requte 157 158 158 159 158 159 157 157 197 198 168 170 199 199 199 166 172 201 210 207 206

B
Barre Icnes Outils Blocage systme 162 159, 162 202

C
Calcul Caractristiques dune requte Champ dune fentre Utiliser une requte dans un champ Clavier (raccourcis) Combiner des requtes Combo Utilisation dune requte paramtre Commande SQL Comptage Condition de slection Ajouter Enchanement Modifier Supprimer Utiliser une sous-requte Cration Requte 193 190 209 163 174 215 177 190 195 195 197 196 197 212 165

F
Fentre Fentre principale de lditeur Utiliser une requte dans une fentre Fermer une requte Fichier Excel XLS XML Full-text 159 209 201 207 207 208 190

D
DELETE Description 172

H
HExcuteRequte 211 Partie 2 : Editeur de requtes 221

HExcuteRequteSQL hRequteSansCorrection

211 177 Page

P
Utilisation dune requte paramtre Paramtres Passer des paramtres Priode donne Projet 214 213 218 199 164

I
Imprimer Dossier Rsultat INSERT Insertion denregistrements Interface Editeur de requtes 202 208 168 168 159

R
Raccourcis clavier Recherche full-text Rcupration automatique Renommer Requte Rubrique Requte Caractristiques Code SQL Compose Condition de slection Crer Dfinition Description Dossier Doublon Enregistrer Excution Exporter Fermer Imprimer Indpendante Insertion Intgre Jointure Manipulation Mode de cration Modification N derniers enregistrements N premiers enregistrements Optimiser la vitesse dexcution Ouvrir Paramtre Prsentation Rcupration automatique Renommer Requte avance Requte compose 163 190 202 201 191 190 176 174 195 165 155 183 202 200 201 211 206 201 208 182 168 182 200 211 182 170 199 199 203 201 213 155 202 201 212 174

J
Jointure Ajouter R-initialiser Supprimer 200 200 201 201

L
Lancer lditeur de requtes 159 Liste Utilisation dune requte paramtre 215

M
Menu Option Mode de requte Modifier Condition de slection Enchanement des conditions Enregistrements Valeurs affiches Mot de passe 159 161 182 196 198 170 194 206, 211

O
Opration Ajouter Supprimer Optimiser la vitesse dexcution Options de menu Ordre de tri Outils Ouvrir Requte 193 194 194 203 161 192 162 201

222

Partie 2 : Editeur de requtes

Requte dinsertion 168 Requte de modification 170 Requte de slection 166 Requte de suppression 172 Requte indpendante 182 Requte intgre 182 Rtro-analyse 177 Rubrique 190 Slection 166 Sous-requte 212 Suppression 172 Synchronisation 201 Test 205 Types disponibles 165 Utilisation 208 Utiliser avec les fonctions du WLangage211 Utiliser dans un champ 209 Utiliser dans un tat 210 Utiliser dans une fentre 209 Zone dimpression 202 Requte compose 174 Cration 175 Fentre de description 188 Requte dinsertion 168 Cration 169 Fentre de description 189 Test 205 Requte de modification 170 Condition de slection 195 Cration 171 Fentre de description 189 Test 205 Requte de slection 166 Condition de slection 195 Doublon 200 Fentre de description 183 Jointure 200 Modifier les valeurs affiches 194 Oprations possibles 193 Priode donne 199 Rubrique 190 Test 205 Tri des enregistrements 192 Requte de suppression 172 Condition de slection 195 Cration 173 Fentre de description 189 Test 205 Requte en code SQL 176 Commandes SQL disponibles 177

Cration Mode dexcution Requte et projet Requte indpendante Requte intgre Requte paramtre Crer Passer des paramtres Tester Utilisation dans un champ Utilisation dans une page Utiliser Rsultat Exporter vers un fichier Excel Exporter vers un fichier XML Imprimer Modifier les valeurs affiches Utiliser Rtro-analyse Rubrique Comptage Condition de slection Opration Tri

176 176 164 182 182 213 213 218 214 215 214 214 207 208 208 194 208 177 190 190 195 193 192

S
SELECT Slection denregistrements Sous-Requte SQL Commandes SQL Supprimer Condition de slection Enregistrements Jointure Opration Rubrique Tri sur une rubrique Synchronisation 166 166 212 176 177 197 172 201 194 192 193 201

T
Table Utilisation dune requte paramtre Tester Tri Ajouter Supprimer Type de requtes 215 205 192 193 193 165 223

Partie 2 : Editeur de requtes

U
UNION UPDATE Utiliser le rsultat dune requte 174 170 208 XML

X
208

Z
Zone dimpression 202 Zone rpte Utilisation dune requte paramtre 215

V
Volet 160

W
WLangage 211

224

Partie 2 : Editeur de requtes

PARTIE 3 Logiciel Etats & Requtes

LOGICIEL ETATS & REQUTES - SOMMAIRE


1. DIFFUSER LE LOGICIEL ETATS & REQUTES 229
1.1 Prsentation ................................................................................................................................................ 229 1.2 Diffuser le logiciel Etats & Requtes avec votre application WinDev ................................................... 229 1.3 Etape 1 : Paramtrage du projet ............................................................................................................... 229 1.4 Etape 2 : Paramtrage de lanalyse .......................................................................................................... 230 1.4.1 Fichiers et rubriques visibles.....................................................................................................230 1.4.2 Traduction des noms de fichiers et de rubriques ....................................................................230 1.5 Etape 3 : Paramtrage des tats .............................................................................................................. 231 1.6 Etape 3 bis : Paramtrage des requtes .................................................................................................. 231 1.7 Etape 4 : Cration de lexcutable et diffusion de lapplication ............................................................ 232 1.8 Etape 5 : Installation de lapplication WinDev chez vos utilisateurs finaux ......................................... 233

2. UTILISER LE LOGICIEL ETATS & REQUTES

234

2.1 Lancement du logiciel Etats & Requtes ................................................................................................. 234 2.2 Principe dutilisation des tats .................................................................................................................. 234 2.2.1 Modification dun tat ................................................................................................................234 2.2.2 Utilisation dun tat modifi.......................................................................................................234 2.2.3 Utilisation dun nouvel tat........................................................................................................235 2.3 Principe dutilisation des requtes ............................................................................................................ 235 2.3.1 Modification dune requte........................................................................................................235 2.3.2 Utilisation dune requte modifie............................................................................................235 2.3.3 Utilisation dune nouvelle requte ............................................................................................236

3. LIMITATIONS PAR RAPPORT LDITEUR DTATS INTGR WINDEV

237

Partie 3 : Logiciel Etats et Requtes

227

228

Partie 3 : Logiciel Etats et 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 (appel galement Editeur dEtats Utilisateur). 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, il est ncessaire de : 1. Indiquer au niveau du projet que lapplication autorise le lancement du logiciel Etats & Requtes. 2. Dfinir dans lanalyse les fichiers et les rubriques manipulables avec le logiciel Etats & Requtes. 3. Dfinir les tats et les requtes modifiables sous le logiciel Etats & Requtes. 4. Crer lexcutable et le programme dinstallation de lapplication WinDev. 5. Installer lapplication chez les utilisateurs finals. Remarque : Afin de diminuer la taille du programme d'installation, le logiciel "Etats & Requtes" peut tre tlcharg directement depuis votre application : soit par le menu automatique (menu daide automatique pouvant tre intgr dans une application WinDev), soit par l'aperu avant impression d'un tat, soit lors de l'utilisation de la fonction LanceEtatsEtRequtes. Traduisez les noms de fichiers et de 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 l'utilisateur final souhaite crer des tats ou des requtes, il doit manipuler des noms de fichiers et de rubriques, les noms utiliss dans l'analyse par le concepteur de l'application. Ces noms sont bien souvent en franais, ce qui n'est pas pratique pour l'utilisateur chinois ou roumain. Il est dsormais possible d'indiquer une traduction pour les noms de fichier et de rubrique dans l'analyse.

1.3 Etape 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 de votre projet (option "Projet .. Description du projet"). 2. Slectionnez longlet "Avanc" et cochez loption "Autoriser le lancement de Etats & Requtes". 3. Validez. Remarques : Par dfaut, les projets WinDev autorisent le lancement de 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 du WLangage renvoie Faux.

Partie 3 : Logiciel Etats et Requtes

229

1.4 Etape 2 : Paramtrage de lanalyse


1.4.1 Fichiers et rubriques visibles
Par dfaut, tous les fichiers et toutes leurs rubriques sont manipulables sous le logiciel Etats & Requtes. Lutilisateur final peut utiliser ces donnes dans ses tats et ses requtes personnaliss. 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 fichiers 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 et/ou des rubriques invisibles peuvent tre excuts et/ou modifis depuis le logiciel Etats & Requtes. Pour dfinir un fichier invisible sous le logiciel Etats & Requtes : 1. Sous lditeur danalyses de WinDev, slectionnez le fichier voulu. 2. Affichez la fentre de description des rubriques du fichier (option "Structure de fichiers .. Description"). 3. Dans longlet "Info", dcochez loption "Visible par lutilisateur final (logiciel Etats & Requtes)". 4. Validez. Remarque : Toutes les rubriques du fichier 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 contenant la rubrique voulue. 2. Affichez la fentre de description du fichier (option "Structure de fichiers .. Rubriques"). 3. Slectionnez la rubrique voulue. 4. Dans longlet "Gnral", dcochez loption "Visible par lutilisateur final (logiciel Etats & Requtes)". 5. Validez. Remarque : La proprit VisibleUtilisateurFinal permet galement de connatre ou de modifier la visibilit d'une 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 (option "Analyse .. Gnration").

1.4.2 Traduction des noms de fichiers et de rubriques


Par dfaut, lorsque l'utilisateur final manipule les fichiers et rubriques lors de la cration d'un tat ou d'une requte, tous les noms utiliss correspondent ceux dfinis par le dveloppeur dans l'analyse, et non dans la langue de l'utilisateur. Il est possible de proposer une traduction pour les lments suivants directement dans l'analyse WinDev : Nom du fichier, Libell du fichier, Nom de la rubrique, Libell de la rubrique. Remarque : Si votre projet doit tre traduit, pensez traduire ces informations. WDMSG extrait et r-intgre automatiquement ces informations. Pour dfinir les paramtres multilingues d'un fichier sous le logiciel Etats & Requtes : 1. Sous l'diteur d'analyses de WinDev, slectionnez le fichier voulu. 2. Affichez la fentre de description des rubriques du fichier (option "Structure de fichiers .. Description"). 3. Dans l'onglet "Etats & Requtes", indiquez le nom du fichier et son libell dans les diffrentes langues gres par l'analyse. Remarque : Le nom utilis ne doit pas correspondre un nom de fichier existant dans l'analyse. 4. Validez. 230 Partie 3 : Logiciel Etats et Requtes

Pour dfinir les paramtres multilingues d'une rubrique de fichier sous le logiciel Etats & Requtes : 1. Sous l'diteur d'analyses de WinDev, slectionnez le fichier contenant la rubrique voulue. 2. Affichez la fentre de description du fichier (option "Structure de fichiers .. Rubriques"). 3. Slectionnez la rubrique voulue. 4. Dans l'onglet "Etats & Requtes", indiquez le nom de la rubrique et son libell dans les diffrentes langues gres par l'analyse. 5. Validez. Attention : Pour prendre en compte les modifications effectues dans l'analyse WinDev, il est bien entendu ncessaire de gnrer l'analyse WinDev (option "Analyse .. Gnration").

1.5 Etape 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 "Etat .. Description"). 3. Dans longlet "Dtails", cochez loption "Etat modifiable sous Etats & Requtes". 4. Cochez : l'option "Interface modifiable uniquement" pour que l'interface de l'tat uniquement soit modifiable sous Etats & Requtes. l'option "Tout modifiable (interface et code)" pour que l'tat soit entirement modifiable sous Etats & Requtes. 5. Validez et enregistrez ltat. Pour rendre plusieurs tats de votre application modifiables sous le logiciel Etats & Requtes : 1. Slectionnez l'option "Projet .. Performances et amliorations .. Assistant d'amliorations de projet". L'assistant d'amliorations du projet se lance. 2. Affichez l'cran de l'assistant intitul "Etats & Requtes". 3. Slectionnez l'option "Oui - Autoriser le lancement de "Etats & Requtes"". Passez l'cran suivant. 4. Pour chaque tat concern, cochez : l'option "Interface des tats modifiable uniquement" pour que l'interface de l'tat uniquement soit modifiable sous Etats & Requtes. l'option "Contrle total des tats (interface et code modifiables)" pour que l'tat soit entirement modifiable sous Etats & Requtes. 5. Validez. Remarques : La proprit InterfaceModifiableAvecEtatsEtRequtes permet de savoir si l'interface d'un tat est modifiable sous le logiciel Etats & Requtes. La proprit ToutModifiableAvecEtatsEtRequtes permet de savoir si un tat est entirement modifiable sous le logiciel Etats & Requtes.

1.6 Etape 3 bis : Paramtrage des requtes


Pour rendre une requte de votre application modifiable sous le logiciel Etats & Requtes : 1. Ouvrez la requte sous lditeur de requtes. 2. Affichez la fentre de description de la requte (option "Requte .. Description 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. Partie 3 : Logiciel Etats et Requtes 231

Pour rendre plusieurs requtes de votre application modifiables sous le logiciel Etats & Requtes : 1. Slectionnez l'option "Projet .. Performances et amliorations .. Assistant d'amliorations de projet". L'assistant d'amliorations du projet se lance. 2. Affichez l'cran de l'assistant intitul "Etats modifiables par "Etats & Requtes"". 3. Slectionnez l'option "Oui - Autoriser le lancement de "Etats & Requtes"". Passez l'cran suivant. 4. Pour chaque requte concerne, cochez l'option "Requte visible" pour que la requte soit visible sous Etats & Requtes. 5. Validez.

1.7 Etape 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 l'excutable correspondant (option "Atelier .. Gnrer lexcutable Windows"). Crez ensuite le programme dinstallation (option "Atelier .. Crer la procdure dinstallation"). Dans lassistant de cration du programme dinstallation, dans le plan "Modules complmentaires" : 1. Cochez loption "Intgrer linstallation de Etats & Requtes". Le package dinstallation du logiciel Etats & Requtes est automatiquement recherch. Ce pack dinstallation est prsent dans le sous-rpertoire "Install\Etats & Requtes" du rpertoire dinstallation de WinDev. Attention : Incorporer le logiciel Etats & Requtes augmente la taille de votre installation de faon non ngligeable (environ 120 Mo). Il est galement possible de distribuer le pack d'installation Etats & Requtes sparment. Si le logiciel Etats & Requtes n'est pas inclus dans l'installation, il pourra tre tlcharg directement depuis l'application (soit par le menu automatique, soit depuis l'aperu avant impression d'un tat, soit par la fonction LanceEtatsEtRequtes). Par dfaut, le logiciel est tlcharg sur un site FTP de PC SOFT. Il est possible de personnaliser l'adresse de tlchargement du logiciel (par exemple site d'une socit, ). 2. Spcifiez si ncessaire les rpertoires correspondant aux tats et requtes modifis ou crs par lutilisateur 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 personnels et/ou partags. Personnaliser ladresse de tlchargement Si le logiciel Etats & Requtes n'a pas t inclus dans le programme d'installation, le tlchargement de ce logiciel sera automatiquement propos lors de l'utilisation du menu automatique, lors de la visualisation d'un tat, ou lors du lancement du logiciel. Par dfaut l'adresse de tlchargement correspond un site FTP de PC SOFT.

232

Partie 3 : Logiciel Etats et Requtes

Pour utiliser un autre site : 1. Crez un fichier texte LoginFTP.INI. Ce fichier doit tre plac dans le mme rpertoire que l'excutable de l'application. 2. Ce fichier doit contenir les lments suivants :
[FTP] Login = Login de l'utilisateur sur le serveur FTP PSW = Mot de passe de l'utilisateur sur le serveur FTP Serv = Serveur FTP (par exemple ftp.pcsoft.fr) Dir = Rpertoire de tlchargement (par exemple WX16/latest)

Remarques : Si le pack de tlchargement est la racine, il faut mettre uniquement "." dans l'entre Dir. Le nom du fichier tlcharger est "WD160PACKER.exe".

1.8 Etape 5 : Installation de lapplication WinDev chez vos utilisateurs finaux


Linstallation dune application utilisant le logiciel Etats & Requtes est identique linstallation dune application classique. Lors de l'installation, si vous avez inclus le logiciel "Etats & Requtes" dans le programme d'installation, l'utilisateur devra simplement indiquer s'il souhaite installer le logiciel Etats & Requtes. Si le logiciel Etats & Requtes n'a pas t inclus dans le programme d'installation, le tlchargement de ce logiciel sera automatiquement propos lors de l'utilisation du menu automatique, lors de la visualisation d'un tat, ou lors du lancement du logiciel.

Partie 3 : Logiciel Etats et Requtes

233

2.UTILISER LE LOGICIEL ETATS & REQUTES


2.1 Lancement du logiciel Etats & Requtes
Pour que les utilisateurs finals 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 finals 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 sur licne . soit ajoutez le menu "?" dans la fentre principale de votre application (option "Fentres .. Menu principal .. Ajouter le menu "?""). Dans lassistant 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.

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 & 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 code dinitialisation du projet sera excut. Par dfaut, seul lutilisateur ayant ralis des modifications sur un tat utilisera cet tat modifi dans lapplication WinDev. Pour quun tat modifi soit utilis par tous les autres utilisateurs de lapplication, lutilisateur final doit slectionner loption "Fichier .. Partager 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 utilisateurs que ltat utilis correspond un tat modifi. Pour utiliser nouveau ltat dans sa version originale, il suffit vos utilisateurs finals de supprimer physiquement 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".

234

Partie 3 : Logiciel Etats et Requtes

2.2.3 Utilisation dun nouvel tat


Vos utilisateurs finals pourront imprimer leurs nouveaux tats directement depuis le logiciel Etats & Requtes : soit en lanant une impression (icne soit en testant ltat (icne ).

ou option "Code .. Tester ltat").

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
Lors de la modification dune requte, le fichier correspondant (fichier ".WDR") 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 cette requte que lutilisateur final modifie.

2.3.2 Utilisation dune requte modifie


Deux types de requtes se distinguent : les requtes utilises comme source de donnes dun ou de plusieurs tats. les autres requtes.
Requte utilise comme source de donnes dun tat

Si la requte est utilise comme source de donnes dun tat, la requte modifie sera automatiquement intgre ltat.
Autre requte

Vos utilisateurs finals pourront excuter leurs requtes modifies : soit directement depuis le logiciel Etats & Requtes en cliquant sur licne "Requte .. Tester la requte". soit depuis lapplication WinDev.

ou en slectionnant loption

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

Partie 3 : Logiciel Etats et Requtes

235

2.3.3 Utilisation dune nouvelle requte


Vos utilisateurs finals pourront excuter leurs nouvelles requtes : soit directement depuis le logiciel Etats & Requtes en cliquant sur licne "Requte .. Tester la requte". soit depuis lapplication WinDev. ou en slectionnant loption

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

236

Partie 3 : Logiciel Etats et Requtes

3.LIMITATIONS PAR RAPPORT LDITEUR DTATS INTGR WINDEV


Le logiciel Etats & Requtes ne permet pas de : crer des tats sur une vue HyperFileSQL. 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 (couleur, police, taille, ...).

Partie 3 : Logiciel Etats et Requtes

237

238

Partie 3 : Logiciel Etats et Requtes