PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [wd9] pb d'affectation de plan (urgent)
[wd9] pb d'affectation de plan (urgent)
Débuté par l_lolodev, 03 fév. 2006 13:07 - 5 réponses
Posté le 03 février 2006 - 13:07
Bonjour

je cherche à mutualiser la procédure d'ajout/modification dans un fichier - chaque bouton AJOUT dans la plan appele une procédure ajout() - mon application est composée de 5 plans , qui presente un onglet avec des champs dedans - et le bouton <ajout>
Chaque plan est lié à une variable <seltypeprestation> (pour appeler le bon pan à partir du menu contextuel)

Lorsque je clique sur le bouton AJOUT, j'ai un pb de doublon sur certains champs qui sont communs aux 5 plans/onglets-

Comment pusi-je ecrire l'affectation ecranversfichier() pour ne prendre que le plan actif et les champs du bon onglet pour l'ajout de l'enregistrement ??

merci !!!

(ci joint le code du bouton ajout)

SELON SEL_TYPEPRESTATION
CAS 1:
EcranVersFichier(Fen_Princ.Onglet1,Prestation) --> genere erreur !!
FIN

Info (societe) --> 1 champ commun aux plans/onglets
Prestation.TYPEPRESTATION = SEL_TYPEPRESTATION

//on ajoute ou modifie selon bmodif
SI bModif = Vrai ALORS
Prestation.SAISIPAR = gclUser
Prestation.DATEMAJ = DateDuJour()
HModifie (Prestation,hNumEnrEnCours)
SI ErreurDétectée ALORS
Info("Impossible d'ajouter un enregistrement " + RC + HErreurInfo())
SINON
Info ("L'enregsitrement s'est correctement effectué.")
FIN
SINON
Prestation.ID_PNR = gclPNR
Prestation.DATECREA = DateDuJour()

HAjoute(Prestation)
SI ErreurDétectée ALORS
Info("Impossible d'ajouter un enregistrement " + RC + HErreurInfo())
SINON
Info ("L'enregsitrement s'est correctement effectué.")
FIN
nNumPresta = Prestation.ID
FIN
Posté le 03 février 2006 - 15:23
La liaison de plusieurs champs à une même rubrique de fichier est
potentiellement source d'erreur.
Il faut programmer l'affectation de ces champs à la rubrique du fichier.

PROCEDURE MonEcranVersFichier()
EcranVersFichier()
Selon Onlglet1..Plan
CAS 1
Fichier.Rubrique=Champ1
CAS 2
Fichier.Rubrique=Champ2
....
FIN


--
Cordialement.

Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


"lolodev" <l_lolodev@hotmail.com> a écrit dans le message de news:
43e33959$1@news.pcsoft.fr...


Bonjour

je cherche à mutualiser la procédure d'ajout/modification dans un
fichier - chaque bouton AJOUT dans la plan appele une procédure ajout() -
mon application est composée de 5 plans , qui presente un onglet avec des
champs dedans - et le bouton <ajout>
Chaque plan est lié à une variable <seltypeprestation> (pour appeler le
bon pan à partir du menu contextuel)

Lorsque je clique sur le bouton AJOUT, j'ai un pb de doublon sur certains
champs qui sont communs aux 5 plans/onglets-

Comment pusi-je ecrire l'affectation ecranversfichier() pour ne prendre
que le plan actif et les champs du bon onglet pour l'ajout de
l'enregistrement ??

merci !!!

(ci joint le code du bouton ajout)

SELON SEL_TYPEPRESTATION
CAS 1:
EcranVersFichier(Fen_Princ.Onglet1,Prestation) --> genere erreur !!
FIN

Info (societe) --> 1 champ commun aux plans/onglets
Prestation.TYPEPRESTATION = SEL_TYPEPRESTATION

//on ajoute ou modifie selon bmodif
SI bModif = Vrai ALORS
Prestation.SAISIPAR = gclUser
Prestation.DATEMAJ = DateDuJour()
HModifie (Prestation,hNumEnrEnCours)
SI ErreurDétectée ALORS
Info("Impossible d'ajouter un enregistrement " + RC + HErreurInfo())
SINON
Info ("L'enregsitrement s'est correctement effectué.")
FIN
SINON
Prestation.ID_PNR = gclPNR
Prestation.DATECREA = DateDuJour()

HAjoute(Prestation)
SI ErreurDétectée ALORS
Info("Impossible d'ajouter un enregistrement " + RC + HErreurInfo())
SINON
Info ("L'enregsitrement s'est correctement effectué.")
FIN
nNumPresta = Prestation.ID
FIN
Posté le 03 février 2006 - 15:29
ecranversfichier() renvoie les champs de la fenetre en cours.
Comme , j'utilise des plans, qui propose des onglets avec dans l'onglet des champs identiques aux autres plans, alors j'ai un problme de doublons sur les champs communs ...
c l'horreur ...

Je ne souhaitais pas utiliser des fenêtres ...
Posté le 03 février 2006 - 16:05
oui cette methode fcte, sauf que j'ai environ 100 champs par onglets ... c l'enfer à ecrire
Posté le 03 février 2006 - 17:19
Il ne faut faire l'assignation programmée que pour les champs se rapportant
à une même rubrique. Les autres sont traités par le classique
FichierVersEcran(). Cela devrait limiter la programmation.

Si les champs en question occupent une place fixe dans les différents volets
de l'onglet il serait possible de ne les définir qu'une fois sur un ou
plusieurs plans qui seraient affichées en fonction du volet de l'onglet.
Etant définis une seule fois ils pourraient alors être liés au fichier et
traités par EcranVersFichier().

--
Cordialement.

Patrick Bouquet
Membre WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


"lolodev" <l_lolodev@hotmail.com> a écrit dans le message de news:
43e35995$1@news.pcsoft.fr...

ecranversfichier() renvoie les champs de la fenetre en cours.
Comme , j'utilise des plans, qui propose des onglets avec dans l'onglet
des champs identiques aux autres plans, alors j'ai un problme de doublons
sur les champs communs ...
c l'horreur ...

Je ne souhaitais pas utiliser des fenêtres ...

Posté le 04 février 2006 - 08:36
Ceci n'est qu'une suggestion... Peut-être te mettra-t-elle sur une piste viable.

Si tu connais l'onglet pour lequel tu fais la sauvegarde, pourquoi ne pas utiliser l'indirection pour affecter les champs par programmation ?

Exemple :
tu pourrais, après ton instruction EcranversFichier(), et avant ton hModifie, faire une boucle pour tous les champs de ton onglet avec EnumereChamps(ma_fenetre.Ongletx,i).
Pour chaque champs, tu utilises l'indirection en y lisant la lisaison fichier (..liaisonfichier) qui te donnera la rubrique liée, et tu affectes cette rubrique à la valeur du champs de l'onglet (que tu viens de trouver par le EnumereChamps).

Bon dev et bonne chance !

Luc