Es gelingt mir nicht, eine kleine Tabelle in einem Formular bei Bedarf zu aktivieren.
Aufgabe: Das Formular enthält Unterformulare: MainForm > frmName > frmLocation. Das letzte Formular enthält ein
Eingabefeld für das Länderkennzeichen und ein
Anzeigefeld für den Ländernamen. Beim Verlassen dieses Feldes wird der Inhalt in einem Makro geprüft:
- DE > keinen Ländername anzeigen
- sonst > suche den Ländernamen in der Tabelle sys_lkz.
- gefunden > zeige den Ländernamen an
- nicht gefunden > wechsle in die Liste der Länder, sodass ein Land explizit ausgewählt wird
Alles mit Ausnahme des letzten Punkts funktioniert. Ich beschränke mich deshalb beim Makro auf diesen Abschnitt. Dafür habe ich ein Formular
frmSucheLkz (Tabelle: sys_lkz) mit einem grid (Tabellenkontrollfeld) vorgesehen. Im Entwurf wird das grid mit der Eigenschaft "Sichtbar = Nein" versehen. Mit dem folgenden Code (in Anpassung an
Dannenhöfer soll das Grid sichtbar werden:
Code: Alles auswählen
grid = thisComponent.drawpage.forms.getByName("MainForm").getByName("frmSucheLkz").getByName("grid")
oCtlView = oDocCrl.GetControl(grid)
oCtlView.Visible = true
Aber das klappt nicht. Dannenhöfer weist ausdrücklich darauf hin, dass der Code in Version 3.1 nicht funktioniert; aber in der aktuellen
Buglist finde ich nichts dazu. Ich habe versucht, das Formular frmSucheLkz auf die gleiche Ebene wie MainForm zu setzen; aber das hat nichts geändert.
- Fehlt eine weitere Anweisung, z.B. dass das grid den Eingabefokus erhalten soll oder das Formular MainForm neu aufgebaut werden muss?
- Oder muss ich ganz anders vorgehen? (Ein völlig neues Formular wie im Handbuch Seite 249 f. möchte ich nicht benutzen, weil es nur eine Hilfsmaßnahme sein soll und deshalb das eigentliche Formular aktiv bleiben soll.)
Für Tipps wäre ich sehr dankbar. Jürgen
Es gelingt mir nicht, eine kleine Tabelle in einem Formular bei Bedarf zu aktivieren.
[u]Aufgabe:[/u] Das Formular enthält Unterformulare: MainForm > frmName > frmLocation. Das letzte Formular enthält ein [u]Eingabe[/u]feld für das Länderkennzeichen und ein [u]Anzeige[/u]feld für den Ländernamen. Beim Verlassen dieses Feldes wird der Inhalt in einem Makro geprüft:
[list][*]DE > keinen Ländername anzeigen
[*]sonst > suche den Ländernamen in der Tabelle sys_lkz.
[list][*]gefunden > zeige den Ländernamen an
[*]nicht gefunden > wechsle in die Liste der Länder, sodass ein Land explizit ausgewählt wird[/list][/list]
Alles mit Ausnahme des letzten Punkts funktioniert. Ich beschränke mich deshalb beim Makro auf diesen Abschnitt. Dafür habe ich ein Formular [i]frmSucheLkz [/i](Tabelle: sys_lkz) mit einem grid (Tabellenkontrollfeld) vorgesehen. Im Entwurf wird das grid mit der Eigenschaft "Sichtbar = Nein" versehen. Mit dem folgenden Code (in Anpassung an [url=http://www.starbasicfaq.de/WiekannmanKontrollfelderunsichtbarschalt.html]Dannenhöfer[/url] soll das Grid sichtbar werden:
[code] grid = thisComponent.drawpage.forms.getByName("MainForm").getByName("frmSucheLkz").getByName("grid")
oCtlView = oDocCrl.GetControl(grid)
oCtlView.Visible = true[/code]
Aber das klappt nicht. Dannenhöfer weist ausdrücklich darauf hin, dass der Code in Version 3.1 nicht funktioniert; aber in der aktuellen [url=https://bugs.freedesktop.org/buglist.cgi?quicksearch=form+control+visible]Buglist[/url] finde ich nichts dazu. Ich habe versucht, das Formular frmSucheLkz auf die gleiche Ebene wie MainForm zu setzen; aber das hat nichts geändert.
[list][*]Fehlt eine weitere Anweisung, z.B. dass das grid den Eingabefokus erhalten soll oder das Formular MainForm neu aufgebaut werden muss?
[*]Oder muss ich ganz anders vorgehen? (Ein völlig neues Formular wie im Handbuch Seite 249 f. möchte ich nicht benutzen, weil es nur eine Hilfsmaßnahme sein soll und deshalb das eigentliche Formular aktiv bleiben soll.)[/list]
Für Tipps wäre ich sehr dankbar. Jürgen