|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
probleme de recupération d'indice de ligne dans un champs table |
Started by jm48, Jan., 19 2021 6:19 PM - 4 replies |
| |
| | | |
|
| |
Registered member 3 messages |
|
Posted on January, 19 2021 - 6:19 PM |
bonjour à tous
malgré de nombreuses recherches sur le net et d'essais de plusieurs codes, je n'arrive toujours pas à afficher un total de colonne dans une rupture je travaille sous windev 15 et ne dispose donc pas des calculs automatiques
le code ci-dessous fonctionne parfaitement si je place les champs de résultat dans la fenetre et le code dans l'évènement "à chaque changement de ligne" de la table (il s'agit d'une table fichier sur requete)
par contre des que je place les champs résultats dans la ligne rupture bas et le code dans cette meme rupture ("affichage d'une ligne de la rupture), la variable "i" est toujours à zéro et bien surs les champs à zero
CODE i est un entier=0 nindicehaut est un entier=TableIndiceRupture(RUPT_HautRupture1) nindicebas est un entier=TableIndiceRupture(RUPT_BasRupture1) cumuldébits est un numérique=0 cumulcrédits est un numérique
POUR i= nindicehaut A nindicebas cumuldébits=cumuldébits+COL_Débit[i] cumulcrédits=cumulcrédits+COL_Crédit[i] SAI_moisencours=DateVersMoisEnLettre(COL_Date[i]) FIN SAI_Cumuldébits=cumuldébits SAI_cumulcrédits=cumulcrédits
merci par avance à ceux qui auraient le temps et l'envie de se pencher sur ce problême et avoir de l'indulgence si la réponse leur parait évidente cordialement |
| |
| |
| | | |
|
| | |
| |
Registered member 3,889 messages Popularité : +227 (347 votes) |
|
Posted on January, 20 2021 - 8:52 PM |
Bonjour, Il faut préciser le N° de la ligne de bas de rupture :
TABLE_MaTable[nBas].SAI_...
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 3 messages |
|
Posted on January, 21 2021 - 6:41 PM |
avant tout merci Voroltinquo pour ta réponse
j'ai fais les modifs et l'indice n'esttoujours pas pris en compte j'ai essayé les 3 codes suivants: //TABLE_REQ_CAOpérations[nindicebas].RUPT_BasRupture1.SAI_cumuldeb=cumuldébits //TABLE_REQ_CAOpérations[nindicebas].SAI_cumuldeb=cumuldébits //TABLE_REQ_CAOpérations[i].SAI_cumuldeb=cumuldébits
acec toujours le même message d'erreur
Erreur à la ligne 11 du traitement Affichage d'une ligne de RUPT_BasRupture1 ( TABLE_REQ_CAOpérations ). Vous avez appelé l'opérateur [] sur le champ TABLE_REQ_CAOpérations. L'indice spécifié [0] est invalide. Les valeurs valides sont comprises entre 1 et 28 (inclus).
----- Informations techniques -----
Projet : trésorerie
Appel WL : Traitement de 'Affichage d'une ligne de RUPT_BasRupture1 ( TABLE_REQ_CAOpérations )' (FEN_CAopérations.TABLE_REQ_CAOpérations.RUPT_BasRupture1), ligne 11, thread 0
Que s'est-il passé ? Vous avez appelé l'opérateur [] sur le champ TABLE_REQ_CAOpérations. L'indice spécifié [0] est invalide. Les valeurs valides sont comprises entre 1 et 28 (inclus).
Code erreur : 10038 Niveau : erreur fatale (EL_FATAL)
Dump de l'erreur du module 'wd150obj.dll' (15.00Qcm). Identifiant des informations détaillées (.err) : 10038 Informations supplémentaires : EIT_PILEWL : Affichage d'une ligne de RUPT_BasRupture1 ( TABLE_REQ_CAOpérations ) (FEN_CAopérations.TABLE_REQ_CAOpérations.RUPT_BasRupture1), ligne 11 EIT_DATEHEURE : 21/01/2021 18:38:17
Assistance
-Vérifiez que l'indice entre [] est correct. Si c'est la valeur d'un champ (ex : COL1[TABLE] ), vérifier la valeur de ce champ. -Si c'est une table, une liste, ou une combo vérifiez qu'elle n'est pas vide -Si c'est une combo en saisie, vérifiez que vous n'avez pas utilisé la syntaxe Combo[Combo] qui est réservée aux combos en affichage -Vérifiez que vous ne demandez pas la ligne en cours alors qu'aucune n'est sélectionnée (Rappel : ..Valeur et ListeSelect renvoient -1 dans ce cas)
si vous avez une idée
cordialement |
| |
| |
| | | |
|
| | |
| |
Registered member 3,889 messages Popularité : +227 (347 votes) |
|
Posted on January, 21 2021 - 8:43 PM |
Ton compteur est à 0, ce qui signifie qu'il est initialisé au départ par 0 Or l'initialisation se fait (indirectement) via TableIndiceRupture. Or si cette fonction renvoie 0, c'est qu'il y a une erreur. Il faudrait récupérer le Message d'erreur de TableIndiceRupture
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 3 messages |
|
Posted on January, 24 2021 - 5:04 PM |
bonjour voroltinquo
je ne suis pas parvenu à trouver le probléme de l'erreur sur tableindicerupture par contre j'ai rentré un code qui fonctionne parfaitement et que j'adresse afin d'aider tout ceux qui comme moi ont galéré sur ce problême
voici ce code:
// Variables pour calculer les totaux nindice est un entier cumuldébits est un monétaire moCumulcrédits est un monétaire // Parcours toutes les lignes de la table POUR nindice= 1 A TABLE_REQ_CAOpérations..Occurrence // Ajoute le débit de la ligne au cumul des débits cumuldébits = cumuldébits + TABLE_REQ_CAOpérations.COL_Débit[nindice] moCumulcrédits=moCumulcrédits + TABLE_REQ_CAOpérations.COL_Crédit[nindice]
// Si cette ligne correspond à la dernière ligne de la rupture SI nindice = TableIndiceRupture(RUPT_BasRupture1, nindice) ALORS // Affecte le total au champ total TABLE_REQ_CAOpérations[nindice].SAI_cumuldeb = cumuldébits TABLE_REQ_CAOpérations[nindice].SAI_cumulcred=moCumulcrédits // remettre à 0 les variables cumul car sinon les additions se poursuivent moCumulcrédits=0 cumuldébits=0 FIN FIN
encore merci pour m'avoir répondu |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|