Domino 9 und frühere Versionen > Entwicklung
DBLookup nach Sprache
Jörg:
Hi Leute,
ich stehe wieder mal vor ein Problem und ihr habt mir ja schon so oft
hier im Forum geholfen , daher ein weiterer Post ;-)
ICh möchte mit einen Feld "language" bei einer DBLookup-Funktion die angezeigte
Spalte verändern. Dazu habe ich folgenden Code in das Lsitfeld eingefügt, aber
der will nicht so wie ich.
--- Code: ---_Error_Message := "No NAMES installed" ;
_liste_deu := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 3 );
_liste_eng := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 4 );
@Text(language);
@If(language="deutsch"; @If ( @IsError ( _liste_deu ) ;_Error_Message ; _liste_deu );
@If ( @IsError ( _liste_eng ) ;_Error_Message ; _liste_eng ) )
--- Ende Code ---
Mir wird immer nur die Beschreibung der _liste_deu angezeigt.
Gruss Jörg
Axel:
Das könnte ein Problem mit der Aktualisierung sein. Hast du in deinem Listenfeld die Option "Auswahl bei Dokumentenaktualisierung aktualisieren" gesetzt?
Axel
billygates:
Probier es mal so:
_Error_Message := "No NAMES installed" ;
_liste_deu := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 3 );
_liste_eng := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 4 );
@If(
@text(language) = "deutsch"; _liste_deu;
@IsError( _liste_eng ); _Error_Message;
_liste_eng )
Was der "@Text(language)" vor Deiner @If-Konstruktion soll, hab ich aber nicht verstanden.
Falls das Feld "language" statt "deutsch" auch den Wert "english" haben kann, würde ich es jedoch anders lösen:
_Error_Message := "No NAMES installed" ;
_liste_deu := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 3 );
_liste_eng := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; 4 );
@If(
@text(language) = "deutsch"; _liste_deu;
@text(language) = "english"; _liste_eng;
_Error_Message )
Zum Testen würde ich zwischendurch noch die Variablen "_liste_deu" & "_liste_eng" per @prompt auslesen, um zu sehen, ob und ggf. welche Werte vorhanden sind.
Jörg:
Tausend Dank an Euch es klappt.
Es lag an der Option "Auswahl bei Dokumentenaktualisierung aktualisieren"
Gruss Jörg
Tode:
ich würde es trotzdem anders machen... Du machst unnötigerweise 2 dblookups, was unnötig Performance kostet.
_col := @If( @text( language ) = "deutsch" ; 3 ; 4 );
_liste := @DbLookup( "Notes" : "NoCache" ; @DbName ; "subkategorie" ; kategorie ; _col );
@If( @IsError( _Liste ) | _liste = "" ; _Error_Message ; _liste )
Dabei hast Du dann gleich noch einen Fehler im deutschen Lookup abgefangen, was bei Dir momentan nicht der Fall ist...
Gruß
Tode
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln