Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: regedit am 22.03.07 - 16:26:54

Titel: Abfrage über DbLookup
Beitrag von: regedit am 22.03.07 - 16:26:54
Ich habe in einer Maske das bearbeitbare Feld vom Typ Dialogliste "Produktname".

Die Auswahlformel hierfür lautet:
Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; Produkt; 2);
@If(Produkt=""; ""; @If(@IsError(Liste); ""; @Trim(@Unique(Liste))))

Nun ist in dieser Maske das Feld "OE" hinzugekommen. Die neue Funktion sollte nun sein:
Wenn das Feld OE leer ist, dann zeige die gesamte Liste (wie es momentan der Fall ist), wenn aber im Feld OE z.B. "Verwaltung" steht, dann zeige mir nur die Dokumente aus der "(Produktname)",
bei denen dort im Feld OE "Verwaltung" stehen haben.

Ich probiere die ganze Zeit schon herum, komme aber nicht weiter.
Bitte nicht schlagen, aber ich glaube ich sehe vor lauter Wald die Bäume nicht mehr.
Titel: Re: Abfrage über DbLookup
Beitrag von: bikerboy am 22.03.07 - 16:55:48
Also du willst wenn in dem Feld OE Verwaltung steht deinen alten Code anwenden und ansonsten die gesamte Liste dir Anzeigen lassen?

Dann würde ich das so machen

Code
@if(OE = "" ; <gesamteListe>; OE = "Verwaltung" ; @Do( Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; Produkt; 2);
@If(Produkt=""; ""; @If(@IsError(Liste); ""; @Trim(@Unique(Liste)))));"")
Titel: Re: Abfrage über DbLookup
Beitrag von: Joe am 22.03.07 - 17:02:13
So habe ich das nicht verstanden. Ich denke, es soll, wenn OE="Verwaltung" ist, nur die Liste angezeigt werden mit dem OE="Verwaltung", wenn OE="" ist, dann die alte Liste. Ich würde das so versuchen:

@If( OE="";
Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; Produkt; 2);
Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; OE; Produkt))

@If(Produkt=""; ""; @If(@IsError(Liste); ""; @Trim(@Unique(Liste))))

wobei in (Produktname) allerdings die erste sortierte Spalte mit OE gefüllt werden muss und dann evtl. die 2 für die Spalte im ersten Ausdruck nicht mehr stimmt.
Titel: Re: Abfrage über DbLookup
Beitrag von: regedit am 22.03.07 - 17:36:48
Ja es ist so wie Joe es verstanden hat.
Allerdings habe ich vergessen zu schreiben, dass Produktname von einem Feld "Gerät" abhängig ist und deshalb ich in der ersten Spalte Gerät und der 2. Spalte Produktname in der Ansicht "(Produktname)" nehmen musste.
Gibt es vielleicht eine Möglichkeit das DBLookup:
Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; Produkt; 2) so einzugrenzen, dass nur die Dokumente angezeigt werden, in denn das Feld OE mit Verwaltung gefüllt ist.
Titel: Re: Abfrage über DbLookup
Beitrag von: Driri am 23.03.07 - 09:05:39
Das hat Joachim doch bereits mit beantwortet, oder ich hab die Frage jetzt nicht verstanden ?

Zitat
Liste := @DbLookup("":"NoCache"; "LNDB1":"Test\\TestDB.nsf"; "(Produktname)"; OE; Produkt)