Autor Thema: Neues document im Front-End  (Gelesen 3864 mal)

Offline yannick

  • Junior Mitglied
  • **
  • Beiträge: 94
Neues document im Front-End
« am: 06.12.12 - 13:58:46 »
Hallo Leute,
ich brauche ein neues document im Front-End. Dabei verwende ich die ComposeDocument-Funktion wie folgt:
Code
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.ComposeDocument( , , "myForm", , , True)
Call uidoc.FieldSetText("field", "text")

Allerdings werden die Felder bei uidoc.FieldSetText nicht gesetzt. Im Debugger sieht man auf jeden Fall das richtige document unter uidoc, uidoc.FieldGetText funktioniert auch normal. Vielleicht nur ein Denkfehler? Danke für eure Hilfe!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Neues document im Front-End
« Antwort #1 am: 06.12.12 - 14:18:24 »
Das ist wahrscheinlich ein Timing- Problem, oder das Feld ist nicht bearbeitbar...

Mach es doch so:
Code
set doc = New NotesDocument( db )
doc.field = "Text"
set uidoc = ws.EditDocument( True, doc )
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #2 am: 06.12.12 - 14:18:46 »
Hallo,

Warum drehst Du die Geschichte nicht einfach um?

- Dokument, muss ja noch nicht einmal gespeichert sein, im Backend erstellen
  ( set doc = new notesdocument(db)
- Felder befuellen
  (doc.Feld = "" oder call doc.ReplaceItemValue("Feld", "Wert")
- jetzt mittels uiws.EditDocument zum Bearbeiten fuer den Benutzer im Frontend oeffnen


Andreas

Offline yannick

  • Junior Mitglied
  • **
  • Beiträge: 94
Re: Neues document im Front-End
« Antwort #3 am: 11.12.12 - 16:35:33 »
Wunderbar, vielen Dank für die vielen Antworten, konnte leider nicht früher antworten :)
Jetzt hat sich noch ein weiteres kleines Problem ergeben. In einer DialogBox habe ich mehrere (dynamische) Comboboxen. Solange der User auf die Liste klickt und einen Wert auswählt ist alles ok. Nur wenn der User den bereits erscheinenden Wert einfach übernimmt ohne auf die Combobox zu klicken bekomme ich am Ende die komplette Liste, und nicht nur den ausgewählten Wert raus. Wie kann ich das umgehen?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #4 am: 11.12.12 - 16:39:42 »
Hallo,

Wie werden die Boxen denn gefuellt?
Und hast Du dann auch einen "Vorgabewert" definiert?


Andreas

Offline yannick

  • Junior Mitglied
  • **
  • Beiträge: 94
Re: Neues document im Front-End
« Antwort #5 am: 11.12.12 - 16:44:12 »
Wie werden die Boxen denn gefuellt?
Mit einem array:
Code
Call dialdoc.ReplaceItemValue("comboField", myArray)
Zusätzlich in den Properties der Combobox unter "Choices -> Forumla" nochmal den eigenen Feldnamen ("comboField") angegeben (ansonsten hat es nicht funktioniert). Einen Vorgabewert habe ich soweit ich weiß nicht formuliert (wobei ich mir mit dem "Choices->Formula" nicht sicher bin).
« Letzte Änderung: 11.12.12 - 16:46:01 von yannick »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #6 am: 11.12.12 - 16:47:14 »
Nochmal.

Habt ihr auch einen "Vorgabewert" definiert?


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #7 am: 11.12.12 - 17:04:42 »
Wie werden die Boxen denn gefuellt?
Mit einem array:
Code
Call dialdoc.ReplaceItemValue("comboField", myArray)
Zusätzlich in den Properties der Combobox unter "Choices -> Forumla" nochmal den eigenen Feldnamen ("comboField") angegeben (ansonsten hat es nicht funktioniert). Einen Vorgabewert habe ich soweit ich weiß nicht formuliert (wobei ich mir mit dem "Choices->Formula" nicht sicher bin).
Das kannst Du so nicht machen.

Du hast ein Feld namens comboField. Dieses Feld füllst Du mit einem Array und sagst dem Feld, dass es die Liste aus sich selbst holen soll. Damit sind Auswahlliste und Wert des Feldes identisch.

Richtig geht das so:

Schreib die Liste in ein anderes Feld (genauer: Item), z.B. comboFieldList, und trag im comboField ein, dass die Liste aus comboFieldList zu nehmen ist. Und wenn Du dann noch einen Vorgabewert in dem Feld benötigst, fülle es (also comboField) mit genau diesem einen Wert.
« Letzte Änderung: 11.12.12 - 17:06:29 von Peter Klett »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #8 am: 11.12.12 - 17:11:01 »
Nochmal.

Habt ihr auch einen "Vorgabewert" definiert?


Andreas
@Andreas: Da das Item durch das Script schon befüllt ist, ist der Vorgabewert hinfällig

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #9 am: 11.12.12 - 17:16:12 »
@Peter
Bist Du Dir da absolut sicher?


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Neues document im Front-End
« Antwort #10 am: 11.12.12 - 17:24:48 »
Ja!

Der Vorgabewert ist der Wert, den ein Feld (Item) bekommt, wenn es initial erstellt wird.

Mach den Test: Nimm eine Maske mit einem Vorgabewert in einem Feld. Erstelle ein Dokument per Script, trag die Form ein und einen Feldwert für das Item (kann auch leer sein ""), öffne das Dokument -> kein Vorgabewert (bzw. der, den Du per Script gesetzt hast).

Offline yannick

  • Junior Mitglied
  • **
  • Beiträge: 94
Re: Neues document im Front-End
« Antwort #11 am: 11.12.12 - 17:42:29 »
Richtig geht das so:

Schreib die Liste in ein anderes Feld (genauer: Item), z.B. comboFieldList, und trag im comboField ein, dass die Liste aus comboFieldList zu nehmen ist. Und wenn Du dann noch einen Vorgabewert in dem Feld benötigst, fülle es (also comboField) mit genau diesem einen Wert.
Super, danke dir! Klappt prima auf diese Weise, auch mit dem Vorgabewert :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz