PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → Reports & Queries → Imprimer les données d'un champ table filtré
Imprimer les données d'un champ table filtré
Started by Patrick COURT, Jan., 10 2024 3:58 PM - 4 replies
Registered member
2 messages
Posted on January, 10 2024 - 3:58 PM
Bonjour à tous
Suis suis absolument débutant dans windev et souhaite votre concours pour un pb d'impression.
Je viens d'un autre univers (4D de chez ACI) où la notion de sélection était plus simple.

Dans une fenetre j'affiche un champ table avec ses données.
J'opère un filtre avec la loupe pour effectuer une séléction.
Tout se passe correctement j'ai n enregistrements affichés à l'écran.
Je veux tout simplement imprimer cette sélection au moyen d'un état créé avec l'éditeur.
Lorsque j'utilise le Clic droit et "imprimer", l'impression est bien lancée avec mon état mais les data sont vides sur l'impression !
Pourquoi ? mystère.
Si quelqu'un pouvait m'aider ce serait sympa
Cordialement
Posted on January, 12 2024 - 11:17 AM
Bonjour ,
tu dois voir le source de donnée de l'état que t'as crée avec l’éditeur , tu peux aussi choisir le bouton Imprimer directement


Cordialement
Registered member
2 messages
Posted on March, 09 2024 - 10:59 AM
Merci testeur de m'avoir répondu.
En fait, je ne comprends pas pourquoi les datas ne sont pas imprimées dans l'état alors que le nombre d'enregistrements prends bien en compte le filtre. l'état s'imprime bien, avec le nombre de lignes correspondant au filtre mais pas les données ???
J'ai résolu l'affaire en créant un état automatique par le menu données/table et liste/Etat sur champ table.
L'état créé prend bien les datas filtrées ...
Je ne vois pas la différence avec le mien mais du moment que ça fonctionne ...

merci encore
Posted on October, 08 2024 - 11:09 AM
Patrick COURT escribío:
Bonjour à tous
Suis suis absolument débutant dans windev et souhaite votre concours pour un pb d'impression.
Je viens d'un autre univers (4D de chez ACI) où la notion de sélection était plus simple.

Dans une fenetre j'affiche un champ table avec ses données.
J'opère un filtre avec la loupe pour effectuer une séléction.
Tout se passe correctement j'ai n enregistrements affichés à l'écran.
Je veux tout simplement imprimer cette sélection au moyen d'un état créé avec l'éditeur.
Lorsque j'utilise le Clic droit et "imprimer", l'impression est bien lancée avec mon état mais les data sont vides sur l'impression !
Pourquoi ? mystère.
Si quelqu'un pouvait m'aider ce serait sympa
Cordialement


Bonjour !

Pour résoudre ton problème d'impression dans WinDev, voici quelques étapes à suivre :

Vérification du Filtre : Assure-toi que le filtre appliqué sur ta table est bien configuré et qu'il filtre correctement les données. Tu peux tester cela en affichant les données filtrées dans un champ ou une autre table.

Création de l'État : Lorsque tu crées ton état pour l'impression, assure-toi que l'état utilise la même source de données que celle de ta table. Si tu utilises une requête ou une table filtrée, l'état doit également y faire référence.

Passage des Données à l'État : Dans le code de ton bouton "Imprimer", vérifie comment tu passes les données à l'état. Utilise la fonction Imprime en spécifiant le bon contexte ou en passant les paramètres nécessaires.

Exemple :
// Supposons que ton état s'appelle "MonEtat"
MonEtat..Fichier = "NomDeTaTable"
MonEtat..Filtre = "Condition de filtre"
Imprime(MonEtat)
Vérification des Résultats de l'État : Si tu as des messages d'erreur ou si les données ne s'affichent pas comme prévu, essaie d'utiliser le mode de débogage pour vérifier les valeurs qui sont passées à l'état.

Tests avec des Données Simples : Pour isoler le problème, tu pourrais essayer d'imprimer une sélection plus simple ou même toutes les données pour voir si cela fonctionne.
Posted on December, 02 2024 - 7:35 AM
Bonjour,

Il semble que votre problème soit lié à la manière dont les données filtrées dans le champ table sont passées à l'état pour l'impression dans Windev. Voici quelques pistes pour résoudre ce problème :

1. Comprendre la sélection dans le champ table
Lorsque vous appliquez un filtre dans le champ table avec la loupe, les données visibles sont un sous-ensemble des données de la source (par exemple, une requête ou un fichier de données). Cependant, le filtre appliqué au niveau de l'affichage ne modifie pas directement la source des données.
Lorsque vous lancez une impression, Windev ne sait pas automatiquement que vous souhaitez imprimer les données filtrées. Il peut essayer d'utiliser la source de données complète, qui n'est pas restreinte par le filtre.
2. Modifier la source des données pour l'impression
Pour imprimer uniquement les données visibles après le filtre :

Enregistrer la sélection dans une variable ou une table mémoire :

Parcourez les données affichées dans le champ table et stockez-les dans une table mémoire ou une structure temporaire.
Exemple :
wlanguage
Copy code
TableMémoire..Visible = Faux
POUR i = 1 À Table..Occurrence
SI Table[i]..Visible ALORS
TableAjouteLigne(TableMémoire, Table[i])
FIN
FIN
Lier l'état à cette table mémoire :

Lorsque vous configurez l'état dans l'éditeur d'états, spécifiez que la source des données est la table mémoire contenant uniquement les données filtrées.
3. Utiliser les options intégrées de Windev
Si vous utilisez un bouton d'impression ou une action pré-configurée, vérifiez dans le code associé que vous passez bien les données visibles.
Utilisez la fonction iImprimeEtat en précisant la source de données. Par exemple :
wlanguage
Copy code
iImprimeEtat(EtatMonEtat, TableMémoire)
4. Vérifier les paramètres du champ table
Assurez-vous que le champ table est bien lié à une source de données dynamique ou mémoire. Si c'est une requête, pensez à la reconfigurer avant de lancer l'impression pour inclure uniquement les enregistrements correspondant au filtre.
5. Tester avec un code de base
Voici un exemple de code pour lancer une impression après un filtre :

wlanguage
Copy code
// Parcours de la table pour créer une liste filtrée
TableMémoire..Visible = Faux
POUR i = 1 À Table..Occurrence
SI Table[i]..Visible ALORS
TableAjouteLigne(TableMémoire, Table[i])
FIN
FIN

// Lancer l'impression avec l'état lié à TableMémoire
SI iImprimeEtat(EtatMonEtat, TableMémoire) = Faux ALORS
Info("Erreur lors de l'impression.")
FIN
6. Vérifier la configuration de l'état
Dans l'éditeur d'états, assurez-vous que l'état est bien configuré pour afficher les données de la source choisie.