Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Schorsch am 12.10.04 - 15:17:06

Titel: 2 Felder ein Wert
Beitrag von: Schorsch am 12.10.04 - 15:17:06
Hallo,
Ich habe 2 Masken die Identisch sind (Selber Inhalt). Nun möchte ich (der Kunde) das ein Feld sowohl in der einen Maske wie in der anderen, den Selben Wert (Text) enthält.
Darüberhinaus soll bei Änderungen in einer der Masken natürlich der Wert in der anderen Maske ebenfalls geändert werden.
Wie geht man da vor?  ???
Titel: Re: 2 Felder ein Wert
Beitrag von: klaussal am 12.10.04 - 15:21:34
... sud der Designer-Hilfe:
Ein Feld kann Werte aus einem anderen Dokument derselben Datenbank oder aus einem anderen Feld derselben Maske übernehmen. Ein Feld, das einen Wert von einem Feld in derselben Maske übernimmt, muss ein berechnetes Feld sein, das unter oder rechts neben dem Feld platziert wird, aus dem es den Wert übernimmt. Verwenden Sie den Namen des Felds, dessen Wert verwendet werden soll, als Wert für die Feldformel. In der Maske selbst muss die Eigenschaft "Feldwerte übernehmen" nicht eingestellt sein. Damit ein Feldwert aus einer anderen Maske übernommen werden kann, muss der Notes Client Benut......

Frage: was soll das Ganze ?  :-\
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 12.10.04 - 15:22:53
Klaus, das gilt dann aber nur beim Anlegen.

Schorsch: Welche Programmierkenntnisse hast Du denn ? Und was heisst "der Kunde" ??

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: klaussal am 12.10.04 - 16:20:13
@bernhard,

so ganz versteh ich nicht, was der will..
Deshalb hab ich erst einmal auf die Grundlagen hingewiesen.

Muss doch wohl einen Kurs im Hellsehen belegen  :P

klaus
Titel: Re: 2 Felder ein Wert
Beitrag von: Schorsch am 12.10.04 - 16:47:37
Hallo,
danke für die rege Teilnahme.
Meine Programmierkenntnisse sind ganz gut. Ich habe die Datenbank von einem Kollegen übernommen. Die beiden Masken werden über einen Oracle download gefüllt. Deswegen kann ich auchnicht einfach eine umbenennen un ddurch die andere ersetzen. Nun gibt es aber auch felder die bearbeitet werden können und diese müssen sich abgleicen, damit der selbe Inhalt angezeigt wird.
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 12.10.04 - 17:01:30
Völliges Unverständnis. Sind die Masken identisch, kann man eine einfach in die Tonne klopfen und die betreffenden Dokumente mit der verbleibenden Maske anzeigen. Dazu ist minimaler Aufwand notwendig. Selbst, wenn die Oracle-ImportRoutine Dokumente mit Form = "AlterMaskenname" befüllt, ist auch dort nur ein kleiner Handgriff notwendig.

Ansonsten müsste man wissen, warum Dokumente zweimal enthalten sein müssen und wie von einem Dokument auf das andere geschlossen werden kann (welcher Bezug dort besteht).

Und nochmal meine Frage: Was bedeutet "der Kunde" ?

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: Schorsch am 12.10.04 - 17:44:10
hallo Bernhard,
der kunde bedeutet der jenige der dies in auftrag gegeben hat. Das bin nicht ich.

wenn ich eine der Masken umbenenne und in einer Ansicht dokumente öffnen möchte bekomme ich eine meldung das die Maske nicht mehr vorhanden ist. nun müsste der Bezug zur anderen Maske hergestellt werden. Ist das so richtig? und wie mave ich das ???

Wie muss ich dann die Oracle-Routine anpassen?
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 12.10.04 - 18:07:04
Persönliche Meinung: Ich sehe das durchaus problematisch, dass Du Kundenaufträge erfüllst, für die Dir das Know-How fehlt.

Code
Meine Programmierkenntnisse sind ganz gut.
Das kannst Du vergessen - das Neuzuordnen einer Maske zu Dokumenten ist absolutes Basiswissen.
Du brauchst einen Agent, der auf alle Dokumente der DB wirkt. Der muss nur eine Zeile umfassen:
FIELD Form := @If (Form = "AlteMaske"; "NeueMaske"; Form).

Und den einmal über die DB jagen.

Bernhard

PS: Bei schwierigen und vorher nicht zu erwartenden Kundenproblemen bin ich natürlich gerne bereit, mitzuhelfen.
Titel: Re: 2 Felder ein Wert
Beitrag von: audiojosi am 12.10.04 - 21:27:06
Hallo Schorsch,

hast du schon mal geprüft, ob hinter der Ansicht vielleicht bloss einfach eine Maskenformel liegt ? So lassen sich theoretisch in einer Form bestimmte Felder bearbeiten, die in der anderen Form (gesteuert durch die Maskenformel) eben nur lesbar sind. Unschöne Art, finde ich. Aber so was soll's geben  :'(

Jürgen


Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 12.10.04 - 21:53:50
Naja, das kommt aber auf's gleiche 'raus. Wenn das Dokument mit einer anderen Maske bearbeitet wird, dann steht danach ja auch was anderes im Item "Form". Dieses procedere wäre nun doch etwas unwahrscheinlich (und vor allem leicht durchschaubar, wenn man den Code sichtet, da sich dann zum wieder "Zurückbiegen" einiges an weiterem Coe im PostSave anschliessen müsste).

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: audiojosi am 12.10.04 - 22:11:18
Hallo Bernhard,

will dir nicht zu nahe treten, aber was wenn verschiedene Benutzerkreise verschiedene Ansichten bekommen, Maskenformel hinterlegt, das Item "Form" ändert sich nicht beim Öffnen, Bearbeiten und Schliessen. Die Ansicht öffnet lediglich eine andere Form.

Die Items sind in der einen Maske berechnet und damit nicht änderbar, in der anderen Ansicht wird aufgrund der Maskenformel eine andere Maske verwendet, dort sind die Items änderbar... Der Alias der zweiten Maske hat genau denselben Namen wie die erste Maske, das Feld "Form" wird wieder korrekt gefüllt. Fertig ist die S***..uppe.

Genialer Programmierer, pfui, aber durchaus machbar, oder liege ich daneben ?

Frischling will nur dem armen Kerl helfen....

Freundliche Grüße
Jürgen
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 12.10.04 - 22:29:13
Der Alias der zweiten Maske hat genau denselben Namen wie die erste Maske, das Feld "Form" wird wieder korrekt gefüllt. Fertig ist die S***..uppe.
Genialer Programmierer, pfui, aber durchaus machbar, oder liege ich daneben ?

Das war jetzt nicht Dein Ernst, Jürgen. Oder ?

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: Axel am 13.10.04 - 08:08:44
Der Alias der zweiten Maske hat genau denselben Namen wie die erste Maske, das Feld "Form" wird wieder korrekt gefüllt. Fertig ist die S***..uppe.

Hi,

... und was passiert, wenn innerhalb der Datenbank irgendwo die Maske über den Alias aufgerufen wird?

Meines Erachtens ist das Chaos ist vorprogrammiert.


Axel
Titel: Re: 2 Felder ein Wert
Beitrag von: Semeaphoros am 13.10.04 - 09:06:13
Wenn ichs recht im Kopf habe, muss der Alias nicht gesetzt sein. Die Maskenformel in der Ansicht macht genau dasselbe, wie wenn der Benutzer im Client  View - Switch Form macht, dann wird das Form-Feld auch nicht geändert
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 13.10.04 - 11:17:23
Wird ein Dokument mit einer anderen Maske geöffnet und dann wieder gespeichert, erhält das Feld "Form" den Wert der aktuellen Maske.

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: Semeaphoros am 13.10.04 - 11:44:50
Was aber nicht weiter tragisch ist, weil man ja auch das wieder ändern kann.

Damit sind wir wieder zurück bei der ursprünglichen Frage, wozu überhaupt 2 verschieden Masken?

Mich drückt die Frage eigentlich noch anders: warum die gleichen Datenbestände in verschiedenen Dokumenten? Das sind doch reine Datendubletten, und das ist eines der wirksamsten Gifte innerhalb einer Lösung .......
Titel: Re: 2 Felder ein Wert
Beitrag von: CLI_Andreas_Schmidt am 13.10.04 - 12:46:33
Wenn, die Docid's bekannt sind, könnte man doch mit @getdocfield arbeiten. Vielleicht ein anderer Ansatz.

Gruss

Andreas
Titel: Re: 2 Felder ein Wert
Beitrag von: Schorsch am 14.10.04 - 16:31:42
Hallo liebe leute,
ich finde es Prima das Ihr euch so viel zeit für dieses Thema nehmt. Aber es schweift mir zusehr ab. Vergesst die zwei masken. Es geht mir jetzt nurnoch darum wie ich zwei Felder in zwei dokumenten abgleichen kann? Sodas wenn ich in dem einen dokument eine änderung mache diese indas andere Dokument übernommen wird.
Titel: Re: 2 Felder ein Wert
Beitrag von: koehlerbv am 14.10.04 - 19:58:56
An sich ist das doch ganz einfach: Zunächst musst Du zwischen PostOpen und QuerySave überwachen, ob sich das betreffende Feld ändert.
Wenn ja, brauchst Du ein eindeutiges Merkmal (danach hatte ich schon sehr früh gefragt, aber keine Antwort bekommen), das zwischen beiden Dokumenten gleich ist bzw. eine eindeutige Zuordnung von Dokument A zu Dokument B ermöglicht. Dieses sollte dann aus Performancegründen in einer Ansicht dargestellt werden.
Im QuerySave kannst Du Dir dann das Gegenstück zu Dokument A via GetDocumentByKey suchen, instantiieren und dorthin dann den geänderten Wert übertragen.
Dabei muss natürlich sichergestellt werden, dass es zu Dokument A wirklich nur ein einziges Dokument B gibt - auch auf Replizierkonflikte muss Deine Routine reagieren.

Und: Wir sind nicht vom Thema abgeschwiffen - das gehörte alles mit dazu.

Bernhard
Titel: Re: 2 Felder ein Wert
Beitrag von: Glombi am 14.10.04 - 20:25:57
wenn ich eine der Masken umbenenne und in einer Ansicht dokumente öffnen möchte bekomme ich eine meldung das die Maske nicht mehr vorhanden ist. nun müsste der Bezug zur anderen Maske hergestellt werden. Ist das so richtig? und wie mave ich das ???

Wie muss ich dann die Oracle-Routine anpassen?
Erstens:
Eine Maske kann mehrere Aliasnamen haben!

Also Maske | Alias1 | Alias2

Klopfe einer der jetzigen Maske in die Tonne und trage deren Alias als ersten in die Liste ein.

2 identische Masken, ts ts ts

Zweitens:
Müssen den alle Felder in den beiden Dokumenten bearbeitbar sein? Kannst Du nicht für Notes eine Maske/Dokument als führend deklarieren und nur dort Änderungen vornehmen? Das andere Dokument kann dann ein Feld Berechnet zur Anzeige haben, das per @Lookup den Feldwert holt.


Andreas