Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DomAdmin am 10.12.02 - 10:07:20

Titel: Werte übernehmen
Beitrag von: DomAdmin am 10.12.02 - 10:07:20
Hallo Leute,

ich will eine Adress-DB machen, die verschiedene Kriterien beinhaltet.
Es müssen Firmen angelegt werden (Maske1=Firma), die dann auch eine Kategorie bekommen (z.B. Lieferant). Dann sollen diesen Firmen auch Firmenpersonen (Maske2=Person) zugeordnet werden.

Das ist ja beim Erstellen der Person nicht schwer, die Firma zu übernehmen, aber wie mache ich das, dass er dann immer wenn bei der Firma z.B. der Name geändert wird (Is jetzt ne KG statt ne GmbH) die Person das auch mitbekommt ?

Beispiel:

Firma1:
Name: Muster AG
Standort: Frankfurt/Main

Firmenperson1:
Name: Karl-Heinz Rummenigge
Firma: Firma1 Muster AG
Standort: Standort(Firma1) Frankfurt/Main

Dann bei einer Änderung:

Firma1:
Name: Muster GmbH
Standort: Frankfurt/Main

Firmenperson1:
Name: Karl-Heinz Rummenigge
Firma: Firma1 Muster GmbH
Standort: Standort(Firma1) Frankfurt


Wie sage ich ihm nach der Erstellung, das ist deine Firma, nimm alle Daten von da ?

Bitte helft mir !

DomAdmin
Titel: Re:Werte übernehmen
Beitrag von: wflamme am 10.12.02 - 10:47:02
Mehrere Möglichkeiten:
1) Firmen als Hauptdokument, Personen als Antwortdokumente. Der Firmenverweis ist die Struktur aufs Hauptdokument
2) In der Personen-Maske die Firma dynamisch einblenden lassen, dazu brauchst Du eine Referenz aufs Firmendokument, am einfachsten durch Vererben der zug. DocID
3) Kombination aus 1) und 2)
4) Echte Synchronisierung, am besten mit Klassenprogrammierung. Bei Änderungen werden dann Daten in den anderen Dokumenten 'hart' synchronisiert. Problem: Replikationskonflikte, je nach Nutzungsintensität
Titel: Re:Werte übernehmen
Beitrag von: DomAdmin am 10.12.02 - 10:59:40
Hallo wflamme,

ich hatte schon befürchtet, dass ich jeder Firma eine laufende Nummer zuweisen muss, auf die ich mich beziehe, aber das mit der Doc-ID, da hab ich garnicht daran gedacht !

Wie geht das denn mit den Haupt-und Antwortdokumenten ??

Danke jetzt schonmal !

DomAdmin
Titel: Re:Werte übernehmen
Beitrag von: ata am 10.12.02 - 11:53:39
... Maske1 (Firma) hat die Maskeneigenschaft Hauptdokument
... Maske 2 (Person) hat die Maskeneigenschaft Antwortdokument
... Maske2 hat die Eigenschaft "Formeln übernehmen Werte aus gewähltem Dokument"

... in deiner Firmenmaske nimmst du ein berechnetes Feld, nenne es "DocID". Darin nimmst du per Formel die DocID auf: @Text(@DocumentUniqueID)

... in deiner Personenmaske nimmst du ein Feld "Berechnet beim Erstellen" auf, nenne es z.B. ParDocID. Die Formel darin heißt "DocID"

... mit @GetDocField(ParDocID, "Feldname") kannst du dann die Werte aus dem Dokument mit der ID beziehen...

... das müßte es auf die schnelle sein...

ata
Titel: Re:Werte übernehmen
Beitrag von: DomAdmin am 10.12.02 - 12:15:09
Hallo ata,

ok, das hab ich gemacht:

Zitat
... Maske1 (Firma) hat die Maskeneigenschaft Hauptdokument
... Maske 2 (Person) hat die Maskeneigenschaft Antwortdokument
... Maske2 hat die Eigenschaft "Formeln übernehmen Werte aus gewähltem Dokument"

... in deiner Firmenmaske nimmst du ein berechnetes Feld, nenne es "DocID". Darin nimmst du per Formel die DocID auf: @Text(@DocumentUniqueID)

... in deiner Personenmaske nimmst du ein Feld "Berechnet beim Erstellen" auf, nenne es z.B. ParDocID. Die Formel darin heißt "DocID"

nur das mit dem @GetDocFeld will nicht so richtig. ... Oh nein, vergiss, was ich gesagt habe, ich muss das feld mit der FirmenDocID VOR das berechnete Feld, das die Werte holt schreiben !

Geht das alles auch ohne diese Haupt-Doc und Antwortdoc-Sache ?

Danke schonmal herzlichst, Ata !

DomAdmin
Titel: Re:Werte übernehmen
Beitrag von: DomAdmin am 10.12.02 - 12:24:18
Noch was,

wenn ich jetzt aber die Firma ändere, "berechnet" er mir aber erst wenn ich die Person wieder aktualisiere oder speichere die "geholten Werte".

Geht das nicht gleich ??

