Du kannst in einem neuen Dokument die Teilmasken als Dialogbox aufrufen und im bestehenden Dokument dann als berechnete Teilmaske einfügen, z.B.
Grundformular sei HOTELZIMMERABRECHNUNG
Mögliche Zusätze sind MINIBAR, WELLNAESS, TELEFON, TV
In der Grundmaske gibt es die möglichen Zusätze als Buttons, die nur dann angezeigt werden, wenn das zum Zusatz passende Feld noch nicht im Dokument existiert oder das Dokument neu ist bzw. mit diesem Zusatz noch nicht gespeichert wurde (das ist für Korrekturen während der ersten Editiersitzung wichtig). Ein Druck auf den BUTTON MINIBAR öffnet die Teilmaske MINIBAR als Dialogbox.
In der Haupt-Maske baust du für jeden möglichen Zusatz eine BERECHNETE TEILMASKE ein, deren Formel ungefähr so aussieht:
@If(@IsAvailable(STRG_MINIBAR);"MINIBAR";"")
Das bedeutet: beim nächsten Öffnen des Dokuments ist die Teilmaske im Dokument eingezogen und kann auch dort direkt editiert werden.
Vielleicht hilft es dir weiter - ich arbeite häufig damit. Ansonsten kannst du nur im QUERYOPEN eines Dokuments eine Abfrage starten und mit dieser Abfrage im Dokument Felder setzen, deren Wert über den Einzug der Teilmasken entscheidet. Mach es nur bei neuen Dokumenten, sonst erwürgen dich deine Anwender, denn die Abfrage kommt sonst bei JEDEM Öffnen des Dokuments (beim Queryopen steht dir das Dokument ja nur als Handle zur Verfügung).
Ein dritter Weg liegt im Kommando
@Command([SwitchForm];"Maskenname"), mit dem du das bestehende Dokument erneut mit seiner (oder auch einer anderen) Maske öffnest. Dabei werden die Teilmaskeneinzüge auch neu berechnet, allerdings bedeutet dies ein erneutes Öffnen und Schließen des Dokuments mit allen Folgen. Dann müssen alle Events sehr, sehr sauber, um nicht zu sagen: supersauber programmiert sein, sonst kannst du dabei lecht einmal etwas verlieren.
Gruß
Norbert