Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: magic_halli am 30.12.08 - 11:07:58

Titel: Feldauswahl speichern
Beitrag von: magic_halli am 30.12.08 - 11:07:58
Hallo,

ich habe ein Kombinationsfeld, welches im QueryOpen des Dokuments mit Werten gefüllt wird.
Der User kann dann das Dokument mittels Button "Speichern und Schließen" (ist eine gespeicherte Aktion) wieder schließen.
Ich möchte aber gern vorher, dass wenn der User im Kombinationsfeld eine Auswahl trifft, diese Auswahl in ein extra Feld im Dokument gespeichert wird.

1. Wie komme ich per LotusScript an die getroffene Auswahl des Kombinationsfeldes ran, um diese dann überhaupt zu speichern?
2. Wo implementiere ich das Speichern der Userauswahl (QuerySave etc.)?

Danke und Gruß
Titel: Re: Feldauswahl speichern
Beitrag von: Thomas Schulte am 30.12.08 - 12:06:58
Im QuerySave oder PostSave. Ist eigentlich egal, weil bis zum nächsten Aufruf deines Documentes bleiben die Werte ja erhalten.
Und dann geht das ganz einfach mit Copyitem.
Titel: Re: Feldauswahl speichern
Beitrag von: Axel am 30.12.08 - 12:13:49
Das Ganze gehört eigentlich zu den Grundlagen der Notes-Entwicklung. Ein Blick in die Designer-Hilfe würde sich mit Sicherheit lohnen.

zu 1. Entweder mit Frontend-Funktionen, wie z.B. GetFieldText (Klasse NotesUIDocument). Das geht aber nur wenn das Feld keine Mehrfachauswahl zulässt. Oder mit Backendfunktionen aus der Klasse NotesDocument. So z.B.

  doc.NamedesFeld = doc.NamedesKombinationsfeld


zu 2. Am besten im QuerySave-Event


Axel
 
Titel: Re: Feldauswahl speichern
Beitrag von: magic_halli am 30.12.08 - 15:09:36
So richtig klappt´s leider nicht. Ich habe folgendes gemacht...
Im QuerySave meiner Maske:
Code
Dim item_allFolders As NotesItem
Dim item_userChoiseFoldernames As NotesItem
...
Set item_allFolders = doc.GetFirstItem("AllFolders")
Set item_userChoiseFoldernames = doc.ReplaceItemValue("UserChoiseFoldernames", item_allFolders.Text)
Hier wollte ich erreichen, dass die Auswahl aus 'item_allFolders' in 'item_userChoiseFoldernames' gespeichert wird. Sämtliche Eingaben der Maske werden in ein Profildokument gespeichert. Die Speicherung erfolgt per Button in der Maske:
Code
@Command([FileSave]);
@Command([FileCloseWindow])


Im QueryOpen frage ich dann lediglich den Inhalt von 'item_userChoiseFoldernames' wieder ab und lasse ihn per Messagbox anzeigen. Dort wird aber kein Inhalt angezeigt!
Code
...
Set item_userChoiseFoldernames = doc.GetFirstItem("UserChoiseFoldernames")
Messagebox "start: "+item_userChoiseFoldernames.Text,,"Startausgabe"

Was ist falsch?
Titel: Re: Feldauswahl speichern
Beitrag von: DAU-in am 30.12.08 - 16:20:55
warum überträgst du nicht einfach den Wert von item 1 auf item 2?

doc.userChoiceFoldernames = doc.AllFolders



ähhhh das ist die Maske für ein Profildokument?
die Werte von Profildokumenten werden gecached, da kannst du in der Regel nur verzögert zugreifen.



Titel: Re: Feldauswahl speichern
Beitrag von: BigWim am 30.12.08 - 16:24:31
Zitat
Was ist falsch?
Kann ich nicht sagen, aber ....

Spricht etwas im QuerySave dagegen, dass hier zu probieren: sWert = source.FieldGetText("<Mein Feldname>")?

Und im QueryOpen: sWert = source.Document.<Mein Feldname>(0)?

Wenn ich das richtig verstanden haben, willst Du "nur" die getroffene Auswahl zwischenspeichern. Kannst Du dann nicht in deiner Schaltfläche mit @SetField ("Auswahlfeld";<Mein Feldname>") arbeiten?

Zitat
Ein Blick in die Designer-Hilfe würde sich mit Sicherheit lohnen.
Axel hat Recht. Du solltest unbedingt mal nachlesen.

Markus
Titel: Re: Feldauswahl speichern
Beitrag von: Axel am 31.12.08 - 12:13:04
Spricht etwas im QuerySave dagegen, dass hier zu probieren: sWert = source.FieldGetText("<Mein Feldname>")?

Unter Umständen spricht eine mögliche Mehrfachauswahl dagegen. Die bekommst du so nicht geregelt.


@Magischer...
Erst geht es nur um das Übertragen von Feldwerten von einem Feld in ein anderes. Nun kommen sogar Profildokumente ins Spiel, die sowieso noch etwas eigene Gesetze haben.   
Ohne genauere Infos was du eigentlich mit dem Ganzen errreichen willst kommen wir hier so nicht weiter. Alles weitere ist nur ein Stochern im Nebel und meine Kristallkugel befindet sich im Skiurlaub.  ;)

Also bitte beschreib mal möglichst genau was du hast und was du errreichen willst. Dann werden wir auch die passende Lösung finden.

Axel

PS: Du hast doch bestimmt auch einen realen Vornamen. Bitte unterschreibe deine Posts damit. Dann wird die Ansprache persönlicher und das steigert bei vielen auch die Bereitschaft zu helfen. Danke.
Titel: Re: Feldauswahl speichern
Beitrag von: magic_halli am 02.01.09 - 13:04:44
So, prosit Neujahr erstmal  ;)

Ich möchte die User-Auswahl einer Kombibox eines Profildokumentes in ein Feld im Profildokument speichern (noch vorm speichern und schließen des Profildokumentes selbst).
Es soll keine Mehrfachauswahl aus der Kombibox möglich sein bzw. das wird nicht berücksichtigt!
Diese Auswahl, welche dann in dem Feld gespeichert ist, brauche ich, um bspw. aus einem Agent heraus darauf zuzugreifen und entspr. zu reagieren.

Gruß

Rico.
Titel: Re: Feldauswahl speichern
Beitrag von: koehlerbv am 03.01.09 - 01:49:19
Rico, Du rennst irgendwie vollkommen in die falsche Richtung und kommst überhaupt nicht weiter. Kann es sein, dass Du beauftragt bist, für ein ganz anderes Produkt eine Anbindung an IBM Lotus Notes / Domino zu schaffen? Solltet Ihr Euch nicht dann endlich mal einen beratenden (guten!!) Fachmann heranziehen? Du rennst ja derzeit auch dauernd in ... naja, nicht gerade effiziente Richtungen der Entwicklung ...

Ich habe keine Ahnung, warum Du *vor* dem Speichern ein Feld in ein Extra-Item speichern möchtest, was dann sowieso gespeichert würde. Aber egal: Die entsprechenden Feldeigenschaften und das dadurch getriggerte PostRecalc der Maske sind dann wohl der Punkt, den Du suchst.

Und da Du *sicher* wissen musst, was Feldeigenschaften ermöglichen und was dann das PostRecalc erzwingen kann, kämpfst Du Dich hier bitte jetzt alleine durch (dedizierte (!!) Fragen sind natürlich willkommen!). Es kann nicht sein, dass wir hier Deinen / Euren Job machen (Du merkst das ja auch an der überschaubaren Anzahl von Kollegen, die entgegen sonstiger Gepflogenheiten sich hier gerade nicht engagieren).

Hier gibt es viele Leute, die gerne helfen - aber nicht als Kostenersparnis für eine andere Firma.

Bernhard