Beruflich Dokumente
Kultur Dokumente
Visitez rgulirement le site www.pcsoft.fr, espace tlchargement pour vrifier si des mises jour sont proposes.
Conseil : Pour recevoir directement des mises jour intermdiaires et des conseils dutilisation, abonnez-vous la LST (revue trimestrielle + CD), en franais.
Cette documentation nest pas contractuelle. Des modifications ont pu intervenir dans le logiciel depuis la parution de ce manuel. Veuillez consulter laide en ligne.
Tous les noms de produits ou autres marques cits dans cet ouvrage sont des marques dposes par leurs propritaires respectifs. PC SOFT 2010 : Aucune reproduction intgrale ou partielle du prsent ouvrage sur quelque support que ce soit ne peut tre effectue sans lautorisation expresse de PC SOFT.
SOMMAIRE
PARTIE 1 - GNRATEUR DTATS
1. INTRODUCTION 2. COMMENT CRER UN TAT ? 3. SOURCES DE DONNES DUN TAT 4. DESCRIPTION / MANIPULATIONS DUN TAT 5. BLOCS DUN TAT 6. CHAMPS DUN TAT 7. UTILISER DES TABLEAUX DANS UN TAT 8. ETATS AVEC SAISIE 9. ETATS IMBRIQUS 10. IMPRIMER UN TAT PAR PROGRAMMATION 11. PROGRAMMATION DUN TAT 13 28 46 54 63 72 95 104 107 111 132
3.5 Etat sur une vue HyperFileSQL Classic ........................................................................................................ 49 3.5.1 Prsentation.................................................................................................................................. 49 3.5.2 Caractristiques............................................................................................................................ 49 3.6 Etat sur une zone mmoire ...........................................................................................................................50 3.6.1 Prsentation.................................................................................................................................. 50 3.6.2 Caractristiques............................................................................................................................ 50 3.7 Etat sur un champ Table ............................................................................................................................... 51 3.7.1 Prsentation.................................................................................................................................. 51 3.7.2 Caractristiques............................................................................................................................ 51 3.8 Etat sur fichier texte .......................................................................................................................................52 3.8.1 Prsentation.................................................................................................................................. 52 3.8.2 Caractristiques............................................................................................................................ 53 3.9 Etat sur une source de donnes programme ........................................................................................... 53
5.5 Manipuler les blocs sous lditeur dtats ...................................................................................................68 5.5.1 Crer un bloc................................................................................................................................. 68 5.5.2 Supprimer un bloc ........................................................................................................................ 68 5.5.3 R-ordonner les blocs................................................................................................................... 69 5.6 Manipuler les blocs par programmation .....................................................................................................69 5.6.1 Traitements des blocs dun tat.................................................................................................. 69 5.6.2 Manipuler un bloc dans un traitement WLangage..................................................................... 70 5.6.3 Proprits associes aux blocs dun tat................................................................................... 71
10
10.2 Etat sur fichier de donnes ...................................................................................................................... 115 10.2.1 Imprimer un tat sur fichier de donnes................................................................................115 10.2.2 Imprimer un tat born bas sur un fichier de donnes ......................................................116 10.2.3 Imprimer un tat paramtr bas sur un fichier de donnes ..............................................117 10.2.4 Imprimer un tat paramtr et born bas sur un fichier de donnes ...............................119 10.3 Etat sur une requte ................................................................................................................................. 120 10.3.1 Imprimer un tat sur requte sans paramtre ......................................................................121 10.3.2 Imprimer un tat sur requte paramtre .............................................................................121 10.4 Etat sur un champ table ........................................................................................................................... 122 10.5 Etat sur une variable ................................................................................................................................ 124 10.5.1 Imprimer un tat sur variable..................................................................................................124 10.5.2 Imprimer un tat paramtr sur variable...............................................................................125 10.6 Etat sur une vue HyperFileSQL Classic ................................................................................................... 126 10.7 Etat sur zone mmoire ............................................................................................................................. 128 10.8 Etat sur fichier texte ................................................................................................................................. 130 10.9 Fonctions d'impression ............................................................................................................................ 131
11
12
1. INTRODUCTION
1.1 Qu'est ce qu'un tat?
Un tat permet dobtenir une vue personnalise dinformations : donnes saisies dans une base de donnes, donnes prsentes dans un fichier texte, ... Selon le produit utilis, les informations de ltat peuvent tre affiches dans diffrents formats : En WinDev, un tat peut tre affich lcran, enregistr dans un fichier HTML, PDF, PCL, directement dit sur une imprimante, ... En WebDev, un tat peut tre enregistr dans un fichier HTML ou PDF, envoy par e-mail, affich dans le navigateur de lInternaute, ou bien encore directement dit sur une imprimante connecte au serveur, ... En WinDev Mobile, un tat peut tre imprim directement sur une imprimante (au format PCL) ou enregistr dans un fichier PCL. Un tat est constitu de : blocs dlimitant les diffrentes parties de ltat (pour plus de dtails, consultez Blocs dun tat, page 63). champs dans lesquels les diffrentes donnes de ltat sont affiches (pour plus de dtails, consultez Champs dun tat, page 72). Un tat offre la possibilit de rsumer et de synthtiser les donnes. Il est possible de : regrouper les donnes, trier les donnes selon nimporte quel critre, raliser des calculs, des moyennes ou des statistiques, ou mme de dessiner des graphes, afficher les donnes sur plusieurs colonnes. Il suffit dimaginer un tat, lditeur dtats le ralisera.
13
14
Les schmas ci-dessous prsentent une dfinition simplifie d'un tat : les donnes imprimer sont issues dune source de donnes (fichier de donnes, vue HyperFileSQL, requte, zone mmoire, variable WLangage ou fichier texte, ...). ltat regroupe, trie et met en forme les donnes. l'excution de ltat peut tre dirige vers : - en WinDev : l'cran, un fichier PDF, HTML, RTF, une imprimante ou un fax, ... - en WebDev : un fichier HTML, RTF, PDF, une imprimante ou un fax, ... Si la destination de ltat est un fichier, ce fichier peut tre renvoy vers le navigateur. - en WinDev Mobile : un fichier PCL ou une imprimante PCL. En WinDev :
15
En WebDev :
En WinDev Mobile :
16
17
Tri des enregistrements : Vous slectionnez les arguments de tri selon lesquels les enregistrements sont affichs. Vous pouvez mme dfinir une rupture sur les arguments de tri. Pour plus de dtails, consultez Le tri, page 38 et Les ruptures, page 39. Impression d'tiquettes : Vous pouvez crer des tiquettes avec la prsentation de votre choix. Calculs personnaliss : Dans ltat, vous pouvez ajouter des calculs personnaliss (TVA, ...). Totaux et compteurs : Vous pouvez ajouter des totaux et des compteurs sur les champs (calculs ou lis des rubriques). Ces totaux et compteurs peuvent tre gnraux, intermdiaires, par rupture, ... Images, cadres, fonds de couleur : Vous pouvez enrichir votre tat en y ajoutant des graphes, des images, des cadres et des fonds de couleur. Choix des polices : Vous pouvez avoir dans votre tat des champs avec des polices diffrentes, de couleurs multiples, ... Paramtrage des hauts et bas de page : Vous pouvez ajouter la date, le numro de page, le nombre total de pages et autres informations dans les hauts et bas de page. Vous pouvez dfinir des hauts et des bas de page diffrents dans un tat (par exemple bas de page pair et bas de page impair). Imbrication d'tats : Depuis un tat vous pouvez appeler un autre tat pour crer des tats imbriqus. Choix du nombre de colonnes : Vous pouvez imprimer les donnes dun tat sur plusieurs colonnes.
1.2.2 Diffrences entre lditeur dtats intgr et le logiciel Etats & Requtes
Deux versions de lditeur dtats sont disponibles : lditeur dtats directement intgr. Cette version est fournie en standard avec WinDev, WebDev et WinDev Mobile. Cette version ne peut tre utilise que lors du dveloppement dune application WinDev, WinDev Mobile ou dun site WebDev. lditeur dtats Utilisateur (appel galement le logiciel Etats & Requtes). Cet diteur est livr uniquement avec WinDev. Cette version est indpendante de WinDev et peut tre utilise par un utilisateur final. Certaines fonctionnalits de lditeur dtats ne sont pas disponibles dans cette version. Licne intgr. permet dindiquer les diffrences entre lditeur dtats Utilisateur et lditeur dtats
Avec lditeur dtats intgr, il est possible de crer des tats et dexcuter ces tats depuis lditeur ou depuis une application ralise avec WinDev, WinDev Mobile ou WebDev. La cl lectronique du produit utilis est ncessaire lutilisation de lditeur dtats. Elle doit tre prsente sur le port parallle ou USB de votre ordinateur pendant lutilisation de lditeur. La cl lectronique nest en aucun cas ncessaire lutilisateur final pour excuter un tat depuis une application WinDev, WinDev Mobile ou WebDev. Plusieurs exemples sont livrs avec lditeur dtats intgr. Dans ces exemples, vous retrouverez les principaux tats pouvant tre utiliss dans des applications (facture, listes, tiquettes, ...).
18
Pour connatre les exemples prsentant des tats, affichez le guide (option "? .. Consulter le guide") et saisissez le mot-cl "Etat". La liste des exemples utilisant des tats saffiche. Consultez ces exemples, ils vous apprendront beaucoup et vous pourrez vous en inspirer pour crer vos propres tats!
Editeur dtats Utilisateur (logiciel Etats & Requtes - WinDev uniquement)
Avec le logiciel Etats & Requtes, il est possible de crer et dexcuter des tats directement depuis lditeur (sans avoir besoin de WinDev). Les tats ne pourront pas contenir de code de modification des fichiers de donnes (code comprenant des fonctions dcriture dans les fichiers). Les tats crs pourront tre excuts depuis lditeur dtats ou depuis une application WinDev (si cette application gre les tats crs avec le logiciel Etats & Requtes). La cl lectronique nest pas ncessaire lutilisation du logiciel Etats & Requtes. Pour crer des nouveaux tats ou pour modifier des tats existants avec le logiciel Etats & Requtes, certaines manipulations sont ncessaires. Pour plus de dtails, consultez Diffuser le logiciel Etats & Requtes, page 229.
Documentation
Le logiciel Etats & Requtes et lditeur dtats intgr sont livrs avec la mme aide en ligne. Seul lditeur dtats intgr est livr avec une documentation papier. Documentation papier La documentation papier (le guide que vous tenez entre les mains) a t conue pour vous aider dcouvrir et utiliser lditeur dtats. La seconde partie de ce guide est consacre lditeur de requtes. Le "Guide de lditeur dtats" est complmentaire au "Manuel de programmation", au "Guide dauto-formation" et aux "Concepts". Aide en ligne Laide en ligne vous guide dans vos manipulations sous lditeur. Pour accder laide en ligne : soit slectionnez loption "? .. Sommaire" ou "? .. Index de laide". soit appuyez sur la touche [F1].
Installation
Installation de lditeur dtats intgr Lditeur dtats intgr est automatiquement install en mme temps que WinDev, WebDev ou WinDev Mobile. Installation du logiciel Etats & Requtes Linstallation du logiciel Etats & Requtes est simple, il suffit de suivre les instructions lors de linstallation de lapplication WinDev.
19
Configuration minimale pour le logiciel Etats & Requtes Pour pouvoir utiliser le logiciel Etats & Requtes, vous devez avoir une machine avec les caractristiques minimales suivantes : 512 Mo de mmoire centrale (1 Go ou plus conseills). 800 Mo despace disque. sous Windows 2000, 2003, XP, Vista, Seven ou suprieur. Remarque : Pour connatre la configuration minimale ncessaire pour linstallation de WinDev, consultez le manuel de programmation.
Enregistrez-vous
La carte denregistrement jointe votre produit est trs importante. Elle vous permet de bnficier des diffrents services gratuits que PC SOFT offre sa clientle : assistance du Support Technique Gratuit, informations sur les nouveauts, suivi des volutions du produit, ... Retournez votre carte denregistrement dment remplie ds aujourdhui.
Important
20
Si vous utilisez le logiciel Etats & Requtes, il est possible de vous inscrire l"Assistance Directe " pour disposer dun "assistanat tlphonique". Pour toute information complmentaire sur l"Assistance Directe ", veuillez contacter le service commercial de PC SOFT.
Barres doutils et menu droulant Permet un accs rapide aux principales fonctionnalits de lditeur dtats. Il est possible de : personnaliser la barre doutils (option "Affichage .. Barres doutils .. Personnaliser les barres doutils"). afficher / masquer la barre doutils (option "Affichage .. Barres doutils .. Barre contextuelle"). dplacer la barre doutils laide de la souris. Rgles dalignement Permettent d'aligner les champs dans l'tat. Pour afficher les rgles, utilisez le raccourci [Ctrl]+[R]. Etat en cours ddition Des ascenseurs permettent de faire dfiler les tats volumineux. Il est galement possible de zoomer sur ltat pour visualiser plus prcisment les lments de ltat ([Ctrl]+roulette de la souris). Volets verticaux Affiche : les raccourcis vers les principales fonctionnalits disponibles sous l'diteur dtats (volet "Commandes"), les lments (fichiers, variables, rubriques, tats, champs, ...) disponibles dans le projet en cours (volet "Explorateur de projet"). Partie 1 : Editeur dtats 21
Important
Dans le logiciel Etats & Requtes, seuls les volets "Explorateur de Projet" et "Modifieur" sont disponibles.
Fentre de code Affiche les diffrents traitements associs ltat, ses blocs et ses champs. Fentre de description Permet de visualiser et/ou de modifier les caractristiques : du ou des champs slectionns. de l'tat en cours. Documents ouverts Affiche un bouton pour chaque document ouvert sous l'diteur dtats. Pour afficher l'lment voulu au premier plan, il suffit de cliquer sur le "bouton" correspondant. Volets horizontaux Affiche : les diffrents lments du code (liste des classes, des procdures locales ou globales, volet "Code"), les erreurs de compilation (erreurs prsentes dans le code WLangage) ou erreurs dIHM, volet "Erreurs de compilation"), loutil de recherche (volet "Rechercher - Remplacer"), le dbogueur lors du test d'un lment (volet "Dbogueur"), ...
Option Nouveau champ Nouvelle rupture Nouveau bloc Nouveau tableau Nouvelle colonne Nouvel tat interne Date Heure 22 Partie 1 : Editeur dtats Insre une rupture.
Action Insre le champ spcifi dans ltat. Insre un nouveau bloc dans ltat en cours. Insre un tableau dans ltat en cours (uniquement si ltat na pas de tableau). Insre une colonne dans le tableau prsent dans ltat. Insre un champ tat interne dans ltat en cours. Insre un champ pr-dfini de type date. Insre un champ pr-dfini de type Heure.
Insre un champ pr-dfini correspondant au numro de la page en cours. Insre un champ pr-dfini correspondant au nombre total de pages de ltat.
Numro de page / Nombre de pages Insre un champ pr-dfini indiquant le numro de la page en cours par rapport au nombre total de pages de ltat. Un modle (Hritage)
Menu Etat
Option Description Mise en page Format des tiquettes Editer la requte Editer les tris Editer les conditions de slection Editer les ruptures Editer les groupes Liste des modles utiliss Liste des champs surchargs Mettre jour les tats associs Rtro-modlisation des modles
Action Affiche la fentre de description de ltat Affiche la fentre de slection du format de la page Affiche la fentre de description du format des tiquettes (pour un tat de type tiquette) Affiche la requte de base de ltat (pour un tat sur requte intgre) Affiche la fentre de description des tris et des ruptures Affiche la fentre de description des conditions de slection Affiche la fentre de description des tris et des ruptures Affiche la fentre de description des groupes de champs Affiche la liste des modles utiliss par ltat en cours Affiche la liste des champs surchargs dans ltat en cours Met jour les tats associs au modle en cours Cre une modlisation souple partir des modles utiliss sur ltat en cours. Permet de slectionner le gabarit appliquer ltat en cours Liste les champs et les blocs prsents dans ltat
Impact des modifications du modle Liste les tats concerns par la mise jour du modle. Appliquer un gabarit Champs et blocs de ltat
Menu Champ
Option Description Editer le texte Choisir un style Tableau Groupes de champs Alignement
Action Affiche la fentre de description du (des) champ(s) slectionn(s) Permet de modifier le texte du champ slectionn directement depuis lditeur Permet de choisir un style pour le champ slectionn. Permet de grer le tableau prsent dans ltat Affiche la fentre de description des groupes de champs Permet de grer les options dalignement sur les champs slectionns Partie 1 : Editeur dtats 23
Altitude Gras Italique Soulign Cadre Cadrer droite Cadrer gauche Centrer Justifier Adapter la taille Abonnement
Menu Code
Permet de grer les effets de superposition des champs Active ou non le gras pour le texte du (des) champ(s) slectionn(s) Active ou non litalique pour le texte du (des) champ(s) slectionn(s) Active ou non le soulign pour le texte du (des) champ(s) slectionn(s) Permet dentourer le(s) champ(s) slectionn(s) dun cadre Aligne le texte droite dans le(s) champ(s) slectionn(s) Aligne le texte gauche dans le(s) champ(s) slectionn(s) Centre le texte dans le(s) champ(s) slectionn(s) Justifie le texte dans le(s) champ(s) slectionn(s) Adapte la taille de llment slectionn son contenu Affiche les caractristiques dabonnement du champ slectionn
Option Tester ltat Terminer le test Code de ltat Code de la slection Procdures locales Tous les codes de ltat Compiler ltat
Menu Affichage
Action Permet de lancer le test de ltat en cours Permet darrter le test en cours Affiche les traitements associs ltat dans une fentre de code Affiche les traitements associs au champ slectionn dans une fentre de code Affiche les procdures locales de ltat dans le volet "Code" Affiche tous les traitements associs ltat, ses blocs et ses champs Permet de compiler ltat
Option Visualiser ltat en 3D Langue affiche Zoom Barres doutils Rgle Grille active Grille visible Options Description de la slection 24 Partie 1 : Editeur dtats
Action Permet de visualiser ltat en 3 dimensions Permet de slectionner la langue dans laquelle ltat est affich sous lditeur Ralise un zoom dans lditeur dtat selon le facteur de zoom spcifi. Paramtre les barres doutils affiches et linterface gnrale. Active ou dsactive laffichage des rgles dalignement Active la grille magntique Rend la grille magntique visible Configure laffichage de ltat en cration sous lditeur Affiche la fentre de description du (des) champ(s) slectionn(s)
Cre un libell Cre une rubrique Cre un champ calcul Cre une image Cre un code-barres Cre un champ texte RTF Cre un champ pr-dfini Cre un graphe Cre une forme (ligne horizontale, verticale, ...) Cre un interrupteur Cre un tat interne Cre un lien Cre un champ de saisie Dplace les images du formulaire Options dalignement du champ
Arrondit le cadre du champ Descend laltitude du champ Monte laltitude du champ Met le champ en arrire-plan Met le champ en avant-plan Couleur du texte Taille de la police Police Aligne le texte droite Centre le texte Aligne le texte gauche Attribut soulign Attribut italique Attribut gras
25
Correcteur dinterface Aligne les bords hauts Aligne les bords gauches Aligne les bords intrieurs droits Justifie gauche les bords intrieurs et extrieurs Ajuste la largeur Centre horizontalement Ajuste lespacement horizontal Gre lalignement personnalis Aligne les bords bas Aligne les bords droits Justifie les bords intrieurs et extrieurs Justifie droite les bords intrieurs et extrieurs Ajuste la hauteur Centre verticalement Ajuste lespacement vertical
Aucune bordure Encadre le champ Bordure gauche Bordure en haut Bordure droite Bordure en bas
Afficher / Rendre invisible les rgles Aide Annuler la dernire action Arrter le mode test (lors de test du projet ou de ltat) Coller le contenu du presse-papiers Copier le style de llment slectionn Copier llment slectionn Couper llment slectionn Dplacer le champ ou la colonne slectionne droite / gauche
Ctrl + R F1 Ctrl + Z Shift + F5 Ctrl + V ou Shift + Inser Ctrl + Shift + C Ctrl + C ou Ctrl + Inser Ctrl + X ou Alt + Suppr Flche droite / gauche
Afficher le code associ llment slectionn dans le volet "Visualisation con- Ctrl + Shift + F2 textuelle du code" diter le code de la slection Enregistrer l'tat Enregistrer sous Enregistrer tout Fermer tous les lments ouverts Imprimer le dossier concernant l'tat en cours Masquer les volets horizontaux Masquer tout (volets verticaux et horizontaux) Mettre en gras le champ slectionn Mettre en italique le champ slectionn Nouveau (Cration d'un lment) Ouvrir (Ouverture d'un lment) Ouvrir un projet Rtablir (Restaurer la dernire action) Souligner le champ slectionn Supprimer la slection Tracer le projet Tester le projet Tester l'tat en cours Visualiser ltat en 3D Zoom 100 % Zoom + / Attention : Le signe "+" signifie que les touches doivent tre utilises simultanment
F2 Ctrl + S Ctrl + Shift + S Alt + S Ctrl + Shift + W Ctrl + P Ctrl + Q Ctrl + W Ctrl + G Ctrl + I Ctrl + N Ctrl + O Ctrl + Shift + O Ctrl + Y ou Ctrl + Shift + Z Ctrl + U Suppr Alt + F9 Ctrl + F9 F9 Alt + D Ctrl + Alt + 0 Ctrl + roulette de souris
27
Ici, une analyse WinDev est partage entre deux projets (WinDev, WinDev Mobile ou WebDev). Le projet peut tre charg par loption "Fichier .. Ouvrir un projet".
28
Etat Tableau :
Lecture de la source de donnes de ltat Chaque ligne du tableau correspond un enregistrement lu dans la source de donnes de ltat (fichier, requte, ...).
29
Exemples dutilisation simple Tableau de synthse Facture Liste dtaille Regroupement de donnes selon un critre Pour plus de dtails, consultez Utiliser des tableaux dans un tat, page 95.
Etat Fiche :
Lecture de la source de donnes de ltat Les donnes lues dans la source de donnes sont affiches sous forme de fiche : chaque page de ltat affiche les donnes de plusieurs enregistrements. Exemples dutilisation Liste dtaille Regroupement de donnes selon un critre
30
Etat Etiquette :
Lecture de la source de donnes de ltat Chaque enregistrement lu dans la source de donnes correspond une tiquette. Exemples dutilisation Etiquettes de prix Etiquettes dadresse Informations spcifiques la cration des tiquettes Certaines informations spcifiques sont ncessaires la cration des tiquettes : le nombre d'exemplaires identiques imprimer pour chaque tiquette. le format des tiquettes et/ou de la planche d'tiquettes. Ce format peut correspondre : - soit un format personnalis : 1. Slectionnez l'lment "<Personnalis>" dans la combo "Constructeur". 2. Spcifiez le format de la planche d'tiquettes sur laquelle les tiquettes seront imprimes. 3. Spcifiez le format des tiquettes. 4. Spcifiez le nombre d'tiquettes imprimer sur la largeur d'une page. - soit un format pr-dfini : 1. Slectionnez la marque des tiquettes utilises dans la combo "Constructeur". 2. Slectionnez le modle des tiquettes utilises dans la combo "Modle". 3. Les informations spcifiques aux tiquettes utilises (libell du modle, taille des tiquettes et nombre d'tiquettes imprimes sur la largeur d'une planche d'tiquettes) s'affichent. Remarque : L'option "pouces" permet dafficher la taille des tiquettes en pouces. Partie 1 : Editeur dtats 31
32
33
Lecture de la source de donnes de ltat Chaque page affiche : soit un texte spcifique. soit un formulaire standard (rempli par la suite la main). soit les donnes dun ou de plusieurs enregistrements. Exemples dutilisation Formulaire de saisie des appels reus Formulaire de saisie des absences Formulaire de saisie des produits rceptionns
Informations spcifiques au formulaire Certaines informations spcifiques sont ncessaires la cration dun tat sur formulaire : le fichier contenant l'image du formulaire. La taille de l'tat est automatiquement calcule en fonction de la taille de l'image du formulaire. Si limage du formulaire correspond un fichier PDF contenant plusieurs pages, il est possible : - soit dimprimer toutes les pages du PDF. Un tat compos de plusieurs pages est alors cr sous lditeur dtats. - soit dindiquer le numro de la page utiliser en fond dtat. Ltat imprimera uniquement une page du fichier PDF. l'impression ou non de l'image du formulaire. 34 Partie 1 : Editeur dtats
Remarque : Si l'image du formulaire est imprime avec l'tat, cette image ne sera pas imprime audel des marges physiques de l'imprimante. le dcoupage du formulaire en fonction du nombre d'enregistrements imprim par page : - si par exemple, le formulaire contient les caractristiques d'un seul client, un seul enregistrement doit tre imprim par page. Dans ce cas, l'tat cr contient uniquement le bloc Corps. - si par exemple, le formulaire contient les caractristiques de plusieurs clients, plusieurs enregistrements doivent tre imprims par page. Dans ce cas, l'tat cr contient un bloc Haut de page, un bloc Corps et un bloc Bas de page. Pour chaque enregistrement imprim sur la page, le bloc Corps sera rpt. Pour imprimer correctement l'tat, il est ncessaire de modifier la position des champs de l'tat et la position de l'image du formulaire dans le bloc Corps. Pour plus de dtails, consultez Intgrer un formulaire dans un tat, page 59.
la frquence des graduations sur l'axe vertical/horizontal du graphe (si ncessaire). l'aspect du graphe (relief, couleur dgrad et quadrillage). les titres des axes si ncessaire. Il est galement possible de crer un champ Graphe dans un tat existant. Pour plus de dtails, consultez Champ Graphe, page 78.
35
36
Requte : Les donnes imprimer proviennent dune requte. Cette requte correspond : soit une requte cre et enregistre sous lditeur de requtes. soit une requte cre lors de la cration de ltat. Champ table prsent dans une fentre ou dans une page : Les donnes imprimer proviennent dun champ table prsent dans une des fentres de lapplication ou dans une des pages du site. Les enregistrements sont slectionns par la table, ltat ne fait que les imprimer.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table. Cependant, il est possible de personnaliser des tats sur un champ Table crs sous lditeur dtats intgr (couleur, polices, taille, colonne relie, ...).
Variable existante : Les donnes imprimer proviennent dune variable WLangage du projet ou de ltat. Cette variable peut tre une variable de type tableau globale au projet, une variable de type tableau globale une fentre ou une page, une variable de type tableau globale une collection de procdures. Le logiciel Etats & Requtes ne permet pas de crer ou de modifier des tats sur variable.
Autre source : Les autres sources de donnes peuvent tre : Fichier de type texte : Les donnes imprimer sont lues dans un fichier Texte. Zone mmoire (non disponible en WinDev Mobile) : Les donnes imprimer correspondent aux enregistrements stocks dans une zone mmoire. Le logiciel Etats & Requtes ne permet pas de crer des tats sur une zone mmoire. Cependant, il est possible de personnaliser les tats sur zone mmoire crs avec lditeur dtats intgr (couleur, polices, taille, ...).
37
Vue sur un fichier HyperFileSQL Classic : Les donnes imprimer proviennent dune vue HyperFileSQL.
Important Important
Le tri
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une vue HyperFileSQL. Cependant, il est possible de personnaliser des tats sur une vue HyperFileSQL crs sous lditeur dtats intgr (couleur, polices, taille, ...).
Programmation de la lecture de la source de donnes : Pour programmer et slectionner vous-mme les enregistrements afficher dans l'tat, choisissez un tat sur une source programme. Pour plus de dtails, consultez le paragraphe Etat sur une source de donnes programme, page 53. Le logiciel Etats & Requtes ne permet pas de crer des tats sur une source de donnes programme.
Pas de source de donnes : Ltat ne sera li aucune source de donnes. Ces diffrentes sources de donnes sont dtailles dans le chapitre Sources de donnes dun tat, page 46. Remarque : Si vous slectionnez une des sources de donnes prcdemment cites, l'diteur d'tats se charge entirement de la programmation du parcours des enregistrements afficher dans l'tat. Pour programmer et slectionner vous-mme les enregistrements afficher dans l'tat, choisissez un tat avec programmation de la lecture de la source de donnes.
Pour rendre le rsultat dune requte plus lisible, il est possible de trier les enregistrements selon une ou plusieurs rubriques. Trier les enregistrements revient classer les enregistrements dans un ordre croissant ou dcroissant. Par exemple, il est possible de trier les clients par leur nom, de A Z. Si votre tat est bas sur une requte, lordre du tri est dfini lors de la cration de la requte. Il est cependant possible de : ajouter ou supprimer une rubrique de tri dans un tat existant. modifier lordre de tri effectu sur une rubrique dans un tat existant.
38
Pour affiner le tri, il est galement possible dutiliser : des fonctions du WLangage (fonctions Gauche, Droite, ...). une procdure du WLangage (procdure serveur en WebDev). Cette procdure sera automatiquement appele pour trier des enregistrements affichs dans ltat. Cette procdure devra tre soit une procdure globale du projet, soit une procdure locale ltat. Pour plus de dtails, consultez Procdure de tri, page 135. Pour plus de dtails sur le tri des enregistrements, consultez laide en ligne (mot-cl : "Trier, Etat").
Les ruptures
La rupture permet de grouper les enregistrements correspondant un argument de tri. Par exemple : pour lister les clients par ville, il suffira de trier les clients par ville puis par nom et de faire une rupture sur la ville. pour lister le cours des actions par jour, il suffira de trier les actions par date et de faire une rupture sur la date.
Lajout dune rupture gnre automatiquement les blocs Haut et Bas de rupture. Ces blocs permettent par exemple de : afficher le contenu de la rubrique de rupture (gnralement dans le bloc Haut de rupture). raliser des calculs sur les enregistrements de la rupture (gnralement dans le bloc Bas de rupture).
39
Pour plus de dtails sur les blocs dun tat, consultez le paragraphe Blocs dun tat, page 63. Lditeur dtats propose deux types de ruptures : rupture automatique (la plus courante). La rupture est ralise sur une rubrique appartenant la source de donnes de l'tat. rupture programme. La rupture est entirement dfinie par programmation dans le traitement "Rupture?" du bloc Haut de rupture. Pour plus de dtails sur la programmation dune rupture, consultez Traitement de rupture, page 135. Pour plus de dtails sur les ruptures, consultez laide en ligne (mot-cl : "Rupture, Rupture dans un tat").
2.2.6 Gabarit
Si le projet est associ un gabarit, il est possible de slectionner ce mme gabarit pour vos tats. Vos tats imprims auront le mme style que votre application. Ce gabarit pourra tre modifi aprs la cration de ltat. Pour plus de dtails, consultez le paragraphe Changer le gabarit associ ltat, page 62. Attention toutefois aux dures dimpression dtats contenant des images, selon le type dimprimante.
40
Les options proposes sont : Aperu avant impression : permet de visualiser ltat lcran tel quil sera imprim. Imprimante : ltat est directement imprim sur limprimante par dfaut. Fichier HTML : ltat est enregistr dans un fichier HTML et affich dans le navigateur Internet install sur le poste. Fichier RTF : l'tat est enregistr dans un fichier RTF et affich dans un diteur de texte (Word par exemple). Fichier PDF : l'tat est enregistr dans un fichier PDF et affich dans un logiciel de visualisation des fichiers PDF (Adobe Acrobat par exemple). Pour plus de dtails sur ces diffrents modes, consultez Impression dun tat, page 43. 2. Choisissez le mode d'impression voulu et validez. Si votre tat nest pas enregistr, WinDev, Partie 1 : Editeur dtats 41
WinDev Mobile ou WebDev propose automatiquement de lenregistrer sous le nom donn dans lassistant de cration dtat. 3. Si ncessaire, fournissez des renseignements supplmentaires : si l'tat est born, une fentre s'affiche permettant de saisir les bornes de l'tat. Pour plus de dtails, consultez Etat born, page 47. si l'tat est bas sur une requte paramtre, une fentre saffiche permettant de saisir les paramtres de la requte. Pour plus de dtails, consultez Etat sur requte paramtre, page 48. si l'tat est paramtr, donnez une valeur par dfaut aux paramtres dans la dclaration des paramtres. Pour plus de dtails, consultez Etat paramtr, page 136.
2.4.5 WinDev Mobile : Ouverture dune fentre en mode test dans le code du projet
Lors du test d'un tat, si une fentre est ouverte dans le code d'initialisation du projet ou dans le code de fin de projet, une erreur WLangage est affiche. Pour viter cette erreur, utilisez la fonction EnModeTest pour paramtrer l'ouverture de la fentre. Par exemple :
SI EnModeTest = Faux alors Ouvre(MaFentre)
Il est cependant possible d'utiliser des fonctions ouvrant des botes d'information systme (par exemple Info ou Trace). 42 Partie 1 : Editeur dtats
* Les destinations proposes par laperu peuvent tre modifies dans longlet "Dtail" de la description de ltat ou par programmation avec la fonction iParamtreAperu. Pour plus de dtails sur chaque mode dimpression, consultez laide en ligne. WinDev Mobile : Lors du test dun tat sous lditeur, toutes les options sont disponibles. Cependant, lors de limpression dun tat par programmation, seules les impressions sur une imprimante PCL ou sur un fichier PCL sont disponibles. Remarque : Par dfaut, le mode d'impression de l'tat est automatiquement demand lors du test de chaque tat dans une fentre spcifique. Pour ne pas afficher cette fentre lors du test de l'tat, dcochez l'option "Demander le mode d'impression" dans les options d'dition de l'diteur d'tats (option "Affichage .. Options .. Modifier les options", onglet "Impression"). Dans ce cas, l'tat test sera directement visualis dans un aperu avant impression.
Affichage du nombre total de pages imprimer. Recherche dans la totalit des pages. Impression de la page en cours ou de la totalit des pages. Impression directe. Choix de la destination de limpression grce une barre de boutons. Possibilit dannoter ltat affich. Si ltat est imprim depuis laperu, les annotations seront galement imprimes.
La barre de boutons de laperu avant impression
La barre de boutons permettant de raliser les oprations suivantes : Enregistrement et visualisation de ltat au format RTF (Rich Text Format). Enregistrement et visualisation de ltat au format XLS. Enregistrement et visualisation de ltat au format HTML. Enregistrement et visualisation de ltat au format PDF (Portable Document Format). Enregistrement et visualisation de ltat au format XML (eXtensible Markup Language). Visualisation de ltat dans un email. Ajout dun fichier PDF un email.
Un menu contextuel reprenant la majorit des options de la barre d'outils et de la barre de boutons. Pour plus de dtails sur la barre de boutons, consultez laide en ligne. Remarques : Pour visualiser laperu avant impression dun tat, une imprimante doit tre installe sur le poste en cours. Aperu d'une impression ralise avec les fonctions WLangage : Si vous ralisez une impression avec les fonctions WLangage, il est galement possible de profiter des fonctionnalits de l'aperu avant impression. La barre de boutons sera affiche, et les annotations pourront tre utilises. Pour afficher uniquement certains boutons dans la barre de boutons de l'aperu avant impression : - soit utilisez la fonction iParamtreAperu. Cette fonction, utilise dans le code d'initialisation du projet permet par exemple de choisir quels seront les boutons affichs pour tous les tats de l'application.
44
- soit paramtrez directement les boutons affichs pour chaque tat dans la description de ltat (onglet "Dtail"). Lors de l'utilisation de la barre de boutons, l'aperu avant impression est automatiquement ferm aprs l'enregistrement du fichier. Si ltat en cours est modifiable par lutilisateur final, les icnes suivants lui permettent de : modifier ltat en cours, icne : . crer un nouvel tat, icne : .
La barre dannotations
La barre de boutons dannotations permet de raliser les oprations suivantes : Ralisation dun dessin laide du pinceau (permet par exemple dentourer des informations). Insertion de flches. Insertion de cadres (pour entourer une zone par exemple). Insertion de texte (pour raliser des commentaires par exemple). Insertion dimages. Il est bien sr possible de choisir lpaisseur des traits ainsi que la couleur utilise.
La barre de recherche
La barre de recherche permet de rechercher un mot ou un ensemble de mots dans ltat. Le rsultat de la recherche est surlign en vert.
Autres fonctionnalits de laperu avant impression (WinDev uniquement)
Personnalisation de l'aperu : Votre application utilise un gabarit? Pourquoi ne pas utiliser ce gabarit galement pour la fentre d'aperu avant impression. WinDev permet en effet de personnaliser la fentre d'aperu avant impression. Pour plus de dtails, consultez laide en ligne (mot-cl : "Personnaliser, Fentre daperu"). Aperu d'une impression ralise avec les fonctions WLangage : Si vous ralisez une impression avec les fonctions WLangage, il est galement possible de profiter des fonctionnalits de l'aperu avant impression. Paramtrage de la barre de boutons : Pour afficher uniquement certains boutons : - soit utilisez la fonction iParamtreAperu. Cette fonction, utilise dans le code d'initialisation du projet permet par exemple de choisir quels seront les boutons affichs pour tous les tats de l'application. - soit paramtrez directement les boutons affichs pour chaque tat dans la description de l'tat (onglet "Dtail"). Pour paramtrer les options des diffrents modes dimpression, utilisez : - la fonction iParamtrePDF pour paramtrer limpression dans un fichier PDF, - la fonction iParamtreExport pour paramtrer lenvoi demails, - la fonction iParamtreXLS pour paramtrer limpression dans un fichier XLS. Impression depuis l'aperu : Pour savoir si l'utilisateur a effectu une impression depuis l'aperu avant impression, utilisez la fonction iImpressionDemande. Lors de lutilisation de la barre de boutons, laperu avant impression est automatiquement ferm aprs limpression du document dans un fichier.
Important
45
Important
46
Les fichiers de donnes et les rubriques de fichier pouvant tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur danalyses de WinDev. Pour plus de dtails sur la prparation ncessaire lutilisation dune application WinDev avec le logiciel Etats & Requtes, consultez Diffuser le logiciel Etats & Requtes, page 229.
3.2.2 Caractristiques
Cl de parcours
Un tat sur un fichier de donnes utilise une cl de parcours. Cette cl permet de parcourir les diffrents enregistrements imprimer dans l'tat. Cette cl est dfinie dans le fichier de donnes.
Etat born
Un tat sur un fichier de donnes peut tre born sur la cl de parcours utilise. Ainsi, un tat sur le fichier "Client" peut imprimer la liste complte des clients ou uniquement les clients dont le nom commence par la lettre "C" ou "E" si ltat est born. Pour plus de dtails sur les tats borns, consultez laide en ligne (mot-cl : "Borne, Bornes d'un tat").
Pour plus de dtails sur limpression dun tat sur requte, consultez Etat sur une requte, page 120.
47
La requte doit tre cre avec lditeur de requtes avant la cration de ltat (pour plus de dtails sur la cration dune requte, consultez Comment crer une requte?, page 165). Lors de la cration de ltat, il suffit de spcifier le nom de la requte utilise. Si la requte est modifie sous lditeur de requtes (suppression de rubriques rsultat par exemple), un cran de synchronisation saffiche lors de la fermeture de la requte. Il est ainsi possible de reporter les modifications effectues sur la requte dans tous les lments du projet utilisant cette requte (y compris les tats). Pour plus de dtails sur la synchronisation, consultez Synchronisation de la requte, page 201.
Etat sur requte intgre
La requte est cre directement lors de la cration de ltat. Cette requte sera modifie directement depuis lditeur dtats (option "Etat .. Description .. Donnes .. Editer"). Si des modifications sont ralises dans la requte, lditeur dtats liste les modifications ralises et les incidences sur ltat. Remarque : Pour passer du mode intgr au mode indpendant (c'est--dire pour extraire une requte d'un tat) : 1. Affichez l'tat sur la requte intgre (sous l'diteur d'tats). 2. Slectionnez l'option "Editer la requte" du menu contextuel de l'tat (ou slectionnez l'option "Etat .. Editer la requte"). La requte s'affiche sous l'diteur de requtes. 3. Slectionnez l'option "Fichier .. Exporter .. Vers une requte indpendante". 4. Enregistrez la nouvelle requte.
Etat sur requte paramtre
Une requte (intgre ou indpendante) peut tre paramtre. Dans ce cas, une ou plusieurs conditions de slection attendent un paramtre lors de lexcution de la requte. Ce paramtre pourra par exemple correspondre la valeur dun champ saisie dans une fentre de lapplication ou une page du site. Par exemple, pour imprimer la facture dun client donn, il suffit de crer un tat bas sur une requte paramtre. Dans cette requte, le paramtre sera le nom du client. Pour imprimer ltat, il faudra donc prciser la valeur du paramtre avant de lancer limpression : lors du test de ltat bas sur une requte paramtre, une fentre (ou une page) saffiche permettant de saisir les paramtres de la requte. en excution, les paramtres de la requte devront tre spcifis laide de la fonction iInitRequteEtat (avant lutilisation de la fonction iImprimeEtat).
Important
48
Si la requte est cre avec le logiciel Etats & Requtes, il nest pas ncessaire dutiliser la fonction iInitRequteEtat pour spcifier les paramtres de la requte. En effet, lors de lexcution dun tat sur une requte paramtre depuis le logiciel Etats & Requtes, une fentre saffiche permettant de saisir les paramtres de la requte.
Pour plus de dtails sur limpression des requtes paramtres, consultez Imprimer un tat sur requte paramtre, page 121. Remarque : Pour plus de dtails sur les tats paramtrs, consultez Etat paramtr, page 136.
Important Important
Le logiciel Etats & Requtes ne permet ni de crer ni de personnaliser des tats sur variable.
Pour plus de dtails sur limpression dun tat sur une variable WLangage, consultez Etat sur une variable, page 124.
Lorsque l'tat sur une vue HyperFileSQL est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la vue HyperFileSQL associe l'tat. Pour plus de dtails sur limpression dun tat sur une vue HyperFileSQL, consultez "Imprimer un tat sur une vue HyperFileSQL", page 126.
3.5.2 Caractristiques
Fichier de base
Un tat sur une vue HyperFileSQL est li au fichier de base de cette vue HyperFileSQL. L'tat permet d'imprimer les enregistrements provenant de ce fichier de base.
49
L'ordre d'impression des enregistrements correspond l'ordre des enregistrements dfini dans la vue HyperFileSQL (lors de la cration de la vue ou dfini avec la fonction HTrieVue).
Important
50
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une zone mmoire. Cependant, il est possible de personnaliser des tats sur une zone mmoire crs sous lditeur dtats intgr (couleur, polices, taille, ...).
Pour plus de dtails sur limpression dun tat sur une zone mmoire, consultez Etat sur zone mmoire, page 128. Remarques : Ce type dtats nest pas disponible sous WinDev Mobile. Ce type dtats est conserv par compatibilit.
3.6.2 Caractristiques
Fichier de base
Un tat sur une zone mmoire est li au fichier de base de cette zone mmoire. L'tat permet d'imprimer les enregistrements provenant de ce fichier de base.
Ordre dimpression des enregistrements
L'ordre d'impression des enregistrements correspond l'ordre des numros d'enregistrements dfini dans la zone mmoire.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur un champ Table. Cependant, il est possible de personnaliser des tats sur un champ Table crs sous lditeur dtats intgr (couleur, polices, taille, colonne relie, ...).
Un tat sur un champ Table peut imprimer : soit toutes les lignes affiches dans la table (possibilit de filtrer les donnes de la table avec la loupe). soit uniquement les lignes slectionnes par lutilisateur (cas des tables multi-slection, o les lignes sont slectionnes grce la touche [Ctrl]). Cette option nest pas disponible sous WebDev. Il est possible de crer un tat sur un champ Table : soit depuis lditeur de fentres ou de pages. L'tat cr correspond alors un tat de type tableau. soit depuis lditeur dtats. L'assistant de cration d'un tat s'ouvre et permet de choisir le type d'tat crer (tableau, fiche, ...). Pour plus de dtails, consultez laide en ligne (mot-cl : "Table, Etat sur un champ table"). Lorsque l'tat sur un champ Table est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis au champ Table associ l'tat. Pour plus de dtails sur limpression dun tat sur un champ table, consultez Etat sur un champ table, page 122.
3.7.2 Caractristiques
Correspondance des enregistrements
Si ltat est bas sur un champ Table : Chaque ligne du champ Table correspond un enregistrement. Chaque colonne du champ Table correspond un champ rubrique (mme les colonnes invisibles). Dans le cas d'un tat de type tableau, l'ordre d'affichage des colonnes dans l'tat correspond par dfaut l'ordre des colonnes dans la fentre (ou dans la page) en cours d'dition. En WinDev, si l'utilisateur modifie l'ordre des colonnes dans la fentre, l'ordre d'affichage des colonnes dans l'tat ne sera pas modifi dynamiquement.
51
Cette liste : comporte trois rubriques : "Nom", "Socit" et "Ville". contient autant denregistrements que de clients.
Il est impossible de tester un tat sur table directement depuis lditeur dtats, car la fentre ou la page contenant la table doit tre ouverte. Il est donc ncessaire de : programmer limpression dun tat sur table. Pour plus de dtails, consultez "Imprimer un tat sur un champ table", page 122. tester directement la fentre / la page (ou le projet) permettant de lancer limpression.
52
Pour plus de dtails sur la cration dun tat sur fichier texte, consultez laide en ligne (mot-cl : "Fichier texte, Etat sur un fichier texte"). Lorsque l'tat sur un fichier texte est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). modifier la mthode de lecture des enregistrements de l'tat (lecture automatique ou programme). Pour plus de dtails, consultez laide en ligne (mot-cl : "Fichier texte, Etat sur un fichier texte"). ajouter ou supprimer des champs Rubriques lis au fichier texte associ l'tat. Pour plus de dtails sur limpression dun tat sur un fichier texte, consultez Etat sur fichier texte, page 130.
3.8.2 Caractristiques
Correspondance des enregistrements
Chaque ligne du fichier texte doit correspondre un enregistrement. Chaque ligne contient plusieurs informations, appeles rubriques. Chaque rubrique est spare par un sparateur.
Important
Le logiciel Etats & Requtes ne permet pas de crer des tats sur une source de donnes programme.
Pour plus de dtails sur la cration dun tat sur une source de donnes programme, consultez laide en ligne (mot-cl : "Source de donnes d'un tat, Source de donnes programme"). Lorsque l'tat sur une source de donnes programme est cr, il est possible tout moment de : modifier la source de donnes de l'tat (onglet "Donnes" de la description de l'tat). ajouter ou supprimer des champs Rubriques lis la source de donnes de l'tat.
53
54
4.2.4 Options
Longlet "Options" de la fentre de description de ltat est le suivant :
55
Cet onglet permet de configurer : le fonctionnement de ltat si le format de la page nest pas support par limprimante. la position des blocs lors de limpression de ltat (pour plus de dtails, consultez R-ordonner les blocs, page 69). le style du tableau si ltat contient un tableau (pour plus de dtails, consultez Utiliser des tableaux dans un tat, page 95). le style des tiquettes si ltat est de type tiquette. la liste des modles utiliss par ltat.
4.2.6 Langue
Un tat peut tre multilingue, cest--dire qu lexcution cet tat pourra tre affich et imprim dans plusieurs langues. Longlet "Langue" de la description du projet permet de configurer : les diffrentes langues gres par ltat en cours. la langue visualise sous lditeur dtats : cest cette langue qui sera utilise par dfaut pour afficher ltat sous lditeur. Les informations dun tat pouvant tre saisies en plusieurs langues sont : tous les messages affichs lors de limpression de ltat. La traduction de ces messages est ralise directement dans les diffrentes fentres de description. le libell des champs de type libell ou RTF : pour traduire ces libells, il suffit de modifier la langue affiche de ltat (option "Affichage .. Langue affiche") et de saisir directement les traductions dans ltat en dition. le masque daffichage des champs de type rubrique, calcul ou pr-dfini. les diffrents fichiers image utiliss dans ltat. le formulaire de ltat.
56
Pour enregistrer ltat en cours, slectionnez loption "Fichier .. Enregistrer". Remarque : Loption "Fichier .. Enregistrer sous" permet denregistrer ltat en le renommant. Rcupration automatique Pour viter tout problme lors dun blocage du systme (coupure de courant par exemple), WinDev / WebDev / WinDev Mobile proposent un systme de rcupration automatique des lments ouverts sous les diffrents diteurs (option "Outils .. Options gnrales de WinDev / WebDev / WinDev Mobile .. Gnral .. Enregistrement pour la rcupration automatique"). Lorsque ce systme est activ : un enregistrement automatique des lments ouverts est automatiquement effectu une priode donne (toutes les 10 minutes par dfaut). lors de la r-ouverture dun tat aprs un blocage systme, une fentre de rcupration automatique apparat. Cette fentre propose de rcuprer : soit ltat tel quil tait lors de la dernire sauvegarde ralise depuis lditeur dtats soit ltat sauvegard automatiquement La version slectionne est automatiquement ouverte sous lditeur dtats. La version non slectionne est disponible dans la fentre de gestion des versions (option "Fichier .. Versions") et peut tre ouverte tout moment.
57
En excution, il est possible d'imprimer ou non l'image du formulaire avec l'tat. Par dfaut, l'image du formulaire n'est pas imprime avec l'tat. Par exemple :
Pour imprimer des tats sur des formulaires pr-imprims, il est possible : soit de crer un tat fiche de type "Formulaire". Pour plus de dtails, consultez le paragraphe suivant. soit dintgrer un formulaire dans un tat existant.
58
Dans ce cas, l'tat cr contient un bloc Haut de page, un bloc Corps et un bloc Bas de page. Pour chaque enregistrement imprim sur la page, le bloc Corps sera rpt. Pour imprimer correctement l'tat, il est ncessaire de modifier la position des champs de l'tat et la position de l'image du formulaire dans le bloc Corps.
59
Remarque : Le curseur de la souris doit tre dplac dans la zone du bloc pour tre pris en compte.
60
Pour afficher une vue en 3 dimensions de vos tats : 1. Affichez l'tat sous l'diteur. 2. Slectionnez l'option "Affichage .. Visualiser l'tat en 3D" (ou les touches ALT + D). 3. L'tat apparat en 3 dimensions. Remarque : Pour afficher une vue en 3 dimensions de votre tat et animer cette vue, utilisez les touches [ALT] + [SHIFT]. Pour optimiser la vue de l'tat, vous pouvez utiliser la souris ou le clavier. Dplacements la souris Rotation (bouton gauche de la souris) Translation (bouton droit de la souris) Dplacements au clavier Rotation Utilisez les flches ainsi que les touches + et - du clavier numrique. Il est galement possible d'utiliser les chiffres du clavier numrique. Maintenez la touche SHIFT du clavier enfonce et utilisez les flches du clavier numrique. Utilisez la combinaison de touches : - SHIFT + pour raliser un zoom avant - SHIFT - pour raliser un zoom arrire. / (du pav numrique) pour diminuer l'cart entre les champs. * (du pav numrique) pour augmenter l'cart entre les champs Touche 0 du clavier numrique : r-initialisation complte Touche 5 du clavier numrique : R-initialisation en conservant l'espace entre les champs. Touche [Arrt dfil]. Touche [Echap] pour annuler Cliquez dans la vue de l'tat, et dplacez la souris tout en maintenant le bouton gauche de la souris enfonc. Cliquez dans la vue de l'tat, et dplacez la souris tout en maintenant le bouton droit de la souris enfonc.
Translation Zoom
Modification de l'cart entre les champs (modification entre les diffrents plans d'affichage)
R-initialisation de l'affichage
Remarque : Pour dsactiver la visualisation en 3 dimensions, utilisez la touche [ECHAP]. Actions possibles depuis l'affichage en 3D d'un tat En mode 3 dimensions, seules certaines actions sont disponibles sur les champs de l'tat. Il est possible par exemple de : slectionner un champ. afficher la description du champ. afficher le code source du champ. Partie 1 : Editeur dtats 61
Conditions ncessaires l'utilisation de la vue en 3 dimensions d'un tat Pour visionner vos tats en 3 dimensions, il est ncessaire de possder sur le poste en cours : DirectX version 8.0.A minimum. Une carte acclratrice 3D avec ses drivers jour. Un mode d'affichage en 16 bits ou 32 bits.
Important Important
62
Le logiciel Etats & Requtes ne permet pas de crer des gabarits dtats.
Le logiciel Etats & Requtes ne permet pas de crer ni de modifier des modles dtats.
63
Pour grer les diffrentes parties de ltat, lditeur dtats dcoupe la structure du modle d'un tat en blocs. A chaque bloc, un traitement en WLangage peut tre associ.
Etat en dition
64
Les diffrents types de blocs sont les suivants (dans leur ordre dapparition sous lditeur dtats) : Bloc Dbut de document Bloc Haut de page Bloc Haut de rupture Bloc Corps Bloc Complment de corps Bloc Bas de rupture Bloc Bas de page Bloc Fin de document Bloc Itration (ou de substitution) Remarques : Pour slectionner un bloc, il suffit de cliquer sur son intitul affich sur la gauche des tats. Par dfaut, l'intitul des blocs est affich en complet sur la gauche des tats en dition. Pour afficher ces intituls en abrg, dslectionnez l'option "Affichage .. Options .. Voir le nom des blocs complet". La suite de ce chapitre prsente les diffrents types de blocs et leurs caractristiques.
65
66
Selon le type de bloc slectionn, la fentre de description permet de configurer : le nom du bloc. la rubrique de rupture lie au bloc (blocs de rupture uniquement). les paramtres et les options d'impression du bloc. la hauteur du bloc. l'aspect du bloc (couleur de fond, cadre, ...). Remarque : Les caractristiques dun bloc peuvent tre galement visualises dans le volet Modifieur. Pour afficher ce volet, slectionnez loption "Affichage .. Barres doutils .. Modifieur". Il suffit ensuite de cliquer sur lintitul du bloc pour visualiser sa description dans le modifieur.
Saut de page aprs le bloc : Un saut de page peut tre automatiquement gnr aprs l'impression du bloc. Attention : Si la destination de limpression est un fichier HTML, les sauts de pages ne sont pas grs. Compltion jusqu'en bas de page : Un bloc peut tre tir jusqu'en bas de page. Remarque : Cette option est utile si le bloc a une image de fond ou une couleur de fond. Attention : Si la destination de limpression est un fichier HTML, la compltion jusquen bas de page nest pas gre. Prolonger les colonnes jusqu'en bas de page (uniquement pour les blocs contenant un tableau) : Les colonnes d'un tableau peuvent tre prolonges jusqu' ce que la fin de la page soit atteinte. Remarque : Pour prolonger les colonnes d'un tableau jusqu'en bas de page, il est galement possible d'ajouter un bloc Complment de corps. Les blocs Complment de corps sont automatiquement tirs jusqu'en bas de page. Attention : Si la destination de limpression est un fichier HTML, la prolongation des colonnes jusquen bas de page nest pas gre. Afficher le bloc dans chaque colonne de l'tat (pour les tats multi-colonnes) : Si l'tat est un tat multi-colonne, il est possible de choisir si le bloc doit tre affich sur chaque colonne ou sur toutes les colonnes. Conserver la place du bas de page lorsqu'il est invisible (uniquement pour les blocs Bas de page) : Par dfaut, la place occupe par le bloc Bas de page est toujours conserve dans les pages de l'tat (que le bloc soit visible ou non). Grce cette option, il est possible de conserver la place occupe par le bloc Bas de page uniquement dans les pages o le bloc est visible. Cette option permet d'optimiser le remplissage des pages de l'tat.
68
69
Ce traitement permet par exemple de : consulter et modifier les champs du bloc concern. affecter des images. excuter la fonction iTerminePage dans le bloc Haut de rupture. Attention : Ce traitement ne peut pas excuter de substitution du bloc en cours. Il peut par contre demander la substitution dun autre bloc (fonction iSubstBloc).
Aprs impression
Excut aprs l'impression du bloc. Ce traitement permet par exemple de : consulter et modifier les champs du bloc concern. affecter des images. remettre zro les champs qui viennent dtre imprims. substituer les blocs (pris en compte pour les prochains blocs). imprimer un bloc Itration (fonction iImprimeBloc)
Rupture?
(Bloc Haut de rupture uniquement) Excut avant le traitement "Avant impression" du bloc Haut de rupture. Pour plus de dtails, consultez Traitement de rupture, page 135.
Rappel : Si la destination de limpression est un fichier HTML, les blocs Haut de page et Bas de page ne sont dits quune seule fois. Pour visualiser les traitements spcifiques un bloc, utilisez : soit l'option "Code du bloc" du menu contextuel du bloc (clic droit sur l'intitul du bloc). soit l'icne "Code" de la description du bloc. Certaines fonctions et proprits sont spcifiques la manipulation des blocs. Remarque : Les traitements associs un bloc de l'tat sont excuts lors de l'impression de ce bloc. Dans ces traitements, vous pouvez utiliser du code WLangage. Pour plus de dtails sur lenchanement de ces traitements, consultez le chapitre Enchanement des traitements associs un tat, page 132.
70
Pour plus de dtails sur ces proprits et leur utilisation, consultez laide en ligne.
71
72
Modifier le libell Le libell d'un champ "Libell" peut tre modifi : soit par programmation (proprit Libell). soit sous l'diteur d'tats. Dans ce cas, deux mthodes sont possibles : Mthode 1 : 1. Slectionnez le champ. Les poignes de slection apparaissent autour du champ. 2. Cliquez une nouvelle fois sur le champ. Le curseur de la souris se transforme en curseur de saisie. 3. Saisissez le nouveau libell du champ. 4. Modifiez si ncessaire la mise en forme du libell grce la barre de mise en forme :
Mthode 2 : 1. Slectionnez le champ. 2. Affichez la fentre de description du champ (option "Champ .. Description"). 3. Saisissez le nouveau libell dans chaque langue gre par le champ. 4. Modifiez si ncessaire la mise en forme du libell dans l'onglet "Style". Libells multilingues Si votre application ou votre site est multilingue, il est possible de saisir un libell diffrent pour chaque langue gre par l'tat. Selon la langue d'excution du projet, le libell correspondant sera imprim. Pour plus de dtails, consultez Multilingue des champs dun tat, page 84. Transformer un champ "Libell" en champ "RTF" Pour afficher du texte au format RTF dans un champ "Libell", cochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "Libell" se transforme alors en champ "RTF". Toutes les caractristiques du champ "Libell" sont conserves. Pour plus de dtails sur les avantages dun champ RTF, consultez le paragraphe Champ RTF, page 76.
73
Pour dfinir la rubrique lie au champ "Rubrique" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique ou cette variable dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas directement la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. Champ "Rubrique" spcifique : "Montaire + Euro" Si le champ "Rubrique" est de type "Montaire + Euro", il est possible de grer : la devise mmorise : devise des donnes prsentes dans la source de donnes de l'tat. Si le champ est manipul par programmation, la devise de la valeur sera la devise mmorise. la devise affiche : devise utilise pour afficher la valeur lors de limpression de l'tat. Cette devise peut tre diffrente de la devise mmorise. La conversion est automatiquement ralise. le double-affichage : il est possible de relier deux champs de type "Montaire + Euro" entre eux. Dans ce cas, lditeur dtats distingue deux types de champs : le champ de base : ce champ contient la valeur prsente dans la source de donnes de ltat. le champ suiveur : ce champ permet dafficher la valeur du champ de base dans la devise voulue. Pour plus de dtails sur le type "Montaire + Euro", consultez laide en ligne (mot-cl : "Montaire + Euro").
74
Somme du tableau
Champ "Calcul" spcifique : "Montaire + Euro" Si le champ "Calcul" est de type "Montaire + Euro", il est possible de grer : la devise mmorise : devise des donnes prsentes dans la source de donnes de l'tat. Si le champ est manipul par programmation, la devise de la valeur sera la devise mmorise. la devise affiche : devise utilise pour afficher la valeur lors de limpression de l'tat. Cette devise peut tre diffrente de la devise mmorise. La conversion est automatiquement ralise. le double-affichage : il est possible de relier deux champs de type "Montaire + Euro" entre eux. Dans ce cas, lditeur dtats distingue deux types de champs : le champ de base : ce champ contient la valeur prsente dans la source de donnes de ltat. le champ suiveur : ce champ permet dafficher la valeur du champ de base dans la devise voulue. Pour plus de dtails sur le type "Montaire + Euro", consultez laide en ligne (mot-cl : "Montaire + Euro").
75
Pour dfinir la rubrique lie au champ "Image" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. Images multilingues Si votre application ou votre site est multilingue, il est possible de slectionner une image diffrente pour chaque langue gre par l'tat. Cette option est intressante par exemple lorsque les images contiennent du texte. Selon la langue d'excution du projet, l'image correspondante sera imprime. Pour plus de dtails, consultez Multilingue des champs dun tat, page 84.
Pour dfinir la rubrique lie au champ "Code-barres" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours.
76
Par exemple, le texte du champ peut correspondre : Le fournisseur [%NomFournisseur%] vend le produit [%NomProduit%] pour [%PrixTTC%]. Les rubriques NomFournisseur, NomProduit et PrixTTC seront remplaces par leur valeur lexcution de ltat. provenir dune rubrique ou dune variable de type texte prsente dans la source de donnes de l'tat. Si le champ est li une rubrique (ou une variable), le nom de la rubrique associe est affich dans la liste "Rubrique relie" de longlet "Liaison" de la description du champ. Exemple dutilisation de champ "RTF" : Intitul dun tat utilisant des polices de couleurs diffrentes.
Modifier le texte dun champ "RTF" Le texte d'un champ "RTF" peut tre modifi : soit par programmation (proprit Libell). soit sous l'diteur d'tats : 1. Slectionnez le champ (cliquez sur le champ par exemple). Les poignes de slection apparaissent autour du champ. 2. Cliquez une nouvelle fois sur le champ. Le curseur de la souris se transforme en curseur de saisie. 3. Saisissez le nouveau texte du champ. 4. Modifiez si ncessaire la mise en forme du texte grce la barre de mise en forme :
Transformer un champ "Libell" en champ "RTF" Pour afficher du texte au format RTF dans un champ "Libell", cochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "Libell" devient un champ "RTF". Toutes les caractristiques du champ "Libell" sont conserves. Transformer un champ "Rubrique" en champ "RTF" Pour afficher du texte au format RTF dans un champ "Rubrique", cochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "Rubrique" devient un champ "RTF". Toutes les caractristiques du champ "Rubrique" sont conserves. Transformer un champ "RTF" en champ "Rubrique" Pour afficher les balises RTF ou pour lier le champ une rubrique de type autre que texte, dcochez l'option "Format RTF" dans l'onglet "Dtail" de la description du champ (option "Champ .. Description"). Le champ "RTF" devient un champ "Rubrique". Toutes les caractristiques du champ "RTF" sont conserves.
77
Pour modifier le type d'information affich dans un champ "Pr-dfini" : 1. Affichez l'onglet "Gnral" de la fentre de description du champ "Pr-dfini" (option "Champ .. Description"). 2. Slectionnez le type d'information affich (combo "Type"). 3. Validez.
78
Exemple :
Informations spcifiques la cration du graphe Lors de la cration dun graphe, un assistant est automatiquement excut. Cet assistant permet de saisir les informations ncessaires la cration du champ graphe. Ces informations sont les suivantes : le type du graphe (boursier, camembert, histogramme, ...). le mode dalimentation du graphe (source identique celle de ltat ou alimentation par programmation). le nombre de sries. la source du libell de la srie. Ce libell provient dune rubrique prsente dans la source de donnes associe l'tat. Ce libell correspond : - soit l'tiquette d'une catgorie de donnes (ou d'un secteur) d'un graphe. - soit l'tiquette d'une srie de donnes d'un graphe. Etiquette de catgorie Etiquette de srie
79
Pour chaque srie : la couleur et le libell de la srie. la source de la srie. Les valeurs de la srie proviennent dun champ ou dune rubrique prsente dans la source de donnes associe ltat. le bloc dalimentation. la frquence des graduations sur l'axe vertical/horizontal du graphe (si ncessaire). l'aspect du graphe (relief, couleur dgrad et quadrillage). les titres des axes si ncessaire. Il est galement possible de crer un tat de type Graphe ou de type Tableau + Graphe. Pour plus de dtails, consultez Les diffrents types dtats disponibles, page 29.
Pour dfinir la rubrique lie au champ "Interrupteur" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. 80 Partie 1 : Editeur dtats
Pour plus de dtails sur les tats internes, consultez laide en ligne (mot-cl : "Etat interne"). Avantages des tats internes par rapport aux tats imbriqus Lditeur dtats permet galement dimprimer simultanment plusieurs tats grce aux tats imbriqus. Cependant, les tats imbriqus sont moins simples dutilisation. En effet, les tats imbriqus ncessitent : lutilisation de la fonction iImprimeEtat pour lancer limpression de ltat secondaire. lobligation dimprimer ltat imbriqu la suite de ltat principal. Il nest pas possible dimprimer ces tats cte cte. Les tats internes permettent d'imprimer sans programmation plusieurs tats : soit les uns en dessous des autres, soit les uns ct des autres. Pour plus de dtails sur les tats imbriqus, consultez Etats avec saisie, page 104, ou laide en ligne (motcl : "Etat imbriqu").
81
Exemple :
Pour dfinir la rubrique ou la variable lie au champ "Lien URL" : 1. Affichez l'onglet "Liaison" de la fentre de description du champ (option "Champ .. Description"). 2. Pour lier le champ avec une rubrique ou une variable appartenant la source de donnes de l'tat, slectionnez directement cette rubrique ou cette variable dans la liste "Rubrique relie". 3. Pour lier le champ avec une rubrique n'appartenant pas la source de donnes de l'tat, slectionnez loption "Multi-fichier" puis slectionnez la rubrique lie au champ en cours. Remarque : En excution, les liens URL sont facilement identifiables grce au signe .
82
Remarque : Il est possible d'afficher la fentre de description pour une slection de champs. Seules les caractristiques communes aux diffrents champs slectionns seront affiches.
83
Dtail
Liaison Style
Remarque : Pour plus de dtails sur chacune des caractristiques des diffrents onglets, consultez l'aide contextuelle de la fentre de description (icne en haut droite).
84
Dautres modes de cration de champ sont galement possibles. Pour plus de dtails, consultez laide en ligne (mot-cl : "Crer, Un champ dans un tat").
85
Le nom du champ slectionn apparat dans la barre de messages. Il peut tre modifi directement.
Pour slectionner plusieurs champs en mme temps : Mthode 1 : laide de la touche [Ctrl]. 1. Appuyez sur la touche [Ctrl] et maintenez cette touche enfonce. 2. Slectionnez les champs avec la souris (clic de la souris sur chaque champ). 3. Relchez la touche [Ctrl]. Les champs slectionns s'affichent avec des poignes. Remarques : Pour ajouter / supprimer un champ une slection existante, maintenez la touche [Ctrl] enfonce, puis cliquez sur le champ ajouter / supprimer de la slection. Lors de l'affichage de la fentre 7 onglets (option "Description" du menu contextuel de la slection), seules les options communes aux champs slectionns sont affiches. Mthode 2 : laide du lasso. Le lasso de la souris correspond une zone de slection des champs. Cette zone est matrialise par un rectangle en pointills.
1. Cliquez ct du premier champ slectionner et maintenez le bouton gauche de la souris enfonc. 2. Dplacez la souris pour slectionner tous les champs : la zone de slection est matrialise par un rectangle en pointills (le lasso de la souris). 3. Une fois la slection ralise, relchez le bouton de la souris. Remarques : Par dfaut, tous les champs dont une partie quelconque est situe dans la zone seront slectionns. Pour ne slectionner que les champs entirement situs dans le lasso, maintenez la touche [Shift] enfonce pendant les diffrentes tapes de slection.
86
Pour ajouter / supprimer un champ une slection existante, maintenez la touche [Ctrl] enfonce, puis cliquez sur le champ ajouter / supprimer de la slection. Lors de l'affichage de la fentre 7 onglets (option "Description" du menu contextuel de la slection), seules les options communes aux champs slectionns sont affiches. Pour plus de dtails sur la slection dun ou de plusieurs champs, consultez laide en ligne (mot-cl : "Slectionner, Un champ").
La copie du style peut tre effectue entre deux champs appartenant au mme tat ou entre deux champs appartenant des tats diffrents. Remarque : Le style d'un champ correspond aux caractristiques spcifies dans l'onglet "Style" de la fentre de description du champ. Pour raliser une copie de style entre deux champs : 1. Slectionnez le champ comportant le style copier. 2. Cliquez sur l'icne (ou slectionnez l'option "dition .. Reproduire le style", [Ctrl]+[Shift]+[C]).
Le curseur de la souris se transforme en pinceau : 3. Slectionnez le champ o le style doit tre copi. Ce champ peut tre d'un type diffrent du champ dont le style est copi. Remarque : Pour appliquer le style d'un champ sur plusieurs champs, maintenez la touche [Ctrl] enfonce lors de la copie du style sur les champs destination.
88
Un champ "hors tat" permet par exemple de conserver un champ d'un tat sans l'imprimer. Il est ainsi possible d'utiliser le contenu du champ en programmation (comme une variable). Pour crer un champ "hors tat" : 1. Slectionnez l'option "Insertion .. Nouveau champ" et slectionnez le type de champ insrer. Remarque : Il est galement possible d'utiliser les icnes prsentes dans la barre doutils de l'diteur d'tats. 2. Cliquez dans la partie gauche de la fentre d'accueil o le champ doit tre cr.
89
6.6.3 Zoom
Pour obtenir un alignement irrprochable de vos champs, ralisez un zoom sur votre tat. Pour spcifier un facteur de zoom prcis : soit slectionnez loption "Affichage .. Zoom..." et choisissez le facteur de zoom. soit saisissez directement le facteur de zoom dans la barre de messages.
Pour raliser un zoom : 1. Appuyez sur la touche [Ctrl]. 2. Modifiez le facteur de zoom avec la roulette de la souris tout en maintenant la touche [Ctrl] enfonce.
Guides
90
Remarque : Loption "Guide visible" du menu contextuel des rgles permet de visualiser ltat avec ou sans ses guides. Visibles ou non, les guides sont toujours actifs : un champ dplac vers un repre est automatiquement accol celui-ci. Les repres sont facilement manipulables l'aide de la souris dans l'diteur dtats. Lorsque la souris survole un repre, le curseur se transforme en une double flche. Pour crer un repre : Mthode 1 : Cliquez sur une des rgles de ltat. Le repre est cr sur la graduation la plus proche. Mthode 2 : Slectionnez loption "Ajouter un repre" dans le menu contextuel (clic droit) de la rgle. Le repre est cr sur la graduation la plus proche. Pour dplacer un repre : 1. Cliquez sur le repre prsent dans la rgle. Le curseur se transforme en une double flche. 2. Faites glisser le curseur vers la nouvelle position du repre. Pour supprimer un repre, slectionnez l'option "Supprimer un repre" du menu contextuel (clic droit) dun repre. Pour supprimer tous les repres dune rgle, slectionnez loption "Tout supprimer" du menu contextuel dune rgle. Pour copier les repres et les guides : 1. Slectionnez loption "Copier les guides" du menu contextuel des rgles. 2. Ouvrez ltat dans laquelle la copie des repres et des guides doit tre effectue. 3. Affichez si ncessaire les rgles dans cet tat (option "Affichage .. Rgles"). 4. Slectionnez loption "Coller" dans le menu contextuel des rgles. Les repres de bordure permettent d'tablir une "marge" dans ltat en cours. Les repres de bordure sont situs l'extrmit des rgles. Pour dplacer la marge gauche ou droite de ltat, pointez sur la rgle horizontale sur un repre de bordure. Lorsque le curseur prend la forme d'une double flche, faites glisser la marge. Pour dplacer la marge du haut ou du bas de ltat, pointez sur la rgle verticale sur un repre de bordure. Lorsque le curseur prend la forme d'une double flche, faites glisser la marge. Remarques : Les repres de bordure ne peuvent tre supprims. Pour ignorer les bordures dans un tat, les repres de bordure peuvent tre rduits au minimum. Les repres de bordure opposs sont solidaires : le dplacement d'un repre de bordure entrane le dplacement du repre de bordure oppos.
Entre dans
Modification de
Sortie de
Dans ces traitements, vous pouvez saisir du code en WLangage. Pour plus de dtails sur lenchanement de ces traitements, consultez le chapitre Enchanement des traitements associs un tat, page 132. Pour visualiser et/ou modifier les traitements d'un champ : Vous pouvez : soit slectionner le champ et appuyer sur la touche [F2]. soit slectionner le champ et slectionner l'option "Code .. Code de la slection". soit slectionner le champ et afficher le volet "Code" (option "Affichage .. Barres doutils .. Code"). soit slectionner l'option "Code" du menu contextuel du champ (clic droit sur le champ). soit cliquer l'icne "Code" de la description du champ.
Par exemple :
// Modification de la couleur de fond du champ ChTotalHT // dans l'tat EtCommande ChTotalHT..CouleurFond = BleuClair // quivalent EtCommande.ChTotalHT..CouleurFond = BleuClair
93
NomEtatInterne Police PoliceAlphabet PoliceBarre PoliceCondense PoliceEtendue PoliceGras PoliceItalique PoliceLarge PoliceNom PoliceSouligne PoliceTaille RubriqueAffiche SensEcriture Taille URL Valeur Vide Visible X XInitial Y YInitial
Permet de connatre et de spcifier le nom de l'tat imprim dans un champ de type "Etat Interne" Permet de connatre et de modifier les caractristiques de la police utilise dans un champ Permet de connatre et de modifier lalphabet utilis pour la police dun champ Permet de connatre et de modifier l'attribut "Barr" pour le contenu d'un champ Permet de savoir si les caractres du texte affich sont condenss ou non, et de condenser ou non les caractres du texte affich Permet de savoir si les caractres du texte affich sont tendus ou non et d'tendre ou non les caractres du texte affich Permet de connatre et de modifier l'attribut "Gras" pour le contenu d'un champ Permet de connatre et de modifier l'attribut "Italique" pour le contenu d'un champ Permet de savoir si les caractres du texte affich sont largis ou non, et d'largir ou non les caractres du texte affich Permet de connatre et de modifier la police utilise dans un champ Permet de connatre et de modifier l'attribut "Soulign" pour le contenu d'un champ Permet de connatre et de modifier la taille de la police utilise dans un champ Permet de connatre et modifier la rubrique affiche par le champ de l'tat Permet de connatre ou de modifier le sens d'criture utilis dans un champ (utile pour la gestion des langues de type arabe ou hbreux). Permet de connatre et de modifier le nombre maximum de caractres contenus dans un champ Permet de connatre et de modifier ladresse associe un champ de type URL Permet de connatre et de modifier la valeur d'un champ Permet de savoir si la valeur de la rubrique lie un champ, pour l'enregistrement en cours d'impression, est renseigne ou non Permet de savoir si un champ est visible et de rendre visible/invisible un champ Permet de connatre et de modifier l'abscisse d'un champ Permet de connatre l'abscisse initiale d'un champ (lors de l'ouverture de l'tat) Permet de connatre et de modifier l'ordonne d'un champ Permet de connatre l'ordonne initiale d'un champ (lors de l'ouverture de l'tat)
Pour plus de dtails sur ces proprits et leur utilisation, consultez laide en ligne.
94
Avantage de l'utilisation de tableaux En dition comme en excution, les tableaux sont un moyen simple pour aligner les champs de ltat. De plus, le redimensionnement des champs est automatiquement gr. Ainsi, si vous agrandissez une cellule dun tableau sous lditeur, les autres cellules du tableau sont automatiquement dcales. En excution, si une valeur ne peut tre totalement affiche dans une cellule d'un tableau auto-extensible, toutes les cellules de la ligne vont prendre la mme hauteur afin que la valeur puisse tre affiche entirement. Lditeur dtats propose deux types de tableaux : les tableaux simples. les tableaux croiss (tableaux deux entres). Partie 1 : Editeur dtats 95
Bon de commande listant les produits commands dans un tableau (tableau simple)
96
98
Cette fentre permet de visualiser : dans la partie haute, le nom du tableau et les diffrentes colonnes du tableau. dans la partie basse, soit les caractristiques du tableau, si le nom du tableau est slectionn, soit les caractristiques de la colonne slectionne. Pour plus de dtails sur les diffrentes options proposes dans cette fentre, consultez l'aide contextuelle (icne en haut droite et clic sur l'option voulue). Remarque : Pour afficher directement les caractristiques dune colonne, slectionnez les cellules de la colonne (pour plus de dtails, consultez Slectionner un lment du tableau, page 101) et slectionnez loption "Affichage .. Description de la slection".
99
Si les lignes sont auto-extensibles, les cellules pourront sagrandir pour afficher la totalit de leur contenu. Si une cellule sagrandit, toutes les cellules de la ligne seront agrandies. La position de len-tte du tableau (bloc affichant len-tte), ainsi que ses caractristiques. La position et la taille du tableau sur la page. Onglet "Cadre" : Paramtrage du quadrillage du tableau Longlet "Cadre" permet de paramtrer le quadrillage du tableau. Pour un paramtrage personnalis, vous pouvez paramtrer le quadrillage de chaque cellule. Il suffit dafficher la description de chaque cellule du tableau. Onglet "Style" : Paramtrage du tableau Longlet "Style" permet de visualiser et de modifier le style du tableau. Seules les valeurs communes lensemble des cellules du tableau sont affiches. Pour un paramtrage personnalis, vous pouvez paramtrer le style de chaque cellule. Il suffit dafficher la description de chaque cellule du tableau.
Dplacement des colonnes du tableau Suppression des cellules du tableau Remarque : Tous les types de champs disponibles dans lditeur dtats peuvent tre affichs dans une colonne du tableau.
101
Pour ajouter un champ existant dans un tableau en tant que colonne : 1. Slectionnez le champ. 2. Vous pouvez : soit raliser un "Drag and Drop" (glisser / dplacer) du champ vers le tableau. Aprs confirmation, une nouvelle colonne est cre la suite des colonnes existantes. La description des cellules de cette nouvelle colonne correspond au champ initial. soit slectionner loption "Ajouter au tableau" du menu contextuel du champ. Lassistant dajout au tableau se lance et permet de spcifier les caractristiques de cette nouvelle colonne. Pour insrer une nouvelle colonne : 1. Vous pouvez : soit slectionner l'option "Insrer une colonne" du menu contextuel du tableau. soit slectionner l'option "Insertion .. Nouvelle colonne". 2. Saisissez le libell de l'en-tte de la nouvelle colonne. 3. Slectionnez si ncessaire la rubrique lie la nouvelle colonne et validez l'ajout de la nouvelle colonne.
Avant redimensionnement
Aprs redimensionnement
Modification de la hauteur dune cellule : Toutes les cellules du tableau prsentes sur la mme ligne sont redimensionnes.
Avant redimensionnement
Aprs redimensionnement
102
Pour redimensionner une cellule : 1. Slectionnez la cellule correspondante sous lditeur. Des poignes noires apparaissent. 2. Survolez la poigne noire correspondant au ct redimensionner. Lorsque le curseur de la souris se transforme en double flche, maintenez le bouton gauche enfonc et redimensionnez la cellule. 3. Relchez le bouton gauche de la souris. Le redimensionnement est effectu. Remarque : Bord du bloc et bord de la cellule Une cellule peut tre accole un bloc de ltat. Dans ce cas, lors du redimensionnement de la cellule, le bloc pourra galement tre redimensionn automatiquement. En effet, le curseur de la souris est diffrent en fonction de lobjet redimensionner : une petite double flche noire indique que la cellule est en cours de redimensionnement, une grande double flche verte indique que le bloc est en cours de redimensionnement.
Le cadre de la zone de saisie n'est pas paramtrable (paisseur, couleur, ...). Il n'est pas possible d'utiliser un type montaire (le symbole Euro n'est pas gr).
105
106
9. ETATS IMBRIQUS
9.1 Prsentation
Les tats imbriqus permettent d'imprimer plusieurs tats (tats secondaires) dans un seul tat (tat principal). Ces tats peuvent avoir une orientation diffrente (portrait / paysage). Par exemple, l'tat principal suivant est compos de : un tat affichant les caractristiques spcifiques une commande (numro de commande, date, client, ...). un tat affichant les produits de la commande en cours.
Remarque : L'diteur d'tats permet galement d'utiliser des tats secondaires dans un tat principal grce aux champs de type "Etat interne". Pour plus de dtails, consultez le paragraphe Champ Etat Interne, page 81.
107
3. Impression des tats secondaires dans l'tat principal grce la fonction iImprimeEtat. Cette fonction doit tre utilise : soit dans le traitement "Avant impression" du bloc : l'tat secondaire sera imprim avant ce bloc. soit dans le traitement "Fin dimpression" du bloc : l'tat secondaire sera imprim aprs ce bloc. Si les tats imbriqus ont des orientations diffrentes, il est ncessaire de lancer limpression de ltat imbriqu dans le code "Aprs impression du bas de page". 4. Configuration de limpression des hautes et bas de pages de ltat imbriqu (fonction iHautBasPageImbriqu). Cette fonction peut tre utilise : soit dans le code douverture de ltat principal : elle sera prise en compte pour tous les tats imbriqus qui seront imprims depuis ltat principal. soit directement avant limpression de ltat imbriqu : elle sera prise en compte uniquement pour ltat imbriqu suivant. 5. Impression de l'tat principal. Pour plus de dtails, consultez le paragraphe Imprimer un tat imbriqu, page 109.
9.2.2 Exemple
Les manipulations ncessaires la cration d'tats imbriqus sont illustres par l'exemple suivant : L'tat "EtatCommande" est un tat bas sur le fichier "Commande". Cet tat permet d'imprimer les caractristiques de chaque commande (date de commande, numro client, montant de la commande, ...). Une rupture sur la rubrique "NumCommande" permet de sparer les diffrentes commandes. La requte "RequteProduitCommand" slectionne l'ensemble des produits d'une commande spcifie. Cette requte attend en paramtre un numro de commande. L'tat "EtatProduitCommand" est bas sur la requte "RequteProduitCommand". Cet tat imprime uniquement les produits slectionns par la requte "RequteProduitCommand". L'tat "EtatProduitCommand" correspond l'tat secondaire. Cet tat sera imprim aprs chaque rupture. 1. Crez l'tat "EtatCommande" (option "Fichier .. Nouveau .. Etat"). Cet tat correspond l'tat principal. 2. Crez la requte "RequteProduitCommand". Pour plus de dtails sur la cration dune requte, consultez Comment crer une requte?, page 165. 3. Crez l'tat "EtatProduitCommand" (option "Fichier .. Nouveau .. Etat"). Cet tat correspond l'tat secondaire. Remarque : Le bloc Bas de page de cet tat ne sera pas imprim. Pour plus de dtails sur les blocs de l'tat imbriqu imprims, consultez le paragraphe Blocs de l'tat secondaire, page 109. 4. Dans le traitement "Aprs impression" du bloc Bas de rupture de l'tat "EtatCommande", saisissez le code suivant :
// Initialiser la requte et passer en paramtre le // numro de commande en cours d'impression iInitRequteEtat(EtatProduitCommand, MaSource.NumCommande) // Imprimer l'tat imbriqu iImprimeEtat(EtatProduitCommand)
108
9.3.5 Etat secondaire bas sur une requte utilisant une connexion spcifique
Si l'tat secondaire est bas sur une requte manipulant une connexion spcifique, utilisez la fonction iInitRequteEtatConnexion pour excuter cette requte (et lui passer si ncessaire des paramtres). Cette fonction doit tre utilise avant la fonction iImprimeEtat.
109
Exemple : L'tat "EtatCommande" est compos d'un tat principal et d'un tat secondaire. L'tat "EtatCommande" s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatCommande iImprimeEtat(EtatCommande)
Code WebDev :
// Paramtre la destination de limpression iDestination(iHTML, fRepWeb() + "\Etat.htm") iImprimeEtat(EtatCommande) // Envoie le fichier au navigateur FichierAffiche(fRepWeb() + "\Etat.htm")
110
10.1 Prsentation
Nous avons vu dans les chapitres prcdents la cration dun tat (page 28) et le test de cet tat (page 41). Il est galement possible dintgrer cet tat vos applications ou vos sites. Lutilisateur ou linternaute pourra ainsi lancer limpression de ltat directement depuis un bouton, une option de menu, ... par exemple. Dans le cas dun site WebDev, le poste serveur se chargera de prparer ltat au format choisi (PDF, HTML, ...). Selon vos besoins, vous pourrez alors : afficher cet tat sur le navigateur de linternaute, lenregistrer sur le serveur, et proposer linternaute de le tlcharger ou de lafficher, ... Dans un site Intranet, il est galement possible dimprimer directement ltat sur une imprimante locale ou rseau connecte au serveur.
Important
Remarques : Selon l'imprimante choisie pour l'impression, le rsultat de l'impression d'un tat peut tre diffrent. Sous Windows Pocket 2002, la mmoire disponible n'est pas suffisante pour raliser des impressions d'tats.
Cas 1 : Impression avec choix de limprimante par lutilisateur
Lors de l'impression, l'utilisateur choisit dans une fentre spcifique l'imprimante utiliser. Si aucune imprimante n'est rpertorie, l'utilisateur peut ajouter une nouvelle imprimante. Pour raliser ce type d'impression, il suffit de : 1. Utiliser la fonction iConfigure ou iParamtre (sans prciser de paramtres). 2. Utiliser la fonction iImprimeEtat en indiquant le nom de l'tat imprimer. Exemple : L'tat EtatClient sera imprim sur l'imprimante choisie par l'utilisateur dans la fentre de configuration de l'impression. Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines impressions ralises par cette application. Code correspondant :
// Slection de l'imprimante iConfigure() // Imprimer l'tat iImprimeEtat(EtatClient)
WinDev Mobile propose 2 modes d'impression directe sur une imprimante : impression directe en dfinissant le type d'imprimante utilis. impression sur une des imprimantes rfrences sur le Pocket PC. Impression sur un type d'imprimante Il est possible d'imprimer directement un tat sur une imprimante associe un Pocket PC. Dans ce cas, il suffit de : 1. Paramtrer la destination de l'impression avec la fonction iDestination. Il est ainsi possible de spcifier si l'impression se fait dans un fichier PCL, sur une imprimante infra-rouge, Wi-fi, Bluetooth ou rseau. 2. Utiliser la fonction iParamtre avec le paramtre "TypeImprimante" pour spcifier le type d'imprimante utiliser. L'imprimante utilise doit correspondre une des imprimantes reconnues par WinDev Mobile. 3. Imprimer l'tat avec la fonction iImprimeEtat.
113
Exemple : L'tat EtatClient sera imprim sur l'imprimante de type DeskJet 350, connecte par infrarouge au Pocket PC. Code correspondant :
// Impression sur une imprimante infra-rouge iDestination(iPCL, "IRDA:") // Spcification du type d'imprimante iParamtre("TypeImprimante=DeskJet 350") // Imprimer l'tat iImprimeEtat(EtatClient)
Impression sur une imprimante rfrence sur le Pocket PC Pour imprimer sur une des imprimantes rfrences sur le Pocket PC (sans ouvrir de fentre de choix d'imprimante), il suffit de : 1. Paramtrer l'imprimante utiliser avec la fonction iConfigure. Il suffit de prciser le nom de l'imprimante utiliser. Ce nom doit correspondre un nom indiqu dans la fentre de choix des imprimantes. 2. Imprimer avec la fonction iImprimeEtat. Exemple : L'tat EtatClient sera imprim sur l'imprimante "ImpInfra" configure sur le Pocket PC. Cette imprimante sera ensuite utilise par dfaut pour toutes les prochaines impressions ralises par cette application. Code correspondant :
// Slection de l'imprimante par programmation iConfigure("ImpInfra") // Imprimer l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient)
Astuce : Les imprimantes rfrences sur un Pocket PC sont conserves dans la base de registres du Pocket PC. Pour ajouter une nouvelle configuration d'imprimante par programmation, il suffit de modifier la base de registres du Pocket PC. Pour plus de dtails, consultez laide en ligne. Les paragraphes suivants prsentent : limpression par programmation dun tat sur fichier de donnes. limpression par programmation dun tat sur une requte. limpression par programmation dun tat sur une vue HyperFileSQL. limpression par programmation dun tat sur un champ Table. limpression par programmation dun tat sur un fichier texte.
114
Exemple WebDev : L'tat "EtatClient" est un tat bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients. L'tat "EtatClient" saffiche dans un fichier PDF lors d'un clic sur le lien "Client". Le fichier PDF est ensuite affich sur le navigateur.
115
Dans cet exemple, le code de clic serveur du lien "Client" est le suivant :
// Gnre un nom de fichier PDF unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)
Remarque : La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom du fichier de donnes associ l'tat.
116
Exemple WebDev : L'tat "EtatClient" est un tat born bas sur le fichier "Client". Cet tat permet d'imprimer les caractristiques des clients dont le nom commence par la lettre "D". La borne minimale correspond "D". La borne maximale correspond "D"+hValMax. L'tat "EtatClient" s'imprime dans un fichier HTML et est envoy au navigateur lors du clic sur le bouton "ClientD". Dans cet exemple, le code de clic du bouton "ClientD" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient,"D","D"+hValMax) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)
117
Exemple WinDev Mobile : L'tat "EtatParam" correspond une facture. Cet tat attend en paramtre la date prvue de livraison saisie dans le champ de saisie "DateLiv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client". Dans cet exemple : le code de clic du bouton "Imprimer" est le suivant :
// Slection de limprimante iConfigure() // Imprimer l'tat avec le passage des paramtres iImprimeEtat(EtatParam, DateLiv)
Exemple WebDev : L'tat "EtatCommande" est un tat paramtr permettant dimprimer la commande dun client identifi par son numro de client. L'tat "EtatCommande" saffiche dans un fichier PDF. Ce fichier PDF est envoy au navigateur lors d'un clic sur le bouton "Commande". Dans cet exemple : le code de clic du bouton "Commande" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"Facture_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Gnre le bon de commande iImprimeEtat(EtatCommande, CLIENT.CLCLEUNIK)
118
119
Exemple WinDev Mobile : L'tat "EtatParam" correspond une facture envoye aux clients dont le nom commence par la lettre "D" ou par la lettre "E". La borne minimale correspond : "D" et la borne maximale : "E". Cet tat attend en paramtre la date prvue de livraison saisie dans le champ de saisie "DateLiv". Cet tat s'imprime lors d'un clic sur le bouton "Imprimer". L'tat "EtatParam" est bas sur le fichier "Client". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Slection de limprimante iConfigure() // Imprimer l'tat avec passage de bornes // et de paramtres iImprimeEtat(EtatParam, "D","E", DateLiv)
Exemple WebDev : L'tat "EtatParam" correspond limpression des factures dun client spcifique pour le mois de janvier 2008. La borne minimale correspond : "01/01/2008" et la borne maximale : "31/01/2008". Cet tat attend en paramtre le numro du client concern. Cet tat saffiche dans un fichier PDF lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatParam_" + ... DateSys()+HeureSys()+".pdf" // Paramtre la destination de limpression iDestination(iPDF, Fichier) // Imprime l'tat avec passage de bornes et du paramtre iImprimeEtat(EtatParam, "01012008","31012008", NumCli) // Envoie le fichier dans le navigateur FichierAffiche(Fichier, "application/pdf")
Pour imprimer l'tat "EtatRequte" sous WebDev, dans un fichier au format HTML :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatRequte_" + ... DateSys()+HeureSys()+".htm" // Paramtre la destination de limpression iDestination(iHTML, Fichier) // Imprime l'tat EtatRequte iImprimeEtat(EtatRequte) // Extrait le nom et lextension du fichier gnr NomFichier est une chane = fExtraitChemin(Fichier, ... fFichier+fExtension) // Envoie le fichier dans le navigateur FichierAffiche(NomFichier)
121
Par exemple : L'tat "EtatRequte" est bas sur une requte paramtre. Les paramtres attendus par la requte sont le nom de la socit et le type de la socit. Ces paramtres ont t saisis dans la fentre de lancement de l'impression de l'tat. Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Passer les paramtres la requte associe l'tat iInitRequeteEtat(EtatRequte, NomSocit, TypeSocit) // Imprimer la liste des socits iImprimeEtat(EtatRequte)
Code WebDev :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatRequte_" + ... DateSys()+HeureSys()+".htm" // Paramtre la destination de limpression iDestination(iHTML, Fichier) // Passer les paramtres la requte associe l'tat iInitRequeteEtat(EtatRequte, NomSocit, TypeSocit) // Imprime l'tat EtatRequte iImprimeEtat(EtatRequte) // Extrait le nom et lextension du fichier gnr NomFichier est une chane = fExtraitChemin(Fichier, ... fFichier+fExtension) // Envoie le fichier dans le navigateur FichierAffiche(NomFichier)
Remarque : Si certains paramtres attendus par la requte ne sont pas prciss (valeur correspondant NULL par exemple), les conditions de slection correspondant ces paramtres seront ignores.
Remarques : Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat, aprs le nom de l'tat imprimer. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit SlectionSeule permet de connatre et de modifier les enregistrements imprimer dans l'tat : impression de tous les enregistrements ou uniquement des enregistrements slectionns. Exemple WinDev et WinDev Mobile : L'ensemble des informations imprimer est contenu dans le champ Table "TableClient" prsent dans la fentre "FenClient". L'tat imprimer est nomm "EtatClient" et s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient)
Exemple WebDev : L'ensemble des informations imprimer est contenu dans le champ Table "TableClient" prsent dans la page "PageClient". L'tat imprimer est nomm "EtatClient" et saffiche dans un fichier PDF lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat bas sur la table "TableClient" iImprimeEtat(EtatClient) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)
123
Exemple WebDev : L'tat "EtatgglEvenement" est un tat bas sur la variable MesEvenements de type gglEvnement. Cet tat permet d'imprimer la liste des vnements d'un agenda Google. L'tat "EtatgglEvenement" s'affiche dans un fichier PDF lors d'un clic sur le lien "Evnement". Le fichier PDF est ensuite affich sur le navigateur. Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+ ... "EtatgglEvenement_" + DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat EtatgglEvenement iImprimeEtat(EtatgglEvenement) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf")
124
Remarques : La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer le nom de la variable associe l'tat. La variable doit avoir t cre et initialise avant de lancer l'impression de l'tat.
Exemple WebDev : L'tat "EtatgglEvenement" s'affiche dans un fichier PDF lors d'un clic sur le lien "Imprimer les vnements de l'agenda". Le fichier PDF est ensuite affich sur le navigateur. Cet tat attend en paramtre l'agenda pour lequel les vnements doivent tre lists.
125
Remarques : La variable doit avoir t cre et initialise avant de lancer l'impression de l'tat. Si des paramtres supplmentaires doivent tre passs l'tat, ces paramtres doivent tre indiqus dans la fonction iImprimeEtat. Pour plus de dtails, consultez Etat paramtr, page 136. La proprit NomSource utilise dans le code de l'tat permet de connatre et de changer la variable associe l'tat.
126
Exemple WinDev : L'utilisateur slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). ouvrir la fentre d'aperu avant impression (fonction iAperu). imprimer l'tat "EtatVue" (fonction iImprimeEtat). Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Cration de la vue SI PAS HCreVue("VueCommande", LIGNECDE,"*","Rfrence",... "", "", hVueExclusive + hVueInterruptible) ALORS Erreur(HErreurInfo()) SINON // Ouverture de la fentre d'aperu iAperu() // Impression de l'tat EtatVue iImprimeEtat(EtatVue,"VueCommande") FIN
Exemple WinDev Mobile : L'utilisateur slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). imprimer l'tat "EtatVue" (fonction iImprimeEtat). Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
// Cration de la vue SI PAS HCreVue("VueCommande", LIGNECDE,"*","Rfrence",... "", "", hVueExclusive + hVueInterruptible) ALORS Erreur(HErreurInfo()) SINON // Slection de limprimante iConfigure() // Impression l'tat EtatVue iImprimeEtat(EtatVue,"VueCommande") FIN
Exemple WebDev : Linternaute slectionne la rfrence d'une commande dans une liste. Le bouton "Imprimer" permet de : crer la vue HyperFileSQL "VueCommande" contenant les lignes de la commande slectionne (fonction HCreVue). visualiser l'tat "EtatVue" dans un fichier PDF (fonction iImprimeEtat).
127
128
Exemple WinDev : L'utilisateur slectionne les clients auxquels une offre commerciale doit tre envoye. Le nom des clients slectionns est contenu dans le champ liste "Destinataire". Aprs avoir slectionn l'ensemble des clients, l'utilisateur clique sur le bouton "Imprimer" pour imprimer l'tat "EtatZoneMem". Lors d'un clic sur le bouton "Imprimer" : la zone mmoire "ZoneMem" est cre. le numro d'enregistrement de chaque client slectionn est rcupr et ajout dans la zone mmoire "ZoneMem". l'tat "EtatZoneMem" est imprim. la zone mmoire "ZoneMem" est dtruite. Dans cet exemple, le code de clic du bouton "Imprimer" est le suivant :
nIndice est un entier // Cration la zone mmoire MemCre("ZoneMem") // Parcours de la liste Destinataire et // initialisation de la zone mmoire POUR nIndice = 1 A Destinataire..Occurrence // Recherche de l'enregistrement en cours HLitRecherche(Client, Nom, Destinataire[nIndice]) SI HTrouve(Client) ALORS // Ajout des lments dans la zone mmoire MemAjoute("ZoneMem", "", HNumEnr()) FIN FIN // Ouverture de la fentre d'aperu iAperu() // Impression de l'tat iImprimeEtat(EtatZoneMem, "ZoneMem") // Destruction de la zone mmoire MemSupprimeTout("ZoneMem")
Exemple WebDev : Linternaute slectionne les clients auxquels une offre commerciale doit tre envoye. Le nom des clients slectionns est contenu dans le champ liste "Destinataire". Aprs avoir slectionn l'ensemble des clients, linternaute clique sur le bouton "Imprimer" pour imprimer l'tat "EtatZoneMem". Lors d'un clic sur le bouton "Imprimer" : la zone mmoire "ZoneMem" est cre. le numro d'enregistrement de chaque client slectionn est rcupr et ajout dans la zone mmoire "ZoneMem". l'tat "EtatZoneMem" est affich dans un fichier PDF. la zone mmoire "ZoneMem" est dtruite.
129
130
Dans cet exemple, le code de clic du bouton "Client" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat EtatClient iImprimeEtat(EtatClient)
Exemple WebDev : L'tat "EtatClient" est un tat bas sur le fichier texte "Client.TXT". Ce fichier texte contient les caractristiques des clients. Ce fichier est accessible depuis le serveur. L'tat "EtatClient" saffiche dans un fichier PDF lors d'un clic sur le bouton "Client". Dans cet exemple, le code de clic du bouton "Client" est le suivant :
// Gnre un nom de fichier unique Fichier est une chane = fRepWeb()+"\"+"EtatClient_" + ... DateSys()+HeureSys()+".pdf" // Imprime ltat dans un fichier PDF iDestination(iPDF, Fichier) // Imprime l'tat EtatClient iImprimeEtat(EtatClient) // Affiche ltat au format PDF FichierAffiche(Fichier, "application/pdf") // Supprime le fichier fSupprime(Fichier)
Pour plus de dtails sur ces fonctions et leur utilisation, consultez laide en ligne. Remarque : Ces fonctions sont uniquement les fonctions ncessaires limpression de ltat. Dautres fonctions dimpression peuvent tre utilises pour raliser des traitements spcifiques. Ces fonctions sont prsentes dans le paragraphe Fonctions du WLangage, page 141. Partie 1 : Editeur dtats 131
5. 6. 7. 8. 9.
10 11. 12.
132
* L'ordre d'impression des blocs Dbut de document, Haut de page, Bas de page et Fin de document peut tre modifi dans l'onglet "Options" de la description de l'tat (option "Etat .. Description"). Rappel : Si la destination de limpression est un fichier HTML ou XML, les blocs Haut de page et Bas de page ne sont gnrs quune seule fois. Pour plus de dtails sur : les traitements associs aux blocs, consultez Traitements des blocs dun tat, page 69. les traitements associs aux champs, consultez Traitements des champs dun tat, page 92. les diffrents types de blocs, consultez Les diffrents types de blocs, page 64. les procdures de tri, consultez Procdure de tri, page 135.
134
Important : Le code de rupture est excut uniquement si la rupture correspondante est une rupture programme (non relie un critre de tri). Pour plus de dtails sur les ruptures, consultez laide en ligne (mot-cl : "Rupture dans un tat").
135
6. Crez la procdure de tri. Cette procdure doit renvoyer largument de tri. Par exemple :
PROCEDURE ValTri(Critre) // Tri sur le NOM ou sur la VILLE SELON Critre Cas "Ville" : RENVOYER Client.Ville Cas "Nom" : RENVOYER Client.Nom FIN
136
Rappel : Certains paramtres passs une procdure peuvent tre optionnels. Lors de la dclaration de la procdure, les paramtres optionnels doivent tre dcrits en dernire position ( droite), avec une valeur par dfaut prcde du signe "=". Pour plus de dtails, consultez laide en ligne (mot-cl : "Paramtres, Paramtres d'une procdure"). Utilisation de ces paramtres dans les champs de l'tat. 3. Modification si ncessaire de l'application ou du site afin de spcifier les diffrents paramtres. 4. Impression de l'tat avec passage des paramtres. Exemple : La programmation ncessaire la cration d'un tat paramtr est illustre par l'exemple suivant : L'tat "EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "TexteMailing". 1. Crez l'tat "EtatParam" (option "Fichier .. Nouveau .. Etat .. Mailing"). Cet tat est li au fichier "Client" de votre analyse. 2. Personnalisez cet tat. 3. Dans le traitement "Ouverture" de l'tat "EtatParam", saisissez le code suivant :
// Rcuprer le paramtre pass l'tat et // passer un paramtre par dfaut pour le test de l'tat PROCEDURE EtatParam(sTexte = "Valeur par dfaut")
4. Dans le bloc Corps de cet tat, ajoutez le champ Libell "TexteMailing" permettant d'afficher le texte du mailing. 5. Dans le traitement "Avant impression" du champ "TexteMailing", saisissez le code suivant :
// Rcuprer le texte du mailing TexteMailing = sTexte
6. Dans une fentre de l'application ou dans une page du site, ajoutez : le champ de saisie "TexteMailing" permettant l'utilisateur de saisir le texte du mailing. le bouton "Imprimer" permettant de lancer l'impression de l'tat.
137
Si l'tat est bas sur une zone mmoire, le nom de cette zone mmoire doit tre indiqu dans la fonction iImprimeEtat, avant les paramtres. Pour plus de dtails, consultez Etat sur une zone mmoire, page 50. Si l'tat est un tat born, la valeur des bornes (minimales et/ou maximales) doit tre indique dans la fonction iImprimeEtat, avant les paramtres. Pour plus de dtails, consultez Etat born, page 47. Exemple : L'tat "EtatParam" correspond un mailing publicitaire envoy aux clients. Cet tat attend en paramtre le texte du mailing saisi dans le champ de saisie "TexteMailing". L'tat "EtatParam" s'imprime lors d'un clic sur le bouton "Imprimer". Dans cet exemple, le code du bouton "Imprimer" est le suivant : Code WinDev :
// Ouvrir la fentre d'aperu iAperu() // Imprimer l'tat avec le passage de paramtre iImprimeEtat(EtatParam, TexteMailing)
Code WebDev
// Paramtre la destination de limpression iDestination(iHTML,"EtatPM_" + DonneIdentifiant() + ".htm") // Imprime l'tat avec le passage du paramtre iImprimeEtat(EtatParam, TexteMailing) // Envoie le fichier dans le navigateur FichierAffiche("EtatPM_" + DonneIdentifiant() + ".htm")
138
Pour plus de dtails sur ces mots-cls et leur utilisation, consultez laide en ligne.
BorneMin
ImpressionAChaquePage InterfaceModifiableAvecEtatsEtRequtes LargeurEtiquette MargeBasse MargeDroite MargeHaute MargeGauche MsgTriSel NbColonne NbCopie NbEnrImprim NbEnrLu NbEnrTotal NbEtiquette NbExemplaireEtiquette Nom NomSource NomVue NomZoneMem NumEtiquetteDeDpart ODBCCodeSQL ODBCMotDePasse ODBCNomBase ODBCNomConnexion ODBCNomUtilisateur RubriqueParcourue
Permet de demander ou non l'impression d'un tat page par page Permet de savoir si l'interface d'un tat est modifiable sous le logiciel Etats & Requtes Permet de connatre et de modifier la largeur des tiquettes d'un tat de type "tiquette" Permet de connatre et de modifier la marge basse d'un tat Permet de connatre et de modifier la marge de droite d'un tat Permet de connatre et de modifier la marge haute d'un tat Permet de connatre et de modifier la marge de gauche d'un tat Permet de connatre et de modifier le message de patience affich lors du tri et de la slection des enregistrements de l'tat Permet de connatre le nombre de colonnes d'un tat. Permet de connatre et de modifier le nombre d'exemplaires imprimer Permet de connatre le nombre d'enregistrements dj imprims Permet de connatre le nombre d'enregistrements lus Permet de connatre et de modifier le nombre d'enregistrements imprimer Permet de connatre et de modifier le nombre d'tiquettes imprimes sur la largeur d'une page Permet de connatre et de modifier le nombre d'exemplaire d'tiquettes Permet de connatre le nom d'un tat Permet de connatre le nom de la source de donnes de l'tat et de changer la source de donnes de l'tat Permet de connatre le nom de la vue HyperFileSQL associe un tat Permet de connatre le nom de la zone mmoire associe un tat Permet de connatre et de modifier le numro de l'tiquette sur la planche d'tiquettes partir de laquelle l'impression est effectue Permet de connatre et de modifier le code SQL de la requte ralise sur une base de donnes accde par un driver ODBC Permet de connatre et de prciser le mot de passe associ l'utilisateur autoris accder une base de donnes via un driver ODBC Permet de connatre et de prciser le nom de la base utilise par la requte ralise sur une base de donnes accde via un driver ODBC Permet de connatre et de prciser le nom de la connexion utilise pour manipuler une base de donnes accde via un driver ODBC Permet de connatre et de prciser le nom de l'utilisateur autoris accder une base de donnes via un driver ODBC Permet de connatre et de modifier la rubrique utilise pour le parcours automatique d'un tat sur fichier
140
Permet de connatre et de modifier le mode d'impression des lignes slectionnes dans un tat sur table Permet de connatre et de modifier le sens d'criture utilis dans un tat. Permet de savoir si un tat est entirement modifiable sous le logiciel Etats & Requtes
Pour plus de dtails sur ces proprits et leur utilisation, consultez laide en ligne.
Important
Dans le logiciel Etats & Requtes, lutilisation des fonctions de modification des enregistrements (HAjoute, HModifie, HSupprime, ...) est interdite.
141
iConfigureEtat
Configure l'imprimante en ouvrant directement la fentre de configuration. Cette fentre est initialise avec les paramtres choisis lors du dveloppement (orientation de l'tat, marges, ) de l'tat spcifi Cre une nouvelle police d'impression Renvoie : le nom complet du dernier fichier gnr lors de limpression (PDF, RTF, Texte, ...) la liste des fichiers duplicata crs. Envoie une commande ESCAPE une imprimante Paramtre l'affichage de la fentre permettant l'abandon de l'impression en cours Arrte immdiatement l'impression de l'tat en cours Force l'arrt de l'impression d'un tat Force l'impression d'un bloc Complment de corps Imprime ou non les hauts et bas de page de l'tat imbriqu Calcule la hauteur de la page imprimable (en millimtres) en tenant compte des marges (hautes ou bases) dfinies Calcule la hauteur disponible (en millimtres) restant sur la page en cours en tenant compte des marges (hautes ou bases) dfinies Calcule la hauteur de la police du texte imprimer (en millimtres) Calcule la hauteur ncessaire d'une zone de largeur fixe pour que l'ensemble d'un texte puisse tre imprim dans cette zone (en millimtres) Permet de savoir si l'utilisateur a demand l'abandon de l'impression du document en cours Permet de savoir si l'utilisateur a demand l'impression du document depuis l'aperu avant impression Force l'impression d'un bloc de l'tat en cours d'impression Force l'impression d'un bloc Complment de corps en spcifiant la hauteur du bloc de complment Imprime un duplicata. Imprime un tat ralis avec l'diteur d'tats (tat imbriqu) Rcupre les caractristiques de l'imprimante en cours ou de l'imprimante par dfaut Initialise la requte lie l'tat (cas d'une requte paramtre) Initialise la requte lie l'tat (cas d'une requte base sur une connexion spcifique) Calcule la largeur de la page imprimable (en millimtres) en tenant compte des marges (gauches ou droites) dfinies
iCrePolice iDernierFichier
iEscape iFentreAbandon iFermeEtat iFinEtat iForceComplment iHautBasPageImbriqu iHauteurPage iHauteurRestantePage iHauteurTexte iHauteurZone iImpressionAbandonne iImpressionDemande iImprimeBloc iImprimeComplmentCorps iImprimeDuplicata iImprimeEtat iInfoImprimante iInitRequteEtat iInitRequteEtatConnexion iLargeurPage
142
iLargeurTexte iListeEtatsImprims
Calcule la largeur du texte imprimer en millimtres, en fonction de la police spcifie Renvoie la liste des tats imbriqus en cours d'impression (tats lancs par la fonction iImprimeEtat dans un des traitements de l'tat en cours d'impression) Renvoie la liste des imprimantes installes sur le poste en cours Modifie la gestion de la couleur Magenta, afin que cette couleur soit considre comme transparente ou non dans toutes les prochaines impressions Dfinit les marges "logiques" d'impression Convertit les coordonnes d'un point (exprimes en millimtres) en coordonnes systme Renvoie le numro de la colonne en cours (tats multi-colonnes). Renvoie ou initialise le numro de la page en cours d'impression Paramtre l'impression Paramtre l'affichage ou non de chaque bouton prsent dans l'aperu avant impression Configure l'imprimante en ouvrant directement la fentre de configuration. Cette fentre est initialise avec les paramtres choisis lors du dveloppement (orientation de l'tat, marges, ) de l'tat spcifi Permet de paramtrer les exportations ralises depuis l'aperu avant impression. Cette fonction permet notamment de paramtrer diffrents paramtres pour l'envoi d'emails depuis l'aperu avant impression. Fixe les options de protection du fichier PDF gnr Fixe les options du fichier XLS gnr lors de l'impression. Convertit les coordonnes d'un point (exprimes en coordonnes systme) en millimtres Slectionne la police par dfaut Slectionne l'unit utiliser pour la hauteur des polices (cres avec la fonction iCrePolice) : point DIDOT ou point PICA Rinitialise les paramtres d'impression Permet de slectionner le rpertoire dans lequel les images doivent tre gnres lors d'une impression au format HTML. Gnre un saut de page : le code correspondant est envoy dans la file d'impression de l'imprimante Cre une nouvelle police d'impression depuis la fentre standard de slection de polices de Windows Renvoie l'tat d'impression en cours
iListeImprimante iMagentaTransparent
iParamtreExport
iParamtrePDF iParamtreXLS iPicaVersMM iPolice iPoliceDidot iRAZ iRepImageHTML iSautePage iSelectPolice iStatusImpressionEtat
143
Substitue un bloc de l'tat par un autre, au cours de l'impression de l'tat Force un saut de colonne dans un tat multicolonnes. Force le passage la page suivante en cours d'impression d'un tat
Pour plus de dtails sur ces fonctions et leur utilisation, consultez laide en ligne.
144
INDEX
3 dimensions 60
A
Ajouter Cellule dans un tableau Colonne dans un tableau Aligner Correcteur dinterface Grille magntique Options dalignement Rgles et repres Zoom Aligner des champs Aperu avant impression Assistant Cration dtat 101 101 90 91 89 90 90 89 43 29
64 47
C
Calcul Calculs dans un tat Caractristiques Blocs dun tat Champs dun tat Tableau Carte denregistrement Case cocher Cellule Ajouter Hauteur Largeur Redimensionner Slection Cercle Champ Aligner Calcul Caractristiques Champ hors tat Champ pr-dfini Champ RTF Code-barres Copier Copier le style Crer Dplacer Description Etat interne Forme Graphe Groupe de champs Image Interrupteur Libell Lien URL Multilangue Proprits associes Rubrique Slectionner Supprimer 74 40 66 83 99 20 80 100 101 102 102 102 101 80 72 89 74 83 88 78 76 76 87 87 85 88 83 81 80 78 85 75 80 72 81 84 93 74 86 88 145
B
Barre Doutils Bas de page Bas de rupture Bloc Bas de page Bas de rupture Caractristiques Complment de corps Corps Crer un bloc Dbut de document Description Fin de document Haut de page Haut de rupture Itration Options dimpression Paramtrage Paramtres Position Programmation Proprits associes R-ordonner Supprimer un bloc Traitements associs 21, 25 66 66 63 66 66 66 66 65 68 65 66 66 65 65 66 67 55 67 56, 69 69 71 69 68 69
Traitements associs Types de champs Champ hors tat Champ table Imprimer ltat Clavier (raccourcis) Cl de parcours Code-barres Colonne Ajouter Dplacer Enlever Slectionner Supprimer Complment de corps Copier Champ Style dun champ Corps Correcteur dinterface Crer Bloc Champs Etat Etat paramtr Tableau
D
Date systme Dbut dimpression (traitement) Dbut de document Dplacer Champ Colonne (tableau) Description Blocs dun tat Champs dun tat Etat Tableau Devise affiche Devise mmorise Documents ouverts Double-Affichage 78 133 65 88 103 66 83 54 99 74, 75 74, 75 22 75
E
Editeur dtats Barre doutils Carte denregistrement 146 Partie 1 : Editeur dtats 17 25 20
Configuration Configuration minimale Documentation Fentre principale Installation Menus droulants Raccourcis clavier Version Dveloppeur Version Utilisateur Enlever une colonne (tableau) Enregistrer Etat Etat 3 Dimensions Blocs Borne Calculs Champs dun tat Cration Description Enregistrer Etat imbriqu Fermer Fonctions Format Formulaire Gabarit Imprimer Langues Marges Mot-cls associs Ouvrir Paramtr Programmation Proprits associes Rcupration Source de donnes Structure Tester Traitements Types disponibles Utiliser des tableaux Etat born Etat Etiquette Etat Fiche Etat imbriqu Etat interne Etat Mailing personnalis Etat paramtr Crer
19 19 19 21 19 22 26 18 18 103 40 13 60 63 47 40 72 29 54 40 107 56 141 40 56, 57 40 43, 111, 115 56 40 139 56 136 132 139 56 46 15 41 133 29 95 47 31 30 107 81 32 136 136
Imprimer Tester Etat sur champ table Imprimer Etat sur fichier Imprimer Etat sur fichier texte Imprimer Etat sur Formulaire Etat sur requte Imprimer Etat sur variable Imprimer Etat sur vue HyperFileSQL Imprimer Etat sur zone mmoire Imprimer Etat Tableau Etat Tableau + Graphe Etat Tableau Crois Etat Vierge Etiquette (type dtat) Excuter un tat
137 138 122 115 130 34 120 124 126 128 29 35 36 33 31 115 Haut de page Haut de rupture Heure systme HTML
G
Gabarit Graphe Type de champ Graphe + Tableau (type dtat) Grille magntique Groupe de champs Guides 40, 62 78 35 91 85 90
H
65 65 78 43
I
Image Imbriquer des tats Impression Aperu avant impression Fichier texte HTML Papier PDF RTF XML Imprimer Etat Etat paramtr Etat sur champ table Etat sur fichier texte Etat sur requte Etat sur vue HyperFileSQL Etat sur zone mmoire Sur un formulaire Insrer un tableau Interface Interrupteur Itration 75 107 43 43 43 43 43 43 43 111 137 122 130 120 126 128 56 98 21, 90 80 66
F
Fentre de code Fentre de description Fentre principale de lditeur Fermer un tat Fiche (type dtat) Fichier de donnes Imprimer ltat Fichier HTML Fichier PDF Fichier RTF Fichier texte Imprimer ltat Fichier XML Filtre (traitement) Fin de document Fin impression (traitement) Fonctions du WLangage Format de la page Forme Formulaire Intgrer dans un tat Type dtat 22 22 21 56 30 46 115 43 43 43 43, 52 130 43 134 66 134 141 40 80 56, 57 59 34
L
Lancer lditeur dtats Langues dun tat Lecture des donnes (traitement) Libell 21 56 134 72
147
Libre (type dtat) Lien URL Ligne Ligne de tableau Slection Logiciel Etats et Requtes
33 81 80 101 18
M
Magntisme Mailing personnalis (type dtat) Marges dimpression Menu droulant Modle dtats Montaire + Euro Mot-cls Etats Multilangue des champs dun tat 90 32 40 21 62 74 139 84
N
Nombre de pages Numro de page 78 78
Redimensionner les cellules dun tableau 102 Rgles dalignement 21, 90 R-ordonner des blocs 69 Repres dalignement 90 Requte 47 Imprimer ltat 120 Requte indpendante 47 Requte intgre 47 Requte paramtre 48 Requte indpendante 47 Requte intgre 47 Requte paramtre 48 RTF 43, 76 Rubrique 74 Devise 74, 75 Double-affichage 74, 75 Rupture 38 Programme 135 Traitement de rupture 135
S
Slectionner un ou plusieurs champs Source de donnes de ltat Description Fichier Fichier texte Requte Source de donnes programme Table Variable WLangage Vue HyperFileSQL Zone mmoire Source de ltat Structure dun tat Style du tableau Supprimer Bloc Champ Colonne 86 54 46 52 47 53 51 49 49 50 46 15 56 68 88 103
O
Options dimpression des blocs Ouvrir un tat 67 56
P
Paramtre Blocs dun tat Etat PDF Position des blocs Pr-dfini Programmation Blocs dun tat Etat Proprits associes Blocs dun tat Champs dun tat Etats 67 136 43 56, 69 78 69 132 71 93 139
T
Table Tableau Ajouter une cellule Ajouter une colonne Caractristiques Cellule dun tableau Crer 51 95 101 101 99 100 97
R
Raccourcis clavier Rectangle Rcupration automatique 148 Partie 1 : Editeur dtats 26 80 56
Dplacer une colonne Description Description du tableau Enlever une colonne Insrer un tableau dans un tat Redimensionner les cellules Slection dun lment Style Supprimer une colonne Tableau (type dtat) Crer Tableau crois (type dtat) Crer Tester Etat Etat paramtr Trait Traitement Blocs dun tat Champs dun tat Dbut dimpression Etat Filtre Fin impression Lecture des donnes
103 99 101 103 98 102 101 56 103 29 97 36 98 41 138 80 69 92 133 133 134 134 134
135 38 29 64 72
V
Variable WLangage Vierge (type dtat) Visualisation de ltat en 3 dimensions Volet Vue HyperFileSQL Imprimer ltat 49 33 60 21 49 126
X
XML 43
Z
Zone mmoire Imprimer ltat Zoom 50 128 90
149
150
153
3.3.2 Trier les enregistrements slectionns par une requte de slection...................................192 3.3.3 Oprations possibles dans une requte de slection .............................................................193 3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection..........................194 3.3.5 Conditions de slection..............................................................................................................195 3.3.6 Enchanement des conditions de slection..............................................................................197 3.3.7 Afficher les enregistrements correspondant une priode donne......................................199 3.3.8 Limiter le nombre denregistrements affichs dune requte de slection...........................199 3.3.9 Conserver ou non les doublons.................................................................................................200 3.3.10 Jointure entre les fichiers ........................................................................................................200 3.3.11 Synchronisation de la requte ................................................................................................201 3.4 Ouvrir, fermer et enregistrer une requte .................................................................................................201 3.5 Dossier de la requte ...................................................................................................................................202 3.6 Optimiser une requte .................................................................................................................................203
154
1.INTRODUCTION
1.1 Quest-ce quune requte?
Une requte sert interroger une base de donnes pour visualiser, insrer, modifier ou supprimer des donnes. La structure de la requte dfinit les donnes manipules. Une requte peut interroger un ou plusieurs fichiers. Lditeur de requtes permet de crer trs simplement des requtes, sans avoir programmer.
155
Par exemple, pour lapplication Gestion Commerciale, vous voulez connatre : les commandes passes en mars 2006. Vous allez crer une requte qui va slectionner dans le fichier COMMANDE uniquement les commandes dont la date est comprise entre le 01/03/2006 et le 31/03/2006. La requte REQ_CommandeMars2006 interroge le fichier COMMANDE.
le numro des commandes passes par les clients de Toulouse. Vous allez crer une requte qui va interroger : - le fichier CLIENT pour slectionner uniquement les clients habitant Toulouse - le fichier COMMANDE pour afficher les numros de commande La requte REQ_CommandesClientToulouse interroge deux fichiers (CLIENT et COMMANDE).
156
1.2.2 Diffrences entre lditeur de requtes intgr et le logiciel Etats & Requtes
Deux versions de lditeur de requtes sont disponibles : lditeur de requtes directement intgr. Cette version est fournie en standard avec WinDev, WebDev ou WinDev Mobile. Cette version ne peut tre utilise que lors du dveloppement dune application WinDev ou WinDev Mobile ou dun site WebDev. lditeur de requtes Utilisateur (appel galement le logiciel Etats & Requtes). Cet diteur est livr uniquement avec WinDev. Cette version est indpendante de WinDev et peut tre utilise par un utilisateur final. Certaines fonctionnalits de lditeur de requtes ne sont pas disponibles dans cette version. Licne permet dindiquer les diffrences entre lditeur de requtes Utilisateur et lditeur de requtes intgr.
Editeur de requtes intgr
Avec lditeur de requtes intgr, il est possible de crer des requtes et dexcuter ces requtes depuis lditeur ou depuis une application ralise avec WinDev, WinDev Mobile ou WebDev. La cl lectronique du produit utilis est ncessaire lutilisation de lditeur de requtes. Elle doit tre prsente sur le port parallle ou USB de votre ordinateur pendant lutilisation de lditeur. La cl lectronique nest en aucun cas ncessaire lutilisateur final pour excuter une requte depuis une application WinDev, WinDev Mobile ou WebDev. Plusieurs exemples sont livrs avec lditeur de requtes intgr. Dans ces exemples, vous retrouverez les principales requtes pouvant tre utilises dans des applications. Pour connatre les exemples prsentant des requtes, affichez le guide (option "? .. Consulter le guide") et saisissez le mot-cl "Requte". La liste des exemples utilisant des requtes saffiche. Consultez ces exemples, ils vous apprendront beaucoup et vous pouvez vous en inspirer pour crer vos propres requtes!
Editeur de requtes Utilisateur (logiciel Etats & Requtes - WinDev uniquement)
Avec le logiciel Etats & Requtes, il est possible de crer et dexcuter des requtes depuis lditeur (sans avoir besoin de WinDev). Les requtes cres pourront tre excutes depuis lditeur de requtes ou depuis une application WinDev (si cette application gre les requtes cres avec le logiciel Etats & Requtes). La cl lectronique nest pas ncessaire lutilisation du logiciel Etats & Requtes. Pour crer des nouvelles requtes ou pour modifier des requtes existantes avec le logiciel Etats & Requtes, certaines manipulations sont ncessaires. Pour plus de dtails, consultez Diffuser le logiciel Etats & Requtes, page 229. Partie 2 : Editeur de requtes 157
Documentation
Le logiciel Etats & Requtes et lditeur de requtes intgr sont livrs avec la mme aide en ligne. Seul lditeur de requtes intgr est livr avec une documentation papier. Documentation papier La documentation papier (le guide que vous tenez entre les mains) a t conue pour vous aider dcouvrir et utiliser lditeur de requtes. La premire partie de ce guide est consacre lditeur dtats. Le "Guide de lditeur de requtes" est complmentaire aux "Manuel de programmation", au "Guide dautoformation" et aux "Concepts". Aide en ligne Laide en ligne vous guide dans vos manipulations sous lditeur. Pour accder laide en ligne : soit slectionnez loption "? .. Sommaire" ou "? .. Index de laide". soit appuyez sur la touche [F1].
Installation
Installation de lditeur de requtes intgr Lditeur de requtes Dveloppeur est automatiquement install en mme temps que WinDev. Installation du logiciel Etats & Requtes Linstallation du logiciel Etats & Requtes est simple, il suffit de suivre les instructions lors de linstallation de lapplication WinDev.
158
Barre doutils et menu droulant Permet un accs rapide aux principales fonctionnalits de lditeur de requtes. Il est possible de : personnaliser la barre doutils (option "Affichage .. Barres doutils .. Personnaliser les barres doutils"). afficher / masquer la barre doutils (option "Affichage .. Barres doutils .. Barre contextuelle"). dplacer la barre doutils laide de la souris. Code SQL de la requte en cours Reprsentation graphique de la requte en cours Des ascenseurs permettent de faire dfiler la reprsentation de la requte si la taille de cette reprsentation est importante. Il est galement possible de raliser un zoom dans lditeur de requtes selon un facteur de zoom spcifi : soit par loption "Affichage .. Zoom", soit laide de la souris : [Ctrl] + Roulette de la souris.
159
Volets Affiche : les raccourcis vers les principales fonctionnalits disponibles sous l'diteur en cours (volet "Commande"), les fonctionnalits les plus utilises (volet "Commande"), les lments (fichiers, rubriques, tats, champs, ...) disponibles dans le projet en cours (volet "Explorateur de projet").
Important Important
160
Dans le logiciel Etats & Requtes, seuls les lments accessibles sont lists dans le volet "Projet".
Liste des rubriques et des paramtres de la requte slectionne Si la requte est excute par programmation (fonction HExcuteRequte), lordre de passage des paramtres (cas dune requte paramtre) correspond lordre indiqu dans cette liste. Pour plus de dtails, consultez le paragraphe Requte paramtre, page 213.
Dans le logiciel Etats & Requtes, la liste des rubriques et des paramtres de la requte slectionne nest pas disponible.
Fentre de description de la requte en cours (option "Requte .. Description de la requte") Permet de connatre et de modifier lensemble des caractristiques de la requte. Navigateur Lorsquune requte ne peut pas tre affiche entirement dans lespace de travail, le navigateur permet de se dplacer aisment dans cette requte. Documents ouverts Affiche un bouton pour chaque document ouvert (tats, requtes, ...) sous l'diteur. Pour afficher l'lment voulu au premier plan, il suffit de cliquer sur le "bouton" correspondant.
Option Description de la requte Editer les paramtres Editer les liaisons/jointures Tester la requte Code SQL Retro-analyse de la requte Cohrence avec lanalyse
Action Ouvre la fentre de description de la requte. Affiche la liste des paramtres de la requte (uniquement pour les requtes paramtres). Affiche la fentre de description des jointures de la requte (si la requte est base sur plusieurs fichiers lis). Excute la requte en mode test et affiche son rsultat. Affiche le code SQL correspondant la requte sous lditeur de code. Gnre la reprsentation graphique de la requte SQL en cours Affiche la liste des incohrences entre lanalyse WinDev ou WebDev et la requte (uniquement si des modifications ont t apportes dans lanalyse et que la synchronisation de lanalyse avec le projet na pas t prise en compte). Dtermine les modifications effectuer dans lanalyse associe au projet pour optimiser la vitesse dexcution de la requte en cours Gnre un tat bas sur la requte en cours. Cre une perso-note. Une perso-note correspond un pense-bte associ un lment du projet.
Option Affichage
Action Active la grille magntique dans lditeur. Cette grille permet de positionner les lments de la requte selon des repres verticaux et horizontaux. Affiche la grille magntique dans lditeur (affiche des repres verticaux et horizontaux). Affiche la zone dimpression. Les zones dimpressions sont dlimites par des lignes discontinues dans lditeur de requtes. Limpression du graphe de la requte sera ralise selon ces zones. Ralise un zoom dans lditeur de requtes selon le facteur de zoom spcifi. Paramtre les barres doutils affiches et linterface gnrale de WinDev ou WebDev Anime ou non les flux de la requte.
Remarque : Les options ddition de lditeur de requtes sont accessibles par loption de menu "Outils .. Options .. Options de lditeur de requtes".
161
Edite la description de la requte Edite les conditions de slection Edite les tris Edite les proprits avances Edite les paramtres de la requte paramtre Affiche le code SQL associ Edite les options de configuration de lditeur de requtes Affiche ou masque la grille Optimise laffichage de la requte Rtro-analyse de la requte Cre un tat bas sur la requte en cours Optimise la requte en cours Optimise les requtes du projet
Cette barre doutils peut tre active ou rendue invisible par loption "Affichage .. Barres doutils ...".
162
diter le code associ la requte slectionne dans le volet "Visualisation de Ctrl + Shift + F2 code" Enregistrer Enregistrer sous Enregistrer tout Fermer tout Imprimer le dossier concernant la requte en cours Masquer tout (volets verticaux et horizontaux) Nouveau (Cration d'un lment) Ouvrir (Ouverture d'un lment) Ouvrir un projet Rtablir (Restaurer la dernire action) Slectionner tout Supprimer la slection Tester la requte en cours Zoom + / Attention : + signifie que les touches doivent tre utilises simultanment.
Ctrl + S Ctrl + Shift + S Alt + S Ctrl + Shift + W Ctrl + P Ctrl + W Ctrl + N Ctrl + O Ctrl + Shift + O Ctrl + Y ou Ctrl + Shift + Z Ctrl + A Suppr F9 Ctrl + roulette de souris
163
Analyse
Requte
Projet
Requtes
Fentres
Lors de la cration de la requte : si un projet associ une analyse est ouvert, la requte sera automatiquement rattache lanalyse du projet. si aucun projet nest ouvert, il sera ncessaire de spcifier lanalyse utilise dans lassistant de cration de la requte.
164
Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion.
Requte de modification : Permet de modifier des enregistrements dans un fichier dune base de donnes. Pour plus de dtails, consultez Requte de modification, page 170.
Le logiciel Etats & Requtes ne permet pas de crer des requtes de modification.
Requte de suppression : Permet de supprimer des enregistrements dans un fichier dune base de donnes. Pour plus de dtails, consultez Requte de suppression, page 172.
Le logiciel Etats & Requtes ne permet pas de crer des requtes de suppression.
Requte compose : Permet de combiner des requtes de slection. Pour plus de dtails, consultez Requte compose, page 174. Remarque : Tous les types de requtes peuvent tre bass sur des rubriques appartenant : soit un fichier dcrit dans l'analyse. soit une requte prcdemment cre. Requtes dinsertion, de modification et de suppression : La possibilit de crer des requtes dinsertion, de modification et de suppression est supporte pour compatibilit avec la norme SQL. Lutilisation des ordres WLangage natifs (fonctions HLitPremier, HLitSuivant, HAjoute, HModifie, HSupprime, ...) est beaucoup plus adapte la programmation de ce type de traitement. Partie 2 : Editeur de requtes 165
SQL est un langage de requte destin linterrogation des donnes, mais nest pas adapt aux modifications personnalises de ces donnes. Pour ajouter, modifier ou supprimer des enregistrements dans un fichier dune base de donnes, la puissance et la simplicit de WinDev ou WebDev sont irremplaables et fortement conseilles. Rappel : Le logiciel Etats & Requtes ne permet pas de crer : des requtes dinsertion. des requtes de modification. des requtes de suppression.
Principe : La cration dune requte consiste : prciser la mthode de cration de la requte (assistant/fentre de description ou code SQL). spcifier le type de la requte (insertion, modification, ...). indiquer lanalyse WinDev ou WebDev (si ncessaire) contenant la description des fichiers de donnes sur lesquels sera base la requte. slectionner les rubriques utiliser. saisir les caractristiques de la requte (conditions de slection, tri, ...). Les paragraphes suivants prsentent les diffrents types de requtes et leur mode de cration.
166
Important
Pour raliser cette requte, le rsultat sera automatiquement regroup par nom du client, par code postal et par ville.
Conditions de slection (pour plus de dtails, voir page 195) Tri des enregistrements (pour plus de dtails, voir page 192)
Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
SELECT CLIENT.NomClient AS NomClient, CLIENT.CodePostal AS CodePostal, CLIENT.Ville AS Ville, SUM(COMMANDE.TotalTTC) AS la_somme_TotalTTC FROM CLIENT, COMMANDE WHERE CLIENT.NumClient = COMMANDE.NumClient AND CLIENT.CodePostal LIKE '21%' GROUP BY CLIENT.NomClient, CLIENT.CodePostal, CLIENT.Ville HAVING SUM(COMMANDE.TotalTTC) > 3000 ORDER BY la_somme_TotalTTC ASC
167
Important Important
168
Dans le logiciel Etats & Requtes, lassistant de cration pose toutes les questions ncessaires la cration dune requte.
5. Aprs validation de la description de votre requte, la reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Il est galement possible de crer une nouvelle requte de slection avec un assistant simplifi : Cochez loption "Utiliser lassistant simplifi" dans lassistant de cration dune requte. Remarque : lassistant simplifi ne permet pas de grer les index "full-text". Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant. Il est galement possible de crer une requte partir d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.
Le logiciel Etats & Requtes ne permet pas de crer des requtes dinsertion.
Pour raliser cette insertion, les informations ncessaires sont les suivantes : le fichier dans lequel des donnes vont tre insres. les rubriques dans lesquelles de nouvelles valeurs vont tre insres.
Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190. Par exemple, cration dun nouveau client dans le fichier "Client".
Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
INSERT INTO Client ( Civilite, NomClient, Adresse1, CodePostal, Ville ) VALUES( 'Melle.', 'Montgomery', '15 rue Jacques Prvert', '21000', 'DIJON' )
soit une valeur nulle. 7. Validez votre choix. 8. Rptez les oprations 5 7 pour chaque rubrique pour laquelle une valeur doit tre insre. Passez ensuite lcran suivant de lassistant. 9. Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra didentifier la requte dans vos programmes. 10. Spcifiez le libell de la requte. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 11. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Pour modifier lensemble des caractristiques dune requte, slectionnez loption "Requte .. Description de la requte". Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant. Il est galement possible de crer une requte partir d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.
Important
170
Le logiciel Etats & Requtes ne permet pas de crer des requtes de modification.
Pour raliser cette modification, les informations ncessaires sont les suivantes : le fichier dans lequel des donnes vont tre modifies. les rubriques dans lesquelles des valeurs vont tre modifies. les conditions de slection des enregistrements modifier (clients habitant Nantes, produits dont le prix est suprieur 40 Euros, ...). Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190.
Par exemple, la cliente N 45762 s'est marie. Sa civilit et son nom de famille ont t modifis.
Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
UPDATE Client SET Civilite = 'Mme.', NomClient = 'Vauvert' WHERE Client.NumClient = 45762
soit une valeur spcifique. Dans ce cas, prcisez cette valeur. soit une valeur contenue dans un paramtre. Dans ce cas, prcisez le nom du paramtre. soit une valeur nulle. 7. Validez votre choix. 8. Rptez les oprations 5 7 pour chaque rubrique pour laquelle une valeur doit tre modifie. 9. Dfinissez les conditions de slection. Pour plus de dtails sur les conditions de slection dune requte, consultez le paragraphe Conditions de slection, page 195. Passez lcran suivant de lassistant. 10. Prcisez si ncessaire lenchanement des conditions de slection avec les oprateurs conditionnels ET et OU : Oprateur conditionnel ET : les enregistrements conservs auront rpondu aux deux conditions. Par exemple, la requte slectionne les clients dont le nom commence par la lettre "A" ET habitant Nantes. Oprateur conditionnel OU : les enregistrements conservs auront rpondu une des deux conditions ou aux deux conditions. Par exemple, la requte slectionne les clients habitant Toulouse OU habitant Brest. Passez lcran suivant de lassistant. 11. Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra didentifier la requte dans vos programmes. 12. Spcifiez le libell de la requte. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 13. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour gnrer le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant. Il est galement possible de crer une requte partir d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.
Important
172
Le logiciel Etats & Requtes ne permet pas de crer des requtes de suppression.
Pour raliser cette suppression, les informations ncessaires sont les suivantes : le fichier dans lequel des donnes vont tre supprimes. les conditions de slection des enregistrements supprimer (clients habitant Nantes, produits dont le prix est suprieur 40 Euros, ...). Ces diffrentes informations constituent les caractristiques de la requte. Pour plus de dtails sur ces caractristiques, consultez le paragraphe Caractristiques dune requte, page 190. Par exemple, suppression des commandes passes avant le 1er janvier 2000.
Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
DELETE FROM COMMANDE WHERE COMMANDE.DateCommande < '20000101'
173
6. Prcisez si ncessaire lenchanement des conditions de slection avec les oprateurs conditionnels ET et OU : Oprateur conditionnel ET : les enregistrements conservs auront rpondu aux deux conditions. Par exemple, la requte slectionne les clients dont le nom commence par la lettre "A" ET habitant Nantes. Oprateur conditionnel OU : les enregistrements conservs auront rpondu une des deux conditions ou aux deux conditions. Par exemple, la requte slectionne les clients habitant Toulouse OU habitant Brest. Passez lcran suivant de lassistant. 7. Saisissez le nom de la requte (nom du fichier ".WDR" correspondant la requte). Ce nom permettra didentifier la requte dans vos programmes. 8. Spcifiez le libell de la requte. Ce libell sera utilis dans le dossier du projet. Remarque : Un nom de requte est automatiquement propos partir du libell saisi. 9. Validez la description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. Remarques : Il est possible de modifier lensemble des caractristiques dune requte (option "Requte .. Description de la requte"). Pour plus de dtails, consultez le paragraphe Caractristiques dune requte, page 190. Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant. Il est galement possible de crer une requte partir d'un ou de plusieurs fichiers dcrits sous l'diteur d'analyses : il suffit de faire un "Drag and Drop" du ou des fichiers slectionns dans le volet "Analyse" vers l'diteur de requtes. Il est possible de tester la requte cre directement depuis lditeur de requtes. Pour plus de dtails, consultez le paragraphe Test de la requte, page 205.
174
Pour combiner des requtes, il est ncessaire de connatre : le nom des requtes combiner. si les enregistrements communs doivent apparatre une seule ou plusieurs fois dans le rsultat de la requte. Remarque : Les rubriques apparaissant dans le rsultat de la requte compose correspondent aux rubriques de la premire requte excute. Ainsi, dans notre exemple, les personnes qui sont la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Nice n'apparatront qu'une seule fois dans le rsultat de la requte.
Cette requte gnre le code SQL suivant (option "Requte .. Code SQL") :
SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.NomClient LIKE 'A%' UNION SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.Ville LIKE 'Nice'
Pour que les personnes qui sont la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Nice apparaissent plusieurs fois dans le rsultat de la requte, le code SQL sera le suivant :
SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.NomClient LIKE 'A%' UNION ALL SELECT CLIENT.NomClient AS NomClient FROM CLIENT WHERE CLIENT.Ville LIKE 'Nice'
175
3. Si votre projet nest pas li une analyse WinDev ou WebDev, spcifiez lanalyse laquelle la requte doit tre rattache. 4. Validez lcran de lassistant. La fentre de description de la requte saffiche. Cette fentre vous permet de dcrire compltement votre requte. Remarque : Cette fentre est prsente dans le paragraphe Fentre de description dune requte compose, page 188. 5. Saisissez le nom et le libell de la requte. 6. Slectionnez les requtes de slection qui serviront lunion (cadre de gauche). Remarque : Les rubriques rsultat de la requte compose seront celles de la premire requte excute. 7. Prcisez si les doublons doivent tre conservs ou non (bouton "Conserver les doublons / Supprimer les doublons"). 8. Triez si ncessaire le rsultat de la requte (bouton "Trier"). 9. Validez la fentre de description de la requte. La reprsentation graphique de la requte saffiche automatiquement sous lditeur de requtes. 10. Slectionnez loption "Fichier .. Enregistrer" pour sauvegarder la requte. Remarque : Pour visualiser le code SQL correspondant cette requte, slectionnez loption "Requte .. Code SQL". Si des modifications sont effectues dans la description de la requte, ces modifications seront automatiquement rpercutes dans le code SQL correspondant.
Important
conditions de slection seront pris en compte lors de la rtro-analyse de la requte : les autres commentaires seront automatiquement supprims. Les commentaires sur les conditions de slection paramtres ne seront pas proposs lors du GO de la requte. des fonctions WLangage. Il suffit de prfixer les fonctions WLangage utilises par les lettres "WL.". La saisie assiste est disponible. Les fonctions WLangage peuvent tre imbriques. Exemple :
SELECT CLIENT.NunClient FROM CLIENT WHERE WL.Gauche(Client.CodePostal,2)=34
8. Sauvegardez le code SQL (option "Fichier .. Enregistrer"). 9. Cliquez sur licne pour reprsenter graphiquement la requte (ou slectionnez loption "Requte .. Rtro-analyse de la requte"). Attention : Cette fonctionnalit est disponible uniquement si les commandes SQL utilises dans la requte sont reconnues par le moteur HyperFileSQL. Pour connatre ces commandes, consultez Commandes SQL disponibles, page 177.
ADD_MONTH
177
Cre un alias pour chaque rubrique et chaque fichier utilis Utilis avec la clause ORDER BY : dfinit l'ordre ascendant Renvoie le code ASCII dun caractre ou du premier caractre dune chane. Calcule la moyenne d'un ensemble de valeurs Combine plusieurs conditions de slection (l'une et l'autre) Pour plus de dtails, consultez le paragraphe Enchanement des conditions de slection, page 197 Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Slectionne des enregistrements dont la valeur d'une rubrique appartient une plage de valeurs Renvoie la chane de caractres reprsentant "entier" en binaire Renvoie uniquement les n derniers enregistrements du rsultat d'une requte Evalue une liste de conditions et renvoie lun des rsultats possibles. Renvoie la racine cubique d'un nombre. Renvoie la valeur arrondie par excs d'un nombre Renvoie la taille (le nombre de caractres) d'une expression Renvoie la taille (le nombre de caractres) d'une expression Retourne la premire expression non nulle parmi ses arguments Concatne plusieurs chanes entre elles Renvoie le nombre d'enregistrements prsents dans un fichier ou dans un groupement d'enregistrements Permet de dcrire un fichier de donnes et de le crer. Convertit en degrs un angle exprim en radians. Supprime des enregistrements d'un fichier Utilis avec la clause ORDER BY : Dfinit l'ordre descendant Utilis avec l'instruction SELECT : Supprime les enregistrements dupliqus (doublons) du rsultat de la requte Effectue une division entire. Permet de supprimer un fichier de donnes physiquement Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Utilis avec linstruction SELECT : Dfinit les fichiers utiliss Utilis avec l'instruction DELETE : Dfinit les fichiers utiliss Classe une slection d'enregistrement par groupe
ANY BETWEEN BIN BOTTOM CASE CBRT CEIL / CEILING CHAR_LENGTH CHARACTER_LENGTH COALESCE CONCAT COUNT CREATE TABLE DEGREES DELETE DESC DISTINCT DIV DROP TABLE EXISTS FULL OUTER JOIN FROM GROUP BY 178
HAVING HEX IN
Permet de spcifier une ou plusieurs conditions sur des groupes d'enregistrements gnrs par la clause GROUP BY Renvoie en hexadcimal un entier (exprim en base 10). Slectionne des enregistrements dont les valeurs correspondent une liste de valeurs spcifie Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Ralise une jointure interne. Pour plus de dtails, consultez laide en ligne Ajoute un enregistrement dans un fichier de donnes Permet dajouter les enregistrements renvoys par une requte SELECT dans un fichier de donnes. Renvoie la position d'une chane de caractres Utilis avec l'instruction INSERT : Dfinit le fichier utilis Slectionne des enregistrements pour lesquels la valeur d'une rubrique est nulle Calcule la date du dernier jour du mois spcifi Retourne le dernier identifiant automatique calcul. Extrait les premiers caractres du contenu d'une rubrique de fichier ou d'une chane de caractres Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Renvoie la taille (le nombre de caractres) du contenu d'une rubrique ou d'une chane de caractres Renvoie la taille (le nombre de caractres) du contenu d'une rubrique ou d'une chane de caractres Slectionne des enregistrements pour lesquels la valeur d'une rubrique correspond une valeur spcifie (avec des caractres gnriques) Permet de limiter le nombre denregistrements retourns par la commande SELECT. Convertit en minuscules le contenu d'une rubrique ou une chane de caractres Renvoie une chane de taille dtermine. Pour atteindre la taille requise, cette chane est complte gauche : soit par des espaces. soit par un caractre ou une chane donne. Renvoie une chane de caractres : soit sans les espaces situs gauche. soit sans une liste de caractres. Permet de faire une requte sur un index full-text. Renvoie lindice de pertinence de lenregistrement trait.
INNER JOIN INSERT INSERT avec slection INSTR INTO IS NULL IF NULL LAST_DAY LAST_INSERT_ID LEFT LEFT OUTER JOIN LEN LENGTH LIKE LIMIT LOWER LPAD
LTRIM
179
Renvoie la plus grande valeur d'une rubrique pour tous les enregistrements slectionns dans le fichier Extrait une sous-chane, partir d'une position donne Renvoie la plus petite valeur d'une rubrique pour tous les enregistrements slectionns dans le fichier Renvoie le nombre de mois entre deux dates Renvoie la date aprs conversion du fuseau horaire Renvoie le premier jour de la semaine suivant la date ou le jour spcifi Inverse la signification de l'oprateur logique utilis Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Remplace les valeurs nulles de la colonne par une valeur de substitution Renvoie en octal un entier (exprim en base 10) Renvoie la taille (le nombre de caractres) d'une expression Utilis lors de la cration d'une jointure. Pour plus de dtails, consultez laide en ligne Combine plusieurs conditions de slection (l'une ou l'autre) Pour plus de dtails, consultez le paragraphe Enchanement des conditions de slection, page 197 Trie les enregistrements slectionns Renvoie la position de la premire occurrence d'une chane de caractres Renvoie la position d'une chane de caractres dans une expression Convertit en radians un angle exprim en degrs. Renvoie un nombre alatoire compris entre 0.0 et 1.0 (inclus). Renvoie une chane de caractres : soit en remplaant toutes les occurrences d'un mot prsent dans une chane par un autre mot. soit en remplaant toutes les occurrences d'un mot prsent dans une chane. Extrait les derniers caractres du contenu d'une rubrique de fichier ou d'une chane de caractres Ralise une jointure externe. Pour plus de dtails, consultez laide en ligne Renvoie la date arrondie au format spcifi Renvoie une chane de taille dtermine. Pour atteindre la taille requise, cette chane est complte droite : soit par des espaces. soit par un caractre ou une chane donne.
180
RTRIM
Renvoie une chane de caractres : soit sans les espaces situs droite. soit sans une liste de caractres Recherche des enregistrements dans un ou plusieurs fichiers Utilis avec l'instruction UPDATE : Dfinit les noms des rubriques utilises Utilis dans les sous-requtes. Pour plus de dtails, consultez Sousrequte, page 212 Renvoie la valeur phontique Renvoie la valeur phontique (adapt au franais) Extrait une sous-chane, partir d'une position donne Extrait une sous-chane, partir d'une position donne Renvoie la somme totale des valeurs d'une rubrique pour tous les enregistrements slectionns dans le fichier Renvoie la date et l'heure courante Renvoie uniquement les n premiers enregistrements du rsultat d'une requte Renvoie une chane de caractres en remplaant tous les caractres indiqus par d'autres caractres Renvoie une chane de caractres : - soit sans les espaces situs gauche et droite. - soit sans une chane de caractres situe en dbut et en fin de chane. - soit sans une chane de caractres situe en dbut de chane. - soit sans une chane de caractres situe en fin de chane. Renvoie la date tronque au format spcifi Renvoie la valeur entire dfinie par la norme Unicode du premier caractre de l'expression indique. Ralise des requtes composes Met jour des enregistrements d'un fichier Convertit en majuscules le contenu d'une rubrique ou une chane de caractres Gnre un UUID (Identifiant Unique Universel). Un UUID est un entier sur 128 bits reprsent en hexadcimal sous forme d'une chane de caractres de la forme aaaaaaaa-bbbb-cccc-ddddeeeeeeeeeeee. Un UUID est garanti comme tant unique chaque appel de la fonction. Utilis avec l'instruction INSERT : Dfinit les valeurs ajoutes Permet de spcifier la ou les condition(s) de slection d'une requte Partie 2 : Editeur de requtes 181
SELECT SET SOME SOUNDEX SOUNDEX_LIKE SOUNDEX2 SOUNDEX2_LIKE SUBSTR SUBSTRING SUM SYSDATE TOP TRANSLATE TRIM
VALUES WHERE
Pour plus de dtails sur ces commandes SQL et leur utilisation, consultez laide en ligne. Si votre base de donnes utilise des mots-cls SQL spcifiques, vous pouvez directement saisir le code de la requte.
182
183
Cette fentre de description s'affiche : lors de la cration d'une requte de slection (option "Fichier .. Nouveau .. Requte"). depuis une requte de slection affiche sous l'diteur de requtes (option "Requte .. Description de la requte").
Remarque : L'aide furtive de cette fentre (aide verte et transparente) s'affiche automatiquement. Cette aide furtive est affiche uniquement lorsque le curseur de la souris est immobile. Pour supprimer cette aide : pour la session en cours : appuyez simultanment sur les touches [Alt]+[F1]. dfinitivement : affichez les options de configuration de l'diteur de requtes (option "Outils .. Options .. Options de lditeur de requtes") et cochez l'option "Ne pas afficher l'aide furtive".
184
Cette fentre de description est compose de trois parties : Partie de gauche : Cette partie contient les lments suivants :
Affiche lanalyse associe au projet en cours. Liste des diffrentes rubriques pouvant tre utilises dans la requte. Ces rubriques appartiennent : soit un fichier de l'analyse associe au projet en cours. soit une requte du projet en cours. Remarque : Pour slectionner plusieurs rubriques, maintenez la touche [Ctrl] enfonce.
Important
Les fichiers et les rubriques de fichier pouvant tre utiliss dans le logiciel Etats & Requtes sont dfinis sous lditeur danalyses. Pour plus de dtails sur la prparation ncessaire lutilisation dune application WinDev avec le logiciel Etats & Requtes, consultez Diffuser le logiciel Etats & Requtes, page 229.
Permet d'ajouter ou de supprimer la ou les rubriques slectionnes dans la requte. Les lments slectionns sont affichs dans la partie centrale. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond un calcul sur certaines rubriques pouvant tre utilises dans la requte. Par exemple, la rubrique "PrixTTC" correspond la rubrique "PrixHT" multiplie la rubrique "TauxTVA". Affiche : soit la requte en langage naturel. soit le code SQL correspondant la requte.
185
Liste des diffrentes rubriques utilises dans la requte. Pour plus de dtails sur les rubriques dune requte, consultez le paragraphe Rubriques utilises dans une requte de slection, page 190. Les valeurs de cette rubrique seront affiches dans le rsultat de la requte (icne Sens de tri des valeurs de cette rubrique (croissant , dcroissant ). ).
Nombre de conditions de slection appliques cette rubrique (2 dans cet exemple). Modifie l'ordre d'affichage / de tri des diffrentes rubriques dans le rsultat de la requte. Modifie l'ordre d'affichage de la liste des lments de la requte : : correspond l'ordre d'affichage des lments dans le rsultat de la requte. : correspond l'enchanement des tris dans le rsultat de la requte.
186
Partie de droite : Cette partie permet de dfinir les diffrentes actions appliquer sur les rubriques de la requte. Pour plus de dtails sur les diffrentes actions possibles, consultez le paragraphe Caractristiques dune requte, page 190.
Rubrique sur laquelle les actions seront appliques. Permet : soit d'afficher ou non les valeurs de la rubrique slectionne dans le rsultat de la requte. soit de renommer la rubrique slectionne dans le rsultat de la requte (cration d'un alias). Trie les valeurs de la rubrique slectionne dans le rsultat de la requte. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond : soit au nombre d'enregistrements prsents dans une slection d'enregistrements. soit au nombre d'enregistrements prsents dans un fichier de donnes. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond la somme d'un ensemble d'enregistrements. Ajoute une nouvelle rubrique au rsultat de la requte. Cette rubrique correspond : soit la moyenne d'un ensemble d'enregistrements. soit la valeur minimale d'un ensemble d'enregistrements. soit la valeur maximale d'un ensemble d'enregistrements. Modifie les valeurs affiches dans le rsultat de la requte. Il est possible d'afficher uniquement : l'anne partir d'une rubrique de type date. le mois partir d'une rubrique de type date. le dpartement partir d'une rubrique contenant un code postal. Dfinit les conditions de slection. Il est possible de : appliquer une condition de slection sur la rubrique slectionne. modifier et/ou supprimer une condition existante. modifier l'enchanement des conditions existantes. Slectionne les enregistrements correspondant une priode donne. Slectionne les n premiers ou les n derniers enregistrements affichs dans le rsultat de la requte. Supprime ou non les enregistrements "doublons" du rsultat de la requte.
187
Permet de : grer les jointures (ajouter, modifier, supprimer, r-initialiser). vrifier ou non la syntaxe SQL utilise (en mode test uniquement).
Liste des diffrentes requtes de slection pouvant tre utilises dans la requte compose. Remarque : Pour slectionner plusieurs requtes, maintenez la touche [Ctrl] enfonce. 188 Partie 2 : Editeur de requtes
Permet dajouter ou de supprimer la ou les requtes slectionnes dans la requte compose. Liste des diffrentes requtes utilises dans la requte compose. Ces requtes sont affiches dans leur ordre dexcution. Modifie lordre dexcution des requtes. Permet de conserver ou de supprimer les enregistrements dupliqus (doublons) du rsultat de la requte compose. Liste des rubriques rsultat de la requte compose. Rappel : Ces rubriques correspondent aux rubriques de la premire requte excute. Permet de trier ou dannuler le tri sur une rubrique de la requte. Affiche : soit la requte compose en langage naturel. soit le code SQL correspondant la requte compose.
3.2.4 Fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL
Le logiciel Etats & Requtes de requtes Utilisateur ne permet pas de crer : des requtes dinsertion. des requtes de modification. des requtes de suppression.
La fentre de description dune requte dinsertion, de modification, de suppression ou en code SQL permet de : connatre et/ou modifier le nom et le libell de la requte. spcifier si le moteur HyperFileSQL doit ou non vrifier les commandes SQL utilises (option "Excuter avec hRequteSansCorrection en mode test"). indiquer la connexion utilise lors du test de la requte. connatre et/ou modifier la (ou les) valeur(s) insrer ou modifier dans le rsultat de la requte (cas dune requte dinsertion ou de modification). connatre et/ou modifier les conditions de slection (cas dune requte de modification ou de suppression). connatre et/ou modifier lenchanement des conditions de slection (cas dune requte de modification ou de suppression). Remarque : Pour plus de dtails sur chacune des caractristiques des diffrents onglets, consultez l'aide contextuelle de la fentre de description (icne ).
Important
189
190
Pour ajouter une rubrique de comptage dans la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, cliquez sur le bouton "Compter". 3. Pour compter : le nombre de valeurs de la rubrique slectionne dans le rsultat de la requte : slectionnez loption "Sur la rubrique slectionne". Par exemple, cette option peut tre utilise pour connatre le nombre de clients ayant un tlphone portable (rubrique "TelPortable" renseigne). le nombre de valeurs dune autre rubrique dans le rsultat de la requte : slectionnez loption "Sur une autre rubrique" et slectionnez la rubrique voulue. le nombre denregistrements dun fichier ou dune requte (en fonction des conditions de slection de la requte en cours) : slectionnez loption "Sur un fichier ou une requte". Par exemple, cette option peut tre utilise pour connatre le nombre de produits prsents dans le fichier "Produit". Remarque : Quel que soit le comptage effectu, il est possible de prciser si le comptage doit prendre en compte les doublons ou non (option Count(Distinct) en SQL). Pour ajouter une rubrique de type "calcule" dans la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie gauche de la fentre, cliquez sur le bouton "Rubrique calcule" et slectionnez loption "Nouvelle rubrique calcule". La fentre de description dune rubrique calcule saffiche. Cette fentre permet de saisir le code SQL correspondant au calcul effectuer. Dans cette fentre, il est possible : de manipuler les rubriques des fichiers de l'analyse en cours et des requtes du projet en cours. de saisir des instructions SQL. La liste des instructions SQL disponibles est affiche. Il suffit de double-cliquer sur une instruction pour la faire apparatre dans la partie code. de saisir des fonctions WLangage. La liste des fonctions WLangage disponibles est affiche. Il suffit de double-cliquer sur une fonction pour la faire apparatre dans la partie code. Pour utiliser une fonction WLangage, son nom doit tre prcd des lettres "WL.". d'imbriquer les fonctions WLangage et le code SQL utilis. 3. Prcisez la formule mathmatique de la rubrique et validez. La rubrique est automatiquement ajoute. Pour modifier une rubrique de type "rubrique calcule" dans la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique calcule modifier. 3. Dans la partie gauche de la fentre, cliquez sur le bouton "Rubrique calcule" et slectionnez loption "Modifier la rubrique calcule". La fentre de description dune rubrique calcule saffiche. 4. Modifiez la formule de la rubrique et validez. La rubrique est automatiquement modifie. Pour renommer une rubrique rsultat dans la requte en cours (cration dun alias) : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique renommer. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Afficher/Renommer". 4. Saisissez le nouveau nom de la rubrique et validez. La rubrique est automatiquement renomme.
191
Pour afficher/rendre invisible une rubrique dans le rsultat de la requte : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique afficher/rendre invisible. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Afficher/Renommer". 4. Rpondez "Non" la question "Afficher cette rubrique ?". Remarque : Pour afficher/rendre invisible une rubrique dans le rsultat de la requte, il est galement possible de : afficher le menu contextuel de la rubrique voulue (clic droit). slectionner loption "Afficher la rubrique" ou "Ne pas afficher". Pour supprimer une rubrique de la requte en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique supprimer et cliquez sur le bouton (ou appuyez sur la touche [Suppr]). La rubrique est automatiquement supprime de la requte. Remarques : La suppression dune rubrique supprime les conditions de slection existantes sur cette rubrique. Pour supprimer une rubrique, il est galement possible de slectionner loption "Supprimer la rubrique" dans le menu contextuel de la rubrique.
192
Les flches situes droite de la liste permettent de modifier lenchanement des rubriques de tri. Remarque : Seules les rubriques affiches dans le rsultat de la requte peuvent tre tries. Lordre du tri est dfini lors de la cration de la requte. Il est cependant possible de : ajouter ou supprimer un tri sur une rubrique. modifier le sens de tri effectu sur une rubrique. Les paragraphes suivants dcrivent comment effectuer ces oprations. Pour ajouter un tri sur une rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique voulue. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Trier" et slectionnez l'option "Trier sur la rubrique slectionne". 4. Spcifiez lordre de tri et validez. Pour supprimer le tri dune rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle le tri doit tre supprim. 3. Affichez le menu contextuel de cette rubrique (clic droit). 4. Slectionnez loption "Trier la rubrique .. Ne pas trier". Pour modifier le sens de tri dune rubrique dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle le tri doit tre modifi. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Trier" et slectionnez l'option "Modifier lordre de tri". Astuce : Pour ajouter, modifier ou supprimer un tri, cliquez directement dans la colonne de tri des rubriques de la requte et slectionnez lopration effectuer dans le menu suivant :
193
Ces oprations sont effectues : soit sur lensemble des enregistrements slectionns par la requte. soit sur des sous-ensembles denregistrements (regroups automatiquement par la requte). Par exemple, il est possible de connatre : la somme totale des commandes passes par les clients habitant Paris, la commande dont le montant est le plus petit, le montant moyen dpens par le client Darwin, le montant des commandes par pays et par anne, ... Les oprations sont dfinies lors de la cration de la requte. Il est cependant possible dajouter ou de supprimer les oprations effectues dans une requte. Les paragraphes suivants dcrivent comment effectuer ces oprations. Attention : Si le rsultat de la requte est affich dans un tat, les oprations effectuer sur la valeur des rubriques doivent tre dfinies lors de la description de ltat. Pour plus de dtails sur la cration dun tat, consultez le paragraphe Comment crer un tat?, page 28. Pour ajouter une opration dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une opration doit tre effectue. 3. Pour calculer : la somme des valeurs de cette rubrique, cliquez sur le bouton "Somme". la moyenne des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez loption "Moyenne". la valeur maximale de lensemble des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez loption "Maximum". la valeur minimale de lensemble des valeurs de la rubrique, cliquez sur le bouton "Moyenne, Max, Min" et slectionnez loption "Minimum". 4. Validez. Lopration est automatiquement ajoute dans la requte. Pour supprimer une opration dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique de calcul supprimer. 3. Appuyez sur la touche [Suppr] (ou slectionnez loption "Supprimer la rubrique" du menu contextuel de la rubrique).
3.3.4 Modifier les valeurs affiches dans le rsultat dune requte de slection
Dans le rsultat dune requte de slection, il est possible d'afficher uniquement : l'anne partir d'une rubrique de type date. le mois partir d'une rubrique de type date. le dpartement partir d'une rubrique contenant un code postal.
194
Pour modifier les valeurs affiches dans le rsultat de la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche 2. Dans la partie centrale de la fentre, slectionnez une rubrique de type date ou contenant un code postal. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Anne, dpartement" et slectionnez l'option : "Mois" pour afficher uniquement le mois dans le rsultat de la requte. "Anne" pour afficher uniquement l'anne dans le rsultat de la requte. "Dpartement" pour afficher uniquement le dpartement dans le rsultat de la requte. 4. Validez.
Pour ajouter une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Nouvelle condition". La fentre de cration dune condition de slection saffiche. 4. Choisissez les critres de slection (gale , suprieur , ...) de la condition. Cette condition peut porter sur une valeur donne, un paramtre, une sous-requte, ... Remarque : Vous pouvez slectionner une valeur donne grce l'icne . Le menu suivant apparat :
Il est alors possible : soit de slectionner une des valeurs possibles parmi celles prsentes dans le fichier. soit de visualiser la totalit du fichier. Attention : Cette option est disponible uniquement si le Live Data est activ (option "Projet .. Description du projet", onglet "Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). 5. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL de la requte (prcd des caractres "//"). Partie 2 : Editeur de requtes 195
6. Validez. La condition de slection est automatiquement ajoute la requte. Pour ajouter une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Requte". 3. Slectionnez la rubrique sur laquelle une condition de slection doit tre ajoute et cliquez sur la colonne "Condition" correspondante. Lassistant de cration dune condition de slection saffiche. 4. Slectionnez si ncessaire loption "Je veux ajouter une condition" (cas dune rubrique sur laquelle au moins une condition est effectue). 5. Choisissez les critres de slection (gale , suprieur , ...) de la condition. Cette condition peut porter sur une valeur donne, un paramtre, une sous-requte, ... 6. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL de la requte (prcd des caractres "//"). 7. Validez. La condition de slection est automatiquement ajoute.
Comment modifier une condition de slection dans une requte?
Pour modifier une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition doit tre modifie. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Modifier la condition". La fentre des conditions de slection saffiche. 4. Slectionnez si ncessaire la condition modifier (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 5. Modifiez la condition de slection. Remarque : Vous pouvez slectionner une valeur donne grce l'icne . Le menu suivant apparat :
Il est alors possible : soit de slectionner une des valeurs possibles parmi celles prsentes dans le fichier. soit de visualiser la totalit du fichier. Attention : Cette option est disponible uniquement si le Live Data est activ (option "Projet .. Description du projet .. Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). 6. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code SQL de la requte (prcd des caractres "//"). 7. Validez. La condition de slection est automatiquement modifie. Pour modifier une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Requte". 3. Slectionnez la rubrique sur laquelle une condition de slection doit tre modifie et cliquez sur la colonne "Condition" correspondante. Lassistant des conditions de slection saffiche. 4. Slectionnez loption "Je veux modifier une condition existante". 5. Slectionnez si ncessaire la condition modifier (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 6. Modifiez la condition de slection. 7. Indiquez si ncessaire un commentaire sur la condition. Ce commentaire sera affich dans le code 196 Partie 2 : Editeur de requtes
SQL de la requte (prcd des caractres "//"). 8. Validez. La condition de slection est automatiquement modifie.
Comment supprimer une condition de slection dans une requte?
Pour supprimer une condition de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie centrale de la fentre, slectionnez la rubrique sur laquelle une condition doit tre supprime. 3. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Supprimer une condition". 4. Slectionnez si ncessaire la condition supprimer (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 5. Validez la suppression. La condition de slection est automatiquement supprime de la requte. Pour supprimer une condition de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Requte". 3. Slectionnez la rubrique sur laquelle une condition de slection doit tre supprime et cliquez sur la colonne "Condition" correspondante. Lassistant des conditions de slection saffiche. 4. Slectionnez loption "Je veux supprimer une condition existante". 5. Slectionnez si ncessaire la condition supprimer (cas dune rubrique sur laquelle plusieurs conditions sont effectues). 6. Validez. La condition de slection est automatiquement supprime. Astuce : Pour ajouter, modifier ou supprimer une condition de slection dans une requte de slection, cliquez directement dans la colonne de condition des rubriques de la requte et slectionnez lopration effectuer dans le menu suivant :
197
Oprateur conditionnel ET
Oprateur conditionnel OU
Pour modifier lenchanement des conditions de slection dans la requte en cours, deux mthodes sont possibles :
1re mthode : Grce la fentre de description de la requte
Pour modifier lenchanement des conditions de slection dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, cliquez sur le bouton "Condition de slection" et slectionnez loption "Conditions existantes". 3. Modifiez lenchanement des conditions de slection. 4. Validez. La modification est automatiquement effectue dans la requte. Pour modifier lenchanement des conditions de slection dans la requte de modification ou de suppression en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Affichez longlet "Et/Ou". 3. Modifiez lenchanement des conditions de slection. 4. Validez. La modification est automatiquement effectue dans la requte.
2me mthode : Depuis la reprsentation graphique de la requte
Pour modifier lenchanement des conditions de slection dans la requte en cours : 1. Dans la reprsentation graphique de la requte, slectionnez la condition de slection dont lenchanement doit tre modifi. 2. Slectionnez loption "Inverser ET/OU" du menu contextuel (clic droit) de la condition de slection en cours. 3. Le nouvel enchanement des conditions de slection est automatiquement pris en compte. 198 Partie 2 : Editeur de requtes
Par exemple, vous souhaitez connatre : les dix meilleurs clients : les clients ayant rapport le plus en terme de chiffre daffaires, les 15 produits les moins bien vendus, ... Pour limiter le nombre denregistrements prsents dans le rsultat de la requte de slection en cours : 1. Slectionnez loption "Requte .. Description de la requte". La fentre de description de la requte saffiche. 2. Dans la partie droite de la fentre, cliquez sur le bouton "Les n premiers". 3. Indiquez le nombre des premiers, des derniers enregistrements slectionner ou encore le nombre denregistrements afficher partir dun enregistrement donn. Partie 2 : Editeur de requtes 199
Remarque : Les liaisons entre les fichiers apparaissent dans la reprsentation graphique de la requte uniquement si les fichiers relis sont utiliss par la requte. Par dfaut, lditeur de requtes cre automatiquement les jointures. Cependant, ces jointures peuvent ne pas correspondre au rsultat voulu. Il est donc possible dajouter ou de supprimer les jointures. Les paragraphes suivants dcrivent comment effectuer ces oprations. Pour ajouter une jointure dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Cliquez sur le bouton "Ajouter". Une fentre permettant de dfinir une nouvelle jointure saffiche. 3. Spcifiez les caractristiques de la jointure ajouter. 200 Partie 2 : Editeur de requtes
4. Validez. La jointure est automatiquement ajoute dans la requte. Il est ainsi possible de crer des jointures multiples entre deux fichiers. Pour supprimer une jointure dans la requte de slection en cours : 1. Slectionnez loption "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Slectionnez la jointure supprimer. 3. Cliquez sur le bouton "Supprimer". La jointure est automatiquement supprime. Les jointures entre les fichiers sont optimises pour conserver le bon fonctionnement de la requte. R-initialisation des jointures dune requte de slection La r-initialisation des jointures permet de supprimer toutes les modifications effectues sur les jointures depuis la cration de la requte. Lditeur de requtes recre automatiquement des jointures optimises. Pour r-initialiser les jointures de la requte de slection en cours : 1. Slectionnez loption "Requte .. Editer les liaisons /Jointures". La fentre de description des jointures saffiche. 2. Cliquez sur le bouton "Rinitialiser". Les jointures cres manuellement sont supprimes.
Rcupration automatique Pour viter tout problme lors du blocage du systme (coupure de courant par exemple), lditeur de requtes propose un systme de rcupration automatique des lments ouverts sous les diffrents diteurs (option "Outils .. Options de XXX .. Gnral .. Enregistrement pour la rcupration automatique"). Lorsque ce systme est activ : un enregistrement automatique des lments ouverts est effectu une priode rgulire (toutes les 10 minutes par dfaut). lors de la r-ouverture dune requte aprs un blocage systme, une fentre de rcupration automatique apparat. Cette fentre propose de rcuprer : - soit la requte telle quelle tait lors de la dernire sauvegarde ralise depuis lditeur de requtes. - soit la requte sauvegarde automatiquement par lditeur de requtes. La version slectionne est automatiquement ouverte sous lditeur de requtes. La version non slectionne est disponible dans la fentre de gestion des versions (option "Fichier .. Versions") et peut tre ouverte tout moment.
202
3. A laide de la souris : - dplacez ces bordures lendroit dsir en maintenant le bouton de la souris enfonc (la couleur du curseur de la souris est noire). - choisissez le nombre de pages sur lesquelles la reprsentation graphique doit tre imprime (le curseur de la souris se transforme en double-flche Nord-Ouest / Sud-Est).
Important
Le logiciel Etats & Requtes ne permet pas doptimiser la vitesse dexcution dune requte.
Pour optimiser la vitesse dexcution de la requte en cours, cliquez sur licne (ou slectionnez loption "Requte .. Optimiser la requte"). La fentre doptimisation dune requte saffiche et propose les diffrentes modifications possibles effectuer dans lanalyse. Pour optimiser la vitesse dexcution dune ou de plusieurs requtes, cliquez sur licne . La fentre doptimisation des requtes saffiche et propose les diffrentes modifications possibles effectuer dans lanalyse. Attention : Lajout dun nombre important de cls composes dans lanalyse augmente la taille des fichiers dindex et peut ralentir les accs aux fichiers de donnes. Remarque : Cette option est disponible uniquement si les conditions suivantes sont runies : le Live Data est activ (option "Projet .. Description du projet", onglet "Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). les fichiers de donnes sont prsents dans le rpertoire de test du projet (option "Projet .. Description du projet .. Fichiers"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Tester, Projet"). Optimisation et cls composes : Pour optimiser vos requtes, l'diteur propose la cration de cls composes. L'ordre des composantes de la cl compose n'a pas d'importance. Il n'est pas ncessaire de crer une nouvelle cl inversant juste l'ordre des composantes d'une cl existante.
203
204
Remarques : Il est possible de lancer plusieurs tests de requtes diffrentes en mme temps. Le bouton permet d'afficher automatiquement la moyenne, le total, les valeurs minimale et maximale des diffrentes rubriques rsultat de type numrique.
Le logiciel Etats & Requtes ne permet pas de crer et/ou de tester : des requtes dinsertion. des requtes de modification. des requtes de suppression.
Important
205
Selon le type de requte test, le rsultat du test est diffrent : Le rsultat dune requte de slection correspond aux enregistrements slectionns par la requte. Le rsultat dune requte dinsertion correspond lenregistrement qui va tre insr. Lors du test, cet enregistrement est directement insr dans le fichier concern. Le rsultat dune requte de modification correspond aux enregistrements qui vont tre modifis. Lors du test, il est possible : - soit de visualiser uniquement les enregistrements qui doivent tre modifis, - soit de modifier directement les enregistrements dans le fichier concern. Le rsultat dune requte de suppression correspond aux enregistrements qui vont tre supprims. Lors du test, il est possible : - soit de visualiser uniquement les enregistrements qui doivent tre supprims, - soit de supprimer directement les enregistrements dans le fichier concern.
Rsultat de la requte
Le rsultat du test de la requte peut ensuite tre : export vers un fichier Word (voir page 207), export vers un fichier XML (voir page 208), export vers un fichier Excel (voir page 207), export vers un fichier HyperFileSQL. imprim (voir page 208). Il est galement possible de copier un enregistrement du rsultat de la requte dans le presse-papiers (option "Copier" du menu contextuel).
Test dune requte paramtre
Lors du test dune requte paramtre, une fentre permettant de spcifier les diffrents paramtres saffiche. Pour plus de dtails, consultez le paragraphe Requte paramtre, page 213.
Mot de passe
Si un des fichiers participant la requte est protg par mot de passe, lors du test de la requte : si le mot de passe est prcis dans le code d'initialisation du projet, avec la fonction HPasse, la requte est excute. si la gestion des erreurs HyperFileSQL n'a pas t personnalise (fonction HSurErreur), et si le mot de passe n'est pas prcis par programmation, la fentre standard de demande du mot de passe est affiche. Remarque : si la gestion des erreurs est personnalise dans le code d'initialisation du projet, cette gestion des erreurs sera utilise.
Test dune requte sans vrification du code SQL
Pour les requtes utilisant des fichiers accds via un Accs Natif ou via un provider OLE DB, le moteur HyperFileSQL peut n'effectuer aucune vrification de la requte. Pour plus de dtails, consultez le paragraphe Modes dexcution dune requte en code SQL, page 177.
206
207
208
Le rsultat dune requte dinsertion, de modification ou de suppression peut tre utilis uniquement dans un programme. Rappel : Le logiciel Etats & Requtes ne permet pas de crer : des requtes dinsertion. des requtes de modification. des requtes de suppression.
Pour utiliser le rsultat dune requte en programmation, consultez le paragraphe Excution de la requte et manipulation du rsultat avec les fonctions du WLangage, page 211.
4.2.1 Requte dans une fentre WinDev ou dans une page WebDev
Il est possible dutiliser une requte comme source de donnes dune fentre ou dune page. La fentre ou la page affichera les enregistrements slectionns par la requte.
Important Important
Important
Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis une application WinDev uniquement si cette application gre les requtes cres avec le logiciel Etats & Requtes.
Pour utiliser une requte dans une fentre : 1. Slectionnez loption "Fichier .. Nouveau .. Fentre". 2. Dans longlet R.A.D., choisissez le Pattern RAD utiliser et le type de fentre crer. 3. Spcifiez si ncessaire le gabarit de la fentre et validez la cration. Lassistant de cration dune fentre saffiche. 4. Dans lassistant de cration, slectionnez la requte associer la fentre et les rubriques afficher dans la fentre. 5. Validez. La fentre cre affichera les informations provenant de la requte associe. Pour utiliser une requte dans une page : 1. Slectionnez loption "Fichier .. Nouveau .. Page". 2. Dans longlet R.A.D., choisissez le Pattern RAD utiliser et le type de page crer. 3. Spcifiez si ncessaire le modle de la page et validez la cration. Lassistant de cration dune page saffiche. 4. Dans lassistant de cration, slectionnez la requte associer la page et les rubriques afficher dans la page. 5. Validez. La page cre affichera les informations provenant de la requte associe.
4.2.2 Requte dans un champ dune fentre WinDev ou dune page WebDev
Tous les champs pouvant tre relis une source de donnes peuvent tre associs une ou plusieurs rubriques rsultat de la requte (champs de saisie, liste, table, ...). Il est possible dutiliser une requte comme source de donnes dun champ. Le champ affichera les enregistrements slectionns par la requte.
Les requtes cres avec le logiciel Etats & Requtes pourront tre excuts depuis une application WinDev uniquement si cette application gre les requtes cres avec le logiciel Etats & Requtes.
209
Pour afficher le rsultat de la requte dans une liste, une combo, une zone rpte ou une table : 1. Ouvrez la fentre ou la page dans laquelle la liste, la combo, la zone rpte ou la table doit tre ajoute. 2. Insrez le champ associ la requte (option "Insertion .. Champ..."). Lassistant de cration du champ souvre. 3. Spcifiez que les informations affiches dans le champ proviennent dune requte existante. 4. Slectionnez la requte associer au champ et les rubriques afficher dans le champ. 5. Validez. Le champ cr affichera les informations provenant de la requte associe. 6. Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ en cours.
HExcuteRequte(<Nom de la requte associe>)
Pour utiliser une rubrique rsultat de la requte dans un champ (autre quune liste, une combo, une zone rpte ou une table) : 1. Ouvrez la fentre ou la page dans laquelle un champ associ une requte doit tre ajout. 2. Crez le champ associ la requte. 3. Slectionnez loption "Affichage .. Description de la slection". La fentre de description du champ saffiche. 4. Affichez longlet "Liaison" de la fentre de description du champ. 5. Slectionnez la rubrique afficher dans loption "Rubrique relie". 6. Validez. Le champ cr affichera les informations provenant de la requte associe. 7. Saisissez si ncessaire la ligne de code suivante dans le traitement dinitialisation du champ. Cette ligne de code permet dinitialiser et dexcuter la requte, et dafficher le rsultat de la requte dans le champ en cours.
HExcuteRequte(<Nom de la requte associe>)
Remarque : Lors de la cration dun champ table associ une requte, il est possible de : 1. Slectionner directement la requte dans le volet "Projet". 2. Effectuer un "Drag and Drop" (Glisser/Dplacer) vers la fentre. Une table associe la requte est automatiquement cre dans la fentre ou dans la page.
210
Mot de passe
Si la requte est associe une analyse protge par un mot de passe en excution, spcifiez ce mot de passe lors de louverture de lanalyse (fonction HOuvreAnalyse) dans le traitement dinitialisation du projet. Si la requte est base sur un (ou plusieurs) fichier(s) protg(s) par un mot de passe, spcifiez ce(s) mot(s) de passe grce la fonction HPasse avant dexcuter la requte (fonction HExcuteRequte).
211
5.REQUTE AVANCE
5.1 Prsentation
Dans les chapitres prcdents, nous vous avons prsent les requtes "Simples" pouvant tre cres avec lditeur de requtes. Lditeur de requtes permet galement de raliser des requtes avances. Ainsi, il est possible de : utiliser le rsultat dune requte dans une autre requte. Cest le concept de sous-requtes. utiliser des paramtres dans une requte. La valeur de ces paramtres sera spcifie uniquement lors de lexcution de la requte. Cest le concept de requte paramtre.
5.2 Sous-requte
Une sous-requte est une requte dont le rsultat est utilis par une autre requte. Par exemple, vous voulez slectionner les commandes dont le montant est suprieur au montant moyen des commandes. Le montant moyen des commandes nest pas connu directement. Ce montant moyen va tre retourn par une autre requte (appele ici sous-requte). Une sous-requte peut tre utilise : soit en tant que condition de slection, soit en tant que source de donnes de la requte principale. Limites : Les sous-requtes ne peuvent pas tre ralises avec lditeur de requtes. L'instruction ORDER BY est interdite dans les sous-requtes
Dans cette syntaxe, <Oprateur> peut correspondre : soit ALL, ANY, IN, NOT IN ou SOME. soit un oprateur de comparaison (=, <, <=, >, >=, <> ou !=). soit la combinaison de ALL, ANY ou SOME et d'un oprateur de comparaison (=, <, <=, >, >=, <> ou !=). 212 Partie 2 : Editeur de requtes
Exemple : Le code SQL suivant permet de slectionner le numro des commandes dont le montant total est suprieur au montant moyen de l'ensemble des commandes :
SELECT NumCommande FROM COMMANDE WHERE Montant > (SELECT AVG(Montant) FROM COMMANDE)
213
Il est alors possible : soit de slectionner une des valeurs possibles parmi celles prsentes dans le fichier. soit de visualiser la totalit du fichier. Attention : Cette option est disponible uniquement si le Live Data est activ (option "Projet .. Description du projet .. Live Data"). Pour plus de dtails, consultez laide en ligne (mot-cl : "Live Data"). 4. Validez. Le rsultat de la requte saffiche selon la ou les valeurs spcifies. Remarque : Si aucun paramtre nest slectionn (paramtre non coch), la ou les conditions utilisant les paramtres seront ignores.
Principe Lors de la cration d'une fentre (ou une page), il est possible de baser cette fentre (ou page) sur une requte paramtre. La saisie des paramtres de la requte peut par exemple tre ralise dans une fentre (ou page) prcdente. Pour utiliser une fentre (ou une page) base sur une requte paramtre, il est ncessaire d'excuter la requte (fonction HExcuteRequte) : soit avant d'ouvrir la fentre (ou la page). soit dans le code de dclaration des globales de la fentre (ou de la page). Lors de l'excution de la requte, il suffit de passer les paramtres ncessaires. Ces paramtres peuvent tre passs : soit directement dans la fonction HExcuteRequte. soit en utilisant la notation <Nom de la requte>.<Nom du paramtre>, puis en utilisant la fonction HExcuteRequte. Pour plus de dtails sur le passage de paramtres la requte, consultez le paragraphe Deux mthodes pour passer des paramtres une requte, page 218.
214
Exemple Pour afficher la liste des commandes de l'anne XXXX, l'utilisateur effectue les oprations suivantes : saisie de l'anne voulue dans la fentre SaisieParam. clic sur le bouton "Voir le rsultat". La fentre ListeCommande s'affiche. Cette fentre est base sur la requte ReqParamCommande. Cette requte permet de slectionner les commandes effectues la date indique par l'utilisateur. Le code suivant permet de : ouvrir la fentre SaisieParam, rcuprer la valeur saisie par lutilisateur, excuter la requte ReqParamClient. 1. Ouverture de la fentre de saisie des paramtres dans le traitement d'initialisation de la fentre ListeCommande :
-- Traitement dinitialisation de la fentre FicheClient ParamRequte est une chane // Ouverture de la fentre SaisieParam // rcupration de la saisie de lutilisateur ParamRequte = Ouvre(SaisieParam)
Utilisation dune requte paramtre dans une table, une zone rpte, une liste, un combo
Prsentation Une table, une liste, une zone rpte ou une combo peut tre utilise pour afficher le contenu d'un fichier ou d'une requte. Une table, une liste, une zone rpte ou une combo peut tre lie une requte : indpendante. Cette requte existe dj dans le projet : il suffit de slectionner cette requte parmi les requtes de votre projet. intgre la table, la liste ou la combo : cette requte sera cre dans l'assistant de cration du champ Table. Cette requte sera disponible uniquement pour ce champ et sera sauvegarde avec la fentre qui l'utilise. Dans ce cas, la fentre contient tous les lments qui sont ncessaires son fonctionnement. paramtre : cette requte (indpendante ou intgre) ncessite des paramtres pour s'excuter et afficher le rsultat dans la table. Remarque : ce paragraphe prsente uniquement le cas des tables, mais le fonctionnement est identique pour les listes, les combos et les zones rptes. Tables fichier bases sur des requtes indpendantes Une table fichier base sur une requte indpendante (non paramtre) affiche les enregistrements de cette requte.
215
Par dfaut, la requte est excute et charge en mmoire lors de sa premire utilisation. Le rsultat d'une requte utilise dans une table fichier reste en mmoire lors de la fermeture de la fentre ou de la page associe. Si cette requte est r-utilise, elle ne sera pas r-excute. Pour r-excuter cette requte, il est ncessaire d'utiliser : soit la fonction HAnnuleDclaration : Si la fonction HAnnuleDclaration n'est pas appele, la prochaine initialisation du champ table (rouverture de la fentre par exemple) ne r-excutera pas la requte. Les donnes rcupres lors de la dernire excution de la requte seront utilises. Si la table est base sur une requte paramtre, consultez le paragraphe "Table fichier base sur une requte paramtre (intgre ou non)". Si la fonction HAnnuleDclaration est appele, la prochaine initialisation du champ table (rouverture de la fentre par exemple) r-excutera la requte. soit la fonction TableAffiche (ou ListeAffiche pour une liste) : il est possible de forcer la r-excution de la requte avec la fonction TableAffiche en utilisant la constante taRExcuteRequte. Tables fichier bases sur une requte intgre (non paramtre) Une table fichier base sur une requte intgre (non paramtre) affiche les enregistrements de cette requte. Par dfaut, la requte est excute et charge en mmoire lors de l'affichage de la table. Le rsultat d'une requte intgre une table fichier est automatiquement effac de la mmoire lors de la fermeture de la fentre associe. Si cette requte est r-utilise, elle sera r-excute. Il est possible de forcer la r-excution de la requte avec la fonction TableAffiche (ou ListeAffiche pour une liste) en utilisant la constante taRExcuteRequte. Table fichier base sur une requte paramtre (intgre ou non) Lorsqu'une table fichier est lie une requte paramtre (intgre ou non), il est ncessaire de passer des paramtres la requte avant de l'excuter. Si ces paramtres ne sont pas spcifis avant la premire excution de la requte, la requte ne sera pas excute, et la table restera vide. Pour passer les paramtres la requte, il est possible d'utiliser : soit la notation suivante
<Nom Requte>.<Nom Paramtre1> = xxx <Nom Requte>.<Nom Paramtre2> = xxx <Nom Requte>.<Nom Paramtre3> = xxx
Dans ce cas, la requte est automatiquement excute lors de l'initialisation de la table. Remarque : il est galement possible d'utiliser une des notations suivantes : - le mot-cl MaSource :
MaSource.<Nom Paramtre1> = xxx MaSource.<Nom Paramtre2> = xxx MaSource.<Nom Paramtre3> = xxx
- l'indirection :
{"<Nom Requte>.<Nom Paramtre1>"} = xxx ou {"<Nom Requte>"}.<Nom Paramtre1> = xxx
soit la fonction HExcuteRequte. Une de ces deux mthodes peut tre utilise par exemple dans le code de dclaration des globales de la fentre ou dans le code d'initialisation de la table.
216
Cas particuliers : Initialisation d'un champ Table ou utilisation de TableAffiche sans la constante taRExcuteRequte. Si aucun paramtre de la requte n'a t modifi depuis la dernire excution de la requte, la requte n'est pas r-excute. La table affichera les enregistrements correspondants la dernire excution de la requte. Aprs modification des paramtres de la requte, la fonction TableAffiche (ou ListeAffiche pour une liste) permet de r-excuter la requte. La table affiche alors les enregistrements correspondant aux paramtres spcifis. Utilisation de la fonction TableAffiche avec la constante taRExcuteRequte. Pour forcer la r-excution de la requte, il suffit d'utiliser la fonction TableAffiche (ou ListeAffiche pour une liste) avec la constante taRExcuteRequte. Rappel : la structure des paramtres de la requte tant r-initialise chaque excution de la requte, n'oubliez pas de re-dfinir les paramtres souhaits avant d'utiliser cette fonction.
Utilisation dune requte paramtre dans un tat
Principe Pour utiliser un tat bas sur une requte paramtre, il est ncessaire d'excuter la requte avant d'ouvrir l'tat. La requte peut tre excute avec la fonction iInitRequteEtat. Cette fonction permet d'excuter la requte, et de passer les paramtres de cette requte. Cette fonction peut tre appele : soit dans le code d'initialisation de l'tat, soit avant la fonction iImprimeEtat. Exemple La fentre ClientFiche permet de parcourir les caractristiques des clients. Pour chaque client, lutilisateur peut cliquer sur le bouton ImprimeCommande pour imprimer ltat EtatCdeClient. Cet tat est associ la requte ReqCdeClient qui slectionne les commandes passes selon un client donn. Le code suivant permet dexcuter la requte ReqCdeClient selon le client en cours et dimprimer ltat :
-- Traitement de clic du bouton ImprimeCommande // Excution de la requte selon le client en cours iInitRequteEtat(EtatCdeClient, NumClient) // Impression de ltat iImprimeEtat(EtatCdeClient)
Dans la plupart des cas, la saisie des paramtres d'une requte paramtre est effectue par l'utilisateur dans des champs de saisie. Pour que votre requte sexcute mme si aucune valeur nest saisie par lutilisateur, cochez loption "NULL si vide" des champs de saisie (onglet "Dtail" de la description du champ). Grce cette option, si le champ de saisie est vide, la valeur du paramtre renvoye la requte correspondra la constante NULL. Ainsi, lors de lexcution de la requte, aucune erreur ne sera gnre : la ou les conditions dpendant de ce paramtre seront simplement ignores. Par exemple, le code SQL excut est :
SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique = {Param1}
217
Pour cet exemple, le tableau ci-dessous dcrit lutilisation de loption "NULL si vide" : Valeur saisie par lutilisateur Aucune valeur Aucune valeur Option "NULL si vide" Option coche Option dcoche Code SQL excut
SELECT NomDesRubriques FROM NomDesFichiers SELECT NomDesRubriques FROM NomDesFichiers WHERE Rubrique =
Lors de l'excution d'une requte avec la fonction HExcuteRequte, les derniers paramtres passs la fonction correspondent aux paramtres de la requte. La syntaxe utilise est la suivante :
<Rsultat> = HExcuteRequte(<Nom de la requte> [, <Connexion>] [, <Mode> [, <Paramtres> [, ...]]])
Attention : Dans ce cas : Les valeurs des paramtres de la requte doivent tre indiques dans leur ordre d'initialisation (visible sous l'diteur de requtes). Chaque paramtre doit correspondre au type attendu. Les diffrents paramtres sont spars par une virgule. Pour spcifier les paramtres de la requte, il est ncessaire de spcifier le mode d'initialisation de la requte.
Notation <Nom de la requte>.<Nom du paramtre>
Pour passer des paramtres une requte, il est possible de prciser au moteur HyperFileSQL tous les paramtres de la requte avant d'excuter la requte. Cette mthode permet de prciser les diffrents paramtres dans n'importe quel ordre (intressant pour les requtes ncessitant de nombreux paramtres). La syntaxe utiliser est la suivante :
<Nom de la <Nom de la ... <Nom de la <Rsultat> requte>.<Nom du paramtre 1> = <Valeur du paramtre 1> requte>.<Nom du paramtre 2> = <Valeur du paramtre 2> requte>.<Nom du paramtre n> = <Valeur du paramtre n> = HExcuteRequte(<Nom de la requte> [, <Connexion>] [, <Mode>])
218
Attention : Le nom du paramtre doit tre le nom spcifi lors de la cration de la requte sous l'diteur de requte. Ce nom doit tre diffrent dun nom de rubrique. Il nest pas possible dutiliser doprateurs dindirection ou la compilation dynamique (fonction Compile) avec cette syntaxe. A chaque excution de la requte avec la fonction HExcuteRequte, les paramtres sont r-initialiss (remis 0). Si au moins un paramtre est spcifi dans la fonction HExcuteRequte, tous les paramtres spcifis prcdemment seront ignors. La valeur du paramtre peut correspondre NULL. Si un des paramtres n'est pas prcis, la condition correspondante ne sera pas prise en compte
Ne pas spcifier tous les paramtres
Quelle que soit la faon de passer les paramtres la requte, tous les paramtres de la requte ne doivent pas obligatoirement tre prciss. Les conditions de la requte utilisant des paramtres non prciss seront ignores. Par exemple : Soit la requte "Clients_nom_prnom" dont le code SQL est le suivant :
SELECT * FROM CLIENT WHERE NOM = {Param1} ET PRENOM = {Param2}
Les 2 paramtres sont donns : HExcuteRequte(Clients_nom_prnom, hRequteDfaut, "Dupond", "Jean") excutera la requte : SELECT * FROM CLIENT WHERE NOM = 'Dupond' ET PRENOM = 'Jean' Seul le nom est donn : HExcuteRequte(Clients_nom_prnom, hRequteDfaut, "Dupond") excutera la requte : SELECT * FROM CLIENT WHERE NOM = 'Dupond' Seul le prnom est donn. Le nom doit cependant tre spcifi et correspondre Null. sNom est un Variant = Null // utilisation du variant obligatoire pour variable de type Null (non renseigne) HExcuteRequte(Clients_nom_prnom, hRequteDfaut, sNom, "Jean") Ou HExcuteRequte(Clients_nom_prnom, hRequteDfaut, Null, "Jean") excutera la requte SELECT * FROM CLIENT WHERE PRENOM = 'Jean'
219
220
INDEX
A
Afficher N derniers enregistrements N premiers enregistrements Rubrique Ajouter Condition de slection Jointure Opration Rubrique Tri sur une rubrique 199 199 192 195 200 194 190 193 Fentre de description Dossier Doublons 183 202 200
E
Editeur de requtes Configuration minimale Documentation Fentre principale Installation Interface Version Dveloppeur Version Utilisateur Enchanement des conditions de slection Modifier Enregistrement Insrer Modifier N derniers enregistrements N premiers enregistrements Priode donne Slectionner Supprimer Enregistrer Requte Etat Utiliser une requte dans un tat Excel Exporter la requte 157 158 158 159 158 159 157 157 197 198 168 170 199 199 199 166 172 201 210 207 206
B
Barre Icnes Outils Blocage systme 162 159, 162 202
C
Calcul Caractristiques dune requte Champ dune fentre Utiliser une requte dans un champ Clavier (raccourcis) Combiner des requtes Combo Utilisation dune requte paramtre Commande SQL Comptage Condition de slection Ajouter Enchanement Modifier Supprimer Utiliser une sous-requte Cration Requte 193 190 209 163 174 215 177 190 195 195 197 196 197 212 165
F
Fentre Fentre principale de lditeur Utiliser une requte dans une fentre Fermer une requte Fichier Excel XLS XML Full-text 159 209 201 207 207 208 190
D
DELETE Description 172
H
HExcuteRequte 211 Partie 2 : Editeur de requtes 221
HExcuteRequteSQL hRequteSansCorrection
P
Utilisation dune requte paramtre Paramtres Passer des paramtres Priode donne Projet 214 213 218 199 164
I
Imprimer Dossier Rsultat INSERT Insertion denregistrements Interface Editeur de requtes 202 208 168 168 159
R
Raccourcis clavier Recherche full-text Rcupration automatique Renommer Requte Rubrique Requte Caractristiques Code SQL Compose Condition de slection Crer Dfinition Description Dossier Doublon Enregistrer Excution Exporter Fermer Imprimer Indpendante Insertion Intgre Jointure Manipulation Mode de cration Modification N derniers enregistrements N premiers enregistrements Optimiser la vitesse dexcution Ouvrir Paramtre Prsentation Rcupration automatique Renommer Requte avance Requte compose 163 190 202 201 191 190 176 174 195 165 155 183 202 200 201 211 206 201 208 182 168 182 200 211 182 170 199 199 203 201 213 155 202 201 212 174
J
Jointure Ajouter R-initialiser Supprimer 200 200 201 201
L
Lancer lditeur de requtes 159 Liste Utilisation dune requte paramtre 215
M
Menu Option Mode de requte Modifier Condition de slection Enchanement des conditions Enregistrements Valeurs affiches Mot de passe 159 161 182 196 198 170 194 206, 211
O
Opration Ajouter Supprimer Optimiser la vitesse dexcution Options de menu Ordre de tri Outils Ouvrir Requte 193 194 194 203 161 192 162 201
222
Requte dinsertion 168 Requte de modification 170 Requte de slection 166 Requte de suppression 172 Requte indpendante 182 Requte intgre 182 Rtro-analyse 177 Rubrique 190 Slection 166 Sous-requte 212 Suppression 172 Synchronisation 201 Test 205 Types disponibles 165 Utilisation 208 Utiliser avec les fonctions du WLangage211 Utiliser dans un champ 209 Utiliser dans un tat 210 Utiliser dans une fentre 209 Zone dimpression 202 Requte compose 174 Cration 175 Fentre de description 188 Requte dinsertion 168 Cration 169 Fentre de description 189 Test 205 Requte de modification 170 Condition de slection 195 Cration 171 Fentre de description 189 Test 205 Requte de slection 166 Condition de slection 195 Doublon 200 Fentre de description 183 Jointure 200 Modifier les valeurs affiches 194 Oprations possibles 193 Priode donne 199 Rubrique 190 Test 205 Tri des enregistrements 192 Requte de suppression 172 Condition de slection 195 Cration 173 Fentre de description 189 Test 205 Requte en code SQL 176 Commandes SQL disponibles 177
Cration Mode dexcution Requte et projet Requte indpendante Requte intgre Requte paramtre Crer Passer des paramtres Tester Utilisation dans un champ Utilisation dans une page Utiliser Rsultat Exporter vers un fichier Excel Exporter vers un fichier XML Imprimer Modifier les valeurs affiches Utiliser Rtro-analyse Rubrique Comptage Condition de slection Opration Tri
176 176 164 182 182 213 213 218 214 215 214 214 207 208 208 194 208 177 190 190 195 193 192
S
SELECT Slection denregistrements Sous-Requte SQL Commandes SQL Supprimer Condition de slection Enregistrements Jointure Opration Rubrique Tri sur une rubrique Synchronisation 166 166 212 176 177 197 172 201 194 192 193 201
T
Table Utilisation dune requte paramtre Tester Tri Ajouter Supprimer Type de requtes 215 205 192 193 193 165 223
U
UNION UPDATE Utiliser le rsultat dune requte 174 170 208 XML
X
208
Z
Zone dimpression 202 Zone rpte Utilisation dune requte paramtre 215
V
Volet 160
W
WLangage 211
224
234
2.1 Lancement du logiciel Etats & Requtes ................................................................................................. 234 2.2 Principe dutilisation des tats .................................................................................................................. 234 2.2.1 Modification dun tat ................................................................................................................234 2.2.2 Utilisation dun tat modifi.......................................................................................................234 2.2.3 Utilisation dun nouvel tat........................................................................................................235 2.3 Principe dutilisation des requtes ............................................................................................................ 235 2.3.1 Modification dune requte........................................................................................................235 2.3.2 Utilisation dune requte modifie............................................................................................235 2.3.3 Utilisation dune nouvelle requte ............................................................................................236
237
227
228
1.2 Diffuser le logiciel Etats & Requtes avec votre application WinDev
Pour diffuser le logiciel Etats & Requtes avec votre propre application WinDev, il est ncessaire de : 1. Indiquer au niveau du projet que lapplication autorise le lancement du logiciel Etats & Requtes. 2. Dfinir dans lanalyse les fichiers et les rubriques manipulables avec le logiciel Etats & Requtes. 3. Dfinir les tats et les requtes modifiables sous le logiciel Etats & Requtes. 4. Crer lexcutable et le programme dinstallation de lapplication WinDev. 5. Installer lapplication chez les utilisateurs finals. Remarque : Afin de diminuer la taille du programme d'installation, le logiciel "Etats & Requtes" peut tre tlcharg directement depuis votre application : soit par le menu automatique (menu daide automatique pouvant tre intgr dans une application WinDev), soit par l'aperu avant impression d'un tat, soit lors de l'utilisation de la fonction LanceEtatsEtRequtes. Traduisez les noms de fichiers et de rubriques Vous diffusez le logiciel "Etats & Requtes" dans des pays diffrents (il existe en franais et en anglais). Les langues utilises sont diffrentes : espagnol, roumain, chinois, sudois, ... Si l'utilisateur final souhaite crer des tats ou des requtes, il doit manipuler des noms de fichiers et de rubriques, les noms utiliss dans l'analyse par le concepteur de l'application. Ces noms sont bien souvent en franais, ce qui n'est pas pratique pour l'utilisateur chinois ou roumain. Il est dsormais possible d'indiquer une traduction pour les noms de fichier et de rubrique dans l'analyse.
229
Pour dfinir les paramtres multilingues d'une rubrique de fichier sous le logiciel Etats & Requtes : 1. Sous l'diteur d'analyses de WinDev, slectionnez le fichier contenant la rubrique voulue. 2. Affichez la fentre de description du fichier (option "Structure de fichiers .. Rubriques"). 3. Slectionnez la rubrique voulue. 4. Dans l'onglet "Etats & Requtes", indiquez le nom de la rubrique et son libell dans les diffrentes langues gres par l'analyse. 5. Validez. Attention : Pour prendre en compte les modifications effectues dans l'analyse WinDev, il est bien entendu ncessaire de gnrer l'analyse WinDev (option "Analyse .. Gnration").
Pour rendre plusieurs requtes de votre application modifiables sous le logiciel Etats & Requtes : 1. Slectionnez l'option "Projet .. Performances et amliorations .. Assistant d'amliorations de projet". L'assistant d'amliorations du projet se lance. 2. Affichez l'cran de l'assistant intitul "Etats modifiables par "Etats & Requtes"". 3. Slectionnez l'option "Oui - Autoriser le lancement de "Etats & Requtes"". Passez l'cran suivant. 4. Pour chaque requte concerne, cochez l'option "Requte visible" pour que la requte soit visible sous Etats & Requtes. 5. Validez.
232
Pour utiliser un autre site : 1. Crez un fichier texte LoginFTP.INI. Ce fichier doit tre plac dans le mme rpertoire que l'excutable de l'application. 2. Ce fichier doit contenir les lments suivants :
[FTP] Login = Login de l'utilisateur sur le serveur FTP PSW = Mot de passe de l'utilisateur sur le serveur FTP Serv = Serveur FTP (par exemple ftp.pcsoft.fr) Dir = Rpertoire de tlchargement (par exemple WX16/latest)
Remarques : Si le pack de tlchargement est la racine, il faut mettre uniquement "." dans l'entre Dir. Le nom du fichier tlcharger est "WD160PACKER.exe".
233
234
Il nest donc pas ncessaire de programmer limpression de ltat. Pour que limpression dtats raliss avec le logiciel Etats & Requtes soit possible directement partir dune application WinDev, vous devez prvoir cette fonctionnalit dans votre application. Vous pouvez par exemple intgrer une fentre permettant lutilisateur final de : slectionner un tat ralis avec le logiciel Etats & Requtes. lancer lexcution de cet tat.
Si la requte est utilise comme source de donnes dun tat, la requte modifie sera automatiquement intgre ltat.
Autre requte
Vos utilisateurs finals pourront excuter leurs requtes modifies : soit directement depuis le logiciel Etats & Requtes en cliquant sur licne "Requte .. Tester la requte". soit depuis lapplication WinDev.
ou en slectionnant loption
Pour que lexcution de requtes ralises avec le logiciel Etats & Requtes soit possible directement partir dune application WinDev, vous devez prvoir cette fonctionnalit dans votre application. Vous pouvez par exemple intgrer une fentre permettant lutilisateur final de : slectionner une requte avec le logiciel Etats & Requtes. lancer lexcution de cette requte et afficher son rsultat dans une table (en utilisant par exemple la fonction ConstruitTableFichier).
235
Pour que lexcution de requtes ralises avec le logiciel Etats & Requtes soit possible directement partir dune application WinDev, vous devez prvoir cette fonctionnalit dans votre application. Vous pouvez par exemple intgrer une fentre permettant lutilisateur final de : slectionner une requte avec le logiciel Etats & Requtes. lancer lexcution de cette requte et afficher son rsultat dans une table (en utilisant par exemple la fonction ConstruitTableFichier).
236
237
238