Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mh70220 am 24.01.04 - 02:05:03

Titel: Wertuebernahme aus einer Ansicht!!!
Beitrag von: mh70220 am 24.01.04 - 02:05:03
Hallo zusammen,

Ich habe eine Maske, in der ich ein Dialogfeld habe. Dieses habe ich schon so eingestellt, das ich einen Datensatz aus einer Ansicht auswaehlen kann. Bei Auswahl des Datensatzes sollen automatisch 5 weitere Felder mit bestimmten Daten dieses Datensatzes befuellt werden.

Wie kann ich das realisieren?

Danke

Matthias
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: animate am 24.01.04 - 08:59:43
wenn der Wert, den du in das Dialogfeld schreibst das ausgewählte Dokument eindeutig identifizieren kann, dann kannst du die anderen Felder berechnet machen und als Formel jeweils einen entsprechenden @DBLookup.

Was du dazu noch brauchst: du musst in deinem Dialoglist-Feld die Option "Refresh fields on keyword change" aktivieren, dadurch werden alle berechneten Felder neu berechnet, wenn sich der Wert in der Dialogliste ändert.
Und du brauchst vielleicht noch ne neue (versteckte) Ansicht für deine Lookups, die in der ersten Spalte nach dem Feld sortiert, dass du in deine Dialogliste übernimmst.
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: Axel_Janssen am 24.01.04 - 09:35:26
alles sehr wahr.

Aus Performance-Sicht wäre es zudem sinnvoll die @dbLookups von 5 auf 1 zu beschränken.

Dafür sieht die Lookup-Ansicht so aus:
1. Spalte --> der key, den du in der Auswahlbox anwählst.
2. Spalte --> die 5 Werte konketanentiert mit einem Trennzeichen (also einen Character, der bestimmt nicht in den Feldwerten vorkommt. Kandidaten sind "~" oder "#".  

In Praxis sieht dann die Spaltenformel so aus
Feld1 + "~" + Feld2 + "~" + ... + "~" + Feld5
Du kannst diese Formel auch in ein Feld der Maske schreiben.
Vergesse dann aber nicht alle bestehenden Dokumente nochmal neu zu berechnen.

Den Wert mit den vielen ~ holst du dir dann über die @dbLookup. Diesen Wert zerschneidest du dann mit @Left und @Right Operationen in den Formeln.

Hoffe es hilft

Axel
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: animate am 24.01.04 - 10:54:51
Ja das ist dann natürlich die deluxe Version.
Sehr schön.
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: koehlerbv am 24.01.04 - 11:08:56
Das Zerlegen des zusammengesetzten Wertes geht statt mit @Links oder @Rechts noch eleganter mit @Word ;-)

Bernhard
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: mh70220 am 24.01.04 - 16:00:26
Danke fuer eure schnelle Hilfe. Doch irgendwas passt bei meiner Formel immer noch nicht. Schaut mal bitte ob ihr den fehler findet:

@If(PersBearbeiter="";"";@Word(@DbLookup( "" : "NoCache" ; ""  : ""  ; "($PersBeHelp)"  ; PersBearbeiter  ; 2 ); "~"; 2))

Das Feld ist ein Textfeld "berechnet" wo diese Formel drinsteht.

Ich bekomme immer die Fehlermeldung: Eintrag im Index nicht gefunden, oder der Index ist fuer die Ansicht nicht aufgebaut!
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: cococo69 am 24.01.04 - 16:09:51
Hallo mh,

liegt die DB lokal auf deinem Rechner oder auf einem Server?

cococo69
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: Glombi am 24.01.04 - 16:10:55
Die Angabe der Datenbank (2. Parameter) scheint mir falsch: Du suchtst doch in der gleichen Datenbank, oder?
Also so

@If(PersBearbeiter="";"";@Word(@DbLookup( "" : "NoCache" ; "" ; "($PersBeHelp)"  ; PersBearbeiter  ; 2 ); "~"; 2))

Ausserdem muss die erste Spalte der View "($PersBeHelp)" sortiert sein - bitte prüfe das mal. Dort muss als Wert der Namen PersBearbeiter stehen.

Andreas
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: mh70220 am 24.01.04 - 16:34:12
He Andreas,

