Seite 1 von 1

Formularbasierter Filter öffnet immer mit einem Vorgabewert

Verfasst: Fr, 23.09.2011 09:22
von gogo
Hallo,

Wenn ich in einem meiner Base Formulare einen 'Formularbasierten Filter' öffne, dann hat dieser immer schon ein Feld gefiltert (lautet immer: "Bearbeiter = 1") obwohl weder in der Datenquelle des Formulars eine Where-Klausel drin ist (select * from xyz) noch ein Filter definiert ist (Eigenschaftsfeld ist leer).

Beim Öffnen eines "Standardfilters" ist dieser leer.

Wenn ich die Filtereigenschaft des Formulars bevor ich den Formularbasierten Filter öffne explizit auf "" stetze, dann besteht das Problem ebenfalls:

Code: Alles auswählen

Sub FilterLoeschenBevorFilterOeffnen(FormMPR as object)

dim document   as object
dim dispatcher as object

FormMPR.Filter = ""
FormMPR.ismodified= true
FormMPR.reload
	
document  = ThisComponent.CurrentController.Frame
dispatcher= createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher. executeDispatch(document, ".uno:FormFilter", "", 0,Array())

end sub
Die Daten des Formulars werden per SQL-String geholt, aber auch wenn man das auf "Tabelle" ändert, besteht das Problem weiterhin.

Hat jemand die Lösung? - oder zumindest einen Workaround?

g

Re: Formularbasierter Filter öffnet immer mit einem Vorgabew

Verfasst: Do, 29.09.2011 15:33
von gogo
Niemand eine Idee?

Wo ist diese Eigenschaft eigentlich abgespeichert? Beim Form-Objekt hab ich es nicht gefunden.

g

Re: Formularbasierter Filter öffnet immer mit einem Vorgabew

Verfasst: Fr, 30.09.2011 16:35
von DPunch
Aloha

Ich weiss nicht, ob ich Dir da ganz folgen kann, aber ein Formularbasierter Filter wird bei mir (OOo 3.2.1, Win XP) ganz einfach über Formular -> Bearbeiten -> Formular-Eigenschaften -> Reiter Daten -> Filter gesetzt und gelöscht.
Wenn ich einen formularbasierten Filter über die GUI erstellt habe, kann ich ihn problemlos einfach über die Formular-Eigenschaften löschen.

Re: Formularbasierter Filter öffnet immer mit einem Vorgabew

Verfasst: Sa, 01.10.2011 00:49
von gogo
Das sollte das Makro oben machen oder? Aber weder

Code: Alles auswählen

FormMPR.Filter = ""
FormMPR.ismodified= true
FormMPR.reload
noch

Code: Alles auswählen

FormMPR.ApplyFilter = False
FormMPR.ismodified= true
FormMPR.reload
... sind in der Lage zu verhindern, dass der formularbasierte Filter mit der Vorgabe "Bearbeiter = 1" startet. Wie schon gesagt. Die Eigenschaft .Filter ist leer (xray), aber wenn man den Formularbasierten Filter öffnet, dann ist sie's nicht mehr.

g

Re: Formularbasierter Filter öffnet immer mit einem Vorgabew

Verfasst: So, 02.10.2011 13:23
von DPunch
Aloha

Ich kann das von Dir beschriebene Verhalten leider nicht nachvollziehen.
Ich kann den Filter problemlos sowohl per Makro als auch per GUI im Formular-Bearbeiten-Modus löschen.

Re: Formularbasierter Filter öffnet immer mit einem Vorgabew

Verfasst: So, 02.10.2011 15:32
von gogo
Habe das Ganze nochmal neu aufgesetzt - Tabelle gekillt, Tabelle neu erstellt, Formular neu gemacht (das alte war mir eh' zu krakelig), Datenbank neu verbunden... jetzt geht's. Ich vermute, dass das alte Formular einen Fehler hat, denn dort taucht das Phänomen immer noch auf.

Umsomehr, als ich Folgendes probiert habe:
Ich hab' das neue Formular in das Alte kopiert (im Entwurfsmodus durch Copy/Paste der Kontrollelemente) - Filter funktioniert Richtig für das neue Formular, und falsch für das Alte.
Dann hab' ich alle Kontrollelemente des alten Formulars gelöscht und die des Neuen reinkopiert - Fehler besteht weiterhin...

thx jedenfalls für den Beistand :)

g