DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Etat Interne
  • Présentation du champ "Etat interne"
  • Champ d'un état
  • Avantages des états internes par rapport aux états imbriqués
  • Comment le faire ?
  • Créer un état principal composé de plusieurs états secondaires
  • Etat principal non vierge
  • Etat secondaire
  • Etat secondaire basé sur une requête paramétrée
  • Etat secondaire basé sur une requête utilisant une connexion spécifique
  • Etat secondaire basé sur une vue HFSQL
  • Passer des paramètres à un état interne
  • Notes
  • Dimension des états secondaires
  • Diminuer la largeur d'un état secondaire
  • Saut de page de l'état secondaire
  • Ouverture de l'état interne
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation du champ "Etat interne"

Champ d'un état

Grâce aux champs de type "Etat interne", il est possible d'imprimer plusieurs états (états secondaires) dans un seul état (état principal) sans programmation.
Par exemple, l'état principal suivant est composé de deux états secondaires imprimés côte à côte :
  • un état affichant les données sous forme de tableau.
  • un état affichant les données sous forme de graphe.
Avantages des états internes par rapport aux états imbriqués
Les états imbriqués permettent également d'imprimer plusieurs états secondaires dans un seul état principal. Les états secondaires sont imprimés les uns en dessous des autres.
Pour imprimer ces états secondaires, utilisez la fonction iImprimeEtat dans le code du bloc où les états secondaires doivent être imprimés.
Les états internes permettent d'imprimer sans programmation plusieurs états :
  • soit les uns en dessous des autres.
  • soit les uns à côté des autres.
Comment le faire ?

Créer un état principal composé de plusieurs états secondaires

Pour créer un état principal composé de plusieurs états secondaires :
  1. Créez et enregistrez tous les états secondaires.
  2. Créez l'état principal :
    • 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 se lance.
    • Dans l'assistant, sélectionnez "Etat vierge" et validez.
  3. Dans l'état principal, créez autant de champs de type "Etat interne" que d'états secondaires à imprimer.
    Pour créer un état interne, sous le volet "Création", dans le groupe "Structure", cliquez sur "Etat interne".
    Remarque : L'état principal peut contenir tous les autres types de champs.
  4. Associez chaque champ "Etat interne" à un état secondaire (option "Etat imprimé" dans l'onglet "Général" de la description du champ). L'état secondaire sera imprimé en totalité dans le champ "Etat interne".
  5. Positionnez les champs "Etat interne" dans l'état principal.
  6. Testez l'état principal ( parmi les boutons d'accès rapide) pour vérifier l'impression de votre état.

Etat principal non vierge

Si l'état principal et les états secondaires ont la même source de données, il est conseillé d'utiliser un contexte HFSQL indépendant :
  • soit pour l'état principal.
  • soit pour les états secondaires.
Remarque : Pour définir un contexte HFSQL indépendant :
  1. Affichez la description de l'état (option "Description de l'état" du menu contextuel de l'état).
  2. Dans l'onglet "Données", cochez l'option "L'exécution de l'état n'affecte pas les parcours (contexte HFSQL indépendant)".

Etat secondaire

Un état secondaire peut contenir tous les types de champs sauf les champs de type "Etat interne".

Etat secondaire basé sur une requête paramétrée

Si l'état secondaire est basé sur une requête paramétrée, utilisez la fonction iInitRequêteEtat pour passer les paramètres à la requête. Cette fonction doit être utilisée dans l'événement "Avant impression" du bloc contenant le champ "Etat Interne".

Etat secondaire basé sur une requête utilisant une connexion spécifique

Si l'état secondaire est basé sur une requête manipulant une connexion spécifique, utilisez la fonction iInitRequêteEtatConnexion pour exécuter cette requête (et lui passer si nécessaire des paramètres). Cette fonction doit être utilisée dans l'événement "Avant impression" du bloc contenant le champ "Etat Interne".

Etat secondaire basé sur une vue HFSQL

Si l'état secondaire est basé sur une vue HFSQL :
  1. Déclarez une variable globale de type chaîne de caractères dans le projet et affectez à cette variable le nom de la vue HFSQL avant l'exécution de l'état principal.
  2. Associez la vue à l'état secondaire grâce à la propriété NomVue dans le code d'ouverture de l'état secondaire :
    <NomEtatSecondaire>.NomVue = <NomVariableGlobale>

Passer des paramètres à un état interne

Les paramètres donnés à l'état (lors de l'appel à la fonction iImprimeEtat) sont automatiquement transmis à l'état interne. Attention, dans ce cas, le passage par référence des paramètres n'est pas garanti.
Pour passer des paramètres à un état interne, il est conseillé d'utiliser des variables globales. Par exemple, il est possible de déclarer une variable globale dans l'état appelant. Cette variable pourra être ensuite manipulée dans l'état interne grâce à la syntaxe :
<NomEtatAppelant>.<Nom de la variable>
Notes

Dimension des états secondaires

Lors de l'impression de l'état principal, la largeur des états secondaires est ajustée en fonction de la largeur du champ "Etat interne".
Tous les blocs des états secondaires seront imprimés. L'état principal s'adaptera automatiquement à la hauteur des états secondaires en :
  • augmentant si nécessaire la hauteur du champ "Etat interne".
  • augmentant si nécessaire la hauteur du bloc contenant le champ "Etat interne".
  • déplaçant vers le bas si nécessaire les champs positionnés sous le champ "Etat interne".

Diminuer la largeur d'un état secondaire

Pour diminuer la largeur d'un état secondaire :
  1. Affichez l'onglet "Format" de la description de l'état secondaire (option "Description de l'état" du menu contextuel de l'état).
  2. Modifiez la largeur de la page sur laquelle l'état secondaire est imprimé.
  3. Validez.

Saut de page de l'état secondaire

Les sauts de page définis dans un état secondaire seront ignorés lors de l'impression de l'état principal.

Ouverture de l'état interne

Le menu contextuel du champ "Etat Interne" sous l'éditeur permet d'ouvrir directement l'état interne grâce à l'option "Ouvrir l'état interne".
Liste des exemples associés :
WD Etats 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, ...)
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 23/06/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale