AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
05.08.21 - 13:10:27
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 9 und frühere Versionen
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Werte per Dialog aus einer Ansicht abfragen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Werte per Dialog aus einer Ansicht abfragen  (Gelesen 1396 mal)
michael-r
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 1663



« am: 14.01.21 - 16:23:11 »

Hallo zusammen,

ich würde gern aus einer Maske per Button, mehrere Felder per Dialog aus einer Ansicht abfragen, in dem ich die Daten im Dialog markiere.
Ähnlich wie bei einer Picklist, die kann aber nur einen Wert von einem Feld übergeben. Ich brauche aber alle Werte aller Felder und muss die an unterschiedliche Felder übergeben, also ich selektiere Hans (Feld Vorname), Mustermann (Feld Nachnahme) und in der Maske soll dann die Felder Vorname und Nachname ensprechend gefüllt werden.

Ich habe schon gesucht, aber leider war das passende nicht dabei Wink.

Hat jemand da ein Beispiel oder Schlagwort?

MFG Michael
Gespeichert

it898ur
Senior Mitglied
****
Offline Offline

Beiträge: 469


« Antworten #1 am: 15.01.21 - 10:34:59 »

Hallo Michael,

im Normalfall holt man sich bei diesen Anforderungen per @Picklist einen eindeutigen Schlüssel und sucht mit diesem Schlüssel dann die anderen Werte per @DbLookup aus entsprechenden Hintergrundansicht heraus.
Sofern die Daten in der gleichen Datenbank liegen, kann man sich als eindeutigen Schlüssel auch die UNID holen und über @GetDocField die fehlenden Daten suchen.

Viele Grüße

André
Gespeichert
michael-r
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 1663



« Antworten #2 am: 15.01.21 - 11:30:21 »

Hallo Andre,

Danke, ich werde mal ein bißchen basteln.

MFG Michael
Gespeichert

CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 419



« Antworten #3 am: 15.01.21 - 12:35:04 »

Hallo Michael,

der Vorschlag von André ist vielleicht naheliegend, weil simpel umzusetzen, aber nur dann empfehlenswert wenn es sich um eher wenige und sich selten ändernde Daten handelt die nachzuladen sind und die Datenbanken (und Server auf denen sie liegen) sich eher langweilen.

Der Grund ist schnell erklärt: Ressourcen sind endlich, jedes erneute @DbLookup oder @GetDocField verursacht Last auf dem Server. Aus Erfahrung neigen Programmierer noch dazu gern mal ein [NoCache] als Parameter einzubauen weil es ja irgendwann (insbesondere beim Testen mit immer wieder gleichen Testdaten) den Fall gab dass das Lookup einen (alten) Wert aus dem Cache geholt hat.
Im Ergebnis funktioniert die Anwendung zwar wie sie soll aber die Bedienung und die Reaktion der Anwendungen und Masken sind zäh, bei jedem Feldwechsel kommt die Sanduhr weil auch noch in den HideWhen-Formeln weitere @DbLookup's stecken. Letztendlich leidet die Akzeptanz darunter erheblich.

Um zum Ursprung zurück zu kommen: Deine Frage war schon ganz richtig formuliert, wenn man schon mehrere Werte auf einen Schlag holen und verteilen kann ist das immer der (ressourcentechnisch) bessere Weg.

Sehr viel musst du dafür gar nicht ändern, du fragst ja schon per Dialog eine Ansicht ab. In diese Ansicht baust du dir eine zusätzliche Spalte ein, nennen wir sie mal  "Returnvalues". Die Spalte macht man später unsichtbar, Nutzer sehen nach wie vor eine normale Auswahl.

Die zusätzliche Spalte bekommt als Wert die Values aller zurückzugebenden Felder als eine Zeichenkette mit einem erfundenen Trennzeichen, das in den Feldwerten selbst nicht auftauchen darf. Ich habe als Beispiel-Trennzeichen hier mal "@;" benutzt. Die Formel sieht dann in etwa so aus:
Code:
@Text(nr) + "@;" + Sortname + "@;" + @Trim( Name_1 + " " + Name_2 ) + "@;" + PLZ + "@;" + Ort + "@;" + ............

In der Maske gibst du diese Spalte als zurückzugebenden Wert an und in der Eingabeumsetzung des Feldes zerlegst du die Zeichenkette wieder, z.B. mit
Code:
retvalue := @Explode( string ; "@;")
Die Feldwerte stehen dann als Liste (Array) mit retvalue[n] zur Verfügung und können leicht in einem Rutsch auf die Felder in der Maske verteilt werden. @Command([RefreshHideFormulas]) anschließend nicht vergessen.

Ich bin mir sicher hier im Forum schlummern etliche Beispiele und Tipps die das vielleicht sogar besser erklären.

HTH
Carsten

[Edit] Einen Thread zu genau dieser Problematik (Performanceprobleme durch zu viele @Lookups) und gleicher Lösung habe ich auf die Schnelle noch gefunden: https://atnotes.de/index.php/topic,60615.0.html
« Letzte Änderung: 15.01.21 - 13:00:53 von CarstenH » Gespeichert
michael-r
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 1663



« Antworten #4 am: 18.01.21 - 11:28:35 »

Hallo Carsten,

danke schön. Der Vorschlag gefällt mir noch besser und funktioniert sehr gut.
Bis auf dass man die Spalte nicht unsichtbar machen kann, denn sonst werden keine Werte übergeben, aber ich habe die nach hinten geschoben und mit breite von 1, fällt das nicht auf.

Ich habe noch Sachen gesucht wie Domino Designer werte aus einer Ansicht übernehmen etc, mit Picklist hatte ich auch einige Sachen gefunden, aber das hatte alles nicht so weiter geholfen.

MFG Michael
Gespeichert

CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 419



« Antworten #5 am: 18.01.21 - 11:45:24 »

Unsichtbare Spalte sollte eigentlich gehen, das habe ich definitiv an mehreren Stellen benutzt und das wird auch in dem anderen von mir verlinkten Thread so von Torsten (Tode) erklärt.
Aber egal - dein Workaround mit Größe 1 ist ja auch ok.

Carsten
Gespeichert
michael-r
Gold Platin u.s.w. member:)
*****
Offline Offline

Beiträge: 1663



« Antworten #6 am: 18.01.21 - 14:46:17 »

Also ich hatte es über die "Hide Column" in den Eigenschaften der Spalte gemacht.
Nicht über eine Formel.

MFG Michael
Gespeichert

ronka
Senior Mitglied
****
Offline Offline

Beiträge: 329


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #7 am: 19.01.21 - 19:41:37 »

Sonnst den Schrift farbe an den Hintergrund anpassen.. weissen schrift auf weise hintergrund ist auch unsichtbar.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: