Autor Thema: @DBLookup^2 - Problem  (Gelesen 2453 mal)

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
@DBLookup^2 - Problem
« am: 16.07.03 - 14:50:22 »
Hallo,

habe ein Problem beim Ausgeben von Werten per DBLookup.
Szenario:
In einer View sind Personen mit ihren Kostenstellen aufgelistet.

In einer Form greife ich auf die Kostennnstellen per "DbClumn" zurück. Dann soll in nächsten Feld die Person angezeigt werden.
Das realisiere ich über "DbLookup". Dabei nutze ich folgendes Statement:
@If(ManagerKst != ""; @DbLookup("";"";"managerlist"; ManagerKst; 1); "")

Das klappt auch soweit.
PROBLEM:
Doch nun hab ich in meiner Maske 2 verschiedene Kostenstellen und muss dementsprechend auch 2mal ein DbLookup machen.

Dazu muss ich wie oben auch wieder das Statement von oben nutzen,
was dazu führt, dass ich 2mal die gleiche Person auslese, obwohl andere Kostenstellen angegen wurden. "ManagerKst" muss ich ja nutzen, sonst gibt er kein Ergebnis aus.

Wie kann ich 2 Felder in der Maske mit dem DbLookup abfragen und für unterschiedliche Kostenstelllen auch die korrespondierenden Manager ausgeben?


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #1 am: 16.07.03 - 15:16:19 »
mehrere Werte einer Maske über einen schlüssel abfragen geht grundsätzlich so:

erste Spalte einer ( versteckten ) Ansicht enthält den Schlüssel ( sortiert )
die zweite Spalte beinhaltet die werte der felder in der Form

wert1~wert2~wert3~...wertN

dzu nimmst du eine Formel für die Spalte

wert1+"~"+wert2"~"+Wert3...

jetzt kannst du

mit tmp:=@DbLookup("";"";"managerlist"; ManagerKst; 2);

die korrespondierenden Werte aus Splate 2 ermitteln, wobei ManagerKst als Schlüssel dient.

Jetzt kannst du mit @Word(tmp;"~";1) z.B. den ersten Wert des ermittelten Strings aus dem Ergebnis ausschneiden.

Damit hast du mit einer Abfrage mehrere felder auf einmal abgefragt.

 :P** mir kleben schon die Finger an der Tastatur fest; 33 Grad im Büro ***  :P
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Doc Torte

  • Aktives Mitglied
  • ***
  • Beiträge: 178
  • Geschlecht: Männlich
  • ...promovierter Bäcker... ;-)
    • ...that's me
Re:@DBLookup^2 - Problem
« Antwort #2 am: 16.07.03 - 15:23:15 »
wie nur 33 Grad ? - zwar verteilen wir die Luft hier mit Luftiventilatoren, aber das bringt nicht viel, das Thermo hier zeigt 35,3 - ich hab mich schon gefragt obs so eine Art Sauna-Zulage gibt...
Wer nicht ständig besser wird, hört bald auf gut zu sein !
Schritt für Schritt geht's immer vorwärts...

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
Re:@DBLookup^2 - Problem
« Antwort #3 am: 16.07.03 - 15:33:49 »
mir ist nicht klar, wie du das meinst!

geht folgendes:
ich lege mir in der ansicht für die personen und kostenstellen eine weitere spalte für die kostenstellen an (Kostenstelle2).
Nun kann ich einen DbLookup auf die erste Kostenstellenspalte machen, den 2. auf die 2. Kostenstellenspalte.


Will ja in der Maske von 2 Feldern aus zu einer in einem anderen Feld angegebenen Kostenstellen-Nummer die PErson ermitteln

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #4 am: 16.07.03 - 18:16:29 »
Irgendwie erscheint mir das konfus (aber wir haben immer noch 33° im Chiemgau, nach einem langen Tag ist bestimmt das Hirn ausgedörrt ...)
Wenn ich das jetzt richtig verstanden habe:
Du hast zwei Felder mit auszuwählenden Kostenstellen und willst jeweils dazu den passenden Manager auswählen ? Dann kannst Du doch sowieso nicht jeweils die gleiche Formel nehmen ...
Also: Wenn Deine Felder mit Kostenstellen ManagerKst und - sagen wir - ManagerKst2 sind, mußt Du Dich doch einmal auf das eine, beim anderen Feld auf das andere beziehen und nicht immer wieder auf das gleiche ! Das kriegste natürlich immer wieder das gleiche Ergebnis ...

Ergo: Für jedes aus dem Kostenstellenfeld zu berechnende Personenfeld eine eigene Formel mit dem Bezug zum richtigen Kostenstellenfeld !
Die Kostenstellenfelder sollten die Property "Felder bei Schlüsselwortänderung aktualisieren" haben, damit da ein Automatismus wirkt.
Und - ganz wichtig, sollte hier der Datenbestand grösser werden in Deiner DB:
Mach' aus den per dbColumn zu ermittelnden und per dbLookup zu berechnenden Feldern unbedingt jeweils zwei - eines hide-when reading, eins hide-when editing. In letzterem bleibt Deine jetzige Formel, in ersteres kommt der Bezug zum (jetzigen) Feld, was beim Editieren errechnet wird. Ansonsten wird auch bei jedem *Lesen* des Dokuments dbColumns und dbLookup ausgeführt, und das kann dauern, wenn die DB groß genug ist ...

HTH,
Bernhard

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
Re:@DBLookup^2 - Problem
« Antwort #5 am: 17.07.03 - 11:15:57 »
Das Problem ist doch:
Im Feld "Kst" habe ich meine Kostenstellennummer eingeben.
Will ich ein Feld "KST1Manager" füllen will,
nutze ich @DbLookup("";"";"managerlist"; Kst; 1); "")

Wobei Kst der Feldname ist, wo die Kostenstellen drin stehen, die in der View "managerlist" dargestellt werden.


Im 2. Feld "Kst2" steht jetzt auch eine andetre Kostenstelle drin.
Wie kann ich dann in einem 2. Feld "KST2Manager" nochmal das dblookup nutzen?
Notes weiss doch nur welche Zeile der View ich suche, wenn ich wieder ]@DbLookup("";"";"managerlist"; Kst; 1); "") eingebe.



Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #6 am: 17.07.03 - 11:32:06 »
Wieso aber die gleiche Formel ? Hier muß es doch
]@DbLookup("";"";"managerlist"; Kst2; 1); "")
heissen.

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
Re:@DBLookup^2 - Problem
« Antwort #7 am: 17.07.03 - 11:43:01 »
Er kennt doch in der View (wo ich nachschlage) die Kst2 gar nicht. Dann kann er doch auch nicht nach ihr suchen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #8 am: 17.07.03 - 11:52:09 »
Ist es nicht so, daß in der Ansicht die Kostenstellen in Spalte 1 und in Spalte 2 die zugehörige Nase steht ?
Dann wäre ja die Spaltenangabe auch falsch, da ja Spalte 1 ausgelesen wird ...
Wenn dem so ist, dann such ich für Kst1 den Manager für das erste berechnete Feld, und im zweiten Managerfeld mit Kst2 den anderen Manager. Der Schlüssel ist also jedes Mal unterschiedlich.

Wenn es aber eine gänzlich andere Kostenstellenliste ist, dann brauch man auch zwei Ansichten.

Oder ?

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
Re:@DBLookup^2 - Problem
« Antwort #9 am: 17.07.03 - 12:35:52 »
Es geht um eine Kostenstellenliste.
In der 1. und 2. Spalte stehen die Namen (einmal Vor- + Nachname, einmal Nach-, Vorname).

@DbLookup("";"";"managerlist"; Kst; 1); "")


Die 1 steht für die Spalte mit dem Rückgabewert.

Kst ist die Spalte, in der er nach der Kostenstelle sucht.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #10 am: 17.07.03 - 12:46:30 »
@dbLookup sucht immer und nur nach der ersten sortierten Spalte.

Ergo müßte in der Ansicht in Spalte 1 (sortiert) die Kostenstelle stehen und in Spalte 2 der zugehörige Name.

In den beiden betreffenden Feldern wird dann für das dortige @dbColumn einmal Kst1 und einmal Kst2 als Schlüssel verwendet.

Beispiel:
@DbLookup ("":""; "":""; "managerlist"; Kst1; 2)

Offline Mario

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Ich liebe dieses Forum!
Re:@DBLookup^2 - Problem
« Antwort #11 am: 17.07.03 - 15:11:41 »
Das hab ich bis jetzt nicht gewusst.
Danke für den erlösenden Hinweis!
« Letzte Änderung: 17.07.03 - 15:12:49 von Mario »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:@DBLookup^2 - Problem
« Antwort #12 am: 17.07.03 - 15:13:44 »
Da bin ich jetzt aber froh - ich hab' schon gedacht, ich hätte die "kleinen mang die grossen" gebracht ;-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz