Autor Thema: Abfrage über DbLookup  (Gelesen 2076 mal)

Offline regedit

  • Aktives Mitglied
  • ***
  • Beiträge: 118
  • Geschlecht: Männlich
Abfrage über DbLookup
« 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.
!!HELP!! V1.6
Domino Server V6.5.6 FP1 (Windows 2003 Server)
Notes Client V6.5.5 (TS-Client / Win 2003 TS-Server)
Notes Client V6.5.5 (Win XP)

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Abfrage über DbLookup
« Antwort #1 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)))));"")
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline Joe

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
  • Ich liebe dieses Forum
Re: Abfrage über DbLookup
« Antwort #2 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.
Joachim

1 App.-Server 8.0.2FP2
4 Mail-Server 8.0.2FP2
ca. 1500 Clients 8.0.2FP2

Offline regedit

  • Aktives Mitglied
  • ***
  • Beiträge: 118
  • Geschlecht: Männlich
Re: Abfrage über DbLookup
« Antwort #3 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.
!!HELP!! V1.6
Domino Server V6.5.6 FP1 (Windows 2003 Server)
Notes Client V6.5.5 (TS-Client / Win 2003 TS-Server)
Notes Client V6.5.5 (Win XP)

Driri

  • Gast
Re: Abfrage über DbLookup
« Antwort #4 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)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz