Liebe Liste,
wieder einmal ein kleines Problem, bei dem ich nicht weiter komme. Ich habe
ein Formular, das zum Anfang mit Defaultwerten belegt wird und deshalb nach
einer Abspeicherung verlangt, bevor es wieder geschlossen werden kann. Gut,
mache ich das eben automatisch:
oForm.insertRow()
Damit wird die Abspeicherung erledigt. Überflüssige Datensätze, die so am Ende
entstehen, werfe ich einfach durch eine entsprechende Bereinigung wieder raus.
Nun liegt auf dem Formular auch ein Button, der dazu dient, einen Neuen
Datensatz aufzurufen. Leider kann man nun, aufgrund der automatischen
Abspeicherung, beständig neue Datensätze gründen, die inhaltslos sind (bis auf
die Defaultwerte und den Primärschlüssel).
Hier soll helfen:
SUB Neu_Disable
REM Der Button "ButtonNeu" wird auf "Disabled" geschaltet.
oDoc=thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.Forms.getByName("Artikel")
oFeld = oForm.getByName("ButtonNeu")
oDocCrl = ThisComponent.getCurrentController()
oCtlView = oDocCrl.GetControl(oFeld)
oCtlView.Enable = False
END SUB
Tut's auch, wenn ich das Makro nach dem Insert-Befehl aufrufe. Der Button wird
auf nicht benutzbar geschaltet. Tuts auch, wenn ich (wie anfangs zur
Erforschung der Möglichkeiten an oCtlView) eine Messagebox
msgbox oCtlView.dbg_methods oder auch nur eine leere Messagebox
dazwischenschalte. Tuts nur nicht, wenn ich dieses Makro als letzten Teil beim
Start des Formulars hinter den obigen Insert packe. Als ob so etwas wie ein
asynchroner Funktionsablauf stattfindet, wie er mir manchmal bei AJAX in der
Webentwicklung Probleme bereitet.
Meine Frage: - gibt es eine Möglichkeit, eine Pause in einem Makro einzubauen?
Meine Frage (aus Neugier): - was läuft da im Hintergrund ab, so dass diese
Pause anscheinend notwendig ist?
... Was übrigens nicht funktioniert: Den Button in der GUI auf aktiviert -
Nein zu stellen und dann anschließend per Makro eine Aktivierung zu erreichen.
Zumindest nicht mit oCtlView.Enable = True. ...
Gruß
Robert
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]