- Présentation
- État sur requête indépendante
- Présentation
- Créer un état sur requête indépendante
- État sur requête intégrée
- Présentation
- Créer un état sur requête intégrée
- Manipuler une rubrique de la requête intégrée depuis un code de l'état
- État basé sur une requête paramétrée
- Imprimer un état basé sur une requête
- Imprimer un état basé sur une requête sans paramètre
- Imprimer un état basé sur une requête avec paramètres
Une requête permet de sélectionner simplement certains enregistrements d'un ou de plusieurs fichiers de données. Une requête permet aussi de réaliser des calculs sur les données sélectionnées. Il est ainsi possible, par exemple, de sélectionner toutes les commandes des clients habitant New York et de réaliser un total du montant des commandes par client. L'utilisation de requêtes dans un état permet de réaliser rapidement des états complexes. La requête présélectionne les enregistrements et l'état organise toutes les données sélectionnées et réalise les différents calculs. Attention : Pour optimiser l'état, il est recommandé de réaliser les différents calculs (totaux sur des rubriques par exemple) directement dans l'état et non dans la requête.
L'éditeur d'états offre la possibilité de créer un état basé sur une requête selon plusieurs modes : - soit la requête est créée et enregistrée sous l'éditeur de requêtes. L'état est alors basé sur le fichier correspondant à la requête (fichier ".WDR"). La requête peut être réutilisée dans un autre état, une fenêtre, un champ, ... La requête peut être modifiée à tout moment sous l'éditeur de requêtes. La requête est dite indépendante. Pour plus de détails, consultez le paragraphe Etat sur requête indépendante.
- soit la requête est créée lors de la création de l'état. La requête est alors intégrée à l'état. Aucun fichier spécifique à la requête n'est créé. La requête peut uniquement être modifiée à partir de l'état qui l'a créée. Elle ne peut pas être réutilisée dans un autre état, une fenêtre, un champ, ... La requête est dite intégrée. Pour plus de détails, consultez le paragraphe Etat sur requête intégrée.
- soit la requête est basée sur des données provenant d'une connexion (non disponible sous WINDEV Mobile). Pour plus de détails, consultez Créer une requête SQL via une connexion (ODBC, Connecteur Natif, ...).
Remarque : Ce type d'état sur requête est disponible même si aucune analyse n'est associée au projet WINDEV ou WEBDEV.
Astuce : Il est possible de créer directement depuis l'éditeur de requêtes, un état basé sur la requête de sélection en cours. Pour cela, sous le volet "Requête", dans le groupe "Liaison Fichier", cliquez sur "Créer un état". Remarque : Une requête (intégrée ou indépendante) peut être paramétrée. Pour plus de détails, consultez le paragraphe Etat sur requête paramétrée. L'état pourra être alors imprimé très simplement depuis vos programmes WLangage. Pour plus de détails, consultez Imprimer un état sur requête.
Cette page d'aide présente : État sur requête indépendante Présentation La requête doit être créée avant la création de l'état (pour plus de détails, consultez Créer une requête). Lors de la création de l'état, il suffit de spécifier le nom de la requête utilisée. Si la requête est modifiée sous l'éditeur de requêtes (suppression de rubriques résultat par exemple), un écran de synchronisation est affiché lors de la fermeture de la requête. Il est ainsi possible de reporter les modifications effectuées sur la requête dans tous les éléments utilisant cette requête (y compris les états). Créer un état sur requête indépendante Pour créer un état sur requête indépendante : - Cliquez sur
parmi les boutons d'accès rapide. - La fenêtre de création d'un nouvel élément s'affiche : cliquez sur "Etat" puis sur "Etat".
- L'assistant de création d'un état s'affiche.
- Choisissez la présentation de votre état (tableau, fiche, étiquette, ...). Pour plus de détails, consultez Les différents types d'états.
- Sélectionnez si nécessaire le modèle d'états à utiliser. Un modèle d'états permet de respecter une mise en page spécifique. Pour plus de détails sur les modèles d'états, consultez Les modèles d'états.
- Sélectionnez la source de données de l'état (option "D'un fichier de données ou d'une requête existante").
- Sélectionnez la requête sur laquelle est basé l'état. Seules les requêtes présentes dans l'application en cours sont proposées.
- Pour grouper les enregistrements, il est possible de créer des ruptures sur les rubriques de tri. Pour créer des ruptures, répondez "Oui" à la question "Voulez-vous des ruptures dans l'état ?".
L'étape suivante de l'assistant permet alors de sélectionner les rubriques de tri correspondant aux ruptures. Pour plus de détails sur les ruptures, consultez les Ruptures dans un état. - Pour chaque rubrique affichée dans l'état :
- saisissez le libellé correspondant. Ce libellé sera affiché :
- soit avant la rubrique. Par exemple :
- soit dans l'entête de la colonne (cas des états Tableau). Par exemple :Ce libellé pourra être modifié directement sous l'éditeur d'états.
- sélectionnez le bloc dans lequel le champ associé à la rubrique doit être imprimé. La position des différents champs pourra être modifiée directement sous l'éditeur d'états. Pour plus de détails sur les différents blocs et sur leur position dans un état, consultez Blocs d'un état.
- Modifiez si nécessaire l'ordre d'affichage des différents champs dans l'état à l'aide des boutons fléchés à droite du tableau.
- Si la requête associée à l'état contient au moins une rubrique de type numérique, il est possible de réaliser des calculs sur ces rubriques. Spécifiez le calcul réalisé pour chaque rubrique (somme, moyenne, ...). Deux types de calculs sont possibles :
- calcul général : un champ Calculé sera créé dans le bloc Fin de document.
- calcul sur rupture : un champ Calculé sera créé dans le bloc Bas de rupture. Dans les calculs sur rupture, le résultat du calcul est réinitialisé à chaque rupture. Pour réaliser un calcul sur rupture, une rupture doit être présente dans l'état en cours de création.
- Selon le type d'état en cours de création, indiquez les options spécifiques correspondantes.
| | Type d'état | Options spécifiques |
---|
État sur formulaire | Image du formulaire, impression de l'image du formulaire, ... Options détaillées dans la page Etat sur formulaire | État Étiquette | Format des étiquettes, nombre d'exemplaires identiques, ... Options détaillées dans la page Etat Étiquette |
- Spécifiez le format de la feuille sur laquelle l'état va être imprimé. Par défaut, l'état est imprimé sur une feuille au format A4.
Remarque : Par défaut, les champs de l'état sont disposés sur une seule colonne. Pour réaliser un état multicolonne, il suffit de spécifier le nombre de colonnes voulues dans l'onglet "Format" de la fenêtre de description de l'état. - Sélectionnez le gabarit de l'état si nécessaire.
- Saisissez le nom et le titre de l'état (nom du fichier ".WDE" correspondant à l'état). Ce nom permettra d'identifier l'état dans vos programmes.
- Validez la création de l'état.
- L'éditeur d'états propose automatiquement de changer le format de l'état utilisé si les conditions suivantes sont réunies :
- l'état en cours de création comporte un tableau.
- le format de l'état ne permet pas d'afficher l'ensemble des colonnes du tableau.
- Si nécessaire, indiquez le mode de réduction de l'état :
- Imprimer l'état sur plusieurs pages. Dans ce cas, l'utilisateur final devra assembler les pages. Pour plus de détails, consultez Impression multipage.
- Utiliser le mode paysage.
- Réduire l'état par rapport à l'original. Attention : selon le pourcentage de réduction choisi, l'état imprimé pourra devenir illisible.
- L'état en cours de création s'affiche sous l'éditeur d'états.
État sur requête intégrée Présentation La requête est créée directement lors de la création de l'état. Cette requête sera modifiée directement depuis l'éditeur d'états (option "Éditer la requête" du menu contextuel de l'état). Si des modifications sont réalisées dans la requête, l'éditeur d'états liste les modifications réalisées et les incidences sur l'état. Remarque : Pour passer du mode intégré au mode indépendant (c'est-à -dire pour extraire une requête d'un état) : - Affichez l'état basé sur la requête intégrée (sous l'éditeur d'états).
- Sélectionnez l'option "Editer la requête" du menu contextuel de l'état. Autre solution : sous le volet "Modification", dans le groupe "Etat", cliquez sur "Éditer la requête". La requête s'affiche sous l'éditeur de requêtes.
- Sous le volet "Accueil", dans le groupe "Général", déroulez "Enregistrer" et sélectionnez "Exporter .. Vers une requête indépendante".
- Enregistrez la nouvelle requête.
Créer un état sur requête intégrée Pour créer un état sur requête intégrée : - Cliquez sur
parmi les boutons d'accès rapide. - La fenêtre de création d'un nouvel élément s'affiche : cliquez sur "Etat" puis sur "Etat".
- L'assistant de création d'un état s'affiche.
- Choisissez la présentation de votre état (tableau, fiche, étiquette, ...). Pour plus de détails, consultez Les différents types d'états.
- Sélectionnez si nécessaire le modèle d'états à utiliser. Un modèle d'états permet de respecter une mise en page spécifique. Pour plus de détails sur les modèles d'états, consultez Les modèles d'états.
- Sélectionnez la source de données de l'état (option "D'une nouvelle requête").
- L'assistant de création de requêtes se lance. Sélectionnez les différentes rubriques utilisées par la requête.
Remarque : Pour simplifier la sélection des rubriques, affichez ces rubriques par ordre alphabétique ou par fichier associé. - Définissez les caractéristiques de la requête (condition de sélection, groupe, tri, ...) en cliquant sur le bouton correspondant.
Pour plus de détails, consultez : - Passez à l'étape suivante.
- Pour grouper les enregistrements, il est possible de créer des ruptures sur les rubriques de tri définies dans la requête. Pour créer des ruptures, répondez "Oui" à la question "Voulez-vous des ruptures dans l'état ?".
L'étape suivante permet alors de sélectionner les rubriques de tri correspondant aux ruptures. Pour plus de détails sur les ruptures, consultez les Ruptures dans un état. - Pour chaque rubrique de la requête affichée dans l'état :
- saisissez le libellé correspondant. Ce libellé sera affiché :
- soit avant la rubrique. Par exemple :
- soit dans l'entête de la colonne (cas des états Tableau). Par exemple : Ce libellé pourra être modifié directement sous l'éditeur d'états.
- sélectionnez le bloc dans lequel le champ associé à la rubrique doit être imprimé. La position des différents champs pourra être modifiée directement sous l'éditeur d'états. Pour plus de détails sur les différents blocs et sur leur position dans un état, consultez Blocs d'un état.
- Modifiez si nécessaire l'ordre d'affichage des différents champs dans l'état à l'aide des boutons fléchés à droite du tableau.
- Si la requête associée à l'état contient au moins une rubrique de type numérique, il est possible de réaliser des calculs sur ces rubriques. Spécifiez le calcul réalisé pour chaque rubrique (somme, moyenne, ...). Deux types de calculs sont possibles :
- calcul général : un champ Calculé sera créé dans le bloc Fin de document.
- calcul sur rupture : un champ Calculé sera créé dans le bloc Bas de rupture. Dans les calculs sur rupture, le résultat du calcul est réinitialisé à chaque rupture. Pour réaliser un calcul sur rupture, une rupture doit être présente dans l'état en cours de création.
- Selon le type d'état en cours de création, indiquez les options spécifiques correspondantes.
| | Type d'état | Options spécifiques |
---|
État sur formulaire | Image du formulaire, impression de l'image du formulaire, ... Options détaillées dans la page Etat sur formulaire | État Étiquette | Format des étiquettes, nombre d'exemplaires identiques, ... Options détaillées dans la page Etat Étiquette |
- Spécifiez le format de la feuille sur laquelle l'état va être imprimé. Par défaut, l'état est imprimé sur une feuille au format A4.
Remarque : Par défaut, les champs de l'état sont disposés sur une seule colonne. Pour réaliser un état multicolonne, il suffit de spécifier le nombre de colonnes voulues dans l'onglet "Format" de la fenêtre de description de l'état. - Sélectionnez le gabarit de l'état si nécessaire.
- Saisissez le nom et le titre de l'état (nom du fichier ".WDE" correspondant à l'état). Ce nom permettra d'identifier l'état dans vos programmes.
- Validez la création de l'état.
- L'éditeur d'états propose automatiquement de changer le format de l'état utilisé si les conditions suivantes sont réunies :
- l'état en cours de création comporte un tableau.
- le format de l'état ne permet pas d'afficher l'ensemble des colonnes du tableau.
- Si nécessaire, indiquez le mode de réduction de l'état :
- Imprimer l'état sur plusieurs pages. Dans ce cas, l'utilisateur final devra assembler les pages. Pour plus de détails, consultez Impression multipage.
- Utiliser le mode paysage.
- Réduire l'état par rapport à l'original. Attention : selon le pourcentage de réduction choisi, l'état imprimé pourra devenir illisible.
- L'état en cours de création s'affiche sous l'éditeur d'états.
Manipuler une rubrique de la requête intégrée depuis un code de l'état Pour accéder à une rubrique de la requête intégrée depuis un des codes de l'état, de ses champs ou de ses blocs, utilisez la syntaxe :
État basé sur une requête paramétrée Une requête (intégrée ou indépendante) peut être paramétrée. Dans ce cas, une ou plusieurs conditions de sélection dépendent d'un paramètre lors de l'exécution de la requête. Ce paramètre pourra par exemple correspondre à la valeur d'un champ de saisie dans une fenêtre. Par exemple, pour imprimer la facture du client X, il suffit de créer un état basé sur une requête paramétrée. Dans cette requête, le paramètre sera par exemple le nom du client. Pour imprimer l'état, il faudra donc préciser la valeur du paramètre avant de lancer l'impression : - lors du test de l'état basé sur une requête paramétrée, une fenêtre s'affiche permettant de saisir les paramètres de la requête.
- en exécution, les paramètres de la requête doivent être spécifiés à l'aide de la fonction iInitRequêteEtat (avant l'utilisation de la fonction iImprimeEtat).
![](https://doc.pcsoft.fr/ext/images/fr/note_v2.png?478445243) Si la requête est créée avec le logiciel Etats & Requêtes, il n'est pas nécessaire d'utiliser la fonction iInitRequêteEtat pour spécifier les paramètres de la requête. En effet, lors de l'exécution d'un état sur une requête paramétrée depuis le logiciel Etats & Requêtes, une fenêtre s'affiche permettant de saisir les paramètres de la requête. Remarque : Pour plus de détails sur les requêtes paramétrées, consultez Requête paramétrée. Imprimer un état basé sur une requête Pour imprimer un état basé sur une requête, il faut distinguer deux cas : - État sur une requête sans paramètre.
- État sur une requête avec paramètres.
Remarques : - Si des paramètres doivent être passés à l'état, ces paramètres doivent être indiqués dans la fonction iImprimeEtat, après le nom de l'état à imprimer. Pour plus de détails, consultez Etat paramétré.
- La propriété NomSource utilisée dans le code de l'état permet de connaître et de changer le nom de la requête associée à l'état.
![](https://doc.pcsoft.fr/ext/images/fr/note_v2.png?478445243) Sous le logiciel Etats & Requêtes, il est possible d'imprimer un état : - soit en lançant une impression (icône
). - soit en testant l'état (icône
).
Il n'est donc pas nécessaire de programmer l'impression de l'état. Lors de l'impression d'un état sur une requête avec paramètre, une fenêtre s'affiche permettant de saisir les paramètres de la requête. Imprimer un état basé sur une requête sans paramètre Pour imprimer une requête sans paramètre, il suffit de : - Paramétrer la destination de l'impression de l'état :
![Android Android](https://doc.pcsoft.fr/ext/images/fr/ANDROID.png?385929803) Sous Android et iOS, grâce à la fonction iDestination (impression dans un fichier PDF). Pour plus de détails, consultez Modes d'impression d'un état. - Préciser le nom de l'état à imprimer grâce à la fonction iImprimeEtat.
Par exemple :![Android Android](https://doc.pcsoft.fr/ext/images/fr/ANDROID.png?385929803) Sous Android et iOS : pour imprimer l'état "ETAT_Requete" :
// Paramètre la destination de l'impression iDestination(iPDF) // Impression de l'état ETAT_Requete iImprimeEtat(ETAT_Requete)
Imprimer un état basé sur une requête avec paramètres Pour imprimer une requête avec paramètres, il suffit de : - Paramétrer la destination de l'impression de l'état :
![Android Android](https://doc.pcsoft.fr/ext/images/fr/ANDROID.png?385929803) Sous Android et iOS, grâce à la fonction iDestination (impression dans un fichier PDF). Pour plus de détails, consultez Modes d'impression d'un état. - Passer les paramètres à la requête grâce à la fonction iInitRequêteEtat.
- Préciser le nom de l'état à imprimer grâce à la fonction iImprimeEtat.
Par exemple : L'état "ETAT_Requete" est basé sur une requête paramétrée. Les paramètres attendus par la requête sont le nom de la société et le type de la société. Ces paramètres ont été saisis dans la fenêtre de lancement de l'impression de l'état. ![Android Android](https://doc.pcsoft.fr/ext/images/fr/ANDROID.png?385929803) Sous Android et iOS :
// Paramètre la destination de l'impression iDestination(iPDF) // Passer les paramètres à la requête associée à l'état iInitRequêteEtat(ETAT_Requete, NomSociété, TypeSociété) // Imprimer la liste des sociétés iImprimeEtat(ETAT_Requete) Remarque : Si certains paramètres attendus par la requête ne sont pas précisés (valeur correspondant à NULL par exemple), les conditions de sélection correspondant à ces paramètres seront ignorées.
Liste des exemples associés :
|
Exemples didactiques (WINDEV) : WD Etats
[ + ] Cet exemple montre les différentes méthodes pour réaliser un état : - impressions basées sur différentes sources de données (requêtes, variables, ...) - impressions basées sur des champs (Table, Tableur, TCD, ...) - impression d'états composés - impressions spécifiques (portrait / paysage, état avec filigrane, état avec code-barres, ...)
|
Documentation également disponible pour…
|
|
|