Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Roooky am 29.11.07 - 16:43:08

Titel: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 29.11.07 - 16:43:08
Hallöchen!

Mein Anliegen: Ich habe Dokumente in zwei unterschiedlichen Masken A und B. In jeder gibts eine Aktion, mit der ich die andere Maske aufrufe und ganz gern ein paar Feldwerte "mitnehmen" würde.
Der Ablauf sieht so aus:

Doc 1 wird mit Maske A erstellt;
Aktion in Doc 1 erstellt Doc 2 mit Maske B, unid von 1 wird "mitgenommen";
Doc 2 wird editiert;
Aktion in Doc 2 speichert und schließt Doc 2 und öffnet Doc 1 wieder. Hier schaffe ich es nicht, die unid von Doc 2 und andere Feldwerte mit nach Doc 1 zu nehmen.

Die Aktion lautet:

@Command([FileSave]);
@Command([FileCloseWindow]);

@Command([OpenDocument]; unid_rf);  //unid_rf ist die unid von Doc 1, die nach Doc 2 mitgenommen wurde //

@Command([EditDocument]);

//Hier weiß ich nicht, wie ich unid von Doc 2 in ein Feld in Doc 1 kriege...//

@Command([FileSave]);


Ich hoffe, ich habe mich verständlich ausgedrückt?

Viele Grüße und n schönen Feierabend!
Lutz
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: koehlerbv am 29.11.07 - 16:49:29
@SetDocField ist Dein Freund.

Bernhard
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 09:31:46
Naja, so ganz Freunde sind wir noch nicht  >:(

Ich weiß nicht, was ich falsch mache!

Die Aktion hab ich soweit erstmal gestutzt.

@Command([FileSave]);
@SetDocField(unid_rf; "unid_1"; "unid_we");

Ich befinde mich also in Doc 2 auf Maske B.
unid_rf ist ein Feld in Maske B, in dem die unid von Doc 1, Maske A, steht.
unid_1 ist das Feld in Maske A, das geändert werden soll.
unid_we ist ein Feld in Maske B und enthält @text(@documentuniqueid).

Aber im Feld unid_1 tut sich nichts....

Ich hab denk ich alle Syntax-Varianten mehrfach durchgespielt, bin aber auch da für Anregungen offen  ;D

Hat es etwas mit nem Häkchen bei "Felder übernehmen Werte aus Maske" zu tun?
Oder damit, dass ich die unids in text umwandle?

Ich bitte um etwas Entwicklungshilfe...

Danke,
Lutz
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: DAU-in am 30.11.07 - 09:50:35
@SetDocField(unid_rf; "unid_1"; "unid_we");

ist der Wert in unid_rf auch der richtige?
und duschreibst jetzt in das Feld unid_1  den String "unid_we", nicht den Inghalt aus dem Feld unid_we
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 09:59:08
Jo, der Wert von unid_rf ist die richtige ID. Nur halt in Text umgewandelt.

Ok, das seh ich ein. Da müssen die Anführungszeichen weg.  ::)

Aber es kommt immer noch nichts... andere Ideen?
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: DAU-in am 30.11.07 - 10:20:03
bei @documentuniqueID steht in der Hilfe:

In a field formula, @DocumentUniqueID (not converted to text) is a link to the document.


ich würde es mal nicht in Text umwandeln
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 10:23:31
Nur brauch ich ja auch keinen Link, auf den man klicken kann. Ich möchte ja nur die ID als Wert auslesen. Trotzdem, habs auch schon ohne @text versucht...
Das kann doch nicht so schwer sein!
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: DAU-in am 30.11.07 - 10:35:10
die Dokumente sind aber schon in derselben DB?
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 10:36:47
ja
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: DAU-in am 30.11.07 - 10:42:09
default view ist auch definiert?

ansonsten fällt mir aktuell auch nichts ein
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 10:56:01
Da könnte was dran sein! Nur: Wie lege ich meinen default view eigentlich fest...?
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: klaussal am 30.11.07 - 10:59:54
Zitat
Eine Vorgabeansicht ist die Ansicht, die den Benutzern angezeigt wird, wenn sie die Datenbank erstmals öffnen. Für jede Datenbank gibt es eine Vorgabeansicht, die in der Ansichtenliste mit einem Sternchen (*) gekennzeichnet wird.
Die Vorgabeansicht wird in der Regel nicht in ihrem Zugriff eingeschränkt, sie enthält alle Dokumente einer Datenbank (nach Kategorie, Datum oder Autor sortiert). In Designer-Schablonen werden üblicherweise alle Dokumente in chronologischer Reihenfolge und Hauptdokumente mit den betreffenden Antworten und anderen dazugehörigen Dokumenten angezeigt.
Zur Angabe der Vorgabeansicht verwenden Sie die Option "Vorgabe beim ersten Öffnen der Datenbank" im Register "Optionen" der InfoBox "Eigenschaften: Ansicht".
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 11:13:04
Danke, da bin ich schon etwas schlauer jetzt.

