[gelöst] Formular nicht mehrfach öffnen?

9. September 2008 08:42

Guten Morgen,

ich hab 2 Formulare. In dem einen (Tabllenformular) öffne ich über nen Doppelklick das andere Formular mit entsprechendem Datensatz. Nur öffnet er dabei (verständlicherweise) das Formular immer wieder neu. Ich würde aber gern, sobald ich das Formular (im Hintergrund) offen hab, dass er den DS in diesem offenem Formular aufruft, quasi immer nur eine "Instanz" dieses Formulars offen sein kann.

Geht sowas und wie?
Zuletzt geändert von enno am 9. September 2008 10:55, insgesamt 1-mal geändert.

Re: Formular nicht mehrfach öffnen?

9. September 2008 08:52

ich kenn mich mit nav 5 nicht so aus (habe hier nur 4) aber wie realisierst du den doppelklick? mit code oder properties? wenn du das ganze über properties machst, kannst du das hier einstellen: RunFormLinkType=onUpdate, das bedeutet wenn du die 2. form aufgerufen hast und in der 1. wieder einen neuen wählst (oder in der 2. den satz wechselst) wechselt er automatisch den gleichen satz in der anderen form, ich hoffe das meinst du, wenn nicht versuchs deutlicher zu schreiben

Re: Formular nicht mehrfach öffnen?

9. September 2008 08:58

enno hat geschrieben:ich hab 2 Formulare. In dem einen (Tabllenformular) öffne ich über nen Doppelklick das andere Formular mit entsprechendem Datensatz. Nur öffnet er dabei (verständlicherweise) das Formular immer wieder neu. Ich würde aber gern, sobald ich das Formular (im Hintergrund) offen hab, dass er den DS in diesem offenem Formular aufruft, quasi immer nur eine "Instanz" dieses Formulars offen sein kann.

Öffne das Formular mit RUNMODAL statt einfachem RUN. Hat allerdings den Nachteil, dass du in Form1 so lange nicht zurück kehren kannst, bis Form2 geschlossen ist ...

Re: Formular nicht mehrfach öffnen?

9. September 2008 09:53

Sebastian Pfliegel hat geschrieben:ich kenn mich mit nav 5 nicht so aus (habe hier nur 4) aber wie realisierst du den doppelklick? mit code oder properties?

den doppelklick realisier ich über nen versteckten Button, der ein Form.Run ausführt ... also code. Von daher wird das wohl nix mit dem Property ... aber welches Objekt sollte denn dieses Property haben?

Natalie hat geschrieben:Öffne das Formular mit RUNMODAL statt einfachem RUN. Hat allerdings den Nachteil, dass du in Form1 so lange nicht zurück kehren kannst, bis Form2 geschlossen ist ...

Das is natürlich schade ... ich wollte ja quasi beide Forms nebeneinander offen lassen und dann auf der linken (Übersichts-) Form nur den Datensatz auswählen, den ich dann auf der rechten Form direkt bearbeiten kann. Immer auf und zu find ich da anstrengend.

Geht das nicht noch anders? Das man irgendwie beim Öffnen der Form prüft, ob eine Instanz dieser Form schon geöffnet ist und dann dieser den ntsprechenden Datensatz übergibt?

Re: Formular nicht mehrfach öffnen?

9. September 2008 10:11

enno hat geschrieben:Geht das nicht noch anders? Das man irgendwie beim Öffnen der Form prüft, ob eine Instanz dieser Form schon geöffnet ist und dann dieser den ntsprechenden Datensatz übergibt?

Hm, auf jeden Fall bräuchtest du auf der Form eine globale Form-Variable mit Bezug auf deine Form Nr. 2.
Von dieser Variable müsstest du jetzt abfragen, ob sie bereits geöffnet ist. Wenn ja, müsste statt eines RUN ein ACTIVATE oder ähnliches erfolgen.
Ich wüsste jetzt allerdings nicht, wie ich diese Abfrage anstelle ... Wie wäre es mit einer globalen Variable a la "FormGeöffnet" (Boolean), die du selber setzt und nur noch abzufragen brauchst?
Problem: Form 1 muss mitkriegen, dass Form 2 geschlossen worden ist. Dazu müsstest du auf Form 2 eine kleine Funktion schreiben, die eine dortige globale Variable setzt.
Befor du versuchen würdest, die Form 2 zu öffnen, müsstest du sie befragen, ob die Variable gesetzt ist ...

Unstrukturiert (um nicht zu sagen: wirr), aber du verstehst die Idee dahinter?

Re: Formular nicht mehrfach öffnen?

9. September 2008 10:55

Verstanden ja, aber ich werd nun doch dem Vorschlag von Sebastian folgen.

Hab das Öffnen per Doppelklick entfernt und öffne die 2te Form nun über ein Menu Item. Mit dem OnUpdate-Property ist das recht einfach und praktikabel und folgt den gängigsten Navision-Standards. Außerdem öffnet man so nicht so schnell immer wieder neue Fenster wie mit nem Doppelklick :wink:

Ich danke ...