Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Designer am 17.06.05 - 01:11:10

Titel: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 01:11:10
Hallo!
hab eine kleine Frage:
kann man es realisieren das wenn man aus einem View beispielsweise eine Produktnummer auswählt das sich übrige Felder mit den daten aus der Produktform übernommen werden...
hab eine Combo- box mit Produktnummern und nach anklicken sollen daten wie bsp. Gewicht etc. aus einem View oder der Produktform in der Rechnungsform übernommen werden??
Ist das möglich?
@DBlookup???????
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Axel am 17.06.05 - 08:19:28
Hi,

das ist kein Problem.

Ein möglicher Weg:

Du nimmst die Funktion PicklistCollection aus der Klasse NotesUIWorkspace. Diese liefert die ein Handle auf das ausgewählte Dokument. Damit kannst du alle Felder auslesen.

In der Designer - hilfe findest du entsprechende Beispiele.


Axel

Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: sharif am 17.06.05 - 10:43:33
Das interessiert mich auch!
Geht das auch ohne LS?
Kann man das nicht mit einfacher Formelsprache lösen?  ???
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: ctillmanns am 17.06.05 - 10:49:54
ja
@Picklist gibt es da.
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: sharif am 17.06.05 - 10:55:27
Danke!  :-*
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Axel am 17.06.05 - 10:57:27
ja
@Picklist gibt es da.

Ja, aber....


Die Formelfunktion liefert kein direktes Handle auf das Dokument. Du kannst dir lediglich die DocID zurückliefern lassen und dann kannst du mit @GetDocField (wenn es um Dokumente in der gleichen DB handelt) oder mit @DBLookup (dazu brauch man aber eine Ansicht, die in der ersten Spalte nach der DocID sortiert ist) die Feldinhalte auslesen.

Axel

Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: koehlerbv am 17.06.05 - 11:00:12
Geht das auch ohne LS?
Kann man das nicht mit einfacher Formelsprache lösen?  ???

Es ist mir in diesem Zusammenhang ein vollkommenes Rätsel, warum Formelsprache hier "einfacher" sein soll. Gerade in diesem Fall ist die @functions-Lösung schwieriger und inperformanter (evtl.).

Bernhard
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: ctillmanns am 17.06.05 - 11:20:04
Da hast Du recht, aber wir wollen doch niemanden davon abhalten etwas kompliziert zu lösen, wenn es auch einfach geht. Vielleicht is sharif ja Beamter?
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: sharif am 17.06.05 - 13:50:45
Nee, bin kein Beamter!!!
So ein niveau hätte ich von einem User hier beim Notes Forum nicht erwartet...  :-X
Arbeitest bestimmt mir vielen Beamten zusammen  ^-^
Naja, auf jeden fall hab ich es total trivial mit @Functions gelöst...
Ein paar @Formeln und schon funzt das ganze...  ;D ;D ;D
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 16:42:22
wie haste denn das jetzt genau gemacht Sharif? ???
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 18:00:18
Hab nun den ganzen Tag an meinem Problem gesessen und schaffe es anscheind nicht ohne eure Hilfe...   :'(

Mein Problem:
Ich hab eine Form Auftrag in der ich eine Combobox hab, wo ich ein verfügbaren Mitarbeiter auswählen kann. Laut Aufgabenstellung sollen nun sinnvolle Daten aus dem Mitarbeiterdokument in das Auftragsdokument übertragen werden.
Ich hab die Combobox dynamisiert mit @dbColoumn...

geht es, dass wenn ich z.b. einen Mitarbeiter in der Combo auswähle Fields wie z.b. Größe, Gewicht etc. die Daten automatisch übernimmt (bsp. nach drücken von F9)?
DocID?? @GetField??? 

Es sind alle nötigen Angaben in der selben Datenbank!
Nur wie?
wäre sehr über Hilfe dankbar!!!
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: jr am 17.06.05 - 18:10:11
Wenn die zusätzlichen Daten aus anderen Datenbanken kommen sollen, geht wohl kein Weg an LotusScript vorbei.

Hier eine Kurzbeschreibung:


Den Code kannst Du zum Beispiel im PostRecalc-Event unterbringen.

Ich hätte aber wahrscheinlich eher eine PickListCollection genommen und den kompletten Code in einem Knopf untergebracht, aber das ist Geschmacksache.

Wenn Du noch nichts mit LotusScript gemacht hast, wird's wahrscheinlich etwas schwer, aber

man wächst an seinen Aufgaben.... ;D

Gruß,

Joachim
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 18:15:25
ohhhh    :-\
hab mit Lotusscript noch gar keine Erfahrunge   :'(
geht es nicht auch mit @functions das ich die ID hole und mit @GetField etc dann Daten aus dem jeweiligen Document hole???
Hört sich immerhin gut an nur geht das auch?
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: koehlerbv am 17.06.05 - 18:18:25
Nun, Joachims Algorithmus funktioniert so auch mit @functions, da dieser auch eindeutige Schlüssel erfordert (was mit Joachims Präferenz für die PickListCollection nicht erforderlich wäre - aber das geht dann wirklich nur mit LS).

Bevor ich hier weitere Zeit aufwende: Hast Du eindeutige Schlüssel für die auszulesenden Dokumente ?

Bernhard

PS: Hast Du noch einen Namen ? "Designer" mag ich jetzt nicht verwenden  ;D
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 18:23:27
Hallo!
Jep, Designer ist wirklich nen bissle blödi  *g*
Tut mir leid: ich heiße Dennis
:)