Etwas... denn wie es da ja schon steht habe ich immer einen default view. Ich hab mir jetzt aber noch mal einen neuen view als default view gemacht, wo ich mir alle Dokumente anzeigen lasse. Sollte das die Änderung sein? Bringt zumindest nichts...

Naja, ich probier es jetzt mal über @enviornment.

Vielen Dank besonders an DAU-in für die Hilfe!!!
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 13:02:26
So, über @enviornment hab ichs hingekriegt, aber ich brauch einen Mausklick mehr, um die Daten aus der Umgebung wieder zu holen. Also nicht so schön.

Deswegen probier ich jetzt nochmal, es über @setdocfield hinzubekommen.
Hat jemand anderes vielleicht noch ne Idee, was ich da falsch mache?

Also grundsätzlich ist es doch voll richtig, mit diesem Befehl zu arbeiten, oder? Ich bearbeite ein Doc einer Maske und möchte in einem Doc einer anderen Maske, dessen ID ich kenne, ein Feld ändern....

Danke schonmal!
Lutz
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 14:09:06
Und noch eine Sache, die nicht so funktioniert, wie ich das gerne hätte...

Gaaanz einfach:
In einem Dokument befindet sich ein Feld "unid_1" mit der in Text umgewandelten (oder auch nicht) ID eines anderen Dokuments. Dieses Dokument würde ich gerne öffnen. Also schreibe ich in einen Hotspot:

@Command([OpenDocument]; ""; unid_1) oder
@Command([OpenDocument]; unid_1) oder
@Command([OpenDocument]; "1"; unid_1) oder
@Command([OpenDocument]; getfield(unid_1)) oder.... ähnliche Syntax.

Bei Click: "Befehl kann nicht ausgeführt werden!"

Warum nur? Ist Notes vielleicht sauer auf mich, weil es schon Freitag Nachmittag ist?

In diesem Sinne,
allen ein schönes Wochenende!
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: koehlerbv am 30.11.07 - 14:15:58
Aus der Hilfe zu OpenDocument:
Zitat
In einer Datenbank muss eine Ansicht geöffnet sein, die das Dokument enthält, das Sie öffnen möchten.
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Glombi am 30.11.07 - 14:32:51
Sieh Dir mal @UpdateFormulaContext an. Damit spart man sich Environment und dergleichen.

Bsp:

_Feld1 := Feld1;
_Feld1 := Feld2;
@Command([Compose];...)
@UpdateFormulaContext;
FIELD Feld1InAndererMaske := _Feld1;
FIELD Feld2InAndererMaske := _Feld2;

Andreas
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 30.11.07 - 14:38:20
Ok, das hab ich wohl überlesen - aber trotzdem keine Änderung!
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 03.12.07 - 09:18:32
Moin moin!

Neue Woche - alte Probleme  ;D
Ich probiere noch immer, ein Dokument zu öffnen, während ich mich in einem anderen befinde. Das ursprüngliche Problem mit dem Felder-Setzen ist erstmal hinten angestellt, wobei ich glaube, dass beides aus dem gleichen Grund nicht geht: Ich finde einfach das entsprechende Dokument nicht.

@Glombi: @UpdateFormulaContext bringt mich da glaub ich nicht weiter...

@Bernhard: Nun hab ich im Notes Client die entsprechende Ansicht geöffnet, aber keine Änderung.

Anstatt die ID des zu öffnenden Dokuments aus einem Feld auszulesen, habe ich sie mal über @PickList aus der entsprechenden Ansicht geholt. Nach wie vor: "Angegebener Befehl kann nicht ausgeführt werden"...
Gibt es eigentlich für @Funktionen auch einen Debugger, wo man sehen kann, wo genau es hakt?

Lutz
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: klaussal am 03.12.07 - 10:32:06
Zitat
Gibt es eigentlich für @Funktionen auch einen Debugger, wo man sehen kann, wo genau es hakt?

Nein, nicht wirklich. Man kann sich höchstens mit @prompt behelfen.
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: ata am 03.12.07 - 10:44:31
... oder @Statusbar...

Toni
Titel: Re: Felder zwischen 2 Masken austauschen
Beitrag von: Roooky am 06.12.07 - 16:40:15
Hallo!

Nochmal vielen Dank an alle, die geantwortet haben!
Das Felder-Setzen in Dokumenten aus einer Maske heraus hab ich zwar nicht hingekriegt, aber ich hab das anders gelöst. Zumindest glaube ich aber jetzt zu wissen, woran es liegt: Genauso wie zum Öffnen eines Doks muss eine Ansicht geöffnet sein, in der das zu öffnende oder zu bearbeitende Dokument drinnen ist. So is das eben.  ;D.

Meine Lösung: Mit @command([OpenView]; "viewname"; "Schlüssel") kann man die Ansicht öffnen (wenn sie nicht schon offen ist) und über den angegebenen Schlüssel wird das richtige Dokument fokussiert. Dann @command([openDocument]) und das gewünschte Doc öffnet sich.
Kleiner Schönheitsfehler dabei: die Ansicht bleibt auch nach schließen des Docs geöffnet. Aber man kann halt nicht alles haben.  ;)

Viele Grüße,
Lutz