DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur d'états / Sources de données
  • Présentation
  • Créer un état sur une zone mémoire
  • Imprimer un état sur une zone mémoire
  • Exemple WINDEV
  • Exemple WEBDEV
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
Etat sur une zone mémoire
Présentation
Un état sur une zone mémoire permet d'imprimer les enregistrements stockés dans une zone mémoire. La zone mémoire doit obligatoirement contenir tous les numéros des enregistrements du fichier de données à imprimer.
Remarque : Ce type d'état n'est pas disponible en WINDEV Mobile.
Caractéristiques d'un état sur une zone mémoire :
  • un état sur une zone mémoire est lié au fichier de données de base de cette zone mémoire. L'état permet d'imprimer les enregistrements provenant de ce fichier de données de base.
  • l' ordre d'impression des enregistrements correspond à l'ordre des numéros d'enregistrements présents dans la zone mémoire.
Il est ainsi possible par exemple de :
  • stocker dans une zone mémoire les numéros d'enregistrements sélectionnés par un ou plusieurs traitements.
  • imprimer les enregistrements uniquement lorsque la sélection aura été réalisée.
La création d'un état sur une zone mémoire s'effectue grâce à l'assistant de création d'un état.
Pour tester un état sur zone mémoire, il est nécessaire de :
  • créer et d'initialiser la zone mémoire.
  • imprimer l'état.
Lorsque l'état sur une zone mémoire est créé, il est possible à tout moment de :
  • modifier la source de données de l'état (onglet "Données" de la description de l'état).
  • ajouter ou supprimer des champs Rubriques liés à la zone mémoire associée à l'état.
Le logiciel Etats & Requêtes ne permet pas de créer des états sur une zone mémoire. Cependant, il est possible de personnaliser des états sur une zone mémoire créés sous l'éditeur d'états intégré (couleur, polices, taille, ...).
Créer un état sur une zone mémoire
Pour créer un état sur une zone mémoire :
  1. 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.
  2. Choisissez la présentation de votre état (tableau, fiche, étiquette, ...). Pour plus de détails, consultez Les différents types d'états.
  3. 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.
  4. Sélectionnez la source de données de l'état (option "Autre (programmation, fichier texte, zone mémoire, vue HFSQL, ...").
  5. Sélectionnez le type de la source de données ("d'une zone mémoire que j'ai remplie par programmation").
  6. Sélectionnez le fichier de données de base de la zone mémoire associée à l'état.
  7. Sélectionnez les rubriques de tri de l'état. Ces rubriques seront utilisées pour trier les données imprimées dans l'état. Pour plus de détails sur les tris, consultez les Tris dans un état.
  8. 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 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.
  9. Sélectionnez les rubriques affichées dans l'état. Seuls les champs reliés aux rubriques de la zone mémoire seront renseignés.
    Pour chaque rubrique du fichier 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.
  10. Modifiez si nécessaire l'ordre d'apparition des différents champs dans l'état à l'aide des boutons fléchés à droite du tableau.
  11. Si le fichier de données de base de la zone mémoire 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 calcul 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.
  12. Selon le type d'état en cours de création, indiquez les options spécifiques correspondantes.
    Type d'étatOptions spécifiques
    État sur formulaireImage du formulaire, impression de l'image du formulaire, ...
    Options détaillées dans la page Etat sur formulaire
    État ÉtiquetteFormat des étiquettes, nombre d'exemplaires identiques, ...
    Options détaillées dans la page Etat Étiquette
  13. 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.
  14. Sélectionnez le gabarit de l'état si nécessaire.
  15. 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.
    WINDEV Il est également possible d'indiquer si l'état peut être modifié par l'utilisateur final sous le logiciel "Etats & Requêtes".
  16. Validez la création de l'état.
  17. 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.
  18. 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.
  19. L'état en cours de création s'affiche sous l'éditeur d'états.
Imprimer un état sur une zone mémoire
Pour imprimer un état sur une zone mémoire :
  1. Créez la zone mémoire avec la fonction MemCrée.
  2. Ajoutez des enregistrements dans la zone mémoire avec la fonction MemAjoute et triez si nécessaire ces enregistrements grâce à la fonction MemTrie.
  3. Paramétrez la destination de l'impression de l'état grâce à la fonction iAperçu (aperçu avant impression, impression dans un fichier HTML, ...). Pour plus de détails, consultez Modes d'impression d'un état.
  4. Précisez les paramètres suivants grâce à la fonction iImprimeEtat :
    • le nom de l'état à imprimer.
    • le nom de la zone mémoire utilisée.
  5. Supprimez la zone mémoire avec la fonction MemSupprimeTout à la fin de l'impression de l'état.
