Seite 1 von 1

Checkboxen und Formularfilter

Verfasst: Do, 14.01.2010 12:10
von gigabert
Hallo,

ich hab in einer Base-Datei (odb) ein Formular, welches an eine Tabelle gebunden ist. Die Daten werden sowohl in Textfeldern als auch übersichtlich in einem Tabellenkontrollfeld angezeigt. Nun hab ich über dem Tabellenkontrollfeld 4 Checkboxen eingerichtet, die mir die Daten in der Tabellenübersicht filtern sollen, bzw. eigentlich werden ja die Daten für das Formular gefiltert. Die Checkboxen haben bei dem Ereignis "Status geändert" ein Makro zugewiesen bekommen:

Code: Alles auswählen

Sub DatenFiltern

	Dim sFilter as String
	
	oForm = ThisComponent.drawpage.forms.getByName("MainForm")

	if oForm.getByName("cbFilter_1").state = 0 then
		sFilter = " ""privileg"" != 'admin' "
	else
		sFilter = " ""privileg"" = 'admin' "
	endif
	
	
	if oForm.getByName("cbFilter_2").state = 0 then
		sFilter = sFilter + " AND ""privileg"" != 'user' "
	else
		sFilter = sFilter + " AND ""privileg"" = 'user' "
	endif
	
	
	if oForm.getByName("cbFilter_3").state = 0 then
		sFilter = sFilter + " AND ""aktiv"" != true "
	else
		sFilter = sFilter + " AND ""aktiv"" = true "
	endif
	
	
	if oForm.getByName("cbFilter_4").state = 0 then
		sFilter = sFilter + " AND ""aktiv"" != false "
	else
		sFilter = sFilter + " AND ""aktiv"" = false "
	endif
	
	'Testausgabe Filter
	MsgBox sFilter
 
 	'Testausgabe Checkboxstatus
 	MsgBox oForm.getByName("cbFilter_1").state & " " & oForm.getByName("cbFilter_2").state & " " & _
		oForm.getByName("cbFilter_3").state & " " & oForm.getByName("cbFilter_4").state
	
	oForm.Filter = (sFilter)
	oForm.ApplyFilter = true
	oForm.reload()
	
End Sub
Der Code scheint OK zu sein. Die Testausgaben sowohl des Status der Checkboxen sowohl des Strings mit den Filterangaben sind wohl richtig.

Ich hab da eher ein anderes Problem. Und zwar kann man ja bei den Checkboxen angeben, ob sie einen Standardstatus haben ("ausgewählt" oder "nicht ausgewählt"). Dadurch dass ich nun aber oForm.reload() aufrufe, wird der Standardstatus für die Checkboxen wieder hergestellt, was ich ja aber nicht möchte. Die Checkboxen sollen einen Standardstatus zu Beginn haben, wenn ich das Formular aufrufe, aber ansonsten sollen sie den Status behalten, den ich ausgewählt habe, solange das Formular geöffnet bleibt. Aber auf das reload() des Formulars kann ich ja auch nicht verzichten, da sonst die gefilterten Daten nicht angezeigt werden.

Ich hoffe, ihr habt mein Problem verstanden. Vielleicht hat ja von euch schonmal wer so etwas hingekriegt...

Gruss
Bert

Re: Checkboxen und Formularfilter

Verfasst: Do, 14.01.2010 12:29
von gigabert
Hab gerade mal versucht, die Checkboxen auf ein Subformular zu legen, aber das scheint auch nicht zu klappen. Der Status wir trotzdem wieder zurückgesetzt, wenn das Hauptformular mit dem Filter neugeladen (reload) wird. Und irgendwie klappt das mit dem Filtern auch nicht. Es werden keine Daten in dem Tabellenkontrollfeld angezeigt...