OVH Cloud OVH Cloud

[WD5.5] Changement du fichier parcourus dans un état

4 réponses
Avatar
Pierre BOUSQUET
Bonjour,
Y-a-t-il le moyen de changer le fichier parcouru dans un état?

Merci pour votre réponse

4 réponses

Avatar
farplus
Oui, mais ça donne pas mal de codage...
le truc le plus simple est que tu fasses une copie de ton état pour chaque
fichier que tu pourrais parcourir, modifier le nom <fichier parcouru> dans
chaque état, et tu appelles l'un ou l'autre suivant le cas.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Avatar
Pierre BOUSQUET
ben vi mais je voudrais eviter ca

"farplus" a écrit dans le message de
news:

Oui, mais ça donne pas mal de codage...
le truc le plus simple est que tu fasses une copie de ton état pour chaque
fichier que tu pourrais parcourir, modifier le nom <fichier parcouru> dans
chaque état, et tu appelles l'un ou l'autre suivant le cas.
--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/


Avatar
R&B
Pierre BOUSQUET wrote:
Bonjour,
Y-a-t-il le moyen de changer le fichier parcouru dans un état?

Merci pour votre réponse




si tu utilisais un 'swap' du nom de fichier avec une source de
données... cela résoudrait ton problème.

voici un code utile pour passer un fichier temporaire en utilisant le
nom d'origine

s'utilise comme suit

exemple on a un fichier ARTICLE et on veut travailler sur ARTICLE_TMP en
utilisant le nom ARTICLE (accéssoirement ARTICLE sera dispo via ARTICLE_ORIG

ARTICLE_TMP est une source de donnée // pour le fichier temporaire
ARTICLE_ORIG est une source de donnée // pour le fichier originial
AliasTmp("ARTICLE","ARTICLE_TMP",Vrai,"ARTICLE_ORIG")

// à partir d'ici 'ARTICLE' pointe sur ARTICLE_TMP.FIC (on peut
spécifier un chemin)
...

// pour revenir en arrière c'est fort simple
AliasTmp("ARTICLE","ARTICLE_TMP",faux,"ARTICLE_ORIG")
HAnnuleDéclaration(ARTICLE_TMP)
// 'ARTICLE' pointe sur ARTICLE.FIC

hop !
@+ R&B de rbesset.net



//---------------- procédure
PROCEDURE
AliasTmp(pcNomLogique,pcNomTmp,bActive=Vrai,pcNomSourceOrig="",bSupprime=Vrai)

cNom est une chaîne
// ajoure un suffixe au nom logique pour garder
SI pcnomsourceOrig="" ALORS
cNom=pcNomlogique+"_ORIG"
SINON
cNom=pcnomsourceorig
FIN

SI bActive ALORS
// Crée un alias pour avoir la main sur le fichier d'origine
HAlias(pcNomlogique,cNom)
SI PAS HErreurBlocage() ALORS
// avec HAlias, il faut executer un hChangeRep et hChangeNom pour que
cela fonctionne
// on pointe sur le fichier physique et sur son répertoire
SI PAS HChangeRep(cnom,{pcNomlogique,indFichier}..Répertoire) ALORS
RENVOYER Faux
SI PAS HChangeNom(cNOm,{pcNomlogique,indFichier}..NomPhysique) ALORS
RENVOYER Faux
FIN
SI HChangeNom(pcNomLogique,fExtraitChemin(pcnomtmp,fFichier)) ALORS
SI fExtraitChemin(pcnomtmp,fDisque+fRépertoire)<>"" ALORS
HChangeRep(pcNomLogique,fExtraitChemin(pcnomtmp,fDisque+fRépertoire))
SINON
HChangeRep(pcNomLogique,gcRepDonnees)
FIN
HCréationSiInexistant(pcNomLogique)
FIN
// APRES GESTION DES ALIAS/NOM du fichier sinon on est toujours sur le
fichier logique
SINON
// revient en nom normal
HFerme(pcnomlogique)
// si fExtraitChemin(pcnomtmp,fdisque+frepertoire)<>"" alors
HChangeRep(pcNomLogique,gcRepDonnees)
// fin
HChangeNom(pcNomLogique,"")
// supprime l'alias (inutile) du fichier d'origine
// cNom=pcNomlogique+"_ORIG"
//// déclaration externe
SI pcNomSourceOrig="" ALORS
CodeàCompiler est une chaîne = "EXTERNE "+cNom
Res est une chaîne= Compile("DecDyn", CodeàCompiler)
SI Res = "" ALORS
ExécuteTraitement("DecDyn", trtProcédure)
SINON
//Erreur compilation dynamique
Erreur(MessTraduit(5005), Res)
FIN
FIN
HAnnuleAlias(cNom)
SI pcNomSourceOrig<>"" ALORS
HAnnuleDéclaration(pcnomsourceorig)
FIN
// Supression des fichiers temporaires
SI bsupprime ALORS
crep est une chaîne
SI fExtraitChemin(pcNomTmp,fDisque+fRépertoire)="" ALORS crep=gcRepDonnees
SI fRep(crep+pcnomtmp+".*",frFichier)<>"" ALORS
fSupprime(crep+pcnomtmp+".*",frLectureSeule)
FIN
FIN
FIN
RENVOYER Vrai
Avatar
jacques trepp
"Pierre BOUSQUET" a écrit dans le message de news:
3f4395bf$0$236$
ben vi mais je voudrais eviter ca




le plus simple dans ton cas, c'est de relier un état à un fichier standard,
qui puisse convenir à tous tes fichiers, dans lequel tu copies les données
avant de lancer l'impression d'état. Le choix du fichier source est
déterminé dans la fenêtre.

--
Jacques TREPP
LCM
9 rue jean Mermoz
81160 ST JUERY

http://www.lcm81.com