Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Jörg am 10.10.05 - 14:15:39

Titel: DBLookup nach Sprache
Beitrag von: Jörg am 10.10.05 - 14:15:39
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 ) )

Mir wird immer nur die Beschreibung der _liste_deu angezeigt.

Gruss Jörg
Titel: Re: DBLookup nach Sprache
Beitrag von: Axel am 10.10.05 - 14:42:30
Das könnte ein Problem mit der Aktualisierung sein. Hast du in deinem Listenfeld die Option "Auswahl bei Dokumentenaktualisierung aktualisieren" gesetzt?


Axel
Titel: Re: DBLookup nach Sprache
Beitrag von: billygates am 10.10.05 - 15:26:43
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.
Titel: Re: DBLookup nach Sprache
Beitrag von: Jörg am 10.10.05 - 15:34:42
Tausend Dank an Euch es klappt.

Es lag an der Option "Auswahl bei Dokumentenaktualisierung aktualisieren"

Gruss Jörg
Titel: Re: DBLookup nach Sprache
Beitrag von: Tode am 11.10.05 - 09:21:23
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


Titel: Re: DBLookup nach Sprache
Beitrag von: Jörg am 11.10.05 - 10:43:19
Danke nochmals ...

Kann ich über die DBLookup-Funktion auch die Kategorie auslesen und dann einen
Listfeld zuweisen??
Denn die Kategorie lege ich über sep. form schon im Voraus fest und habe eine Ansicht erstellt
in der ich sie mir anzeigen lasse........


Gruss jörg
Titel: Re: DBLookup nach Sprache
Beitrag von: Axel am 11.10.05 - 11:09:49
Hi,

ich verstehe zwar nicht ganz was du meinst, aber wenn es darum geht, eine (katagoriserte) Spalte aus einer Ansicht in einem Listenfeld zur Auswahl anzubieten, dann nimmst du am besten @DbColumn.

Axel
Titel: Re: DBLookup nach Sprache
Beitrag von: Jörg am 11.10.05 - 11:27:01
klasse so klappt es.....  :D :D :D