Ich habe ein seltsames Verhalten festgestellt, kann es leider nicht reproduzieren. Ich hatte gedacht, dass ich es mit einem Testformular zeigen könnte; dabei ist der Fehler aber auch nur die ersten beiden Male aufgetreten und danach nicht wieder. Vielleicht hat jemand etwas Ähnliches auch schon erlebt und kann etwas dazu sagen.
Aufbau des Formulars: Beschriftungsfeld lbl, Button btn, Tabellenkontrollfeld grid
Funktion: Per Button wird ein Datensatz weitergeblättert; der Inhalt eines Feldes wird im Beschriftungsfeld angezeigt.
Problem: Der vorherige Text des Beschriftungsfelds wird
nicht entfernt. Effekt: Es stehen 2, 3, 4, 5... Texte übereinander.
Der Code des Makros zum Weiterblättern und zur Anzeige:
Code: Alles auswählen
Sub TestAdd
oForm = thisComponent.drawpage.forms.MainForm
thisComponent.lockControllers()
oForm.next
oForm.getByName("lbl").Label = oForm.grid.getByIndex(1).Text
rem oForm.getByName("lbl").Label = oForm.getString(7)
thisComponent.unlockControllers()
End Sub
Wenn der Text nicht aus dem Grid geholt wird, sondern direkt aus dem aktuellen Datensatz (d.h. das rem in die andere Zeile gesetzt wird), wird immer nur der aktuelle Text angezeigt. Alle Versuche mit und ohne lockControllers oder Verschieben in ein Unterformular hatten ursprünglich das gleiche Problem, aber es wird jetzt nicht mehr reproduziert. (Deshalb kann ich es auch nicht mit einem Screenshot verdeutlichen.)
Ein Ausweg besteht im Wechsel auf Textfelder, die direkt an das Formular gebunden werden. (Da habe ich aber andere Probleme, die hier nur ablenken würden.) Für zweckdienliche Hinweise wäre ich trotz der vagen Fehlerbeschreibung dankbar. Jürgen
Ich habe ein seltsames Verhalten festgestellt, kann es leider nicht reproduzieren. Ich hatte gedacht, dass ich es mit einem Testformular zeigen könnte; dabei ist der Fehler aber auch nur die ersten beiden Male aufgetreten und danach nicht wieder. Vielleicht hat jemand etwas Ähnliches auch schon erlebt und kann etwas dazu sagen.
[b]Aufbau des Formulars:[/b] Beschriftungsfeld lbl, Button btn, Tabellenkontrollfeld grid
[b]Funktion:[/b] Per Button wird ein Datensatz weitergeblättert; der Inhalt eines Feldes wird im Beschriftungsfeld angezeigt.
[b]Problem: [/b]Der vorherige Text des Beschriftungsfelds wird [b]nicht entfernt.[/b] Effekt: Es stehen 2, 3, 4, 5... Texte übereinander.
Der Code des Makros zum Weiterblättern und zur Anzeige:
[code]Sub TestAdd
oForm = thisComponent.drawpage.forms.MainForm
thisComponent.lockControllers()
oForm.next
oForm.getByName("lbl").Label = oForm.grid.getByIndex(1).Text
rem oForm.getByName("lbl").Label = oForm.getString(7)
thisComponent.unlockControllers()
End Sub[/code]
Wenn der Text nicht aus dem Grid geholt wird, sondern direkt aus dem aktuellen Datensatz (d.h. das rem in die andere Zeile gesetzt wird), wird immer nur der aktuelle Text angezeigt. Alle Versuche mit und ohne lockControllers oder Verschieben in ein Unterformular hatten ursprünglich das gleiche Problem, aber es wird jetzt nicht mehr reproduziert. (Deshalb kann ich es auch nicht mit einem Screenshot verdeutlichen.)
Ein Ausweg besteht im Wechsel auf Textfelder, die direkt an das Formular gebunden werden. (Da habe ich aber andere Probleme, die hier nur ablenken würden.) Für zweckdienliche Hinweise wäre ich trotz der vagen Fehlerbeschreibung dankbar. Jürgen