PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → [WD10] Raz partielle d'une table de variables ?
[WD10] Raz partielle d'une table de variables ?
Started by valla.thibaud, Apr., 13 2006 5:44 PM - 5 replies
Posted on April, 13 2006 - 5:44 PM
Bonjour,

Je souhaiterais trouver la boucle ou la solution pour remettre à zéro les champs d'une table (NomTableDevis), issue de la requete "List_Postes", elle même dépendant des classes "Lots" et "Postes".
Sachant que je souhaite néanmoins conserver les champs des 4 premières colonnes (CodeLot, NomLot, NomPoste, UnitéPoste) qui représentent les données intrinsèques des Postes, et pouvoir ré-initialiser les champs des colonnes suivantes (PrixUnitPoste, QuantitéPoste, PrixTotalPoste). De plus la table va conserver un nombre de colonnes fixes, mais son nombre de lignes est variables au cours du temps, selon qu'un poste disparaitra ou sera crée...

La table a pour rubrique mémorisée : IDLots (dépendant de la classe "Postes") et pour rubrique de parcours : CodeLots (dépendant de la classe "Lots")

Pour information, Cette table est une table de remplissage des prix unitaires et des quantité pour les postes triés en fonction des lots auxquels ils appartiennent, et ce dans le contexte d'une affaire précise. PrixTotalPoste est le produit de PrixUnitPoste par QuantitéUnitPoste : Pour l'affaire A, on va avoir n lots (a,b,c,d...etc), et dans ces n lots, on va avoir p produits (p1,p2,p3...). Ces p produits vont avoir des prix unitaires et des quantités différents suivant les affaires. C'est dans ce contexte que l'on souhaite effectuer une remise à zéro du contenu des 3 dernières colonnes, tout en conservant celui des 4 premières.

Qqn peut il m'aider ?

Merci à tous ceux qui vont se creuser la tête ;)

Amicalement, Thibaud,

Développeur en herbe... et apprenti développeur !
valla.thibaud@free.fr
Posted on April, 13 2006 - 5:53 PM
Je suppose que ta table est une table memoire chargée avec par exemple

FichierVersTableMemoire(MaTable,MaRequete)

Dans ce cas une simple boucle :

nInd est entier
pour nInd = 1 a MaTable..Occurrence
MaColonneaEffacer1[nInd] = 0
MaColonneaEffacer2[nInd] = 0
MaColonneaEffacer3[nInd] = 0
fin

devrait faire l'affaire.
Posted on April, 13 2006 - 6:17 PM
Non, ma table est une table de variables (et non mémoire) chargée par :

HExecuteRequete(List_Composant)
TableAffiche(NomTableDevis)

Question : Peux tu etre plus explicite sur "MaTable..Occurence" ?

Merci en tout cas de ton aide ;)
Posted on April, 13 2006 - 6:41 PM
et aussi sur "macolonneaEffacer1[nInd]... En effet j'ai mis : List_Postes.PrixUnitPoste[nInd] et Windev me renvoit : l'indice <2> de list_Postes.PrixUnitPoste n'est pas un indice valide...
Posted on April, 13 2006 - 7:16 PM
Tu travailles avec une table fichier donc l'adressage macolonne[2] peut poser probleme si tu n'as qu'une ligne affichée (voir dans l'aide la différence entre table fichier et table mémoire)

L'utilisation d'une table fichier s'impose si le nombre d'enregistrement est très élevé ou pour une facilité de développement (profiter par exemple de l'enregistrement automatique en fin de ligne.) Si ta table ne comporte que quelques centaines voir milliers de lignes et que tu n'as pas d'enregistrement de données à faire utilise plutot une table mémoire qui te permet d'adresser n'importe quelle ligne de la table meme si elle n'est pas visible.

MaTable..occurrence est l'equivalent de TableOccurrence(MaTable) pour les tables mémoire. Cela donne le nombre total de lignes dans la table. (Voir les propriéts des tables dans l'aide)
Posted on April, 13 2006 - 7:20 PM
Merci pour ton aide, c'est ce que je pensais également sur le probleme de la table fichier / table mémoire... ca m'ennuit de devoir passer ma table en table mémoire, mais bon...

Grand merci !