Gambas France BETA


Pas de compte ? Incription

tableView à dimensions variable

Ce sujet est résolu.

1
AuteurMessages
manu#1 Posté le 11/4/2011 à 07:22:00
Avec Gambas ca roule !Bonjour,

Bon en fait contrairement a ce que laisse supposer le titre, je n'ai pas de problème avec ce contrôle mais bien avec un bout de code. Je m'explique :

Dans une table de Base de données que j'appelle 'Stock' j'ai 3 champs : Produit / NumeroLot /Quantité. Voila a quoi ressemble ma table :
[table]Produit NumeroLotQuantité prod1 20 150prod1 21 200prod2 20 50 prod3 21 85 prod420 35 prod4 23 40 [/table]


Je veux presenter mes données dans une tableview de la facon suivante :
[table]Produit Lot20 Lot21 Lot23 Prod1 150 0 0 Prod1 0200 0 Prod2 50 0 0 Prod3 0 85 0 Prod4 35 0 0 Prod40 0 40[/table]

Bon, j'arrive pratiquement à tous faire mais j'ai un soucis, C'est pour créer mes colonnes.
en pseudo code si je fait :

1
DIM sLot AS stringPour chaque NumeroLot de la table stock si sLot <> NumeroLot THEN 'si nouveau numero de lot sLot = NumeroLot ' enr dans la variable le nouveau numero Tableview.columns.count + 1 ' creer la nouvelle colonneNext


Ca ca marche, si les enregistrements sont triés par numero de lot ou si il n'y a que 2 numero de lot par produit car il ne garde en "memoire" (dans la variable sLot) que le dernier lot qu'il a traiter.

J'espère que vous voyez le problème, mais je reconnais que c'est pas évident à comprendre ;)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
jeanyvon#2 Posté le 11/4/2011 à 11:42:00
Gambas? Ma! Et gustoHello!
Pourquoi t'ennuyer?
Tu refais ta mise en page! tu refais une requête et ça roule.
Et puis tu peux avoir plusieurs tableview et en cacher un et activer l'autre.
A+
JY
Vieillir? On peut retarder mais pas y échapper!
manu#3 Posté le 11/4/2011 à 13:24:00
Avec Gambas ca roule !oui, je refais une requête et je tris les réponses par numéro de lot... C'est sure, ça marche mais c'est pas très élégant je trouve.

Je pensais plutôt à 2 solutions :

1 - une fonction récursive (qui s'appelle elle même) qui testerait une variable tableau dans lequel je ferais la liste de mes numéros de lots et qui la comparerais a mon numéro de lot a tester. Mais pour l'instant je bloque la dessus...

2- des boucles for each imbriquées. La première lit les numéros de lot de ma requête et la seconde lit ma variable tableau et la compare au numéro de lot lu par la première boucle, mais j'y ai passé 1 heure hier soir sans que çà marche... :(

A moins que la solution soit ailleurs... Si vous avez une idée je suis preneur.


Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
manu#4 Posté le 11/4/2011 à 21:56:00
Avec Gambas ca roule !Jean Yvon,

Encore une soirée de perdue à cause de mes prétentions puristes.

Je laisse tomber et adopte ta solution efficace et rapide qui à le mérite de parfaitement fonctionner dans tous les cas (tordus) que j'ai pu tester.

Merci

Manu
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
gambix#5 Posté le 23/4/2011 à 16:58:00
Faire simple !Bien oui en faite le propblème souvent quand on s'améliore en code c'est qu'on va privilégier la structure du code a son efficacité ... ce qui est une erreur ... d'abord on fait un truc qui tourne ... ensuite on réécrit les procédures un peu pourries quand on en a le temp.

Tu verrais les projets de "PRO" tu pleurerais... ils ont pas le temps de faire dans l'estete
Moins de texte dans une signature c'est agrandir son espace.
1