PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Tableau croisé
Tableau croisé
Débuté par gregory f, 13 mai 2005 13:51 - 4 réponses
Posté le 13 mai 2005 - 13:51
Bonjour,


J'ai en fait dans ma base, des Périodes ( IDPériode , date_début , date_fin ). Mais aussi des clients(IDClient), des factures(IDFacture,IDClient), et des lignes de facture(IDFacture,IDProduit,Montant).

J'aimerai un état tableau croisé (ou même une table peut-etre ?) qui contiendrait les clients sur les lignes, et les périodes sur les colonnes, pour représenter les montants totaux des factures durant la période (besoin de comparer la date de la facture aux date_debut et date_fin), pour le client concerné.

Les périodes sur lesquelles les calculs doivent être effectués seraient d'abord sélectionnées par l'utilisateur parmi la liste des périodes de la base de données. Et une colonne serait affichée par période sélectionnée.

Je ne vois pas comment réaliser cela car que je ne trouve pas la souplesse nécessaire dans les états "tableau croisé".


Cordialement.
Posté le 13 mai 2005 - 16:23
Bonjour,

Vous pouvez réaliser un tableau croisé en combinant Structure et tableau dynamique.

Seules contraintes
- Nombre de lignes
- limite de 10 éléments < colonnes >

Si celà peut vous donner une idée, j'ai réaliser un budget dont voici quelques bout de code a titre d'exemple

MaStruct est une structure
Ref est un tableau dynamique
Mvts est un tableau dynamique
Totaux est un tableau dynamique
FIN

Bal est une MaStruct


// ************************************************************
// Ref = Tableau dynamique de 80,3 Chaines
// Lgn - [< C1 IDCompte - C2 Libellé - C3 Type >]
// ------------------------------------------------------------
// Mvts = Tableau dynamique de 80,6 Reels
// Lgn - [< C1 IDCompte - C2 Exerc1 >> C6 Exerc5
// ------------------------------------------------------------
// Totaux = Tableau dynamique de 5,3 Réels
// Lgn - [< C1 Recettes - C2 Dépenses - C3 Capital >]
// ************************************************************

// [< Allocation des tableaux >]
Bal:Ref = allouer un tableau de 80, 3 chaînes
Bal:Mvts = allouer un tableau de 80, 6 réels
Bal:Totaux = allouer un tableau de 5, 3 réels

// [< Références compte >]
nLgn = 1
HLitPremier(Compte, IDCompte)
TANTQUE PAS HEnDehors(Compte)

Bal:Ref[nLgn,1] = Compte.IDCompte // Compte
Bal:Ref[nLgn,2] = Compte.LibCompte // Libellé
Bal:Ref[nLgn,3] = Compte.TypeCpte // Type de compte
Bal:Mvts[nLgn,1] = Compte.IDCompte

HLitSuivant(Compte, IDCompte)
nLgn++

FIN



Il faut remplir les tableaux dont les données seront affichés dans une table mémoire puis faire un état sur cette table

Le tout réside en fait dans la conception de l'ordonnance des tableaux

J'espère avoir pu un peu vous éclairer

Cordialement

Albert
Posté le 13 mai 2005 - 16:45
Re bonjour

Pour votre information, vous trouverez sur ce lien

http://www.wdforge.org/modules/icontent/index.php…

un exemple bien documenté sur les tableaux de structure

Cordialement

Albert
Posté le 13 mai 2005 - 17:08
Oh, merci beaucoup, je crois bien y arriver grâce à vos conseils !

Cordialement.
Posté le 17 mai 2005 - 14:24
Bonjour
ben moi aussi j'ai le même problème sauf que le code que vous avez mis concernant le tableau dynamique, je l'ai compris mais après comment l'exploiter pour l'afficher dans un état...je ne vois pas trop comment faire ???