hmm, also ich möchte das gern mit @functions lösen und jedes Dokument hat auch eine eindeutige ID!
wie mach ich denn das am besten...
bin noch Notes- Anfänger deshalb mal die grobe frage   *g*
liebe Grüße
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: koehlerbv am 17.06.05 - 18:30:55
Dennis, in FeldA bietest Du via @dbColumn eine Auswahl basierend auf einer Ansicht. In den Feldern FeldB, FeldC etc. greifst Du via @dbLookup mit dem Schlüssel aus FeldA auf die gleiche Ansicht zu und liest Du die Feldwerte, die Du brauchst, aus.

@DbLookup (Klasse : "NoCache" ; Server  : Datenbank  ; Ansicht  ; Schlüssel  ; Feldname)

Schlüssel ist der Wert aus FeldA, Feldname (Achtung - als String !) is tdas Feld, welches Du auslesen möchtest.

HTH,
Bernhard

PS: Hierzu die DesignerHelp gut studieren ... Gaaaaanz sorgfältig, um alles zu verstehen.
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: jr am 17.06.05 - 18:33:31
Wieder ich...  ;)

Man merkt, dass ich heute ein bisschen Zeit habe.

Also wenn's unbedingt mit @Formeln sein muss...

Um einen Wert aus einer anderen Datenbank zu holen brauchst Du den besagten eindeutigen Schlüsse (ob @Formel oder LS ist egal, Schlüssel braucht man immer).
Nehmen wir mal an, dass der Name eindeutig ist.
Dann kann man mit @DbLookup direkt in einer Ansicht auf ein Dokument und dort auf ein Feldwert zugreifen:

@DbLookup("":"NoCache"; ""; view; key; feldname)      holt den Wert aus einer Ansicht in der aktuellen Datenbank.

Wenn es eine andere Datenbank ist, gibt es zwei Möglichkeiten:

@DbLookup("":"NoCache"; server:pfad; view; key; feldname)       oder
@DbLookup("":"NoCache"; replikid; view; key; feldname)

Anstatt des Feldnamens, kann man auch eine Spaltennummer angeben, wenn es passt.

Der komplette Code würde dann so aussehen:

FIELD sCity := @DbLookup("":"NoCache"; "SRV":"names.nsf"; "($Users)"; sCombo; "City");

Das Combobox-Feld heißt "sCombo", dort wird der vollständige Name (am besten voll qualifiziert, also CN=.../OU=...) ausgelesen. Für die Person gibt's im globalen Adressbuch auf dem Server "SRV" ein Dokument und den Wohnort speichere ich im aktuellen Dokument in das Feld "sCity". Alles klar?

Natürlich kann man das ein bisschen schöner machen und eventuell fehlende Dokumente abfangen usw.

dbSrv     := "SRV" : "names.nsf";
view       := "(@Users)";
key        := sCombo;
feld        := "City";
val         := @DbLookup("":"NoCache"; dbSrv; view; key; feld);
erg        := @If(@IsError(val); ""; val);

FIELD sCity := erg;


Und das machst Du dann für alle Daten, die Du brauchst.

Gruß,

Joachim


P.S.:   Mit LotusScript ist's aber schöner...  ;D



Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: jr am 17.06.05 - 18:34:31
oops, Bernhard war wieder etwas schneller...
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: koehlerbv am 17.06.05 - 18:39:44
Mit LotusScript ist's aber schöner...  ;D

Ich schätze @functions wirklich sehr, aber mit LS geht das wirklich ... besser, leserlicher. Und man kann eher aus ausgelesenen Äpfeln Birnen machen, wenn erforderlich. Vor allem aber erfordert das auslesen von n Feldern nur einen einzigen Backend-Zugriff. Auch wenn Notes hier caching betreibt - zahlreiche @dbLookups fressen einfach Performance.

Joachim: Und "wieder schneller" war ich heute wohl nicht - bislang habe ich doch immer Dir hinterhergehinkt. Ist aber auch wurscht: Schön, dass Du hier so mithilfst !
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: Designer am 17.06.05 - 18:42:17
wenn ich jetzt in einem Feld bsp. Größe folgendes eingebe:
@dblookup("Notes:"NoCache";"":"";"MitarbeiterView";"ID";1)
die ID ist sortiert in der 1. Spalte..
wie komme ich jetzt an die anderen werte die beispielsweise in der 2. oder 3. Spalte sind.. um jetzt net auf das Dokument zuzugreifen sondern über den View??
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: koehlerbv am 17.06.05 - 18:44:47
Liest Du die DesignerHelp ??

Wie wäre es, wenn du einfach die richtige Spaltennummer angibst ?

Bitte erst Hirn einschalten und dann posten ...

Bernhard
Titel: Re: Sinnvolle Daten aus View/Form übernehmen
Beitrag von: jr am 17.06.05 - 18:48:21
Zitat
wenn ich jetzt in einem Feld bsp. Größe folgendes eingebe:
@dblookup("Notes:"NoCache";"":"";"MitarbeiterView";"ID";1)
die ID ist sortiert in der 1. Spalte..
wie komme ich jetzt an die anderen werte die beispielsweise in der 2. oder 3. Spalte sind.. um jetzt net auf das Dokument zuzugreifen sondern über den View??

"ID" ist ein String mit 2 Zeichen, nämlich "I" und "D". Und ich vermute mal, dass Du keinen Eintrag in Deiner Datenbank mit dem Namen ID hast. Also musst Du die " weglassen, damit der Wert, der in der Variable oder dem Feld ID gespeichert ist zur Suche benutzt wird.

Ansonsten, wie Bernhard schon gesagt hat, den Lookup mehrfach nutzen und die anderen Spaltennummern angeben.

Joachim