Autor Thema: Kann DBLookup mehr zurückliefern ?  (Gelesen 10531 mal)

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Kann DBLookup mehr zurückliefern ?
« am: 14.06.10 - 07:23:07 »
Ich hab in einem Feld eine KundenNummer stehen.
In beinem 2ten Feld mache ich auf Basis dieser Kundennummer ein DBLookup...das funkt auch.

Das Lookup ist auf Basis einer Formel in einem Dialoglist Feld "VB" hinterlegt.
@Unique(@DbLookup("";"":"";"(Vertriebsbeauftragter)";KundenNummer;2))

Jetzt wird ja der Wert der Spalte 2 aus dem View "Vertriebsbeauftragter" auf  Basis des Keys "KundenNummer" als einzelner Wert
in der Dialogliste ausgewählt.  SUPER - gut funkt es....NUR... mein Kunde hätte gerne das hier mehr Information zurückgeliefert wird so das z.B. Ort + Straße auch der Auswahl sichtbar sind...damit die Auswahl eindeutiger ist.

Ist mir schon klar ich könnte den View "Vertriebsbeauftrager" so aufbauen  das mehrere Werte in  eine Spalte zusammengefassst werden könnten - nur schlußendlich soll nur der Wert aus Spalte 2 in das Feld "VB" zurückgeschrieben werden.

Ich persönlich glaub ja das geht gar nicht was mein Kunde da wil !? Oder bin ich zu doof und hab den Tunnelblick ?  ;-))

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #1 am: 14.06.10 - 07:39:45 »
Probier es mit einem Alias. In der Spalte rechnest Du erst alle Informationen zusammen, die angezeigt werden sollen, dann folgt ein Pipe | und dann der Wert, der in Dein Feld geschrieben werden soll (der Alias), z.B. "Name Vorname - Strasse - Ort|Name Vorname", dann kannst Du Name Vorname -Strasse - Ort auswählen und erhältst Name Vorname zurückgeliefert. Achte darauf, dass keine Kommata in der Auswahlliste enthalten sind.

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #2 am: 14.06.10 - 07:59:06 »
Guten Morgen Peter !

Danke mal für den Hinweis - hab mich gleich drauf gestürzt  ;D
Hmmmm... das heißt in der Spalte im View soll ich diese Werte zusammenstoppeln ?

Nachstehende Spaltenformel funkt nicht - oder liegt es am Pipe...???

(VertriebsbeauftragterNachname  + " - " + VertriebsbeauftragterVorname + "-" + Vertriebsweg + " - " + VertriebswegPersonalNr) | VertriebsbeauftragterNachname

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #3 am: 14.06.10 - 08:11:21 »
VertriebsbeauftragterNachname  + " - " + VertriebsbeauftragterVorname + "-" + Vertriebsweg + " - " + VertriebswegPersonalNr + "|" + VertriebsbeauftragterNachname

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #4 am: 14.06.10 - 08:24:01 »
....hmmm die Dialogliste bleibt leer ....

hier der VIEW
« Letzte Änderung: 14.06.10 - 08:27:18 von Scotty67 »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #5 am: 14.06.10 - 08:28:24 »
Vielleicht mag er das Pipe nicht im DBLookup, dann probier mal dieses:

Spaltenformel:

VertriebsbeauftragterNachname  + " - " + VertriebsbeauftragterVorname + "-" + Vertriebsweg + " - " + VertriebswegPersonalNr + "*" + VertriebsbeauftragterNachname

Listenformel:

