FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV (précédentes versions)
→
Etat table mémoire par programmation
Etat table mémoire par programmation
Débuté par Ludwig, 14 juil. 2024 23:04 - 6 réponses
Connectez-vous…
Ludwig
#1
Membre enregistré
24 messages
Posté le 14 juillet 2024 - 23:04
Bonjour à tous,
Je cherche quelques explications et/ou aides.
J'ai une table mémoire alimentée par programmation.
Je souhaiterais imprimer l'état de cette table mémoire en la parcourant.
Ainsi, en fonction de la ligne parcourue j'ajouterai ou pas la ligne, je regrouperai ou pas plusieurs lignes, ferai des calculs, etc...
Mais, je ne sais pas du tout comment m'y prendre pour récupérer les données de la table mémoire.
Je peux boucler sur la table mais un message s'affiche : "Aucune donnée à imprimer" ou ça boucle en boucle et l'aperçu est infini.
Quel code est à placer dans le code de l'état et comment récupérer les données pour traitement dans le code du bloc corps ?
Par avance merci.
Signaler
0
0
Voroltinquo
#2
Membre enregistré
4 111 messages
Posté le 15 juillet 2024 - 05:46
Bonjour,
Une solution serait
1-Récupérer les données de ton champ source dans un tableau de structure/classe.
2-Passer cette variable en paramètre de ton état.
Ton état sera créé à partir de la structure/classe concernée.
Note : Il faut définir le tableau de classe/structure en tant que variable globale au projet
Prenons le cas d'un champ table comportant les colonnes N°Client/PrénomClient/NomClient
1-On va créer la classe CCLient:
C
Client
est une
C
lasse
m_saNoClient
est une chaîne
m_saNomClient
est une chaîne
m_saPrenomClient
est une chaîne
FIN
2-On déclare la variable gtabListeClient globale au projet (pour être vue de la fenêtre dans laquelle se trouvent nos données ainsi que de l'état)
3-On crée notre état "Tableau" basé sur une variable à savoir gtabListeClient
4-Le code de l'impression devrait ressembler à cela;
InitialiserParamètre
(
)
//On remplit gtabListeCLient
iDestination
(
iVisualisateur
)
//ou une autre destination
iImprimeEtat
(
E
TAT_Clients
,
gtab
ListeClient
)
avec
Procedure
InitialiserParamètre
(
)
cl
UnClient
est
C
Client
n
Indice
est un entier
POUR
n
Indice
=
1
_À_
TableOccurrence
(
TABLE_
Client
)
cl
UnClient
:
m_saNoClient
=
CO
L_NoClient
[
n
Indice
]
cl
UnClient
:
m_saPrenomClient
=
CO
L_PrenomClient
[
n
Indice
]
cl
UnClient
:
m_saNomClient
=
CO
L_NomClient
[
n
Indice
]
TableauAjoute
(
gtab
ListeClient
,
cl
UnClient
)
FIN
--
Il y a peut être plus simple, mais, ça tourne
Message modifié, 15 juillet 2024 - 06:51
Signaler
0
0
Philippe SB
#3
Membre enregistré
2 676 messages
Posté le 15 juillet 2024 - 09:12
Bonjour,
Pour info, si tu crées ton état selon l'exemple de Voroltinquo, qui me semble être une très bonne solution, il n'est pas nécessaire que le tableau soit déclaré en globale au projet. Il suffit se passer le tableau en paramètre à l'état et d'avoir comme source de données le tableau passé en paramètre.
Une autre solution calquée sur l'exemple de Voroltinquo serait de créer une 2ème table mémoire qui contiendrait le résultat de ce que tu souhaites imprimer et baser ton état sur cette table.
--
Cordialement,
Philippe SAINT-BERTIN
Signaler
0
0
Ludwig
#4
Membre enregistré
24 messages
Posté le 15 juillet 2024 - 09:47
Bonjour,
Merci beaucoup pour ton retour.
J'ai une erreur cela me renvoie que "Un élément de type 'CClient' ne peut pas être converti vers le type 'chaîne ANSI'."
J'ai déclaré gtabListeClient comme tableau de chaines. (?)
Encore merci.
Signaler
0
0
Philippe SB
#5
Membre enregistré
2 676 messages
Posté le 15 juillet 2024 - 17:43
Il va falloir un peu plus de code pour t'aider mais je peux d'ores et déjà dire que gtabListeClient doit être un tableau de CClient
--
Cordialement,
Philippe SAINT-BERTIN
Signaler
0
0
Ludwig
#6
Membre enregistré
24 messages
Posté le 15 juillet 2024 - 17:52
Merci,
Jai opté pour une deuxième table mémoire. (C'est plus de mon niveau
).
Ca fait l'affaire, pour le moment.
Je vais tout de même creuser l'idée de Voroltinquo.
Encore merci à vous deux et bonne journée.
Signaler
0
0
Voroltinquo
#7
Membre enregistré
4 111 messages
Posté le 16 juillet 2024 - 08:52
Ludwig a écrit :
J'ai déclaré gtabListeClient comme tableau de chaines. (?)
gtabListeClient est un tableau de CClient
--
Il y a peut être plus simple, mais, ça tourne
Signaler
0
0
→ Revenir à WINDEV (précédentes versions)
WINDEV 2024
WINDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Etats & Requêtes
Hors-sujet
Hors-sujet
Outils
Outils
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte