Autor Thema: BackEnd + New NotesDocument + Gemeinsame Felder d. Teilmasken fehlen  (Gelesen 1587 mal)

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Hallo Liebe LoNo-Gemeinde,

bin soeben auf ein Problem gestoßen. Ich versuche im Backend ein neues Dokument einer Maske anzulegen, die wider rum Teilmasken mit gemeinsamen Feldern enthält.

In etwa so:

Code
	Set doc = New NotesDocument(db)
	doc.form = "MaskeMitTeilmasken"
	Call doc.ComputeWithForm(False,False)

Leider sind die Felder der Teilmasken nicht im Dokument enthalten! Diese werden aber benötigt da einige andere Felder in Abhängigkeit von den Werten in den Feldern der Teilmasken berechnet werden.

Das ComputeWithForm hat nicht geholfen. Ich habe auch versucht über die Form der Teilmaske in die Gemeinsamen Felder ranzukommen, aber ohne Erfolg.

Kann mir jemand weiter helfen?

Danke im Voraus

Fabian
Gruß

Fabian

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Hi,

schau Dir mal z.B. das Thema dazu an:
Felder im Backend refreshen

wenn Dir das keine Optionen gibt, würde ich noch foldendes Vorschlagen:
1. die relevanten Felder bereits beim Erzeugen des Dokument entsprechen befüllen und nicht über computewithform darauf vertrauen dass es klappt. (Klassisch aber aufwändig)
2. wenn es kein Backendagent (auf einem Server) ist, so:
Set UIDoc = WS.EditDocument(True,Doc, False)
Call UIDoc.Save()
eventuell noch
Call UIDoc.Close()
(sehr unklassisch und kritisch wegen der Postopen ect.)

Grüsse, Pete(r)
pete(r)

Offline Skorpi

  • Junior Mitglied
  • **
  • Beiträge: 79
  • Geschlecht: Männlich
Vielen Dank für deine Antwort.

Ich habe es jetzt klassich gelöst (Vorschlag 1). Die Gemeinsamen Felder werden im Backend gefüllt. Ist zwar aufwendig, aber funktioniert.

Würde mich trotzdem interessieren, ob dein zweiter Vorschlag über das FrontEnd auch funktioniert. Warum ist das eigentlich kritisch zu sehen im Bezug auf das PostOpen? Wird das Ereignis bei dieser Vorgehensweise nicht ausgeführt?

Grüße

Fabian
Gruß

Fabian

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Hi,

2. ist insofern als kritisch zu betrachten,
da beim WS.EditDocument alle aktionen (QueryOpen,Postopen...)
der Maske aktiviert werden
beim UIDoc.Save()
QueryRefresh() und Querysave()
und beim Close()
dann noch QueryClose, ev.QueryRefresh ...
und natürlich die Validierungsgeschichten ect.
Und bei den Teilmasken das auch noch für die Teilmasken.

Übrigens werden auch die DocumetQueryOpen Events der View und eventuelle Form-Formulas mit reingenommen!

Als muss man hier auf vieles achten.

Dann benötigt es natürlich noch "einen Moment" bis das alles durchgelaufen ist und
das tatsächliche Schlissen des UIDocs ist etwas abgekoppelt vom UIDoc.Close(), auch mit (imidiate=TRUE) und meist nicht so schnell, wie der script dann weiterläuft / laufen will.

Grüsse, Pete(r)

@All: Hab ich noch was vergessen? (bestimmt!)





pete(r)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz