Page 1 sur 1
HELP : Recupération de valeur dans une vue d'une autre base

Publié:
08 Oct 2003 à 13:33
par Niclos
Salut à tous, Je suis débutant et j'ai un gros problème. J'ai un masque facture dans lequel j'ai un champ devise et un champ taux. Les taux sont stockés dans une vue (categorisé par devises) dans une autre base. Je dois dans mon champ taux, récupére la valeur stocké dans cette vue. Si le champ devise est égal à USD, je dois allé chercher le taux USD dans cette vue, si le champ devise est égal à GBP, je dois allé chercher le taux correspondant. Pouvez vous m'aider en me donnant une formule (si possible déjà faite) car c'est très urgent et je galère. Merci d'avance. Nicolas[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 14:25
par Ludovic Hermez
Voici la réponse a ton b// nCol est le nuémro de la colonne valeur é récupérerxTaux := @DbLookup(""; "Db name / ReplicaId";"Vue"; "Cle - Devise"; nCol);@If(@IsError(XTaux) ; "" ; xTaux)Bon courageLudo
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 14:30
par Niclos
salut et merci, Je pensais plutot a une formule comme ca. Server := @Subset(@DbName;1);DatabaseAccueil := @DbColumn("":"NoCache";@Subset(@DbName;1):@Subset(@DbName;-1);"($BaseAccueil)";1);Key := @DbColumn("";"";Server:DatabaseAccueil;"Taux de Change";Devise);tmp:=@DbLookup("":"NoCache";Server:DatabaseAccueil;"Taux de Change";Key;2);tmp1:=@DbLookup("":"NoCache";Server:databaseAccueil;"Taux de Change";Key;2);@If(ContratDevise = "GBP";tmp;ContratDevise="USD";tmp1;ContratDevise = "EUR";"";"")Peux tu m'aider à l'améliorer pour qu'elle fonctionne ?Niclos[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 14:37
par Ludovic Hermez
--> si tes DB se trouvent sur un seul serveur: la variable serveur n'est pas utile (il l'a prend pas défaut)Dans ton if, le test "Eur" n'est pas utile car il renvoie la même chose que le sinon,le reste est correcte.Parcontre, essai d'afficher le champ DatabaseAccueil afin de confirmer qu'il contient ce que tu veux (si c'est bon tu le fais pour chaque ligne et tu verra qui plante!)Ludo
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 14:41
par Niclos
J'essaye ca et je reviens vers toi si ca ne fonctionne pas. Etant donné que je suis débutant, j'ai peur de ne pas réussir.[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 14:46
par Niclos
Ca ne marche pas. C bon pour la base accueil, et je sais que mes dblookup sont bon. Je pense que c'est la récupération de la valeur qui déconne. Quand je test sous Notes, il me met quand je selectionne USD ou GBP dans le champ taux : Erreur : Nom de vue introuvable dans la base spécifiée. Peux tu reprendre ma formule et voir ce qui ne va pas ???? Merci par avance.[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 15:10
par Cedric
tu utilises deux vues"($BaseAccueil)" et "Taux de Change"une idée comme ça... est-ce que la vue ($BaseAccueil) contient bien un document ?Si elle ne contient aucun doc, alors le @Dbcolumn retourne "" et donc tu cherches une vue "Taux de change" dans la base courante au lieu de ta base accueil. d'où l'erreur. Enfin, c'est juste une piste.PS: Subset(@DbName;1):@Subset(@DbName;-1) est équivalent à @DbName

)))
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 15:14
par Niclos
Oui, en fait la vue $baseaccueil me sert juste à trouver le chemin de ma base accueil. La vue Taux de Change est dans la base accueil. Elle contient 3 colonnes (la premiere (catégorie des devises), la deuxieme les taux et la troisieme les dates. Je dois qd mon champ ContratDevise est à GBP, récupérer la valeur équivalente dans la deuxième colonne de la vue Taux de change dans la base accueil et mettre la valeur ds le champ Taux.J'ai donc cette formule dans le champ Taux mais ca ne fonctionne pas.Merci de ton aide.[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 15:17
par Cedric
"est-ce que la vue ($BaseAccueil) contient bien un document ?"as tu vérifié ? ça serait trop con, mais sait on jamais

Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 15:19
par Niclos
Oui pardon j'ai oublié de te le dire, oui il y a le doc qui donne le chemin de la base accueil. Cette ligne fonctionne je l'ai testée ds un texte calculé.Le problème ne vient pas de là. je te redonne la formule au cas ou : Server:=@Subset(@DbName;1);DatabaseAccueil := @DbColumn("":"NoCache";@Subset(@DbName;1):@Subset(@DbName;-1);"($BaseAccueil)";1);ViewName:="Taux de Change";Key := @DbColumn("";"";Server:DatabaseAccueil;ViewName;1);tmp:=@DbLookup("":"NoCache";Server:DatabaseAccueil;ViewName;Key;2);@If(ContratDevise = "GBP";tmp;ContratDevise="USD";tmp1;ContratDevise = "EUR";"";"")Je ne sais pas d'ou vient le problème, c'est dur d'etre débutant.A mon avis, il ne trouve pas la vue Taux de change ou alors il y a un pblm avec la clé (j'en sais rien).[%sig%]
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 16:51
par Cedric
L'erreur "Nom de vue introuvable dans la base spécifiée" indique de manière indubitable que la vue n'est pas trouvée dans la base dans laquelle il cherche.
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 16:52
par PhilippeG
Bonjour,ton rejet indique que Notes ne trouve pas la vue spécifiée dans la variable ViewName dans la base spécifiée dans ta variable DatabaseAccueil.A partir de là 2 solutions - soit la vue n'existe pas dans la base verifies alors la syntaxe du nom de ta vue (en particulier majuscule/minuscules) ou mieux donnes un pseudo à ta vue et fait un copier/coller du pseudo dans ta variable ViewName - soit tu n'attaques pas la bonne base.Là il faut verifier que le chemin d'accès à la base est correct Fais attention à doubler les caractères spéciaux pour que cela soit pris en copte par notesexemple : MaBase := "c:\\MonRepertoire\\MonNom.nsf"
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
08 Oct 2003 à 17:15
par Cedric
Remarques: 1. "(en particulier majuscule/minuscules)"Les noms d'éléments de structure ne sont pas sensibles à la casse. Peut être aux accents, à vérifier...2. "Fais attention à doubler les caractères spéciaux"Uniquement valable lorsque tu codes en dur dans la formule (donc uniquement pour des tests). Lorsqu'il s'agit de paramétrage (comme c'est ton cas) ne surtout pas doubler les chemins.

(
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
09 Oct 2003 à 08:34
par Ludovic Hermez
un conseil!!Cré des champs calculable afin de déterminer quel instruction planteça ne resoud pas ton pb mais au moins tu sera l'explique LudoexempleChamp Server_D --> @Subset(@DbName;1);Champ DatabaseAccueil_D --> @DbColumn("":"NoCache";Server_D:@Subset(@DbName;-1);"($BaseAccueil)";1);Champ Key_D --> @DbColumn("";"";Server_D

atabaseAccueil_D ;"Taux de Change";Devise);Champ tmp_D --> @DbLookup("":"NoCache";Server_D:DatabaseAccueil_D;"Taux de Change";Key_D;2);Champ tmp1_D --> @DbLookup("":"NoCache";Server_D:databaseAccueil_D;"Taux de Change";Key_D;2);
Re: HELP : Recupération de valeur dans une vue d'une autre b

Publié:
09 Oct 2003 à 17:05
par Droad
Server:=@Subset(@DbName;1);Quelques remarques:@Subset(@DbName;1):@Subset(@DbName;-1) est équivalent @DbNameIl y a un param en trop dans cette ligne (d'où l'erreur vue introuvable):Key := @DbColumn("";"";Server:DatabaseAccueil;ViewName;1);Mais de toute façon je ne pense pas que tu t'y prennes correctement.Essayes plutôt quelque chose du genre:lookupTaux := @DbLookup("":"NoCache";Server:DatabaseAccueil;ViewName; ContratDevise; 2);Taux := @If(@IsError(LookupTaux); ""; LookupTaux); ...[%sig%]