PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → tri d'information dans une table
tri d'information dans une table
Iniciado por Ludovic LEMOING, 05,nov. 2018 13:56 - 9 respuestas
Miembro registrado
74 mensajes
Publicado el 05,noviembre 2018 - 13:56
bonjour a tous,

voila ma question,

voila mon soucis

je créer un logiciel de gestion et je dois calculer le temps des formateur en fonction de leurs statut (titulaire, vacataire, sous traitant,
lorsque j'ajoute une ligne a ma base et a l'affichage de cette nouvelle ligne j'aimerai qu'un calcule sa fasse et s'affiche dans un champ en fonction

voici mon code qui m'affiche bien ce que je veut mais ne le fait qu'une seul fois si mon champ cible contiens déjà quelque chose il ne fait rien

SI TABLE_ensgene.COL_Statutformateur ="Permanent Greta" ALORS

FIN

SI TABLE_ensgene.COL_Statutformateur ="Vacataire Titulaire" ALORS
SAI_titulaire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN

SI TABLE_ensgene.COL_Statutformateur ="Vacataire Non Titulaire" ALORS
SAI_Vacataire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN

SI TABLE_ensgene.COL_Statutformateur ="Sous-traitant tarif vacataire" ALORS
SAI_sous_traitant = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN

SI TABLE_ensgene1.COL_Statutformateur ="Permanent Greta" ALORS

FIN

SI TABLE_ensgene1.COL_Statutformateur ="Vacataire Titulaire" ALORS
SAI_titulaire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN

SI TABLE_ensgene1.COL_Statutformateur ="Vacataire Non Titulaire" ALORS
SAI_Vacataire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN

SI TABLE_ensgene1.COL_Statutformateur ="Sous-traitant tarif vacataire" ALORS
SAI_sous_traitant = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2
FIN


si quelqu'un voie ou sa bug merci de m'aider

a bientot

Ludo
Miembro registrado
81 mensajes
Publicado el 05,noviembre 2018 - 14:35
Bonjour

déjà pour la lisibilité passe tous tes "si" en selon :

Selon TABLE_ensgene.COL_Statutformateur
cas "Permanent Greta"

CAS "Vacataire Titulaire"
SAI_titulaire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

cas "Vacataire Non Titulaire"
SAI_Vacataire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

CAS "Sous-traitant tarif vacataire"
SAI_sous_traitant = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

CAS "Permanent Greta"

CAS "Vacataire Titulaire"
SAI_titulaire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

CAS "Vacataire Non Titulaire"
SAI_Vacataire = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

CAS "Sous-traitant tarif vacataire"
SAI_sous_traitant = TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

FIN

bon ensuite,

ça serait pas plutot des += qu'il faut ?

exemple :
SAI_sous_traitant += TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1+TABLE_ensgene.COL_Heures_d_Enseignement_N_2+TABLE_ensgene1.COL_Heures_d_Enseignement_N+TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

ça tu peux le mettre dans le code d'affichage d'une ligne de la table.

sinon, commennt est rempli ta table ?

table liée au fichier ?

table remplie par programmation (tableajoute ou tableajouteligne) ?

etc...
Miembro registrado
74 mensajes
Publicado el 05,noviembre 2018 - 14:51
bonjour Cdm98

pour commencer merci pour ton aide

j'ai modifier mon code selon tes recommandations mais ce n'est toujours pas bon par exemple j'ajoute 2 ligne de Vacataire Titulaire un pour une durée de 10h et une deuxième ligne avec 20 heures et le résultat est 40 sauf erreur de mon cerveau le résultat correct est 30 je ne comprend pas tous

pour ce qui est du remplissage de ma table il se fait a partir d'une requette donc liée a un fichier

merci encore pour ton aide

a bientôt ludo
Miembro registrado
81 mensajes
Publicado el 05,noviembre 2018 - 15:23
bon je recommence .. ;j'avais fait grand texte et plantage..
bon.

tu as une table liée à une requete, ce n'est donc pas remplissage par programmation.
dans le code de la table, section "Sélection d'une ligne de TABLE_ensgene" tu as un truc du genre :

Selon TABLE_ensgene.COL_Statutformateur
cas "Permanent Greta"

CAS "Vacataire Titulaire"
//je coupe pour lisibilité pour l'exemple...
SAI_titulaire += TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1

fin

ça ça doit fonctionner.

donc mets une trace pour voir ce que ça te renvoit :

Selon TABLE_ensgene.COL_Statutformateur
cas "Permanent Greta"

CAS "Vacataire Titulaire"
trace(TABLE_ensgene.COL_Heures_d_Enseignement_N,TABLE_ensgene.COL_Heures_d_Enseignement_N_1,ABLE_ensgene.COL_Heures_d_Enseignement_N_2)
SAI_titulaire += TABLE_ensgene.COL_Heures_d_Enseignement_N+TABLE_ensgene.COL_Heures_d_Enseignement_N_1

//....

fin




perso je prefere remplir mes tables par programmation comme ça je mets une jauge de progression etc...

genre

nblu est un entier =0
nbenreg est un entier = 0

hexecuretesql(lres,hrequedefaut,lreq)
nbenreg = hnbenr(lres)

pour tout lres
nblu++
jauge(nblu,nbenreg,"remplissage en cours",vertpastel)
nlig = tableajouteligne(matable,lres.zone1,lres.zone2....)

sai_total += res.zone1+lres.zone2

//ici tu peux mettre ton selon ....

fin
Miembro registrado
74 mensajes
Publicado el 05,noviembre 2018 - 15:31
je vais essayer
je reviens vers toi
merci
Miembro registrado
81 mensajes
Publicado el 05,noviembre 2018 - 15:41
dis moi je viens de voir un truc :
TABLE_ensgene.COL_Heures_d_Enseignement_N+
TABLE_ensgene.COL_Heures_d_Enseignement_N_1+
TABLE_ensgene.COL_Heures_d_Enseignement_N_2+
TABLE_ensgene1.COL_Heures_d_Enseignement_N+
TABLE_ensgene1.COL_Heures_d_Enseignement_N_1+
TABLE_ensgene1.COL_Heures_d_Enseignement_N_2

c'est quoi cette TABLE_ensgene1 ?????
Miembro registrado
74 mensajes
Publicado el 05,noviembre 2018 - 15:48
c'est une deuxième table mais le principe sera le même

pour tester ta procedure, j'ai supprimer tous ce qui concerne la table ensegene1

quand je test deux ligne vacataire titulaire de chacun 10heure voila ce qu'il me met

10
10
10

normalement je devrait avoir un resultat a 20 et il me compte 30 tu vois d'ou cela pourrait venir
Miembro registrado
81 mensajes
Publicado el 05,noviembre 2018 - 16:00
ben il passe trois fois à 10 non ? ça fait bien 30 ? tu dois avoir 3 lignes "Vacataire Titulaire"


mais de toute façon le code avec la TABLE_ensgene1 ça ne peut pas etre bon.

quand il affiche la ligne de TABLE_ensgene comment peut il savoir de quelle ligne de la TABLE_ensgene1 il s'agit pour aller chercher les infos ?

cdm98@free.fr si tu veux.... tu pourras m'envoyer des bouts de fenetres parceque là c'est compliqué de comprendre ce qui est ecrit
Miembro registrado
74 mensajes
Publicado el 05,noviembre 2018 - 16:17
okey je te rep par mail merci
Miembro registrado
81 mensajes
Publicado el 05,noviembre 2018 - 16:26
bon c'est trouvé ...

faut reinitialiser à 0 avant chaque remplissage de la table...

bon dev,