Professional Documents
Culture Documents
Visitez rgulirement le site www.pcsoft.fr, espace actualits pour vrifier si des mises jour
sont proposes.
Conseil: Pour recevoir directement des mises jour intermdiaires et des conseils dutilisa-
tion, abonnez-vous la LST (revue trimestrielle + DVD), en franais.
Tous les noms de produits ou autres marques cits dans cet ouvrage sont des marques dposes par leurs propritaires respectifs.
PC SOFT 2015 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre effec
tue sans lautorisation expresse de PC SOFT.
Sommaire
Partie 1 - Editeur dtats
1. Introduction...............................................................................................................................................13
2. Comment crer un tat.............................................................................................................................23
3. Sources de donnes dun tat..................................................................................................................43
4. Description / Manipulations dun tat.....................................................................................................50
5. Blocs dun tat...........................................................................................................................................58
6. Champs dun tat......................................................................................................................................68
7. Utiliser des tableaux dans un tat............................................................................................................89
8. Etats avec saisie......................................................................................................................................100
9. Etats composites.....................................................................................................................................103
10. Enchaner des tats................................................................................................................................106
11. Etats imbriqus.......................................................................................................................................108
12. Imprimer un tat par programmation....................................................................................................113
13. Impression de duplicata........................................................................................................................ 128
14. Impression dun texte en filigrane..........................................................................................................131
15. Programmation dun tat........................................................................................................................135
Sommaire 3
4 Sommaire
Partie 1
Editeur dtats
6 Partie 1 : Editeur dtats
Editeur dtats - Sommaire
1. Introduction
1.1 Quest-ce quun tat ?............................................................................................................................... 13
1.2 Lditeur dtats......................................................................................................................................... 16
1.2.1 Prsentation rapide .............................................................................................................16
1.2.2 Diffrences entre lditeur dtats intgr et le logiciel "Etats & Requtes" .....................18
1.3 Interface principale de lditeur dtats.................................................................................................. 20
1.4 Un menu sous forme de ruban................................................................................................................. 21
9. Etats composites
9.1 Prsentation............................................................................................................................................103
9.2 Crer un tat composite.........................................................................................................................104
9.3 Caractristiques des tats composites et de leurs sous-tats............................................................105
9.3.1 Caractristiques des tats composites ............................................................................105
9.3.2 Caractristiques des sous-tats ........................................................................................105
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.
Sources de Modes
ltat dimpression
Champ Zone
Fichiers XLS, PDF,
mmoire
...
Requte
Etat Fichier Texte
(Editeur dtats)
Fichier Texte
Fichier PCL
Donnes
Imprimante
Variable WLangage
Aperu avant
impression
En WebDev:
Etat
(Editeur
Requte dtats)
Fichiers Texte
Variable WLangage
Navigateur
Source de Mode
ltat dimpression
Imprimante
Requte Etat (format PCL,
(Editeur dtats) Windows Mobile)
Donnes
Variable WLangage
Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l "Assis-
Important
tance Directe" pour disposer dun "assistanat tlphonique". Pour toute information
complmentaire sur l "Assistance Directe", veuillez contacter le service commercial
de PC SOFT.
Dans le logiciel Etats & Requtes, seuls les volets "Explorateur de pro-
jet" et "Modifieur" sont disponibles.
Fentre de description
Permet de visualiser et/ou de modifier les caractristiques:
du ou des champs slectionns.
de ltat en cours.
Fentre de code
Affiche les diffrents traitements associs ltat, ses blocs et ses champs.
Documents ouverts
Affiche un bouton pour chaque document ouvert sous lditeur. Pour afficher llment voulu
au premier plan, il suffit de cliquer sur le "bouton" correspondant.
Volets horizontaux
Affiche:
les erreurs de compilation (erreurs prsentes dans le code WLangage) ou erreurs dIHM
(volet "Erreurs de compilation"),
loutil de recherche (volet "Rechercher-Remplacer"),
le dbogueur lors du test dun lment (volet "Dbogueur"),
...
Plusieurs types de volets sont disponibles: le volet en cours: Longlet du volet apparat en gris clair et un
trait color est affich en haut de longlet.
les volets contextuels, spcifiques llment en cours: Ces volets concernent lditeur en cours ou ll-
ment slectionn. Le nom du volet est affich:
en jaune pour WinDev,
en orange pour WinDev Mobile,
en bleu pour WebDev.
les autres volets disponibles: Le nom du volet apparat en blanc.
La zone des options
Les options sont regroupes sous les volets dans des groupes doptions.
Projet 1 Projet 2
Requtes Requtes
Analyse
Fentres partage Fentres
ou pages ou pages
Etats Etats
Ici, une analyse WinDev est partage entre deux projets (WinDev, WinDev Mobile ou WebDev).
Pour charger un projet, sous le volet "Accueil", dans le groupe "Gnral", droulez "Ouvrir" et slectionnez
"Ouvrir un projet".
2.2.1 Prsentation
Pour crer un tat:
1.Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
2.Spcifiez:
le type dtat crer (fiche, tableau, ...). Pour plus de dtails, consultez "Les diffrents types dtats
disponibles", page 24.
la source de donnes de ltat (fichier de donnes, requte, ...). Pour plus de dtails, consultez
"Sources de donnes dun tat", page 43.
les lments de ltat (champs, conditions de tri, ruptures, ...).
3.Validez la cration de ltat. Ltat est alors gnr et enregistr selon les diffrentes options choisies.
Voici les caractristiques dtailles de chaque type dtat ainsi que des exemples dutilisation:
tat Vierge:
Lecture de la source de donnes de ltat
Chaque page affiche:
soit un texte spcifique.
soit un formulaire standard (rempli par la suite la main).
soit les donnes dun ou de plusieurs enregistrements.
Exemples dutilisation:
Formulaire de saisie des appels reu.
Formulaire de saisie des absences.
Formulaire de saisie des produits rceptionns.
tat Fiche:
Lecture de la source de donnes de ltat
Les donnes lues dans la source de donnes sont affiches sous forme de fiche: chaque page affiche
les donnes dun ou de plusieurs enregistrements.
Exemples dutilisation:
Liste dtaille
Regroupement de donnes selon un critre
tat Tableau:
Lecture de la source de donnes de ltat :
Chaque ligne du tableau correspond un enregistrement lu dans la source de donnes de ltat
(fichier de donnes, requte, ...).
Exemples dutilisation:
Tableau de synthse
Facture
Liste dtaille
Regroupement de donnes selon un critre
tat Planning:
Lecture de la source de donnes de ltat :
Les donnes lues dans la source de donnes sont affiches sous forme dun planning.
Exemples dutilisation: Impression dun planning la journe, la semaine, ...
Aperu dun tat Planning :
tat Mailing :
Lecture de la source de donnes de ltat :
Chaque enregistrement lu dans la source de donnes correspond une page.
Exemples dutilisation:
Publipostage
Lettre publicitaire
tat tiquette:
Lecture de la source de donnes de ltat :
Chaque enregistrement lu dans la source de donnes correspond une tiquette.
Si vous choisissez ce type dtat, il est possible de configurer le nombre dexemplaires dune mme
tiquette.
Exemples dutilisation:
tiquettes de prix
tiquettes dadresse
tat multicolonne:
Lecture de la source de donnes de ltat :
Si ltat multicolonne est de type Tableau, chaque ligne du tableau correspond un enregistrement lu
dans la source de donnes de ltat (fichier de donnes, requte, ...).
Si ltat multicolonne est de type Fiche, les donnes lues dans la source de donnes sont affiches
sous forme de fiche: chaque page affiche les donnes dun ou de plusieurs enregistrements.
Exemple dutilisation: Catalogue produit.
tat composite:
Lecture de la source de donnes de ltat :
Ltat composite est compos de plusieurs sous-tats. Chaque sous-tat peut tre dun type spci-
fique. La lecture de la source de donnes des sous-tats dpend du type des sous-tats.
Exemples dutilisation: Impression commande et conditions gnrales de ventes,
Aperu dun tat composite :
crs avec le logiciel Etats & Requtes sont dfinis par le dveloppeur sous lditeur
danalyses. Pour plus de dtails sur la prparation ncessaire lutilisation dune appli-
cation WinDev avec le logiciel Etats & Requtes, consultez "Diffuser le logiciel Etats &
Requtes", page 231.
Requte: Les donnes imprimer proviennent dune requte. Cette requte correspond:
soit une requte cre et enregistre sous lditeur de requtes.
soit une requte cre lors de la cration de ltat.
Champ Table ou Table hirarchique, Agenda ou Planning prsent dans une fentre ou dans une page:
Les donnes imprimer proviennent dun champ spcifique prsent dans une des fentres de lapplica-
tion ou dans une des pages du site. Les enregistrements sont slectionns par le champ, ltat ne fait
que les imprimer.
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table, un
Important
Variable existante: Les donnes imprimer proviennent dune variable WLangage du projet ou de ltat.
Cette variable peut tre une variable de type tableau simple, un membre de classes, un membre de struc-
ture ou un membre de variables de type avanc.
Important
Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur va-
riable.
Requte SQL via une connexion (ODBC, Accs Natifs, ...) (non disponible en WinDev Mobile): Les don-
nes imprimer proviennent dune base de donnes accessible via un driver ODBC spcifique, via un
Accs Natif, ... La requte SQL est dfinie lors de la cration de ltat.
Remarque: Ce type de source nest pas disponible dans lassistant de cration dun tat.
Pas de source de donnes: Ltat ne sera li aucune source de donnes.
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une zone mmoire.
Cependant, il est possible de personnaliser les tats sur zone mmoire crs avec ldi-
teur dtats intgr (couleur, polices, taille, ...).
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une source de don-
nes programme.
Pour programmer et slectionner vous-mme les enregistrements afficher dans ltat, choisissez un tat
avec programmation de la lecture de la source de donnes.
Lajout dune rupture gnre automatiquement les blocs Haut et Bas de rupture. Ces blocs permettent par
exemple de:
afficher le contenu de la rubrique de rupture (gnralement dans le bloc Haut de rupture).
raliser des calculs sur les enregistrements de la rupture (gnralement dans le bloc Bas de rupture).
Lditeur dtats propose deux types de ruptures:
rupture automatique (la plus courante). La rupture est ralise sur une rubrique appartenant la source
de donnes de ltat.
rupture programme. La rupture est entirement dfinie par programmation dans le traitement "Rupture
?" du bloc Haut de rupture. Pour plus de dtails sur la programmation dune rupture, consultez "Traite-
ment de rupture", page 138.
Pour plus de dtails sur les ruptures, consultez laide en ligne (mot-cl : "Rupture, Rupture dans un tat").
WinDev Mobile: Lors du test dun tat sous lditeur, toutes les options sont disponibles. Cependant, lors de
limpression dun tat par programmation:
dans une application Windows Mobile, seules les impressions sur une imprimante PCL ou sur un fichier
PCL sont disponibles.
dans une application iOS, seules les impressions sur un fichier PDF sont disponibles.
3.1 Prsentation
Dans le chapitre prcdent, nous avons vu lors de la cration dun tat que diffrentes sources de donnes
pouvaient tre slectionnes.
Ce chapitre prsente plus prcisment ces sources de donnes et leur intrt:
Etat sur un fichier de donnes.
Etat sur une requte.
Etat sur une variable.
Etat sur un champ Table.
Etat sur un champ Table hirarchique.
Etat sur un champ Agenda.
Etat sur un champ Planning.
Remarque: Dautres sources de donnes sont galement disponibles mais plus rarement utilises:
Etat sur une vue HFSQL.
Etat sur une zone mmoire.
Etat sur un fichier texte.
Etat sur une source de donnes programme.
Pour plus de dtails, consultez laide en ligne.
3.2.1 Prsentation
Un tat sur un fichier de donnes permet dimprimer des enregistrements provenant dun seul fichier de don-
nes (HFSQL Classic ou Client/Serveur, accd par un Accs Natif, ...). Si les enregistrements proviennent de
plusieurs fichiers de donnes, il est conseill dutiliser un tat sur requte.
La cration dun tat sur un fichier de donnes seffectue grce lassistant de cration dun tat. Ce type
dtat peut tre cr uniquement si le projet en cours est associ une analyse.
Lorsque ltat sur un fichier de donnes est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier la cl de parcours (onglet "Donnes" de la description de ltat).
dfinir des bornes (onglet "Donnes" de la description de ltat).
ajouter ou supprimer des champs Rubriques lis au fichier de donnes associ ltat.
Les fichiers de donnes et les rubriques des fichiers de donnes pouvant tre utiliss
dans les tats crs avec le logiciel Etats & Requtes sont dfinis par le dveloppeur
Important
3.3.1 Prsentation
Une requte permet de slectionner simplement certains enregistrements dun ou de plusieurs fichiers de
donnes. Une requte permet aussi de raliser des calculs sur les donnes slectionnes. Il est ainsi pos-
sible, par exemple, de slectionner toutes les commandes des clients habitant New York et de raliser un
total du montant des commandes par client.
Lutilisation de requtes dans un tat permet de raliser rapidement des tats complexes. La requte pr-
slectionne les enregistrements et ltat organise toutes les donnes slectionnes et ralise les diffrents
calculs.
Attention: Pour optimiser ltat, il est recommand de raliser les diffrents calculs (totaux sur des rubriques
par exemple) directement dans ltat et non dans la requte.
Lditeur dtats offre la possibilit de crer un tat bas sur une requte selon plusieurs modes:
soit la requte est cre et enregistre sous lditeur de requtes. Ltat est alors bas sur le fichier cor-
respondant la requte (fichier ".WDR"). La requte peut tre rutilise dans un autre tat, une fentre,
un champ, ... La requte peut tre modifie tout moment sous lditeur de requtes. La requte est dite
indpendante.
soit la requte est cre lors de la cration de ltat. La requte est alors intgre ltat. Aucun fichier
spcifique la requte nest cr. La requte peut uniquement tre modifie partir de ltat qui la
cre. Elle ne peut pas tre rutilise dans un autre tat, une fentre, un champ, ... La requte est dite
intgre.
soit la requte est base sur des donnes provenant dune connexion (non disponible sous WinDev
Mobile).
Remarque: Ce type dtat sur requte est disponible mme si aucune analyse nest associe au projet
WinDev ou WebDev.
Astuce: Il est possible de crer directement depuis lditeur de requtes, un tat bas sur la requte de
slection en cours. Pour cela, sous le volet "Requte", dans le groupe "Liaison fichier", cliquez sur "Crer un
tat".
Remarque: Une requte (intgre ou indpendante) peut tre paramtre.
Ltat pourra tre alors imprim trs simplement depuis vos programmes WLangage. Pour plus de dtails,
consultez "Etat sur une requte", page 121.
Si la requte est cre avec le logiciel Etats & Requtes, il nest pas ncessaire dutili-
Important
Remarque: Pour plus de dtails sur les requtes paramtres, consultez "Requte paramtre", page 217.
Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur va-
riable.
3.5.1 Prsentation
Ltat sur un champ Table permet dimprimer directement les informations affiches dans un champ Table
(fichier, mmoire ou sur source) prsent:
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne. La fentre (ou la page) affichant la fentre interne (ou la page
interne) doit tre affiche.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table.
Cependant, il est possible de personnaliser des tats sur un champ Table crs sous
lditeur dtats intgr (couleur, polices, taille, ...).
3.5.2 Caractristiques
Si ltat est bas sur un champ Table:
Chaque ligne du champ Table correspond un enregistrement.
Chaque colonne du champ Table correspond un champ rubrique (mme les colonnes invisibles).
Dans le cas dun tat de type tableau, lordre daffichage des colonnes dans ltat correspond par dfaut
lordre des colonnes dans la fentre en cours ddition. En WinDev, si lutilisateur modifie lordre des co-
lonnes dans la fentre, lordre daffichage des colonnes dans ltat ne sera pas modifi dynamiquement.
Attention: Les donnes imprimes dans ltat sont tries selon la colonne de tri dfinie pour le champ Table.
3.6.1 Prsentation
Ltat sur un champ Agenda permet dimprimer directement les informations affiches dans un champ
Agenda prsent :
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne:
La fentre affichant la fentre interne doit tre affiche.
La page affichant la page interne doit tre affiche.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Agenda.
Cependant, il est possible de personnaliser des tats sur un champ Agenda crs sous
lditeur dtats intgr (couleur, polices, taille, ...).
Remarque: Seul un tat de type Agenda peut tre cr sur un champ Agenda.
3.6.2 Caractristiques
Chaque ligne et chaque colonne du champ Agenda sont affiches dans ltat Agenda.
Lors de la cration de ltat, il est possible de slectionner le nombre de jours afficher ainsi que le mode
daffichage des ressources (en ligne ou en colonne).
Il est possible de crer un tat sur un champ Agenda depuis lditeur dtats: il suffit de slectionner un tat
Agenda bas sur un champ Agenda.
Lorsque ltat sur un champ Agenda est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier les caractristiques de lagenda (onglet "Gnral" de la description de lagenda).
Attention: Il est impossible de tester un tat sur un champ Agenda directement depuis lditeur dtats car
la fentre ou la page contenant le champ Agenda doit tre ouverte. Pour tester un tat sur un champ Agenda,
il est donc ncessaire de:
crer un bouton dans la fentre ou la page du champ Agenda. Ce bouton permet de lancer limpression
de ltat sur le champ Agenda (fonction iImprimeEtat).
Cas des fentres internes ou des pages internes: Si le champ Agenda est prsent dans une fentre
interne ou une page interne, il est conseill de crer le bouton dans la fentre/page interne et non dans
la fentre/page hte.
tester directement la fentre contenant le champ Agenda puis ltat (grce au bouton).
Cas des fentres internes: il est ncessaire deffectuer le test depuis la fentre accueillant la fentre
interne.
tester directement la page contenant le champ Agenda puis ltat (grce au bouton).
Cas des pages internes: il est ncessaire deffectuer le test depuis la page accueillant la page interne.
3.7.1 Prsentation
Ltat sur un champ Planning permet dimprimer directement les informations affiches dans un champ
Planning prsent:
dans une fentre ou une page de lapplication. Cette fentre ou page doit tre affiche lors de limpres-
sion de ltat.
dans une fentre ou une page interne:
La fentre affichant la fentre interne doit tre affiche.
La page affichant la page interne doit tre affiche.
Remarque: Seul un tat de type Planning peut tre cr sur un champ Planning.
3.7.2 Caractristiques
Chaque ligne et chaque colonne du champ Planning sont affiches dans ltat Planning.
Lors de la cration de ltat, il est possible de slectionner le nombre de jours afficher et le mode daffi-
chage des ressources (en ligne ou en colonne).
Il est possible de crer un tat sur un champ Planning depuis lditeur dtats: il suffit de slectionner un
tat Planning bas sur un champ Planning.
Lorsque ltat sur un champ Planning est cr, il est possible tout moment de:
modifier la source de donnes de ltat (onglet "Donnes" de la description de ltat).
modifier les caractristiques du planning (onglet "Gnral" de la description du Planning).
Attention: Il est impossible de tester un tat sur un champ Planning directement depuis lditeur dtats,
car la fentre ou la page contenant le champ Planning doit tre ouverte. Pour tester un tat sur un champ
Planning, il est donc ncessaire de:
crer si ncessaire un bouton dans la fentre ou la page du champ Planning. Ce bouton permet de lancer
limpression de ltat sur le champ Planning (fonction iImprimeEtat).
Cas des fentres internes: Si le champ Planning est prsent dans une fentre interne, il est conseill de
crer le bouton dans la fentre interne et non dans la fentre hte.
tester directement la fentre contenant le champ Planning puis ltat (grce au bouton).
Cas des fentres internes: il est ncessaire deffectuer le test depuis la fentre accueillant la fentre
interne.
tester directement la page contenant le champ Planning puis ltat (grce au bouton).
Cas des pages internes: il est ncessaire deffectuer le test depuis la page accueillant la page interne.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Planning.
Cependant, il est possible de personnaliser des tats sur un champ Planning crs sous
lditeur dtats intgr (couleur, polices, taille, ...).
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.5 Options
Longlet "Options" de la fentre de description de ltat permet de configurer:
le fonctionnement de ltat si le format de la page nest pas support par limprimante.
la position des blocs lors de limpression de ltat.
le style du tableau si ltat contient un tableau.
la liste des modles utiliss par ltat.
le style des tiquettes si ltat est de type tiquette.
Cet onglet permet galement de:
configurer ltat pour lutilisation du logiciel Etats et Requtes. Pour plus de dtails, consultez "Diffuser le
logiciel Etats & Requtes", page 231.
spcifier si le code compil doit tre intgr. Cette option est ncessaire dans des cas trs rares.
configurer certains paramtres spcifiques:
Si chaque page doit tre envoye sparment au spooler dimpression (impression effectue page
aprs page). Dans ce cas, limpression est envoye au spooler dimpression aprs chaque page impri-
me.
4.2.7 Langue
Un tat peut tre multilingue, cest--dire qu lexcution cet tat pourra tre affich et imprim dans plu-
sieurs langues.
Longlet "Langue" permet de configurer:
les diffrentes langues gres par ltat en cours.
la langue visualise sous lditeur dtats: cest cette langue qui sera utilise par dfaut pour afficher
ltat sous lditeur.
Les informations dun tat pouvant tre saisies en plusieurs langues sont:
tous les messages affichs lors de limpression de ltat. La traduction de ces messages est ralise
directement dans les diffrentes fentres de description.
le libell des champs de type Libell ou RTF:Pour traduire ces libells, il suffit de:
modifier la langue affiche de ltat: sous le volet "Affichage", dans le groupe "Options", droulez
"Langue affiche" et slectionnez la langue voulue.
saisir directement les traductions dans ltat en dition.
le masque daffichage des champs de type rubrique, calcul ou prdfini.
les diffrents fichiers image utiliss dans ltat.
le formulaire de ltat.
Rcupration automatique
Pour viter tout problme lors dun blocage du systme (coupure de courant par exemple), WinDev, WebDev
et WinDev Mobile proposent un systme de rcupration automatique des lments ouverts sous les diff-
rents diteurs.
Lorsque ce systme est activ:
un enregistrement automatique des lments ouverts est automatiquement effectu une priode don-
ne (toutes les 10 minutes par dfaut).
lors de la rouverture dun tat aprs un blocage systme, une fentre de rcupration automatique
apparat. Cette fentre propose de rcuprer:
soit ltat tel quil tait lors de la dernire sauvegarde ralise depuis lditeur dtats.
soit ltat sauvegard automatiquement.
La version slectionne est automatiquement ouverte sous lditeur dtats. La version non slection-
ne est disponible dans la fentre de gestion des versions et peut tre ouverte tout moment.
En excution, il est possible dimprimer ou non limage du formulaire avec ltat. Par dfaut, limage du for-
mulaire nest pas imprime avec ltat.
Par exemple:
Le logiciel Etats & Requtes ne permet pas de crer des gabarits dtats.
Le logiciel Etats & Requtes ne permet ni de crer ni de modifier des modles dtats.
5.1 Prsentation
Un tat imprim est compos de plusieurs parties:
un dbut de document,
un entte de page,
le corps de la page,
un pied de page,
une fin de document,
une ou plusieurs ruptures, si ltat est tri.
Pour grer les diffrentes parties de ltat, lditeur dtats dcoupe la structure de ltat en blocs. A chaque
bloc, un traitement en WLangage peut tre associ.
Remarques:
Pour slectionner un bloc, il suffit de cliquer sur son intitul affich sur la gauche des tats.
Par dfaut, lintitul des blocs est affich en complet sur la gauche des tats. Pour afficher ces intituls
en abrg, sous le volet "Affichage", dans le groupe "Visualisation", dcochez loption "Nom complet des
blocs" (touche de raccourci [F10]).
Lors du clic sur le nom dun bloc ou dans une zone de ltat, les dlimiteurs du bloc sont mis en surbril-
lance.
Remarque: Il est galement possible de modifier lordre dimpression des blocs dans la fentre de descrip-
tion de chaque bloc (option "Description du bloc" du menu contextuel du bloc).
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.
Par exemple:
// Imprimer un bloc ditration
iImprimeBloc("ITERATION1")
// Rendre le bloc "Corps" invisible
Corps..Visible = Faux
Modifier le libell
Le libell dun champ "Libell" peut tre modifi:
soit par programmation (proprit ..Libell).
soit sous lditeur dtats. Dans ce cas, deux mthodes sont possibles:
Mthode 1:
1.Slectionnez le champ. Les poignes de slection apparaissent autour du champ.
2.Cliquez une nouvelle fois sur le champ. Le curseur de la souris se transforme en curseur de saisie.
3.Saisissez le nouveau libell du champ.
4.Modifiez si ncessaire la mise en forme du libell grce aux options de mise en forme prsentes sous
le volet "Modification", dans le groupe "Edition rapide" du ruban:
Mthode 2:
1.Slectionnez le champ.
2.Affichez la fentre de description du champ (option "Description" du menu contextuel du champ).
3.Saisissez le nouveau libell dans chaque langue gre par le champ.
4.Modifiez si ncessaire la mise en forme du libell dans longlet "Style".
Libells multilingues
Si votre application ou votre site est multilangue, il est possible de saisir un libell diffrent pour chaque
langue gre par ltat.
Selon la langue dexcution du projet, le libell correspondant sera imprim.
Transformer un champ "Libell" en champ "RTF"
Pour afficher du texte au format RTF dans un champ "Libell", cochez loption "Format RTF" dans longlet
"Dtail" de la description du champ (option "Description" du menu contextuel du champ).
Le champ "Libell" se transforme alors en champ "RTF". Toutes les caractristiques du champ "Libell" sont
conserves.
Pour plus de dtails sur le champ RTF, consultez "Champ RTF", page 72
Images multilangues
Si votre application ou votre site est multilangue, il est possible de slectionner une image diffrente pour
chaque langue gre par ltat. Cette option est intressante par exemple lorsque les images contiennent du
texte.
Selon la langue dexcution du projet, limage correspondante sera imprime.
Exemple:
Exemple:
la source de la srie (programmation, fichier de donnes, requte, tableau WLangage, source de don
nes de ltat)
les donnes affiches par la srie.
lpaisseur du trait, la couleur et le type de points.
Remarque: si la source de donnes correspond la source de donnes de ltat, il est possible de dfinir:
le bloc dalimentation,
le champ ou la rubrique correspondant la srie,
le mode de slection des donnes.
Pour plus de dtails sur les tats internes, consultez laide en ligne (mot-cl : "Etat interne").
Avantages des tats internes par rapport aux tats imbriqus
Lditeur dtats permet galement dimprimer simultanment plusieurs tats grce aux tats imbriqus.
Cependant, les tats imbriqus sont moins simples dutilisation. En effet, les tats imbriqus ncessitent:
lutilisation de la fonction iImprimeEtat pour lancer limpression de ltat secondaire.
lobligation dimprimer ltat imbriqu la suite de ltat principal. Il nest pas possible dimprimer ces
tats cte cte.
Les tats internes permettent dimprimer sans programmation plusieurs tats:
soit les uns en dessous des autres,
soit les uns ct des autres.
Pour plus de dtails sur les tats imbriqus, consultez "Etats imbriqus", page 108.
Remarques:
Champ de saisie multi ligne: si lutilisateur saisit plus de lignes que ce qui est visible, les lignes non
visibles ne seront pas imprimes. Lors de la saisie, les champs de saisie grent un ascenseur vertical.
Style de la zone de saisie: Dans cette version, seule la police "Arial" est utilisable.
Le champ de saisie nest pas li une rubrique dun fichier ou dune requte. Pour afficher des informa-
tions provenant dun fichier ou dune requte, il est ncessaire de raliser une affectation du champ par
programmation.
Le cadre de la zone de saisie nest pas paramtrable (paisseur, couleur, ...).
Il nest pas possible dutiliser un type montaire (le symbole Euro nest pas gr).
Pour plus de dtails, consultez "Etats avec saisie", page 100.
Pour slectionner plusieurs champs en mme temps, plusieurs mthodes sont disponibles:
Mthode 1: laide de la touche [Ctrl].
Mthode 2: laide du lasso.
Remarques:
Pour ajouter/supprimer un champ une slection existante, maintenez la touche [Ctrl] enfonce, puis
cliquez sur le champ ajouter/supprimer de la slection.
Lors de laffichage de la fentre 7 onglets (option "Description" du menu contextuel de la slection),
seules les options communes aux champs slectionns sont affiches.
Le lasso de la souris correspond une zone de slection des champs. Cette zone est matrialise par un
rectangle en pointills.
Dans ces traitements, vous pouvez saisir du code en WLangage. Pour plus de dtails sur lenchanement de
ces traitements, consultez "Enchanement des traitements associs un tat", page 135.
Pour plus de dtails sur ces proprits et leur utilisation, consultez laide en ligne.
7.1 Prsentation
Dans un tat, un tableau est constitu dun ensemble de champs appel "Cellules du tableau".
Gnralement, un tat contient un seul tableau. Pour afficher plusieurs tableaux dans le mme tat, il est
ncessaire dutiliser des tats internes ou des tats imbriqus.
Un tableau est constitu de trois parties:
la ligne dentte, affichant lintitul des colonnes du tableau. Cette ligne est optionnelle. Si elle est affi-
che, cette ligne doit tre la premire ligne du tableau et affiche chaque nouveau tableau.
Cette ligne est habituellement affiche dans un bloc Entte de page ou Haut de rupture.
les lignes de donnes, affichant les informations provenant de la source de donnes. Pour chaque enre-
gistrement prsent dans la source de donnes, une nouvelle ligne est affiche lors de lexcution de
ltat. Toutes les donnes de lenregistrement sont affiches sur une mme ligne. La ligne de donnes
est habituellement associe au bloc Corps.
la ligne de totaux permettant deffectuer des totaux sur les colonnes du tableau.
Ces lignes sont habituellement affiches dans des blocs Bas de rupture ou Pied de page.
Remarque: Les diffrentes cellules des totaux ne sont pas obligatoirement places sur la mme ligne.
Par exemple:
Les principales tapes de la cration dun tat de type tableau crois sont les suivantes:
La rubrique correspondant aux intituls des colonnes.
Remarque: Si cette rubrique est de type "Date", lassistant propose de:
conserver uniquement le jour ou lanne de ces dates.
dfinir la priode prendre en compte (date de dbut et date de fin).
La rubrique correspondant aux intituls des lignes.
Remarque: Si cette rubrique est de type "Date", lassistant propose de:
conserver uniquement le jour ou lanne de ces dates.
dfinir la priode prendre en compte (date de dbut et date de fin).
Linformation afficher dans les cellules du tableau. Cette information peut correspondre:
soit au nombre denregistrements correspondant lintersection des lignes et des colonnes.
Par exemple: le nombre de commandes effectues par anne et par client. Le client "Dubois" a effec-
tu 2 commandes en 2000 et 3 en 2001.
soit la somme, la moyenne, le maximum ou le minimum dune rubrique.
Par exemple: le nombre de produits commands par produit et par anne. En 2000, 279 canaps ont
t commands.
soit une rubrique.
Par exemple: la note attribue par chaque juge pour un certain patineur. Aux championnats dEurope
2002, le juge Italien a attribu la note 5.2 au patineur "A".
Le calcul des totaux pour les lignes et les colonnes du tableau (si ncessaire).
Le format de la feuille sur laquelle ltat va tre imprim. Par dfaut, ltat est imprim sur une feuille au
format A4.
Le gabarit de ltat si ncessaire.
Le nom et le titre de ltat. Ce nom (nom du fichier ".WDE" correspondant ltat) permettra didentifier
ltat dans vos applications ou vos sites.
Pour plus de dtails sur ce type dtat, consultez laide en ligne.
Les principales tapes de la cration dun tat de type tableau hirarchique sont les suivantes:
slection de la source de ltat. Pour plus de dtails, consultez "Sources de donnes dun tat", page
43.
slection des donnes afficher dans ltat. Ces donnes seront affiches dans la ligne de donnes du
tableau.
slection du format de la page (A4, A3, portrait, ...).
slection du gabarit. Pour plus de dtails, consultez "Gabarit", page 37.
Pour plus de dtails sur ce type dtat, consultez laide en ligne.
8.1 Prsentation
Lditeur dtats permet de crer des tats incluant des champs de saisie. Ces tats peuvent tre gnrs
au format PDF.
Vous pouvez ainsi diffuser des tats, si ncessaire au format PDF, qui permettent la saisie directe par luti-
lisateur dans les zones spcifies: formulaire administratif (dclaration de revenus, dclarations diverses,
carte grise, ...).
Les donnes peuvent tre juste imprimes ou encore mmorises dans une base de donnes (lorsque la
saisie est ralise depuis laperu avant impression). Ltat devient alors un formulaire de saisie.
Les champs de saisie peuvent tre utiliss sur tous les types dtats. Le plus souvent, les champs de saisie
sont utiliss sur les tats de type Formulaire, utilisant par exemple un PDF en fond dtat.
Remarques:
Les traitements associs aux champs de saisie sont excuts lors de leur manipulation dans laperu
avant impression.
Il est possible dafficher par programmation des donnes provenant de la base de donnes. Il suffit de
lier ltat un fichier de donnes ou une requte, puis daffecter la rubrique voulue au champ de saisie
dans le traitement "Avant impression" du champ de saisie.
Il est possible denregistrer par programmation des donnes modifies par lutilisateur dans laperu
avant impression. Prenons un exemple simple, la modification dun enregistrement affich dans ltat.
Dans chaque champ de saisie dont la valeur doit tre modifie, il suffit de:
- affecter la valeur saisie la rubrique
- modifier lenregistrement.
Ces actions sont ralises dans le traitement "Sortie de champ".
Par exemple pour modifier le nom du client, le code correspondant est le suivant:
Client.Nom = SAI_Nom
HModifie(Client)
Remarques:
Les champs de saisie permettent de saisir des informations dans le fichier PDF. Ces informations seront
prises en compte lors de limpression. Si lutilisateur final possde Adobe Acrobat en version complte,
les donnes saisies pourront tre enregistres au format PDF (Acrobat Reader ne permet pas denregis-
trer les fichiers PDF).
Il est possible dafficher par programmation des donnes provenant de la base de donnes. Il suffit de
lier ltat un fichier de donnes ou une requte, puis daffecter la rubrique voulue au champ de saisie
dans le traitement "Initialisation" ou "Avant impression" du champ de saisie.
9.1 Prsentation
Lditeur dtats offre la possibilit de crer des tats de type "Composite". Ltat est alors constitu de
plusieurs sous-tats. Chaque sous-tat peut afficher des donnes diffrentes et utiliser une orientation sp-
cifique. Les diffrents sous-tats sont imprims lun aprs lautre.
Par exemple:
Sous lditeur:
En excution:
10.1 Prsentation
Dans certains cas, il peut tre ncessaire dimprimer des tats diffrents la suite, visibles dans le mme
aperu avant impression.
Les tats composites rpondent ce besoin dans le cas o lenchanement des tats est connu davance.
Si lenchanement nest pas connu davance et doit tre programm, il est possible dutiliser lenchanement
des tats par programmation.
11.1 Prsentation
Les tats imbriqus permettent dimprimer plusieurs tats (tats secondaires) dans un seul tat (tat prin-
cipal).
Ces tats peuvent avoir une orientation diffrente (portrait / paysage).
Par exemple, ltat principal suivant est compos de:
un tat affichant les caractristiques dun client.
un tat affichant le rcapitulatif des commandes de ce client pour les derniers mois.
11.2.1 Principe
La cration dun tat principal compos de plusieurs tats secondaires est ralise en plusieurs tapes:
1.Cration dun tat principal.
2.Cration du ou des tats secondaires. Ces tats peuvent avoir une orientation diffrente de ltat princi-
pal.
3.Impression des tats secondaires dans ltat principal grce la fonction iImprimeEtat. Cette fonction
doit tre utilise:
soit dans le traitement "Avant impression" dun bloc: ltat secondaire sera imprim avant ce bloc.
soit dans le traitement "Fin impression" dun bloc: ltat secondaire sera imprim aprs ce bloc.
Attention: Si les tats imbriqus ont des orientations diffrentes, il est ncessaire dappeler la fonc-
tion iParamtre afin de changer lorientation de limpression en consquence.
4.Configuration de limpression des hauts et bas de pages de ltat imbriqu (fonction iHautBasPageImbri-
qu). Cette fonction peut tre utilise:
soit dans le code douverture de ltat principal: elle sera prise en compte pour tous les tats imbri-
qus qui seront imprims depuis ltat principal.
soit directement avant limpression de ltat imbriqu: elle sera prise en compte uniquement pour
ltat imbriqu suivant.
5.Impression de ltat principal. Pour plus de dtails, consultez "Imprimer un tat imbriqu", page 111.
Remarque: Pour effectuer des impressions utilisant des tats avec des orientations diffrentes (portait/
paysage), il est conseill dutiliser lenchanement dtats. Cette mthode est trs simple mettre en oeuvre.
Pour plus de dtails, consultez "Enchaner des tats", page 106.
11.2.2 Exemple
Ltat "ETAT_Commande" est un tat bas sur le fichier de donnes "Commande". Cet tat permet dimpri-
mer les caractristiques de chaque commande (date de commande, numro client, montant de la com-
mande, ...). Une rupture sur la rubrique "NumCommande" permet de sparer les diffrentes commandes.
La requte "REQ_ProduitCommand" slectionne lensemble des produits dune commande spcifie. Cette
requte attend en paramtre un numro de commande.
Ltat "ETAT_ProduitCommand" est bas sur la requte "REQ_ProduitCommand". Cet tat imprime unique-
ment les produits slectionns par la requte "REQ_ProduitCommand".
Ltat "ETAT_ProduitCommand" correspond ltat secondaire. Cet tat sera imprim aprs chaque rupture.
Ralisation
1.Crez ltat "ETAT_Commande": cet tat correspond ltat principal.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
2.Crez la requte "REQ_ProduitCommand". Pour plus de dtails, consultez "Comment crer une re-
qute?", page 168.
3.Crez ltat "ETAT_ProduitCommand": cet tat correspond ltat secondaire.
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Remarque: Le bloc Pied de page de cet tat ne sera pas imprim. Pour plus de dtails sur les blocs de
ltat imbriqu imprims, consultez le paragraphe "Blocs de ltat secondaire", page 110.
11.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique
Si ltat secondaire est bas sur une requte manipulant une connexion spcifique, utilisez la fonction iI-
nitRequteEtatConnexion pour excuter cette requte (et lui passer si ncessaire des paramtres). Cette
fonction doit tre utilise avant la fonction iImprimeEtat.
Remarques:
Si des paramtres supplmentaires doivent tre passs ltat principal, ces paramtres doivent tre
indiqus dans la fonction iImprimeEtat, aprs le nom de ltat. Pour plus de dtails, consultez "Etat para-
mtr", page 139.
La fonction iListeEtatImbriqus permet dobtenir la liste des tats secondaires imbriqus dans un tat
principal.
Pour effectuer des impressions utilisant des tats avec des orientations diffrentes (portait/paysage), il
est conseill dutiliser lenchanement dtats. Cette mthode est trs simple mettre en oeuvre. Pour
plus de dtails, consultez "Enchaner des tats", page 106.
Exemple
Ltat "ETAT_EtatCommande" est compos dun tat principal et dun tat secondaire.
Ltat "ETAT_EtatCommande" simprime lors dun clic sur le bouton "Imprimer".
Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant:
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)
Code WebDev:
// Paramtrer la destination de limpression
iDestination(iHTML, fRepWeb() + "\Etat.htm")
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)
// Envoyer le fichier au navigateur
FichierAffiche(fRepWeb() + "\Etat.htm")
Code WinDev Mobile:
// Paramtrer la destination de limpression
iDestination(iPCL, "\\MonRseau\MonImprimante")
// Imprimer ltat ETAT_EtatCommande
iImprimeEtat(ETAT_EtatCommande)
Pour que limpression dtats raliss avec le logiciel Etats & Requtes soit possible
directement partir dune application WinDev, le fournisseur de lapplication WinDev
doit prvoir cette fonctionnalit dans son application.
Le fournisseur peut par exemple intgrer une fentre permettant lutilisateur final:
de slectionner un tat ralis avec le logiciel Etats & Requtes
puis de lancer lexcution de cet tat.
12.1 Prsentation
Lors de la cration dun tat, il est possible de tester directement cet tat depuis lditeur dtats.
Il est galement possible dintgrer cet tat vos applications ou vos sites. Lutilisateur ou linternaute
pourra ainsi lancer limpression de ltat directement depuis un bouton, une option de menu, ... par exemple.
Dans le cas dun site WebDev, le poste serveur se chargera de prparer ltat au format choisi (PDF,
HTML,...). Selon vos besoins, vous pourrez alors:
afficher cet tat sur le navigateur de linternaute,
lenregistrer sur le serveur et proposer linternaute de le tlcharger ou de lafficher, ...
Dans un site Intranet, il est galement possible dimprimer directement ltat sur une imprimante locale ou
rseau connecte au serveur.
Impression sur une imprimante rfrence sur le Terminal Mobile (Pocket PC)
Pour imprimer sur une des imprimantes rfrences sur le Terminal Mobile (sans ouvrir de fentre de choix
dimprimante), il suffit de:
1.Paramtrer limprimante utiliser avec la fonction iConfigure. Il suffit de prciser le nom de limprimante
utiliser. Ce nom doit correspondre un nom indiqu dans la fentre de choix des imprimantes.
2.Imprimer avec la fonction iImprimeEtat.
Il est ncessaire de spcifier des paramtres supplmentaires dans les cas suivants:
Impression dun tat born bas sur un fichier de donnes.
Impression dun tat paramtr bas sur un fichier de donnes.
Impression dun tat paramtr et born bas sur un fichier de donnes.
Exemple WebDev
Ltat "ETAT_Client" est un tat bas sur le fichier "Client". Cet tat permet dimprimer les caractristiques
des clients.
Ltat "ETAT_Client" saffiche dans un fichier PDF lors dun clic sur le lien "LIEN_Client". Le fichier PDF est en-
suite affich sur le navigateur. Dans cet exemple, le code de clic serveur du lien "LIEN_Client" est le suivant:
// Gnre un nom de fichier PDF unique
NomFicUnique est une chane = fRepWeb() + "\" + "ETAT_Client_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
// Imprime ltat ETAT_Client
iImprimeEtat(ETAT_Client)
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
// Supprime le fichier
fSupprime(NomFicUnique)
Remarque: La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le
nom du fichier de donnes associ ltat.
Exemple WinDev
Ltat "ETAT_Param" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre:
le texte de ce mailing saisi dans le champ de saisie "SAI_TexteMailing".
la date prvue de lenvoi de ce mailing saisie dans le champ de saisie "SAI_DateEnv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple:
le code de clic du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_Param, SAI_TexteMailing, SAI_DateEnv)
Exemple WinDev
Ltat "ETAT_Param" correspond un mailing publicitaire envoy aux clients dont le nom commence par la
lettre "D" ou par la lettre "E".
La borne minimale correspond : "D" et la borne maximale : "E".
Cet tat attend en paramtre:
le texte de ce mailing saisi dans le champ de saisie "SAI_TexteMailing".
la date prvue de lenvoi de ce mailing saisie dans le champ de saisie "SAI_DateEnv".
Cet tat simprime lors dun clic sur le bouton "BTN_Imprimer". Ltat "ETAT_Param" est bas sur le fichier
"Client".
Dans cet exemple, le code de clic du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec passage de bornes et de paramtres
iImprimeEtat(ETAT_Param, "D", "E", SAI_TexteMailing, SAI_DateEnv)
Remarques:
Si des paramtres doivent tre passs ltat, ces paramtres doivent tre indiqus dans la fonction iIm-
primeEtat, aprs le nom de ltat imprimer.
La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le nom de la
requte associe ltat.
Par exemple: Ltat "ETAT_Requete" est bas sur une requte paramtre. Les paramtres attendus par la
requte sont le nom de la socit et le type de la socit. Ces paramtres ont t saisis dans la fentre de
lancement de limpression de ltat.
Code WinDev:
// Ouvrir la fentre daperu
iAperu()
// Passer les paramtres la requte associe ltat
iInitRequteEtat(ETAT_Requete, NomSocit, TypeSocit)
// Imprimer la liste des socits
iImprimeEtat(ETAT_Requete)
Code Windows Mobile:
// Slection de limprimante
iConfigure()
Remarques:
Si des paramtres supplmentaires doivent tre passs ltat, ces paramtres doivent tre indiqus
dans la fonction iImprimeEtat, aprs le nom de ltat imprimer. Pour plus de dtails, consultez "Etat
paramtr", page 139.
Si la fentre contenant le champ Table source de ltat est ouverte plusieurs fois (ouverture non modale
par la fonction OuvreFille), il faut passer en paramtre ltat le nom complet du champ Table impri-
mer. Par exemple:
// Proprit ..NomComplet va contenir le nom de la fentre
// qui doit tre ouverte avec un alias
// afin de distinguer chaque fentre
iImprimeEtat(ETAT_Table_Client, TABLE_Client..NomComplet)
Remarques
La proprit ..NomSource utilise dans le code de ltat permet de connatre et de changer le nom de la
variable associe ltat.
La proprit ..RubriqueAffichee utilise dans le code de ltat permet de connatre et de changer le nom
de la variable associe la rubrique.
Exemple WebDev
Ltat "ETAT_gglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat
permet dimprimer la liste des vnements dun agenda Google.
Ltat "ETAT_gglEvenement" saffiche dans un fichier PDF lors dun clic sur le lien "LIEN_Evnement". Le
fichier PDF est ensuite affich sur le navigateur. Dans cet exemple, le code de clic serveur du lien "LIEN_Ev-
nement" est le suivant:
// Gnre un nom de fichier PDF unique
NomFicUnique est une chane
NomFicUnique = fRepWeb() + "\" + "ETAT_gglEvenement_" + ...
DateSys() + HeureSys() + ".pdf"
// Paramtre la destination de limpression
iDestination(iPDF, NomFicUnique)
Code WinDev:
le code de clic du bouton "Imprimer les vnements de lagenda" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_gglEvenement, Agenda[1])
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat
PROCEDURE ETAT_gglEvenement(MonAgenda)
Code Windows Mobile:
le code de clic du bouton "Imprimer les vnements de lagenda" est le suivant:
// Slection de limprimante
iConfigure()
// Imprimer ltat avec le passage des paramtres
iImprimeEtat(ETAT_gglEvenement, Agenda[1])
le code de ltat est le suivant:
// Rcuprer les paramtres passs ltat
PROCEDURE ETAT_gglEvenement(MonAgenda)
Remarque: Ces fonctions sont uniquement les fonctions ncessaires limpression de ltat. Dautres fonc-
tions sont prsentes dans le paragraphe "Fonctions WLangage", page 144.
13.1 Prsentation
Pour des raisons lgales, il peut tre ncessaire de conserver une copie strictement exacte dun tat, par
exemple dune facture.
Par ailleurs, compte tenu du volume des donnes traiter, certains tats (par exemple statistiques) peuvent
tre longs gnrer.
La fonctionnalit de Duplicata permet de rpondre automatiquement cette problmatique.
Le principe est simple: Lors de ldition dun tat (tat cr sous lditeur dtats ou par program-
mation), sa copie exacte peut tre gnre dans un fichier au format ".dpl" et peut tre conserve.
Il devient alors possible de rditer cette copie de ltat. Les donnes ne sont pas retraites ce qui protge
contre les modifications et rend cette rdition instantane.
La cration dun duplicata peut tre ralise:
depuis laperu avant impression (WinDev uniquement).
par programmation.
Remarques:
Limpression dun tat avec duplicata ralentit limpression. En effet, la dure de cration du duplicata est
comprise dans la dure de limpression. Il est recommand de faire des tests de performances.
Limpression dune page dun tat avec duplicata entrane la cration du duplicata pour la totalit de
ltat.
Remarques:
Pour ne pas proposer limpression des duplicata, utilisez la fonction iParamtreAperu (constante iBou-
tonDuplicata).
Pour modifier les paramtres par dfaut du duplicata, utilisez la fonction iParamtreDuplicata avant
dafficher laperu avant impression.
// Impression du duplicata
iAperu()
iImprimeEtat(ETAT_Facture)
La fonction iParamtreDuplicata permet:
de personnaliser les options de duplicata proposes par dfaut par loption "Duplicata" prsente dans
laperu avant impression.
dautomatiser limpression dun duplicata depuis laperu avant impression. En effet:
le duplicata sera gnr lors de limpression (ralise depuis laperu avant impression).
si une annotation ou un champ de saisie est modifi dans laperu avant impression, un nouveau
duplicata sera gnr lors de la prochaine impression.
si limpression est effectue sur plusieurs imprimantes diffrentes, un duplicata sera gnr pour
chaque imprimante.
Remarque: La liste des duplicatas crs lors de la dernire impression peut tre connue grce la fonction
iDernierFichier.
14.1 Prsentation
Un tat (et bien entendu un duplicata) peut intgrer un texte complmentaire sous forme de filigrane, comme
par exemple le terme "Confidentiel" ou "Duplicata" en travers de ltat.
La cration dun filigrane peut tre ralise:
depuis laperu avant impression (WinDev uniquement).
par programmation.
Remarques:
Si un filigrane est dfini pour un tat, il est dfini pour toutes les pages de ltat.
Un seul filigrane peut tre dfini pour un tat. Il nest pas possible de dfinir plusieurs filigranes.
Le filigrane est imprim uniquement sur les pages contenant des informations. Il nest pas imprim sur
des pages vides.
Lors de lutilisation de cette option, une fentre spcifique souvre permettant lutilisateur de dfinir: la
destination du filigrane: impression et/ou duplicata.
le positionnement du filigrane: diagonal montant, descendant ou horizontal.
le texte du filigrane, sa police, sa taille, sa couleur et son opacit.
// Texte du filigrane
MonFiligrane..Texte = "Confidentiel"
// Police utilise
MonFiligrane..Police..Nom = "Arial"
// Le filigrane sera imprim en centr horizontalement et en bas
MonFiligrane..Position = iCentreH + iBas
// Texte du filigrane
MonFiligrane..Texte ="Confidentiel"
// Termine limpression
iFinImprime()
Par exemple:
Code permettant dimprimer un filigrane en fond dun tat cr avec lditeur dtats:
// Impression dans laperu
iAperu()
// Termine limpression
iFinImprime()
15.1 Prsentation
Ce chapitre prsente les diffrents traitements disponibles dans un tat et dans ses lments (champs et
blocs) ainsi que leur mode de fonctionnement, et leur enchanement.
Dans ces diffrents traitements, des fonctions et proprits du WLangage peuvent tre utilises. Certaines
fonctions et proprits spcifiques aux tats sont prsentes dans ce chapitre.
Pour plus de dtails, consultez laide en ligne (mot-cl: "Traitements dun tat").
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.
Exemples dutilisation
Ce traitement permet par exemple de:
dclarer les variables globales de ltat.
modifier les bornes de ltat avec les proprits ..BorneMin et ..BorneMax.
initialiser les mots de passe des fichiers de donnes si ncessaire.
paramtrer la destination de limpression (fonction iAperu).
passer des paramtres la requte lie ltat (fonction iInitRequteEtat).
rcuprer les paramtres passs ltat.
changer la source de donnes de ltat.
Remarque: La fonction iImprime ne doit pas tre utilise dans le traitement douverture de ltat.
Exemples dutilisation
Ce traitement permet par exemple de:
slectionner des enregistrements.
raliser des calculs avancs (total pralable, ...) pour les tats bass sur les fichiers, les vues ou les
zones mmoires.
Utilisation du traitement
Si ce traitement contient des lignes de code, ces lignes de codes doivent renvoyer une valeur:
Annuler pour arrter la lecture des enregistrements (et arrter limpression).
Vrai pour signifier que lenregistrement vrifie le filtre et quil doit tre imprim.
Faux pour signifier que lenregistrement ne vrifie pas le filtre et quil ne doit pas tre imprim.
Exemples dutilisation
Ce traitement permet par exemple de:
connatre ltat de limpression en cours (fonction iStatusImpressionEtat).
ouvrir une bote de dialogue.
Remarque: Si la valeur de la rupture correspond la valeur dun champ de ltat, la valeur retourne sera
fausse si ce champ est contenu dans le bloc Corps de ltat. En effet, le traitement de rupture est excut
avant le remplissage des champs prsents dans le bloc Corps. Dans ce cas, il suffit de renvoyer la valeur de
la rubrique lie au champ.
// -- Code de rupture
nFournisseur est un entier = 0
// Rcuprer lidentifiant du fournisseur
nFournisseur = ExtraitChane(gfsLigne, 1, TAB)
// Rechercher le nom du fournisseur
HLitRecherchePremier(FOURNISSEUR, NumFournisseur, nFournisseur)
SI HTrouve() = Vrai ALORS
// Initialiser le champ
NomFournisseur = FOURNISSEUR.Socit
FIN
// Renvoyer lidentifiant du fournisseur
RENVOYER nFournisseur
Important: Le code de rupture est excut uniquement si la rupture correspondante est une rupture pro-
gramme (non relie un critre de tri).
Exemple:
La programmation ncessaire la cration dun tat paramtr est illustre par lexemple suivant:
Ltat "ETAT_EtatParam" correspond un mailing publicitaire envoy aux clients.
Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "SAI_TexteMailing".
Mise en place:
1.Crez ltat "ETAT_EtatParam":
Cliquez sur parmi les boutons daccs rapide.
La fentre de cration dun nouvel lment saffiche: cliquez sur "Etat" puis sur "Etat".
Lassistant de cration dun tat se lance.
Dans lassistant, slectionnez "Mailing" et validez.
Cet tat est li au fichier "Client" de votre analyse.
2.Personnalisez cet tat.
3.Dans le traitement "Ouverture" de ltat "ETAT_EtatParam", saisissez le code suivant:
// Rcuprer le paramtre pass ltat et
// passer un paramtre par dfaut pour le test de ltat
PROCEDURE ETAT_EtatParam(sTexte = "Valeur par dfaut")
4.Dans le bloc Corps de cet tat, ajoutez le champ Libell "LIB_TexteMailing" permettant dafficher le texte
du mailing.
5.Dans le traitement "Avant impression" du champ "LIB_TexteMailing", saisissez le code suivant:
// Rcuprer le texte du mailing
LIB_TexteMailing = sTexte
6.Dans une fentre de lapplication, ajoutez:
le champ de saisie "SAI_TexteMailing" permettant lutilisateur de saisir le texte du mailing.
le bouton "BTN_Imprimer" permettant de lancer limpression de ltat.
Exemple:
Ltat "ETAT_EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en para-
mtre le texte du mailing saisi dans le champ de saisie "SAI_TexteMailing".
Ltat "ETAT_EtatParam" simprime lors dun clic sur le bouton "BTN_Imprimer".
Dans cet exemple, le code du bouton "BTN_Imprimer" est le suivant:
// Ouvrir la fentre daperu
iAperu()
// Imprimer ltat avec passage de paramtre
iImprimeEtat(ETAT_EtatParam, SAI_TexteMailing)
Pour plus de dtails sur ces mots-cls et leur utilisation, consultez laide en ligne.
Fonctions daccs un enregistrement: Toutes les fonctions HFSQL du WLangage entranant la modification
de lenregistrement en mmoire ou de lenregistrement en cours dans le fichier de base de ltat sont dcon-
seilles dans les traitements de ltat, du bloc ou des champs. En effet, ces fonctions risquent de modifier le
parcours du fichier de base de ltat
Ces fonctions sont principalement: HAjoute, HCration, HCrationSiInexistant, HDernier, HEcrit, HLitxxxx,
HModifie, HPrcdent, HPositionne, HPremier, HRecherche, HRecule, HRaye, HSuivant, HSupprime, ...
N Programme 138
Traitement de rupture 138
Nombre de pages 73
Numro de page 73 S
O Saisie (Champ)
Slectionner un ou plusieurs champs
77
80
Options dimpression des blocs 62 Source de donnes de ltat
Ouverture (traitement) 136 Description 50
Ouvrir un tat 52 Fichier 43
Requte 44
P Variable WLangage
Source de donnes de ltat
46
Paramtre Agenda 48
Blocs dun tat 62 Planning 49
Etat 139 Table 46
PDF 40 Source de ltat 43
Pied de page 61 Structure dun tat 13
Planning 49 Supprimer
Planning (type dtat) 24 Bloc 64
Position des blocs 64 Champ 83
Pr-dfini 73
Programmation T
Blocs dun tat 64
Etat 135 Table 46
Proprits associes Tableau 89
Blocs dun tat 66 Ajouter une cellule 96
Champs dun tat 85 Ajouter une colonne 97
Etats 142 Caractristiques 94
Cellule dun tableau 95
R Crer 91
Dplacer une colonne 98
Rectangle 75 Description 94
Rcupration automatique 52 Description du tableau 96
Redimensionner les cellules dun tableau 97 Enlever une colonne 98
R-ordonner des blocs 64 Insrer un tableau dans un tat 93
Requte 44 Redimensionner les cellules 97
Imprimer ltat 121 Slection dun lment 96
Supprimer une colonne 98
5. Requte avance
5.1 Prsentation............................................................................................................................................ 216
5.2 Sous-requte............................................................................................................................................ 216
5.2.1 Sous-requte en tant que condition de slection .............................................................216
5.2.2 Sous-requte utilise comme source de donnes dune requte ...................................217
5.3 Requte paramtre............................................................................................................................... 217
5.3.1 Cration dune requte paramtre .................................................................................217
5.3.2 Test dune requte paramtre .........................................................................................218
5.3.3 Utilisation dune requte paramtre ...............................................................................218
5.3.4 Deux mthodes pour passer des paramtres une requte ..........................................221
Requte
Sur des fichiers HFSQL Classic, une requte est optimise
1.2.1 Prsentation
Lditeur de requtes permet de crer automatiquement des requtes sur les fichiers de donnes. La cra-
tion dune requte est trs simple et intuitive. La requte est automatiquement gnre (en code SQL opti-
mis) et peut tre teste immdiatement.
La programmation est alors simplifie: fentres, pages, tables, combos, tats de votre projet pourront tre
bass sur les requtes.
1.2.2 Diffrences entre lditeur de requte intgr et le logiciel "Etats & Requtes"
Deux versions de lditeur de requtes sont disponibles:
lditeur de requtes directement intgr.
Cette version est fournie en standard avec WinDev, WebDev ou WinDev Mobile. Cette version ne peut tre
utilise que lors du dveloppement dune application WinDev ou WinDev Mobile ou dun site WebDev.
lditeur de requtes Utilisateur (appel galement le logiciel Etats & Requtes). Cet diteur est livr uni-
quement avec WinDev.
Cette version est indpendante de WinDev et peut tre utilise par un utilisateur final.
Certaines fonctionnalits de lditeur de requtes ne sont pas disponibles dans cette version.
Licne suivante permet dindiquer les diffrences entre le logiciel Etats & Requtes et lditeur de
requtes intgr.
Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l "Assis-
Important
tance Directe" pour disposer dun "assistanat tlphonique". Pour toute information
complmentaire sur l "Assistance Directe", veuillez contacter le service commercial
de PC SOFT.
Sous le logiciel Etats & Requtes, seuls les lments accessibles sont
lists dans le volet "Explorateur de projet".
Important Sous le logiciel Etats & Requtes, la liste des rubriques et des para-
mtres de la requte slectionne nest pas disponible.
Les 3 boutons en haut de cette zone sont galement spcifiques:le logo de la version permet dafficher:
la fentre "A propos...".
les perso-menus (menus personnaliss).
les menus droulants des versions prcdentes (version 17 et antrieures).
Plusieurs types de volets sont disponibles:le volet en cours: Longlet du volet apparat en gris clair et un
trait color est affich en haut de longlet.
les volets contextuels, spcifiques llment en cours: Ces volets concernent lditeur en cours ou ll-
ment slectionn. Le nom du volet est affich:
en jaune pour WinDev,
en orange pour WinDev Mobile,
en bleu pour WebDev.
les autres volets disponibles: Le nom du volet apparat en blanc.
La zone des options
Les options sont regroupes sous les volets dans des groupes doptions.
Projet
Requte
Fentre
Analyse
Requte
2.1 Prsentation
Pour crer une requte, deux mthodes sont possibles:
cration de la requte avec un assistant ou laide de la fentre de description, et gnration automa-
tique du code SQL.
saisie du code SQL. Pour plus de dtails, consultez "Cration dune requte en code SQL", page 181.
Lditeur de requtes permet de crer plusieurs types de requtes:
requte de slection: ce type de requte permet de visualiser une slection denregistrements provenant
dun ou de plusieurs fichiers dune base de donnes. Cest le type de requte le plus utilis.
Pour plus de dtails, consultez "Cration dune requte de slection", page 171.
requte dinsertion: ce type de requte permet dajouter des enregistrements dans un fichier dune base
de donnes.
Pour plus de dtails, consultez "Cration dune requte dinsertion", page 173.
requte de modification: ce type de requte permet de modifier des enregistrements prsents dans un
fichier dune base de donnes.
Pour plus de dtails, consultez "Cration dune requte de modification", page 175.
requte de suppression: ce type de requte permet de supprimer des enregistrements prsents dans un
fichier dune base de donnes.
Pour plus de dtails, consultez "Cration dune requte de suppression", page 177.
requte compose: ce type de requte permet de combiner des requtes de slection.
Pour plus de dtails, consultez "Cration dune requte compose laide de la fentre de description",
page 180.
Important
Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion, de modi-
fication ou de suppression.
Remarque: Tous les types de requtes peuvent tre bass sur des rubriques appartenant:
soit un fichier de donnes dcrit dans lanalyse.
soit une requte prcdemment cre avec lditeur de requtes.
Aprs la cration de la requte, il est possible tout moment de modifier les caractristiques de cette re-
qute. Pour plus de dtails, consultez "Description dune requte", page 188.
Principe:
La cration dune requte consiste :
prciser la mthode de cration de la requte (assistant, fentre de description ou code SQL).
spcifier le type de la requte (insertion, modification, ...).
indiquer lanalyse (WinDev, WinDev Mobile ou WebDev (si ncessaire) contenant la description des
fichiers de donnes sur lesquels sera base la requte.
slectionner les rubriques utiliser.
saisir les caractristiques de la requte (conditions de slection, tri, ...).
2.2.1 Prsentation
Une requte de slection (instruction SQL correspondante: SELECT) permet de visualiser une slection den-
registrements dans une base de donnes. Cest le type de requte le plus utilis.
Pour obtenir cette slection, les principales caractristiques de la requte sont les suivantes:
le type de jointure entre les fichiers utiliss (si plusieurs fichiers sont utiliss),
les conditions de slection des enregistrements (clients habitant Nantes, produits dont le prix est sup-
rieur 40 Euros, ...),
le regroupement des valeurs dune rubrique (regroupement des produits par type, des clients par ge, ...),
les oprations effectues sur le contenu des rubriques (somme totale des commandes dun client,
somme moyenne dpense par client, ...),
le tri du rsultat de la requte (rsultat tri par codes postaux, par prix, ...).
Par exemple, vous voulez obtenir la somme totale des commandes par client habitant Londres. Seuls les
clients ayant un cumul des commandes suprieur 3000 Euros seront conservs. Le rsultat sera tri par
ordre croissant du cumul des commandes. Pour raliser cette requte, le rsultat sera automatiquement
regroup par nom du client et par ville.
Remarques
Il est galement possible de crer une nouvelle requte de slection avec un assistant simplifi: cochez
loption "Utiliser lassistant simplifi" dans lassistant de cration dune requte.
Remarque: Lassistant simplifi ne permet pas de grer les index "full-text".
Pour modifier les caractristiques dune requte, sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers dcrits sous lditeur
danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse"
vers lditeur de requtes.
2.3.1 Prsentation
Une requte dinsertion (Instruction SQL correspondante: INSERT) permet dajouter des enregistrements
dans un fichier dune base de donnes.
Les informations ncessaires pour raliser une requte dinsertion sont:
le fichier dans lequel des donnes vont tre insres.
les rubriques dans lesquelles de nouvelles valeurs vont tre insres.
Par exemple, cration dun nouveau client dans le fichier "Client":
Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion.
Remarques
Pour modifier les caractristiques dune requte: sous le volet "Requte", dans le groupe "Edition", slec-
tionnez loption "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
2.4.1 Prsentation
Une requte de modification (instruction SQL correspondante UPDATE) permet de modifier des enregistre-
ments dans un fichier dune base de donnes.
Pour obtenir cette modification, les principales caractristiques de la requte sont les suivantes:
le fichier dans lequel des donnes vont tre modifies.
les rubriques dans lesquelles des valeurs vont tre modifies.
les conditions de slection des enregistrements (clients habitant Nantes, produits dont le prix est sup-
rieur 40 Euros, ...).
Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de slection", page
200.
Par exemple, la cliente N 45762 sest marie. Sa civilit et son nom de famille ont t modifis.
Le logiciel Etats & Requtes ne permet pas de crer des requtes de modification.
Remarques
Il est possible de modifier lensemble des caractristiques dune requte: sous le volet "Requte", dans
le groupe "Edition", cliquez sur "Description". Pour plus de dtails, consultez "Description dune requte",
page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers dcrits sous lditeur
danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse"
vers lditeur de requtes.
Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails,
consultez "Test de la requte", page 210.
2.5.1 Prsentation
Une requte de suppression (instruction SQL correspondante: DELETE) permet de supprimer des enregistre-
ments dun fichier dans une base de donnes.
Pour effectuer cette suppression, les principales caractristiques de la requte de suppression sont les sui-
vantes:
le fichier dans lequel des donnes vont tre supprimes.
les conditions de slection des enregistrements supprimer (clients habitant Nantes, produits dont le
prix est suprieur 40 Euros, etc.).
Pour plus de dtails sur les conditions de slection dune requte, consultez "Conditions de slection", page
200.
Le logiciel Etats & Requtes ne permet pas de crer des requtes de suppression.
Remarques
Pour modifier lensemble des caractristiques dune requte: sous le volet "Requte", dans le groupe
"Edition", cliquez sur "Description". Pour plus de dtails, consultez "Description dune requte", page
188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
Il est galement possible de crer une requte partir dun ou de plusieurs fichiers de donnes dcrits
sous lditeur danalyses: il suffit de faire un "Drag and Drop" du ou des fichiers de donnes slectionns
dans le volet "Analyse" vers lditeur de requtes.
Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails,
consultez "Test de la requte", page 210.
2.6.1 Prsentation
Une requte compose (Instruction SQL correspondante: UNION) permet de combiner plusieurs requtes de
slection. Chaque requte de slection doit porter sur des fichiers de structure identique.
Par exemple, slection des clients dont le nom commence par la lettre A et des prospects habitant Nice.
Pour raliser cette slection, il est ncessaire de combiner les deux requtes suivantes:
slection des clients dont le nom commence par la lettre A. Cette requte est base sur le fichier
"Client".
slection des prospects habitant Londres. Cette requte est base sur le fichier "Prospect".
Les fichiers "Client" et "Prospect" sont de mme structure dans lanalyse.
Les enregistrements communs aux deux fichiers ("Client" et "Prospect") peuvent:
soit apparatre une seule fois dans le rsultat de la requte (oprateur UNION).
soit apparatre deux fois dans le rsultat de la requte (oprateur UNION ALL).
UNION
SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = Londres
UNION ALL
SELECT
PROSPECT.NomClient AS NomClient
FROM
PROSPECT
WHERE
PROSPECT.VILLE = Londres
Remarques
Pour modifier les caractristiques dune requte, sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description". Pour plus de dtails, consultez "Description dune requte", page 188.
Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Code SQL" du menu
contextuel de la requte. Si des modifications sont effectues dans la description de la requte, ces
modifications seront automatiquement rpercutes dans le code SQL correspondant.
2.7.1 Prsentation
Lditeur de requtes permet de crer une requte en saisissant du code SQL (si vous matrisez ce langage).
Important
Le logiciel Etats & Requtes ne permet pas de crer des requtes en code SQL utilisant
les ordres INSERT, UPDATE ou DELETE.
Remarque: La constante hRequteSansCorrection est galement disponible lors du test dune requte de-
puis lditeur de requtes:
pour une requte de slection: cliquez sur le bouton "Avanc" de la fentre de description et cochez
loption "Excuter avec hRequteSansCorrection en mode test" dans longlet "hRequteSansCorrection".
pour une requte dinsertion, de modification ou de suppression: affichez longlet "Gnral" de la
fentre de description et cochez loption "Excuter avec hRequteSansCorrection en mode test".
Pour plus de dtails sur ces commandes SQL et leur utilisation, consultez laide en ligne.
Champ dune fentre ou dune page: Passer du mode intgr au mode indpendant
Pour extraire une requte dun champ dune fentre ou dune page:
1.Affichez la fentre ou la page sous lditeur.
2.Slectionnez le champ bas sur une requte intgre.
3.Dans le menu contextuel du champ, slectionnez loption "Requte intgre .. Ouvrir la requte asso-
cie".
Attention: la fentre ou la page doit avoir t enregistre au moins une fois.
4.Lditeur de requtes souvre et affiche le graphe de la requte. Sous le volet "Accueil", dans le groupe
"Gnral", droulez "Enregistrer" et slectionnez "Exporter .. Vers une requte indpendante".
5.Enregistrez la nouvelle requte. La requte est dsormais indpendante. Vous pouvez lutiliser dans
toutes les fentres, les pages et tats de votre projet.
3.1 Prsentation
Aprs la cration dune requte, il est possible tout moment de modifier toutes les caractristiques de
cette requte:
fichiers et/ou rubriques utiliss,
rubriques affiches dans le rsultat de la requte,
conditions de slection,
tri des enregistrements,
...
Seul le type de la requte nest pas modifiable. En effet, trop de paramtres spcifiques sont pris en compte.
Pour changer le type de la requte, il suffit de crer une nouvelle requte.
Ce chapitre prsente:
la fentre de description dune requte.
les caractristiques dune requte.
comment ouvrir, fermer et enregistrer une requte.
la gestion des versions dune requte.
Liste des diffrentes rubriques pouvant tre utilises dans la requte. Ces rubriques appar-
tiennent:
soit un fichier de lanalyse associe lapplication en cours.
soit une requte de lapplication en cours.
Remarque: Pour slectionner plusieurs rubriques, maintenez la touche [Ctrl] enfonce.
Les fichiers de donnes et les rubriques des fichiers de donnes pouvant
tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur
Important
danalyses de WinDev.
Pour plus de dtails sur la prparation ncessaire lutilisation dune appli-
cation WinDev avec le logiciel Etats & Requtes, consultez "Diffuser le logi-
ciel Etats & Requtes", page 231.
Les valeurs de cette rubrique seront affiches dans le rsultat de la requte (icne ).
Modifie lordre daffichage / de tri des diffrentes rubriques dans le rsultat de la requte.
Permet:
soit dafficher ou non les valeurs de la rubrique slectionne dans le rsultat de la requte.
soit de renommer la rubrique slectionne dans le rsultat de la requte (cration dun alias).
Trie les valeurs de la rubrique slectionne dans le rsultat de la requte.
Permet de:
indiquer le type de la base de donnes utilise (HFSQL, Oracle ou autre).
grer les jointures (ajouter, modifier, supprimer, r-initialiser).
vrifier ou non la syntaxe SQL utilise (en mode test uniquement).
prciser les options dexcution (optimisation de lespace mmoire, vrification du format
des fichiers, ...).
indiquer si la requte est visible sous le logiciel "Etats & Requtes".
Liste des diffrentes requtes utilises dans la requte compose. Ces requtes sont affiches
dans leur ordre dexcution.
Affiche:
soit la requte compose en langage naturel.
soit le code SQL correspondant la requte compose.
Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion, de modi-
fication ou de suppression.
Remarque: Les rubriques dont la valeur est affiche dans le rsultat de la requte sont appeles rubriques
rsultat.
Pour modifier une rubrique de type "rubrique calcule" dans la requte en cours:
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique de type Rubrique calcule modifier.
3.Dans la partie gauche, cliquez sur le bouton "Rubrique calcule" et slectionnez loption "Modifier la
rubrique calcule". La fentre de description dune rubrique calcule saffiche.
4.Modifiez la formule et validez.
Pour renommer une rubrique rsultat dans la requte en cours (cration dun alias):
1.Affichez la fentre de description de la requte: sous le volet "Requte", dans le groupe "Edition", cliquez
sur "Description".
2.Dans la partie centrale, slectionnez la rubrique renommer.
3.Dans la partie droite, cliquez sur le bouton "Afficher/Renommer".
4.Saisissez le nouveau nom de la rubrique et validez. La rubrique est automatiquement renomme.
Remarque: Seules les rubriques affiches dans le rsultat de la requte peuvent tre tries.
Lordre du tri est dfini lors de la cration de la requte. Il est cependant possible de:
ajouter ou supprimer une rubrique de tri.
modifier lordre de tri effectu sur une rubrique.
Les flches situes droite de la fentre permettent de modifier lenchanement des rubriques de tri.
Remarque: Les chiffres situs ct des flches permettent galement de connatre lenchanement des
diffrentes rubriques de tri.
Remarques:
Pour ajouter une rubrique de tri, il est galement possible dans la partie droite, de cliquer sur le bouton
"Trier" et de slectionner loption "Trier sur la rubrique slectionne".
Lditeur de requtes permet galement de raliser un tri sur un paramtre. Il suffit de cliquer sur le bou-
ton "Trier" et de slectionner loption "Trier sur un paramtre". Dans ce cas, il suffit dindiquer le nom du
paramtre qui sera utilis pour le tri, ainsi que lordre de tri par dfaut. Cet ordre de tri pourra tre modi-
fi en excution si le contenu du paramtre contient lordre de tri. Par exemple: "Client.NomClient ASC".
Ce paramtre devra tre pass la requte lors de son excution. Pour plus de dtails, consultez "Deux
mthodes pour passer des paramtres une requte", page 221.
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:
Les oprations sont dfinies lors de la cration de la requte. Il est cependant possible dajouter, de modifier
ou de supprimer les oprations effectues dans une requte. Pour plus de dtails, consultez "Conditions de
slection", page 200.
Attention: Si le rsultat de la requte est affich dans un tat, les oprations effectuer sur la valeur des
rubriques doivent tre dfinies lors de la description de ltat.
3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection
Dans le rsultat dune requte de slection, il est possible dafficher uniquement:
lanne partir dune rubrique de type date.
le mois partir dune rubrique de type date.
le dpartement partir dune rubrique contenant un code postal.
Pour modifier les valeurs affiches dans le rsultat de la requte de slection en cours:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la fentre de description, slectionnez une rubrique de type date ou contenant un code postal.
3.Cliquez sur le bouton "Anne, dpartement" et slectionnez loption:
"Mois" pour afficher uniquement le mois dans le rsultat de la requte.
"Anne" pour afficher uniquement lanne dans le rsultat de la requte.
"Dpartement" pour afficher uniquement le dpartement dans le rsultat de la requte.
4.Validez.
Il est alors possible: soit de slectionner une des valeurs possibles parmi celles prsentes dans le
fichier
soit de visualiser la totalit du fichier.
Attention: Cette option est disponible uniquement si le Live Data est activ. Pour plus de dtails,
consultez Live Data.
5.Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL
de la requte (prcd des caractres "--" ou "//"). Si la condition porte sur un paramtre, lors du GO de la
requte paramtre, le commentaire sera affich dans la fentre de saisie des paramtres.
6.Validez. La condition de slection est automatiquement ajoute la requte.
Pour ajouter une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute et cliquez sur la
colonne "Condition" correspondant la rubrique slectionne. Lassistant de cration dune condition de
slection saffiche.
4.Slectionnez loption "Je veux ajouter une condition" (cas dune rubrique sur laquelle au moins une
condition est effectue).
5.Choisissez les critres de slection (gale , suprieur , ...) de la condition. Cette condition peut porter
sur une valeur donne, un paramtre, une sous-requte, ...
6.Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL
de la requte (prcd des caractres "--" ou "//"). Si la condition porte sur un paramtre, lors du GO de la
requte paramtre, le commentaire sera affich dans la fentre de saisie des paramtres.
7.Validez. La condition de slection est automatiquement ajoute la requte.
Pour modifier une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition doit tre modifie et cliquez sur la colonne "Condi-
tion" correspondante. Lassistant des conditions de slection saffiche.
4.Slectionnez loption "Je veux modifier une condition existante".
5.Slectionnez si ncessaire la condition de slection modifier (cas dune rubrique sur laquelle plusieurs
conditions sont effectues).
6.Modifiez la condition de slection.
7.Validez. La condition de slection est automatiquement modifie.
Comment supprimer une condition de slection dans une requte ?
Pour supprimer une condition de slection dans une requte de slection:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Dans la partie centrale, slectionnez la rubrique sur laquelle une condition doit tre supprime.
3.Cliquez sur le bouton "Condition de slection" et slectionnez loption "Supprimer une condition".
4.Slectionnez si ncessaire la condition de slection supprimer (cas dune rubrique sur laquelle plu-
sieurs conditions sont effectues).
5.Validez. La condition de slection est automatiquement supprime de la requte.
Pour supprimer une condition de slection dans une requte de modification ou de suppression:
1.Sous le volet "Requte", dans le groupe "Edition", cliquez sur "Description". La fentre de description de
la requte saffiche.
2.Affichez longlet "Requte".
3.Slectionnez la rubrique sur laquelle une condition doit tre supprime et cliquez sur la colonne "Condi-
tion" correspondante. Lassistant des conditions de slection saffiche.
4.Slectionnez loption "Je veux supprimer une condition existante".
5.Slectionnez si ncessaire la condition de slection supprimer (cas dune rubrique sur laquelle plu-
sieurs conditions sont effectues).
6.Validez. La condition de slection est automatiquement supprime de la requte.
Oprateur conditionnel OU
Oprateur conditionnel ET
Lenchanement des conditions de slection est dfini lors de la cration de la requte. Il est cependant pos-
sible de modifier cet enchanement.
Pour modifier lenchanement des conditions de slection dans la requte en cours, deux mthodes sont
possibles:
1re mthode: grce la fentre de description de la requte.
2me mthode: depuis la reprsentation graphique de la requte.
Pour modifier lenchanement des conditions de slection dans la requte de modification ou de suppression
en cours grce la fentre de description de la requte:
1.Affichez le menu contextuel de la requte (clic droit) et slectionnez loption "Description de la requte".
La fentre de description de la requte saffiche.
2.Slectionnez longlet "Et/Ou".
3.Modifiez lenchanement des conditions de slection.
4.Validez. La modification est automatiquement effectue dans la requte.
2me mthode: Depuis la reprsentation graphique de la requte
Pour modifier lenchanement des conditions de slection dans la requte en cours depuis la reprsentation
graphique de la requte:
1.Slectionnez la condition de slection dont lenchanement doit tre modifi dans la reprsentation gra-
phique de la requte.
2.Slectionnez loption "Inverser ET/OU" dans le menu contextuel (clic droit) de la condition de slection en
cours.
3.Le nouvel enchanement des conditions de slection est automatiquement rpercut dans la requte.
Indiquez la plage denregistrements slectionner: les premiers, les derniers ou un ensemble denre-
gistrements.
Spcifiez le nombre denregistrements prendre en compte. Ce nombre peut correspondre:
une valeur.
Si loption "En pourcentage" est coche, la valeur doit correspondre un pourcentage de lensemble
des enregistrements.
Remarque: Les liaisons entre les fichiers apparaissent dans la reprsentation graphique de la requte uni-
quement si les deux fichiers relis sont utiliss par la requte.
Le logiciel Etats & Requtes ne permet pas doptimiser la vitesse dexcution dune
requte.
Attention: Lajout dun nombre important de cls composes dans lanalyse augmente la taille des fichiers
dindex et peut ralentir les accs aux fichiers de donnes.
Remarque: Cette option est disponible uniquement si les conditions suivantes sont runies:
le Live Data est activ: sous le volet "Projet", dans le groupe "Projet", cliquez sur "Description". Slec-
tionnez longlet "Live Data" et cochez "Activer le Live Data". Pour plus de dtails, consultez laide en ligne
(mot-cl : "Live Data").
les fichiers de donnes sont prsents dans le rpertoire de test du projet: sous le volet "Projet", dans le
groupe "Projet", cliquez sur "Description". Slectionnez longlet "Fichiers". Pour plus de dtails, consultez
laide en ligne (mot-cl: "Tester,Projet").
Remarques:
Il est possible de lancer plusieurs tests de requte en mme temps.
Lors du test dune requte paramtre, une fentre permettant de spcifier les diffrents paramtres
saffiche.
Dans cette fentre, vous pouvez slectionner une valeur existante grce licne . Le menu suivant
apparat:
Rsultat du test
Le rsultat de la requte peut ensuite au choix tre:
Export vers un fichier texte.
Export vers un fichier XML.
Export vers un fichier Excel.
Export vers un fichier HFSQL.
Imprim.
Il est galement possible de copier un enregistrement du rsultat de la requte dans le presse-papiers.
Mot de passe
Si un des fichiers de donnes participant la requte est protg par mot de passe, lors du test de la
requte:
Si le mot de passe est prcis dans le code dinitialisation du projet (fonction HPasse), la requte est
excute.
Si la gestion des erreurs HFSQL na pas t personnalise (fonction HSurErreur) et si le mot de passe
nest pas prcis par programmation, la fentre standard de demande du mot de passe est affiche.
Remarque: si la gestion des erreurs est personnalise dans le code dinitialisation du projet, cette ges-
tion des erreurs sera utilise.
Rappel: Le logiciel Etats & Requtes ne permet pas de crer: des requtes dinsertion,
des requtes de modification, des requtes de suppression.
Pour utiliser le rsultat dune requte en programmation, consultez Excution de la requte et manipulation
du rsultat avec les fonctions du WLangage.
4.2.1 Requte dans une fentre WinDev ou dans une page WebDev
Il est possible dutiliser une requte comme source de donnes dune fentre ou dune page. La fentre ou la
page affichera les enregistrements slectionns par la requte.
Important
Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis
une application WinDev uniquement si cette application gre les requtes cres avec
le logiciel Etats & Requtes.
4.2.2 Requte dans un champ dune fentre WinDev ou dune page WebDev
Tous les champs pouvant tre relis une source de donnes peuvent tre associs une ou plusieurs
rubriques rsultat de la requte (champs de saisie, liste, table, ...).
Il est possible dutiliser une requte comme source de donnes dun champ. Le champ affichera les enre-
gistrements slectionns par la requte.
Important
Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis
une application WinDev uniquement si cette application gre les requtes cres avec
le logiciel Etats & Requtes.
Pour afficher le rsultat de la requte dans un champ Liste, Combo, Zone rpte ou Table:
1.Ouvrez la fentre ou la page dans laquelle le champ Liste, Combo, Zone rpte ou Table doit tre
ajout.
2.Insrez le champ associ la requte (via le volet "Cration" du ruban). Lassistant de cration du
champ se lance.
3.Spcifiez que les informations affiches dans le champ proviennent dune requte existante.
4.Slectionnez la requte associer au champ et les rubriques afficher dans le champ.
5.Validez. Le champ cr affichera les informations provenant de la requte associe.
6.Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne
de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ
en cours.
HExcuteRequte(<Nom de la requte associe>)
Pour utiliser une rubrique rsultat de la requte dans un champ (autre quun champ Liste, Combo, Zone
rpte ou Table):
1.Ouvrez la fentre ou la page dans laquelle un champ associ une requte doit tre ajout.
2.Crez le champ associ la requte.
3.Sous le volet "Modification", dans le groupe "Aide ldition", cliquez sur "Description". La fentre de des-
cription du champ saffiche.
4.Affichez longlet "Liaison" de la fentre de description du champ.
5.Slectionnez la rubrique afficher dans loption "Rubrique relie".
6.Validez. Le champ cr affichera les informations provenant de la requte associe.
7.Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne
de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ
en cours.
HExcuteRequte(<Nom de la requte associe>)
5.1 Prsentation
Dans les chapitres prcdents, nous vous avons prsent les requtes "Simples" pouvant tre cres avec
lditeur de requtes. Lditeur de requtes permet galement de raliser des requtes avances. Ainsi, il est
possible de:
utiliser le rsultat dune requte dans une autre requte. Cest le concept de sous-requtes.
utiliser des paramtres dans une requte. La valeur de ces paramtres sera spcifie uniquement lors de
lexcution de la requte. Cest le concept de requte paramtre.
5.2 Sous-requte
Une sous-requte est une requte dont le rsultat est utilis par une autre requte.
Par exemple, vous voulez slectionner les commandes dont le montant est suprieur au montant moyen des
commandes. Le montant moyen des commandes nest pas connu directement. Ce montant moyen va tre
retourn par une autre requte (appele ici sous-requte).
Une sous-requte peut tre utilise:
soit en tant que condition de slection.
soit en tant que fichier de la requte principale.
Limites:
Linstruction ORDER BY est interdite dans les sous requtes.
Les sous-requtes ne peuvent pas tre ralises avec lditeur de requtes.
Exemple: Le code SQL suivant permet de slectionner le numro des commandes dont le montant total est
suprieur au montant moyen de lensemble des commandes:
SELECT NumCommande
FROM COMMANDE
WHERE Montant > (SELECT AVG(Montant)
FROM COMMANDE)
Pour inclure une requte paramtre dans une application WinDev, WinDev Mobile ou un site WebDev, il
est ncessaire de:
Crer une requte paramtre sous lditeur de requtes.
Modifier lapplication pour utiliser la requte paramtre.
La requte paramtre peut aussi bien tre utilise avec une fentre, un champ Table (liste ou combo), un
tat, ...
Utilisation dune requte paramtre dans un champ Table, Zone rpte, Liste ou
Combo
Principe
Lorsquun champ Table fichier est li une requte paramtre (intgre ou non), il est ncessaire de passer
des paramtres la requte avant de lexcuter.
Si ces paramtres ne sont pas spcifis avant la premire excution de la requte, la requte ne sera pas
excute et le champ Table restera vide.
Pour passer les paramtres la requte, il est possible dutiliser:
soit la notation suivante:
<Nom Requte>.<Nom Paramtre1> = xxx
<Nom Requte>.<Nom Paramtre2> = xxx
<Nom Requte>.<Nom Paramtre3> = xxx
Dans ce cas, la requte est automatiquement excute lors de linitialisation du champ Table.
P Requte dinsertion
Requte indpendante
172
187
Page Requte intgre 187
Utilisation dune requte paramtre 218 Rtro-analyse 181
Paramtres 217 Rubrique 195
Passer des paramtres 221 Slection 169
Priode donne 204 Sous-requte 216
Projet 167 Suppression 176
Test 210
Types disponibles 168
Utilisation 213
1.1 Prsentation
Ce chapitre prsente les diffrentes manipulations effectuer pour quune application WinDev puisse tre
manipule avec le logiciel Etats & Requtes.
Le logiciel Etats & Requtes remplace le logiciel "WDEtat Utilisateur". Ce logiciel est dsormais gratuit et
librement redistribuable avec vos applications WinDev. Consultez la licence pour les conditions dutilisation
et de redistribution de ce logiciel.