Remarques :
  • Si des paramètres supplémentaires doivent être passés à l'état, ces paramètres doivent être indiqués dans la fonction iImprimeEtat, après le nom de la zone mémoire utilisée. Pour plus de détails, consultez Etat paramétré.
  • La propriété NomZoneMem utilisée dans le code de l'état permet de connaître et de changer le nom de la zone mémoire associée à l'état.
  • La propriété NomSource utilisée dans le code de l'état permet de connaître et de changer le nom du fichier de base de la zone mémoire associée à l'état.
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.
WINDEVEtats et Requêtes

Exemple WINDEV

L'utilisateur sélectionne les clients auxquels une offre commerciale doit être envoyée. Le nom des clients sélectionnés est contenu dans le champ Liste "Destinataire".
Après avoir sélectionné l'ensemble des clients, l'utilisateur clique sur le bouton "BTN_Imprimer" pour imprimer l'état "ETAT_ZoneMem".
Lors d'un clic sur le champ Bouton "Imprimer" :
  • la zone mémoire "ZoneMem" est créé.
  • le numéro d'enregistrement de chaque client sélectionné est récupéré et ajouté dans la zone mémoire "ZoneMem".
  • l'état "ETAT_ZoneMem" est imprimé.
  • la zone mémoire "ZoneMem" est détruite.
Dans cet exemple, le code de clic du champ Bouton "BTN_Imprimer" est le suivant :
nIndice est un entier
// Créer la zone mémoire
MemCrée("ZoneMem")
// Parcourir la liste LISTE_Destinataire et initialiser la zone mémoire
POUR nIndice = 1 _À_ LISTE_Destinataire.Occurrence
// Rechercher l'enregistrement en cours
HLitRecherche(Client, Nom, LISTE_Destinataire[nIndice])
SI HTrouve(Client) = Vrai ALORS
// Ajouter les éléments dans la zone mémoire
MemAjoute("ZoneMem", "", HNumEnr())
FIN
FIN
// Ouvrir le visualisateur de rapports
iDestination(iVisualisateur)
// Imprimer l'état
iImprimeEtat(ETAT_ZoneMem, "ZoneMem")
// Destruction de la zone mémoire
MemSupprimeTout("ZoneMem")
WEBDEV - Code Serveur

Exemple WEBDEV

L'internaute sélectionne les clients auxquels une offre commerciale doit être envoyée. Le nom des clients sélectionnés est contenu dans le champ Liste "Destinataire".
Après avoir sélectionné l'ensemble des clients, l'internaute clique sur le bouton "Imprimer" pour imprimer l'état "ETAT_ZoneMem".
Lors d'un clic sur le champ Bouton "BTN_Imprimer" :
  • la zone mémoire "ZoneMem" est créé.
  • le numéro d'enregistrement de chaque client sélectionné est récupéré et ajouté dans la zone mémoire "ZoneMem".
  • l'état "ETAT_ZoneMem" est affiché dans un fichier PDF.
  • la zone mémoire "ZoneMem" est détruite.
Dans cet exemple, le code de clic du champ Bouton "BTN_Imprimer" est le suivant :
nIndice est un entier
// Créer la zone mémoire
MemCrée("ZoneMem")
// Parcourir la liste LISTE_Destinataire et initialiser la zone mémoire
POUR nIndice = 1 _À_ LISTE_Destinataire.Occurrence
// Recherche de l'enregistrement en cours
HLitRecherche(Client, Nom, LISTE_Destinataire[nIndice])
SI HTrouve(Client) = Vrai ALORS
// Ajouter les éléments dans la zone mémoire
MemAjoute("ZoneMem", "", HNumEnr())
FIN
FIN
// Génère un nom de fichier unique
NomFicUnique est une chaîne = fRepWeb() + "\" + "ETAT_ZoneMem_" + DateSys() + HeureSys() + ".pdf"
// Paramètre la destination de l'impression
iDestination(iPDF, NomFicUnique)
// Imprime l'état
iImprimeEtat(ETAT_ZoneMem, "ZoneMem")
// Destruction de la zone mémoire
MemSupprimeTout("ZoneMem")
// Envoie le fichier dans le navigateur
FichierAffiche(NomFicUnique, "application/pdf")
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 : 30/06/2023

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