@ReplaceSubstring (@Unique(@DbLookup("";"":"";"(Vertriebsbeauftragter)";KundenNummer;2)); "*"; "|")

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #6 am: 14.06.10 - 08:34:06 »
Die View sieht gut aus, genau so muss die Auswahlliste aussehen. Natürlich ist das jetzt Spalte 4 und nicht mehr Spalte 2 (für das @DBLookup). Inhaltlich würde ich auch noch darüber nachdenken, ob Du wirklich den Nachnamen zurückhaben willst, denn spätestens wenn es z.B. mehrere Müllers gibt, hast Du ein Problem, aber das ist eine andere Baustelle.

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #7 am: 14.06.10 - 08:53:02 »
 :(

geht leider immer noch nicht - dialoglist ist noch immer leer
hier das Feld

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #8 am: 14.06.10 - 09:02:07 »
Merkwürdig. Deine erste gepostete Formel hat doch funktioniert, oder? Hast Du nach dem Ändern der View (neue Spalte 4) die Datenbank einmal geschlossen und neu geöffnet, um das Lookup-Ergebnis aus dem Cache zu löschen?

Ich würde einmal den Client und den Designer ganz schließen und neu öffnen. Es kann nicht sein, dass das Lookup nichts zurückgibt. Falls danach immer noch nichts auswählbar ist, lass mal das ReplaceSubstring weg, dann muss ja die Spalte 4 mit dem * ausgegeben werden. Geht das, ersetzt Du * durch | (wobei ich glaube, dass auch das Pipe über DBLookup gelesen werden kann).

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #9 am: 14.06.10 - 09:08:23 »
Lass Dir vom Lookup doch lieber die UNID zurückgeben, dann kannst Du mit @GetDocField( documentUNID ; fieldName ) aus dem Dokument holen was Du willst und mußt bei Erweiterungswünschen durch den Kunden nicht immer alles neu berechnen lassen.

Grüße David
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #10 am: 14.06.10 - 09:21:39 »
@David

Es geht hier um die Auswahlliste, die mehr Informationen liefern soll. Zu einer Kundennummer gibt es anscheinend mehrere Vertriebsbeauftragte, wobei dann einer davon ausgewählt werden muss. Und zu diesem werden weitere Infos während der Auswahl gewünscht.

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #11 am: 14.06.10 - 09:28:29 »
Merkwürdig. Deine erste gepostete Formel hat doch funktioniert, oder? Hast Du nach dem Ändern der View (neue Spalte 4) die Datenbank einmal geschlossen und neu geöffnet, um das Lookup-Ergebnis aus dem Cache zu löschen?

Ich würde einmal den Client und den Designer ganz schließen und neu öffnen. Es kann nicht sein, dass das Lookup nichts zurückgibt. Falls danach immer noch nichts auswählbar ist, lass mal das ReplaceSubstring weg, dann muss ja die Spalte 4 mit dem * ausgegeben werden. Geht das, ersetzt Du * durch | (wobei ich glaube, dass auch das Pipe über DBLookup gelesen werden kann).

ja seltsam, ok LN Neustart hat jetzt besseres geliefert !
In das Feld wir tatsächlich nur den "LastName" hineingeschrieben aber im FrontendDokument steht der Wert so drinnen wie in der Auswahlliste....hmmm...
das wollt ich so auch nicht - ich brauche lediglich in der auswahlliste die ausführlichere information über den Vertriebsbeauftragten - optisch und ins Feld sollte nur der z.B. vor+nachname geschrieben werden....

noch ideen ?

ich sag jetzt schon mal ganz lieben dank für die bisherige unterstützung !!!

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #12 am: 14.06.10 - 09:29:43 »
@David

Es geht hier um die Auswahlliste, die mehr Informationen liefern soll. Zu einer Kundennummer gibt es anscheinend mehrere Vertriebsbeauftragte, wobei dann einer davon ausgewählt werden muss. Und zu diesem werden weitere Infos während der Auswahl gewünscht.

BINGO  ;D

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #13 am: 14.06.10 - 09:32:55 »
Ups - ein Hirnhänger ...
 :-[

Ich bin schon wieder ruhig - Grüße David
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #14 am: 14.06.10 - 09:35:05 »
Dann wäre aber für den UI-Teil eine Picklist das Mittel der Wahl.

Bernhard

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #15 am: 14.06.10 - 09:42:46 »
Dann wäre aber für den UI-Teil eine Picklist das Mittel der Wahl.

Bernhard

hmmm - noch nie mit einer pickliste gearbeitet, kannst du mir in kurzen worten erzählen wo der vorteil gegeben wäre ?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #16 am: 14.06.10 - 10:07:41 »
Da hast Du völlig recht, habe ich nicht dran gedacht. Mit einer Schaltfläche kannst Du das aber lösen. Allerdings kann @Prompt ([OKCancelList]... keine Aliase, daher würde ich den Alias z.B. in Klammern dahinterschreiben. Deine Spaltenformel lautet dann:

VertriebsbeauftragterNachname  + " - " + VertriebsbeauftragterVorname + "-" + Vertriebsweg + " - " + VertriebswegPersonalNr + " (" + VertriebsbeauftragterNachname + ")"

In die Schaltfläche neben dem Feld Vertriebsbeauftragter_Display, das dann kein Auswahlfeld, sondern ein Textfeld (berechnet beim Anlegen) ist, schreibst Du diese Formel:

FIELD Vertriebsbeauftragter := @Prompt ([OkCancelList]; "Vertriebsbeauftragter"; "Wählen Sie einen Vertriebsbeauftragten" ;Vertriebsbeauftragter; @Unique(@DbLookup("";"":"";"(Vertriebsbeauftragter)";KundenNummer;4));
FIELD Vertriebsbeauftragter_Display := @Left (@Right (Vertriebsbeauftragter; "("); ")");
""


Das Feld Vertriebsbeauftragter enthält dann den ganzen ausgewählten Wert als Vorgabewert, falls die Schaltfläche nochmals betätigt wird. Das Feld kannst Du verbergen (oder nicht in der Maske definieren).

Wenn Du eine Auswahlliste ohne angezeigten Alias haben möchtest, musst Du eine Dialogbox bauen, damit geht das, aber dann wird es noch etwas umfangreicher.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #17 am: 14.06.10 - 10:10:15 »
Dann wäre aber für den UI-Teil eine Picklist das Mittel der Wahl.

Bernhard

Eine Picklist würde ich nicht empfehlen, da man der keinen Vorgabewert mitgeben kann. Das ist lästig bei mehrfacher Betätigung der Schaltfläche, würde aber natürlich funktionieren.

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #18 am: 14.06.10 - 10:30:59 »
Da hast Du völlig recht, habe ich nicht dran gedacht. Mit einer Schaltfläche kannst Du das aber lösen. Allerdings kann @Prompt ([OKCancelList]... keine Aliase, daher würde ich den Alias z.B. in Klammern dahinterschreiben. Deine Spaltenformel lautet dann:

VertriebsbeauftragterNachname  + " - " + VertriebsbeauftragterVorname + "-" + Vertriebsweg + " - " + VertriebswegPersonalNr + " (" + VertriebsbeauftragterNachname + ")"

In die Schaltfläche neben dem Feld Vertriebsbeauftragter_Display, das dann kein Auswahlfeld, sondern ein Textfeld (berechnet beim Anlegen) ist, schreibst Du diese Formel:

FIELD Vertriebsbeauftragter := @Prompt ([OkCancelList]; "Vertriebsbeauftragter"; "Wählen Sie einen Vertriebsbeauftragten" ;Vertriebsbeauftragter; @Unique(@DbLookup("";"":"";"(Vertriebsbeauftragter)";KundenNummer;4));
FIELD Vertriebsbeauftragter_Display := @Left (@Right (Vertriebsbeauftragter; "("); ")");
""


Das Feld Vertriebsbeauftragter enthält dann den ganzen ausgewählten Wert als Vorgabewert, falls die Schaltfläche nochmals betätigt wird. Das Feld kannst Du verbergen (oder nicht in der Maske definieren).

Wenn Du eine Auswahlliste ohne angezeigten Alias haben möchtest, musst Du eine Dialogbox bauen, damit geht das, aber dann wird es noch etwas umfangreicher.


ich hab einen button angelegt mit obiger formel, in der View hab ich die spalte nr. 4 entsprechend umgebuat.....
nur dieses textfeld, wenn ich das auf "computed when composed" stelle dann will es ja ein formel hinterlegt haben....was  gehört da hinein ?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Kann DBLookup mehr zurückliefern ?
« Antwort #19 am: 14.06.10 - 10:47:06 »
""

Das bedeutet, beim Anlegen berechnet, Wert ist nichts.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz