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

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

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

Messagepar Niclos » 08 Oct 2003 à 13:33

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%]
Niclos
 

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

Messagepar Ludovic Hermez » 08 Oct 2003 à 14:25

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
Ludovic Hermez
 

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

Messagepar Niclos » 08 Oct 2003 à 14:30

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%]
Niclos
 

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

Messagepar Ludovic Hermez » 08 Oct 2003 à 14:37

--> 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
Ludovic Hermez
 

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

Messagepar Niclos » 08 Oct 2003 à 14:41

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%]
Niclos
 

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

Messagepar Niclos » 08 Oct 2003 à 14:46

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%]
Niclos
 

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

Messagepar Cedric » 08 Oct 2003 à 15:10

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 :o)))
Cedric
 

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

Messagepar Niclos » 08 Oct 2003 à 15:14

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%]
Niclos
 

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

Messagepar Cedric » 08 Oct 2003 à 15:17

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

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

Messagepar Niclos » 08 Oct 2003 à 15:19

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%]
Niclos
 

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

Messagepar Cedric » 08 Oct 2003 à 16:51

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.
Cedric
 

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

Messagepar PhilippeG » 08 Oct 2003 à 16:52

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"
PhilippeG
 

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

Messagepar Cedric » 08 Oct 2003 à 17:15

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. :o(
Cedric
 

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

Messagepar Ludovic Hermez » 09 Oct 2003 à 08:34

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 :DatabaseAccueil_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);
Ludovic Hermez
 

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

Messagepar Droad » 09 Oct 2003 à 17:05

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%]
Droad
 


Retour vers Développement

cron