DomAdmin
Titel: Re:Werte übernehmen
Beitrag von: ata am 10.12.02 - 12:42:58
... ich würde den Firmennamen nur zur Anzeige berechnen. Die Zuordnung der Mitarbeiter hast du über die Abhängigkeit als Antwortdokument...

... man kann die ganze Sache auch ohne die eingebaute Dokumenthierarchie machen. Ich persönlich arbeite lieber ohne...
Die Dokumente werden dann kategorisiert zur DocID, bzw. ParDocID...
Titel: Re:Werte übernehmen
Beitrag von: DomAdmin am 10.12.02 - 14:24:07
Aber ich kann ja in der Ansicht kein  @GetDocField nehmen ! Wie mache ich das dann in einer Ansicht, wenn ich z.B. das so aufbauen will:

-Firmenkategorie
 -- Firma 1
  --- Firmendokument (Tel, Adresse, ...)
  --- Person1 (Tel, Adresse, ...)

Schließlich hab ich es versucht, das ich in die Person alle Felder übernehme, die ich für Ansichten baruchen, aber die aktualisieren sich ja nur, wenn ich speichere, was dann aber in der Ansicht erst nach dem Speichern zum Tragen kommt !!!   :'(


Oder gibt es irgenteine Formel, di mich die gewählten Dokumente einer Ansicht oder von mir aus auch alle Dokumente in der Anicht (Datenbank ??) aktualisiert ? So von wegen ich führe eine Aktion aus und alle gewählten Personen werden auf den neuesten Stand gebracht ??

Büddde, gibt es da eine Lösung ? Oder ein Agent, der alle keine Ahnung was 30 min läuft ? Ich habe noch nie einen Agenden "erstellt" !!
 :-[
DomAdmin
Titel: Re:Werte übernehmen
Beitrag von: wflamme am 10.12.02 - 14:56:15
Aber ich kann ja in der Ansicht kein  @GetDocField nehmen ! Wie mache ich das dann in einer Ansicht, wenn ich z.B. das so aufbauen will:

-Firmenkategorie
 -- Firma 1
  --- Firmendokument (Tel, Adresse, ...)
  --- Person1 (Tel, Adresse, ...)
Wenn Du das Firmendokument anstelle Firma1 nimmst, findest Du dort eben die Detailinfos. Und im Formular kannst Du sie dynamisch aus dem Parent einblenden. Ich verstehe das Problem nicht ganz..
Titel: Re:Werte übernehmen
Beitrag von: Rob Green am 10.12.02 - 14:58:59
folgendes:

ins Firmendoc ein hidden, editable Field, das beim Aufruf des Docs den ursprünglichen Firmennamen vorhält.

Wenn nun jemand den Firmennamen im eigentlichen Firmenfeld ändert, triggert beim Speichern (QuerySave) eine Routine los, die diesen neuen Wert mit dem beim Aufruf des Dos gesetzten, hidden Feldes vergleicht. Weichen beide voneinander ab, soll die Routine in alle Antwortdocs = Personendokumente den Firmennamen ebenfalls abändern.

Und das hidden Field mit dem alten Firmennamen im Firmendoc?
Das wird bei jedem Aufruf des Docs im Edit Mode neu gesetzt, entsprechend dem aktuellen Firmennamen im eigentlichen Firmennamensfeld.

Soweit klar? (Script Kenntnisse sind dazu Voraussetzung, wenn es mehrere Antwortdocs = Personen zu einer Fa. gibt). Wenn es immer nur 1Firma, 1Person ist, kannst Du das auch per Formel zB über ein DBLookup oder dem o.g. SetDocField lösen, um aus dem Firmendoc Werte ins Antwortdoc zu schreiben.
Titel: Re:Werte übernehmen
Beitrag von: ata am 10.12.02 - 14:59:55
... die Aktualisierung der Firmendaten in den Personendokumenten benötigst du eigentlich nicht. Die Kategorisierung in den Views erfolgt entweder über Doc-Hierarchie, oder die vererbte DocID des Firmendokumentes...

... wenn du bis morgen warten kannst, ich denke ich hab so was noch zu Hause auf meinem Rechner...

ata
Titel: Re:Werte übernehmen
Beitrag von: Rob Green am 10.12.02 - 15:07:11
@ata, wenn er im Firmendoc den Firmennamen ändert, wie soll sich den "automatisch" der Firmenname im Personendoc ändert, solange er das letztere Doc nicht neu berechnet (Änderung aus Personendoc heraus durch aktive Handlung) bzw. aus dem Firmendoc heraus die Änderung ins Personendoc pushed?
Titel: Re:Werte übernehmen
Beitrag von: ata am 10.12.02 - 15:17:28
@Rob

... der Firmenname wird nur im Firmendokument gespeichert. Die Personendokumente holen sich beim Öffnen den Firmennamen nur zur Anzeige...

... Die Kategorisierung erfolgt nicht über den Firmennamen, sondern über Doc-Hierarchie oder DocID/ParDocID - damit wird die Synchronisation überfüssig...

ata
Titel: Re:Werte übernehmen
Beitrag von: Rob Green am 10.12.02 - 15:49:58
comprende  ;D