Autor Thema: Doppelte Einträge bei @DBLookup  (Gelesen 2492 mal)

Offline Lionhead

  • Frischling
  • *
  • Beiträge: 35
Doppelte Einträge bei @DBLookup
« am: 04.02.22 - 10:00:53 »
Hallo liebe Notes-Expert*innen,

vielleicht könnt ihr mir bei folgendem Problem weiterhelfen:

Hintergrund:
Ich habe in einer Datenbank zwei Dokumente (Dokument_A und Dokument_B) mit unterschiedlichen Informationen zu einer Abteilungsnummer welche in beiden Dokumenten vorkommt. Nun sollen Informationen aus dem Dokument_A als Tabelle in das Dokument_B übernommen werden, wenn die Abteilungsnummer bei beiden ident ist (s. Screenshot "Nr"). Das habe ich mit @dblookup gelöst und funktioniert auch.

Problem:
Wenn im Dokument_A beispielsweise nur ein Dokument mit einer Person (z.B. Tester A) besteht, werden alle Informationen wunderbar angezeigt. Gibt es jedoch mehrere Dokumente mit unterschiedlichen Personen, werden die restlichen Informationen in der Tabelle mehrfach angezeit (im Screenshot z.B. Nr. "100" oder die Abteilung "Expedit").

Frage:
gibt es eine Möglichkeit, dass in der Tabelle im Dokument_B  die gleichen, mehrfach angezeigten Einträge (Tabelleneintrag 1 und 3) für alle Personeneinträge nur einmal angezeigt werden , also im Beispiel die Nr. 100 und der Bereich Expedit nur einmal. Ich habe zwar schon mit @Unique ein paar Versuche gemacht, komme aber da leider nicht weiter.

Für die Anzeige verwende ich folgende Formel:

@If(@IsError(@DbLookup("":"NOCACHE";@DbName;"Dokument_A" ; Nr ; 1));"";@DbLookup("":"NOCACHE";@DbName;"Dokument_A" ; Nr ; 1))

Ich hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir hier weiterhelfen.


pantelis.botsas

  • Gast
Re: Doppelte Einträge bei @DBLookup
« Antwort #1 am: 04.02.22 - 21:42:57 »
Hallo Lionhead,

wenn es lediglich darum geht, die Liste auf eindeutige Werte einzudampfen, dann hilft hier ein @Unique um das Ergebnis vom @DBLookup.

Ganz nebenbei würde ich die Abfrage vom @DBLookup einer Variablen zuweisen, um zu vermeiden, dass das @DBLookup doppelt ausgeführt wird (Performance).

Also:

Code
_tmp := @DBLookup(…);
_tmp := @If(@IsError(_tmp); ""; _tmp);
@Unique(_tmp);

Viel Erfolg damit,
Pantelis

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Doppelte Einträge bei @DBLookup
« Antwort #2 am: 05.02.22 - 09:04:51 »
Man bekommt das auch anders hin.

Wenn die Daten für die Auswahl über Ansichten gezogen werden, die sonst nirgendwo verwendet werden, dann kann man in den Eigenschaften der Ansicht beim ODBC Access den Haken setzen, und schon erhält man für jeden Wert nur noch einen Eintrag.

Das hat den Vorteil, dass die Konsolidierung bereits auf Ansichtenebene erfolgt, und nicht erst im @DbLookup. Je nachdem, wie viele Daten in der Ansicht vorhanden sind rennt man auch schnell gegen das 64k Limit im @DbLookup. Zudem spart man sich das @Unique im Frontend.
« Letzte Änderung: 05.02.22 - 09:07:56 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Lionhead

  • Frischling
  • *
  • Beiträge: 35
Re: Doppelte Einträge bei @DBLookup
« Antwort #3 am: 07.02.22 - 10:39:25 »
Vielen Dank für die Hilfe und eure Tipps.

Mit dem @Unique in der Formel funktioniert es wunderbar.

@eknori
Wäre eine perfekte und saubere  Lösung, allerdings ergibt sich hier ein Problem.
Der Abgleich mit @DBLookup erfolgt über die Abteilungsnummer. Wenn ich bei ODBC den Haken setze, dann wird bei Abteilungsnummer auch nur eine angezeigt, allerdings ist der Eintrag dann  nur für eine ein Person, i.d.F. "Tester_A" vorhanden. Die Tester sollten allerdings alle (z.B. Tester_A; Tester_B....) angezeigt werden und nur die restlichen  identen Einträge, wie die Abteilungsnummer, Beschreibung etc. sollem nur einmal angezeigt werden.



 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz