Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Aladdin Sane am 20.07.04 - 17:03:30
-
Hallo.
Ich möchte über LS ein UIDoc in einem Frame erstellen.
Bislang habe ich das mit folgendem Code probiert:
Call uiwk.SetTargetFrame("Frame")
Set uidoc = uiwk.Composedocument("", "", "Form")
Dokument wird erstellt, aber wenn ich es schließe, geht die ganze DB zu,
weil das neue Dokument nicht in den "Aktvitätsschaltflächen" erscheint.
Was muss ich machen, damit es auch als neuer Eintrag dort erscheint?
Gruß
paSCAL
-
2 Möglichkeiten die ich sehe:
A) Starteigenschaften der Maske (Rakete):
Dort ein Frameset und einen Zielframe für die Maske einstellen
B) Evtl. mit mehreren Framesets arbeiten
-> kann ich auswendig nicht sagen ob da dann ein uiws.OpenFrameSet(..) einen neuen Tab öffnet
-
Zu Möglichkeit A)
Das mit dem Zielrahmen habe ich gemacht.
Es sollen ja auch schon vorhandene Dokumente in diesem Frame geöffnet werden.
Hier erscheint auch immer schön ein neuer Tab.
Wenn ich das Dok schließen, sehe ich in dem Frame, die View, aus der ich das Dok ge-
öffnet habe.
Die Anweisung Set uidoc = uiwk.Composedocument("", "", "Form")
erstellt nun ein neues Dok - mit neuem Tab.
Allerdings möchte ich im Dokument gleich nach dem Erstellen Felder mit Inhalten
versehen.
Da bekomme ich nun die Fehlermeldung "Dok muss im Bearbeitungsmodus sein".
Das UIDOc ist aber schon im Bearbeitungsmodus.
Wenn ich folgenden code verwende:
Call uiwk.SetTargetFrame("Frame")
Set uidoc = uiwk.Composedocument("", "", "Form")
Dann können direkt Änderungen gemacht werden, aber es erscheint kein neuer Tab....
Idee:
Set uidoc = uiwk.Composedocument("", "", "Form")
uidoc.EditMode = True
mal sehen....
-
Geht nicht:
Set uidoc = uiwk.ComposeDocument("","","Material")
uidoc.EditMode = True
Die zweite Anweisung verursacht hier den Fehler:
"Document Command is not available"
-
Wie versuchst Du denn, die Felder zu füllen ?
Das neu erzeugte UIDoc sollte eigentlich direkt im Editmode sein und daher auch bearbeitbar.
-
So sieht der Code aus:
Dim s As New NotesSession
Dim uiwk As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
uidoc = uiwk.ComposeDocument("","","Form")
Call uidoc.FieldSetText("Feld","sowieso")
...
Wenn ich keinen Zielrahmen für das zu erstellende Dokument definiere,
läuft das auch...
-
Wenn ich nach dem Erstellen und vor dem Versuch ein Feld zu beschreiben
den EditMode aus dem uidoc auslese, ist dieser False.
Setze ich ihn auf true, folgt die o.g. Fehlermeldung...
-
Ich habe langsam den Verdacht, dass keine Eigenschaften und Methoden auf
das UIDOC anwendbar sind - "Document Command not available" auch bei
uidoc.refresh...
Gruß
pASCAL
-
Jetzt habe ich mal folgendes probiert:
Dokument wird über Formel erstellt:
@Command([Compose];"FORM")
Das Dokument wird genauso erzeugt, wie ich es will.
Darstellung erfolgt auch im editmode.
Jetzt habe ich einen Agenten (LS), der aus dem UIWK das aktuelle Dokument
nimmt (mit uidoc=uiwk.CurrentDocument) und die Felder editiert.
Aufruf des Agenten dann direkt nach dem @Compose:
Sieht dann so aus:
@Command([Compose];"FORM");
@Command([ToolsRunMacro];"EDIT_FORM")
Und was passiert?
Wieder der gleiche Fehler:
"Sie müssen im Editmode sein..."
-
Ich muß erstmal passen, hab leider auch nicht die Zeit, das mal auszuprobieren.