Autor Thema: @UpdateFormulaContext und "Onload" event  (Gelesen 2050 mal)

Offline Floink

  • Frischling
  • *
  • Beiträge: 35
  • Geschlecht: Männlich
@UpdateFormulaContext und "Onload" event
« am: 15.04.11 - 21:23:21 »
Hallo,

hab nur ne kurze Frage um zu klären ob ich zu doof bin, oder das so is wies sein soll ;-)

Und zwar. Ich erstelle ein neues Dokument mit folgendem Code:

Code
@Command([FileSave]);
@Command([Compose];@DbName;"WordSchreiben");

@UpdateFormulaContext;
@SetField("IstPackliste";1)

Funktioniert ja auch wunderbar. Ich habe nur ein Problem. Im "Onload" event des neuen Dokumentes benötige ich den Inhalt des feldes "IstPackliste" leider hat der im Moment des "Onload" noch nicht den Wert aus dem @UpdateFormulaContext. (Im geöffneten Dokument ist der Wert aber da)

Wird der Wert erst nach dem Onload gesetzt oder mach ich was falsch?

LG Matthias

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: @UpdateFormulaContext und "Onload" event
« Antwort #1 am: 15.04.11 - 23:28:06 »
Pack doch an beide Stellen (Onload & Deine Funktion nach @UpdateFormulaContext) etwas, was wir etwas ausgibt, z.B. in die Statuszeile, dann siehst Du die Reihenfolgen - vorausgesetzt, die Inhalte dessen, was Du ausgibst, unterscheiden sich  ;)
Ich kann mir gut vorstellen, dass Du mit Deiner Vermutung schon auf einer ganz heißen Spur bist...

Schönes WE!
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: @UpdateFormulaContext und "Onload" event
« Antwort #2 am: 15.04.11 - 23:31:13 »
Ein Compose (egal, ob Formel oder Script) erstellt ein neues Dokument mit der angegebenen Maske und öffnet es. Nach dem Befehl ist das neue Dokument geöffnet. Folglich sind Events wie PostOpen, OnLoad usw. bereits gelaufen.

Wenn das Feld (hier IstPackliste) zum Zeitpunkt des Öffnens bereits gefüllt sein soll, gibt es zwei unterschiedliche Herangehensweisen.

1. Das Dokument vor dem Öffnen erstellen

Du erstellst per Script ein neues Dokument und öffnest es danach

Set doc = New NotesDocument (db)
doc.Form = "WordSchreiben"
doc.IstPackliste = "1"
Call workspace.EditDocument (True, doc)

Funktioniert, weil beim Öffnen das Feld "IstPackliste" bereits gefüllt. Unterschied zum Compose ist, dass das Dokument nicht neu ist. Abfragen, wie @IsNewDoc, geben ein anderes Ergebnis als bei einem Compose

2. Das Feld wird beim Öffnen berechnet

In der Maske ist das Feld "IstPackliste" berechnet beim Anlegen. Der Wert ergibt sich aus einer temporär hinterlegten Variablen (INI, Profildokument o.Ä.). Beim Erstellen des Dokuments wird erst die temporäre Variable gefüllt, dann erfolgt das Compose

Beispiel mit einer temp. INI-Variablen

Erstellen:

@Environment ("tmp_IstPackliste"; "1")
@Command([Compose];@DbName;"WordSchreiben");
@Environment ("tmp_IstPackliste"; "")

Wert des Feldes "IstPackliste"

@Environment ("tmp_IstPackliste")

Die Beispiele sind nur logisch gemeint, syntaktische Fehler möchte ich nicht ausschließen.


Möglicherweise erstellst Du das neue Dokument aus einem bereits geöffneten (vermute ich gerade anhand des [FileSave]), dann könntest Du auch das neue Dokument so einstellen, dass die Werte des markierten Dokuments übernommen werden und berechnest "IstPackliste" im Vorgabewert in Abhängigkeit eines Feldes des geöffneten Dokuments.

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: @UpdateFormulaContext und "Onload" event
« Antwort #3 am: 16.04.11 - 05:29:32 »
Zitat
@SetField("IstPackliste";1)
Warum trägst du die "1"nicht als DefaultValue für das Item in die Maske ein?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: @UpdateFormulaContext und "Onload" event
« Antwort #4 am: 16.04.11 - 09:58:10 »
Zitat
@SetField("IstPackliste";1)
Warum trägst du die "1"nicht als DefaultValue für das Item in die Maske ein?
Soll ich mal "glaskugeln"?

Die Maske wird genutzt, um Worddokumente zu erstellen. Das erfolgt im Onload des Dokuments und die Art des Worddokuments ist abhängig von Feldern im Dokument, im angegebenen Beispiel handelt es sich um eine Packliste. Vermutlich gibt es auch noch einen Lieferschein usw..

Falls das Dokument zum Erstellen der Worddokumente am Anschluss nicht mehr gebraucht wird, würde ich das ganz anders lösen (z.B. als Funktion in einer Scriptbibliothek mit Übergabe der Art als Parameter), aber soweit sieht meine Glaskugel heute nicht.

Offline Floink

  • Frischling
  • *
  • Beiträge: 35
  • Geschlecht: Männlich
Re: @UpdateFormulaContext und "Onload" event
« Antwort #5 am: 16.04.11 - 10:12:30 »
Peters glaskugel hat recht :-)

im Onload wird ein Word Dokument erstellt.

Ich habs jetz ganz einfach mit @Environment  gelöst, ging am schnellsten und funktioniert :-)



danke für eure Hilfe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz