Autor Thema: Sinnvolle Daten aus View/Form übernehmen  (Gelesen 3470 mal)

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Sinnvolle Daten aus View/Form übernehmen
« 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???????

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #1 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

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline sharif

  • Frischling
  • *
  • Beiträge: 24
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #2 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?  ???
Der Sharif

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #3 am: 17.06.05 - 10:49:54 »
ja
@Picklist gibt es da.

Offline sharif

  • Frischling
  • *
  • Beiträge: 24
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #4 am: 17.06.05 - 10:55:27 »
Danke!  :-*
Der Sharif

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #5 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

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #6 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

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #7 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?

Offline sharif

  • Frischling
  • *
  • Beiträge: 24
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #8 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
Der Sharif

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #9 am: 17.06.05 - 16:42:22 »
wie haste denn das jetzt genau gemacht Sharif? ???

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #10 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!!!

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #11 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:

  • Wenn Du die Combobox behalten willst, muss dort der Name ausgewählt werden
  • In den Datenbanken, in denen Informationen gesucht werden muss dann jeweils eine Ansicht mit dem Namen als erste sortierte Spalte existieren
  • Die jeweilige Datenbank holst Du mit session.GetDatabase(server, filepath)
  • In der Datenbank holst Du die jeweilige Ansicht mit db.GetView(viewName)
  • In der View suchst Du das Dokument mit view.GetDocumentByKey(name, True)
  • Wenn Du das Dokument hast, kannst Du dann auf alle Felder zugreifen die Du brauchst mit doc.Feldname(0) (wenns nur der erste Wert sein soll)

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
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #12 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?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #13 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

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #14 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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #15 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.

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #16 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



Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #17 am: 17.06.05 - 18:34:31 »
oops, Bernhard war wieder etwas schneller...
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #18 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 !

Offline Designer

  • Aktives Mitglied
  • ***
  • Beiträge: 104
Re: Sinnvolle Daten aus View/Form übernehmen
« Antwort #19 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??

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz