PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Erreur au moment de l'enregistrement
Erreur au moment de l'enregistrement
Iniciado por jmbo, 14,oct. 2004 12:26 - 16 respuestas
Publicado el 14,octubre 2004 - 12:26
Dans mon analyse j'ai un fichier facture

Hcréation(facture) // je l'efface et je le recré à vide

pour i=1 a n // avec une boucle je crée le nouveau fichier
Hraz(facture)
facture.nom=n[i] // un nom
facture.date=d[i] // une date
.......
facture.solde=c[i] // un monétaire
Hajoute(facture)
fin

Quand je regarde dans le fichier j'ai bien les noms les dates etc, mais le solde est à 0, pourtant dans l'analyse le solde est un monétaire et c[i] est un monétaire.
Si je trace j'ai bien un solde ds facture.solde juste avant le Hajoute, mais il s'inscrit ds le fichier avec un solde = 0 ??????????

J'ai déjà fait cette manip des centaines de fois sans aucun problème, mais là je bute sûrement sur un petit grain de sable qui me cache la montagne, ou je deviens trop vieux pour la programmation.

Si l'un ou l'une d'entre-vous à une petite idée je suis preneur, Merci.

PapyDev
Publicado el 14,octubre 2004 - 12:36
Mets un trace avant et après Hajoute() pour vérifier le
contenu de la rubrique.
Effectivement il doit y avoir un grain de sable, une action
une fonction qui change la valeur
Ou peut être un mauvais indice ou l'absence d'indice sur cette
ligne, cela arrive souvent lorsque qu'il y a beaucoup d'assignation
@+ et bon dev
yves


"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416e2ee8@news.pcsoft.fr...

Dans mon analyse j'ai un fichier facture

Hcréation(facture) // je l'efface et je le recré à vide

pour i=1 a n // avec une boucle je crée le nouveau fichier
Hraz(facture)
facture.nom=n[i] // un nom
facture.date=d[i] // une date
.......
facture.solde=c[i] // un monétaire
Hajoute(facture)
fin

Quand je regarde dans le fichier j'ai bien les noms les dates etc, mais le

solde est à 0, pourtant dans l'analyse le solde est un monétaire et c[i] est
un monétaire.
> Si je trace j'ai bien un solde ds facture.solde juste avant le Hajoute,
mais il s'inscrit ds le fichier avec un solde = 0 ??????????

J'ai déjà fait cette manip des centaines de fois sans aucun problème, mais

là je bute sûrement sur un petit grain de sable qui me cache la montagne, ou
je deviens trop vieux pour la programmation.

Si l'un ou l'une d'entre-vous à une petite idée je suis preneur, Merci.

PapyDev

Publicado el 14,octubre 2004 - 14:57
Merci pour ta réponse Yves.
J'avais déjà fait le test et je viens de le refaire si je met un Trace avant et après le Hajoute j'ai bien un vrai solde et par contre dans le fichier j'ai 0 .

Vous avez dit bizarre comme c'est bizarre.
Publicado el 14,octubre 2004 - 16:08
As-tu regardé avec WDmap ? Idem ?
Sinon essayes de mettre une valeur sous WDmap
pour vérifier qu'elle est bien mémorisée.
Créer un autre fichier dans l'analyse avec les mêmes
champs, pas par 'Dupliquer' et tester le meme code.

Bizarre, bizarre vous avez dit : ...............Etrange !


"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416e522f@news.pcsoft.fr...


Merci pour ta réponse Yves.
J'avais déjà fait le test et je viens de le refaire si je met un Trace

avant et après le Hajoute j'ai bien un vrai solde et par contre dans le
fichier j'ai 0 .

Vous avez dit bizarre comme c'est bizarre.


Publicado el 14,octubre 2004 - 16:17
Quand ton programme tourne, il est dans une fenetre.
Cette fenetre a-t-elle été générée avec le RAD ?
As-tu dans ta fenetre une table qui pointe sur ce fichier ?

Je me suis fais piégé une fois par les classes du RAD qui repassaient
derrière mon code !...


"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416e2ee8@news.pcsoft.fr...

Dans mon analyse j'ai un fichier facture

Hcréation(facture) // je l'efface et je le recré à vide

pour i=1 a n // avec une boucle je crée le nouveau fichier
Hraz(facture)
facture.nom=n[i] // un nom
facture.date=d[i] // une date
.......
facture.solde=c[i] // un monétaire
Hajoute(facture)
fin

Quand je regarde dans le fichier j'ai bien les noms les dates etc, mais le

solde est à 0, pourtant dans l'analyse le solde est un monétaire et c[i] est
un monétaire.
> Si je trace j'ai bien un solde ds facture.solde juste avant le Hajoute,
mais il s'inscrit ds le fichier avec un solde = 0 ??????????

J'ai déjà fait cette manip des centaines de fois sans aucun problème, mais

là je bute sûrement sur un petit grain de sable qui me cache la montagne, ou
je deviens trop vieux pour la programmation.

Si l'un ou l'une d'entre-vous à une petite idée je suis preneur, Merci.

PapyDev

Publicado el 14,octubre 2004 - 16:22
A tout hasard, à la fin de tout tes ajouts,n'y a t-il pas une fonction qui te met ton champ à 0 ?????
Publicado el 14,octubre 2004 - 19:14
Bonjour Cher Ami !

Vérifie sur ta fenêtre de traitement s'il n'existe pas de champ qui porte le même nom "SOLDE" que la rubrique "SOLDE" de ton fichier facture. Si tel est le cas alors change le nom du champ.
NB: Ce champ peut être inclus dans un objet TABLE.
Publicado el 15,octubre 2004 - 09:50
Pour t'aider à trouver ou ça pêche essaie ceci :

Solde_N est un monétaire // en déclaration de variable

remplace : facture.solde = C[I]
par
solde_N = C[i]
facture.solde = Solde_N

es-tu sûr que tu n'as pas un champ, une avraiable,ou plus généralement une zone qui s'appelle solde

Bon courage
Publicado el 15,octubre 2004 - 11:45
Merci pour vos réponses aussi rapides que pertinantes mais je suis toujours dans la même impasse.
il n'y a pas de champs Solde dans ma fenêtre qui n'a pas été constrruite avec le RAD
Si je change la valeur du solde ds WDMat alors cette avaleur reste bien mémorisée.

Si je regarde la valeur de facture .solde avant le HAjoute j'ai une valaeur, pui je fais le Hajoute je regarde avec WDMat dans le fichier le solde est à 0 et si je retorne regardée le facture.solde la bonne valeur est tpojuours dedans.

Dans le fichier j'ai toutes les valeurs sauf le solde

Vous avez dit bizarre.

PapyDev
Publicado el 15,octubre 2004 - 14:38
Il n'y a plus qu'une solution

Tape la totalité de ton code en partant un peu avant ta boucle et en terminant un peu après ... histoire que quelques bonnes âmes puissent la reproduire parce que tout ce que j'ai lu dans le forum aurait dû permettre de trouver la solution.

Perds pas ton entrain.
Publicado el 15,octubre 2004 - 14:58
Ragardons alors les solutions de base.

1. La rubrique Facture.Solde dans l'analyse serait-elle tout simplement trop
petite pour contenir c(i) ?
2. Le nom de la rubrique dans l'analyse serait légèrement différent; Sold ou
Soldes ou Sode... (HAjoute ne le verrait pas) <=

Réal Phil

"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de
news:416fc5c2$1@news.pcsoft.fr...
HRAZ(Facture)
Facture.CodPil=n[i]
Facture.date=ddd
SI c[i]<0 ALORS Facture.Mac1="DEBIT" SINON Facture.Mac1="CREDIT"
Facture.Obs="Solde année "+Fen_FinSaison.Annee
Facture.Solde=c[i]
HAjoute(Facture)
FIN
Jauge(Faux)
Sablier(Faux)

Tout est parfait pour le CodPil, la date, le Mac1 l'obs mais le solde est

toujours à 0, alors qu'en pas à pas ou en trace j'ai une valeur avant et
après le Hajoute.
> La fenêtre ne comporte aucun Solde et le solde est bien défini monétaire
ds facture.solde et ds C[i].

Heureusement que je n'ai pas fait de latin ça m'évite de le perdre.

Je continue à dire bizarre comme c'est bizarre

PapyDev

Publicado el 15,octubre 2004 - 15:13
et le debugage, en pas à pas, tu as suivi tout, depuis l'affectation de ton
solde .
"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416f76b8@news.pcsoft.fr...


Merci pour vos réponses aussi rapides que pertinantes mais je suis

toujours dans la même impasse.
> il n'y a pas de champs Solde dans ma fenêtre qui n'a pas été constrruite
avec le RAD
Si je change la valeur du solde ds WDMat alors cette avaleur reste bien

mémorisée.

Si je regarde la valeur de facture .solde avant le HAjoute j'ai une

valaeur, pui je fais le Hajoute je regarde avec WDMat dans le fichier le
solde est à 0 et si je retorne regardée le facture.solde la bonne valeur est
tpojuours dedans.

Dans le fichier j'ai toutes les valeurs sauf le solde

Vous avez dit bizarre.

PapyDev

Publicado el 15,octubre 2004 - 17:22
Pour ceux qui suivent encore cette saga voici la partie de programme

// il faut refaire le fichier des facturations
HCréation(Facture)// efface et recre le fichier
// on refait les factures

ddd est Date=ChaîneVersDate("01/01/2000")
ddd..Année= Val(Fen_FinSaison.Annee)+1

POUR i=1 A cc
Jauge(i,cc,"Création du nouveau fichier de facturation.",iRougeFoncé)
HRAZ(Facture)
Facture.CodPil=n[i]
Facture.date=ddd
SI c[i]<0 ALORS Facture.Mac1="DEBIT" SINON Facture.Mac1="CREDIT"
Facture.Obs="Solde année "+Fen_FinSaison.Annee
Facture.Solde=c[i]
HAjoute(Facture)
FIN
Jauge(Faux)
Sablier(Faux)

Tout est parfait pour le CodPil, la date, le Mac1 l'obs mais le solde est toujours à 0, alors qu'en pas à pas ou en trace j'ai une valeur avant et après le Hajoute.
La fenêtre ne comporte aucun Solde et le solde est bien défini monétaire ds facture.solde et ds C[i].

Heureusement que je n'ai pas fait de latin ça m'évite de le perdre.

Je continue à dire bizarre comme c'est bizarre

PapyDev
Publicado el 15,octubre 2004 - 19:06
Juste pour faire un test, si on écrit dans la boucle :
..../...
Facture.Solde=c[i]
HAjoute(Facture)
Facture.Solde=c[i]
HModifie(Facture)

qu'est-ce que cela donne ?


"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416fc5c2$1@news.pcsoft.fr...



Pour ceux qui suivent encore cette saga voici la partie de programme

// il faut refaire le fichier des facturations
HCréation(Facture)// efface et recre le fichier
// on refait les factures

ddd est Date=ChaîneVersDate("01/01/2000")
ddd..Année= Val(Fen_FinSaison.Annee)+1

POUR i=1 A cc
Jauge(i,cc,"Création du nouveau fichier de facturation.",iRougeFoncé)
HRAZ(Facture)
Facture.CodPil=n[i]
Facture.date=ddd
SI c[i]<0 ALORS Facture.Mac1="DEBIT" SINON Facture.Mac1="CREDIT"
Facture.Obs="Solde année "+Fen_FinSaison.Annee
Facture.Solde=c[i]
HAjoute(Facture)
FIN
Jauge(Faux)
Sablier(Faux)

Tout est parfait pour le CodPil, la date, le Mac1 l'obs mais le solde est

toujours à 0, alors qu'en pas à pas ou en trace j'ai une valeur avant et
après le Hajoute.
> La fenêtre ne comporte aucun Solde et le solde est bien défini monétaire
ds facture.solde et ds C[i].

Heureusement que je n'ai pas fait de latin ça m'évite de le perdre.

Je continue à dire bizarre comme c'est bizarre

PapyDev

Publicado el 15,octubre 2004 - 20:24
Je viens d'ajouter
Facture.Solde=c[i]
HModifie(Facture)

J'avais déjà fait le test et j'avais déjà eu un message d'erreur

Fenêtre du type erreur de doublons mais là j'ai une erreur de modification sur d'autres éléments de mon fichier qui n'ont bien sur pas été modifié.
Des lignes en jaune au lieu d'être en rouge

La fiche que vous avez modifé a également été modifié par un autre utilisateur

J'avoue que je ne comprends plus rien.
Juste avant le Hmodifie j'ai bien une valeur non nulle ds Facture.solde

Merci Yves de te pencher sur mes difficultés
Publicado el 16,octubre 2004 - 21:33
Je commence à être à court d'idée,
mais c'est vrai que ça énerve ! des trucs comme cela
jusqu'à ce qu'on se rende compte de la boulette
si c'est pas un bug, pardon un dysfonctionnement de l'outil

N'y aurait-il pas une possibilité de méprise entre une rubrique fichier
et un autre élément ,
une rubrique : facture.solde
un élément d'une fenetre ouverte : Facture.solde
une colonne de tableau : Facture.solde
j'ai eu un cas où un champ nommé code et une colonne Table.code
un RepriseSaisie(Code) n'aboutissait pas.
Avant on ne pouvait pas nommer 2 éléments pareil, c'était trop
restrictif, mais maintenant il faut y faire plus attention.
J'ai pris l'habitude de tout préfixer, avec le nom de l'objet parent
pour ne plus avoir de surprises.

Par contre pour l'erreur du Hmodifie() c'est encore autre chose
tous les champs sont forcément modifiés avec la meme valeur
si on ne change rien mais pourquoi cette anomalie, ton appli
est réseau ?
Bon WE
Yves


"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416ff04c@news.pcsoft.fr...

Je viens d'ajouter
Facture.Solde=c[i]
HModifie(Facture)

J'avais déjà fait le test et j'avais déjà eu un message d'erreur

Fenêtre du type erreur de doublons mais là j'ai une erreur de modification

sur d'autres éléments de mon fichier qui n'ont bien sur pas été modifié.
Des lignes en jaune au lieu d'être en rouge

La fiche que vous avez modifé a également été modifié par un autre

utilisateur

J'avoue que je ne comprends plus rien.
Juste avant le Hmodifie j'ai bien une valeur non nulle ds Facture.solde

Merci Yves de te pencher sur mes difficultés

Publicado el 17,octubre 2004 - 01:00
Passen blocage manuel
Tu bloques le fichier apres sa création, comme ça tu es sûr d'être le seul
utilisateur.

"Jean-Marc BOURGEOIS" <jmbo@wanadoo.fr> a écrit dans le message de news:
416ff04c@news.pcsoft.fr...

Je viens d'ajouter
Facture.Solde=c[i]
HModifie(Facture)

J'avais déjà fait le test et j'avais déjà eu un message d'erreur

Fenêtre du type erreur de doublons mais là j'ai une erreur de modification

sur d'autres éléments de mon fichier qui n'ont bien sur pas été modifié.
Des lignes en jaune au lieu d'être en rouge

La fiche que vous avez modifé a également été modifié par un autre

utilisateur

J'avoue que je ne comprends plus rien.
Juste avant le Hmodifie j'ai bien une valeur non nulle ds Facture.solde

Merci Yves de te pencher sur mes difficultés