danke fuer die Fehlerbehebung. Nur klappt alles :)

Matthias
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: animate am 24.01.04 - 16:44:53
abgesehen von dem Problem mit der Fehlermeldung hätte ich auch noch mal ne Frage dazu.

ich dachte, das läuft so ab: ich mache einen Lookup, bekomme den zusammengesetzten String zurück und schreibe den in ein verstecktes Feld (anders formuliert, ein verstecktes berechnetes Feld enthält die DBLookup Funktion). Jedes andere berechnete Feld holt sich mit @Word "seinen" Wert aus dem String, der ja jetzt in diesem versteckten Feld steht. Dadurch ist die Anzahl der Lookups = 1.

So wie es aussieht, habe ich da was falsch verstanden, denn mh7411 macht in jedem berechneten Feld einen Lookup und als ich Axels Post nochmal genau gelesen habe, dann steht das auch genau so da drin.
Also habe ich bei dieser Lösung auch 5 Lookups bei 5 berechneten Feldern.

Allerdings, wo ist da jetzt die bessere Performance gegenüber 5 stinknormalen Lookups ohne diesen zusammengesetzten String?
Oder wie groß mag sie sein?
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: Glombi am 24.01.04 - 16:53:34
@Thomas: Ich glaube Du hast recht.
@Matthias: Am besten (aus Performancesicht) ist es, wenn Du ein berechnetes Feld "Lookup" machst.
Dort als Formel:
@DbLookup( "" : "NoCache" ; "" ; "($PersBeHelp)"  ; PersBearbeiter  ; XX );

wobei XX die Spaltennummer ist, in der die einzelnen Felder mit "~" konkatteniert sind.

Dann bspw. im Feld "PersBearbeiter" die Formel:
@If(PersBearbeiter="";"";@Word(Lookup; "~"; 2))

Das setzt dann voraus, dass der Bearbeiter an 2. Stelle in dem String steht.

Andreas

Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: mh70220 am 24.01.04 - 17:38:05
Hallo alle zusammen,

auch der Vorschlag klappt super.

Vielleicht loennt ihr mir noch bei einem weiteren Problem helfen. Ich habe in meiner Maske ein Feld, wo eine E-Mail Adresse drin steht. Nun moechte ich ueber ein Button ein ein Memo erstellen und die E-Mail Adresse gleich als Empfaenger eintragen. Ich weis schon, das ic h mit dem Befehl "@Command([MailComposeMemo])" das Standart Memo Formular in meiner Maildatenbank oeffnen kann. Nun fehlt mir nur noch der die Moeglichkeit, die E-Mail Adresse zu uebertragen.

Kennt sich jemand damit aus?
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: Glombi am 24.01.04 - 17:42:26
Probier mal das:

_Empfaenger := DeinFeldName;
@Command([MailComposeMemo]);
@Command([EditGotoField];"EnterSendTo");
@Command( [EditInsertText];_Empfaenger)

Das sollte es tun.

Andreas
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: mh70220 am 24.01.04 - 17:49:34
Danke fuer die schnelle Hilfe. Du best super, Andreas! :)
Titel: Re:Wertuebernahme aus einer Ansicht!!!
Beitrag von: Glombi am 24.01.04 - 17:51:09
Gern geschehen, Danke für die Blumen !  :D

Andreas
Titel: Re: Mail aus Adressfeld erstellen
Beitrag von: koehlerbv am 24.01.04 - 19:54:54
Hierzu noch eine Alternative:
- Du markierst das Feld "Mail-Adresse"
- über Erstellen - Hotspot -Verknüpfungshotspot wählst Du den Typ "URL" (berechnet)
- Jetzt wählst Du aus: Formel (das @Symbol neben "Wert")
- hier trägst Du jetzt ein: "mailto:" + <DeinAdressfeldname>

Jetzt brauchst Du nur noch auf das Adressfeld zu klicken, und schon öffnet sich der vom User eingestellte MailClient mit bereits eingetragener Empfängeradresse.

ACHTUNG: Andreas Tip funktioniert immer mit Notes als Mail-Client, bei meinem Tip bist Du davon abhängig, was der User als Mail-Client installiert hat (ggf. also auch gar nix).

Ciao,
Bernhard