Seite 1 von 1

[gelöst] Filter aus Kombinationsfeld

Verfasst: Sa 23. Jan 2021, 17:57
von deife
Hallo Leute,

ich habe alle meine Kontoauszüge in eine Tabelle importiert und jede Buchung einer Kategorie zugeordnet.

Auf dem Formular ist auch noch ein Kombinationsfeld, über das ich die einzelnen Kategorien auswählen kann.

Über die Eigenschaft "Text" komme ich an den Namen der Bezeichnung ran, nur dann steht im Filter der MainForm der Name der Kategorie und nicht deren ID.

Jetzt ist die Frage: wie komme ich an die ID, die im Kombinationsfeld angewählt ist?

Mein Versuch alle Eigenschaften des Kombinationsfeldes auszulesen hat zwar geklappt, aber mit der Liste komme ich auch nicht weiter. Alternativ habe ich es mit eine Listenfeld versucht, aber das ging auch nicht.

hier die Liste der Eigenschaften des Kombinationsfeldes. Vielleicht sehe ich den Wald vor lauter Bäumen nicht:

Code: Alles auswählen

"Properties of object 
"com.sun.star.form.OComboBoxModel":
SbxINTEGER/void Align; SbxBOOL Autocomplete; SbxLONG/void BackgroundColor; 
SbxINTEGER/void Border; SbxLONG/void BorderColor; SbxOBJECT BoundField; 
SbxINTEGER ClassId; SbxINTEGER ContextWritingMode; SbxINTEGER ControlTypeinMSO; 
SbxBOOL ConvertEmptyToNull; SbxSTRING DataField; SbxSTRING DataFieldProperty; 
SbxSTRING DefaultControl; SbxSTRING DefaultText; SbxBOOL Dropdown; 
SbxBOOL EnableVisible; SbxBOOL Enabled; SbxSINGLE FontCharWidth; 
SbxINTEGER FontCharset; SbxOBJECT FontDescriptor; SbxINTEGER FontEmphasisMark; 
SbxINTEGER FontFamily; SbxSINGLE FontHeight; SbxBOOL FontKerning; 
SbxSTRING FontName; SbxSINGLE FontOrientation; SbxINTEGER FontPitch; 
SbxINTEGER FontRelief; SbxINTEGER FontSlant; SbxINTEGER FontStrikeout; 
SbxSTRING FontStyleName; SbxINTEGER FontType; SbxINTEGER FontUnderline; 
SbxSINGLE FontWeight; SbxINTEGER FontWidth; SbxBOOL FontWordLineMode; 
SbxBOOL GenerateVbaEvents; SbxSTRING HelpText; SbxSTRING HelpURL; 
SbxBOOL HideInactiveSelection; SbxBOOL InputRequired; SbxOBJECT/void LabelControl; 
SbxINTEGER LineCount; SbxSTRING ListSource; SbxLONG ListSourceType; 
SbxINTEGER MaxTextLen; SbxINTEGER MouseWheelBehavior; SbxSTRING Name; 
SbxBOOL NativeWidgetLook; SbxUSHORT ObjIDinMSO; SbxBOOL Printable; 
SbxBOOL ReadOnly; SbxOBJECT ReferenceDevice; SbxARRAY StringItemList; 
SbxINTEGER TabIndex; SbxBOOL/void Tabstop; SbxSTRING Tag; 
SbxSTRING Text; SbxLONG/void TextColor; SbxLONG/void TextLineColor; 
SbxARRAY TypedItemList; SbxINTEGER WritingMode; SbxLONG ItemCount; 
SbxARRAY AllItems; SbxOBJECT PropertySetInfo; SbxARRAY PropertyValues; 
SbxSTRING PropertyToDefault; SbxOBJECT Parent; SbxOBJECT ValueBinding; 
SbxOBJECT ListEntrySource; SbxOBJECT Validator; SbxEMPTY CurrentValue; 
SbxSTRING ServiceName; SbxSTRING ImplementationName; SbxARRAY SupportedServiceNames; 
SbxARRAY Types; SbxARRAY ImplementationId; SbxOBJECT Delegator; 
SbxSTRING Dbg_SupportedInterfaces; SbxSTRING Dbg_Properties; SbxSTRING Dbg_Methods

Re: Filter aus Kombinationsfeld

Verfasst: Sa 23. Jan 2021, 20:57
von RobertG
Hallo deife,

ein Kombinationsfeld hat nur den Text. Es gibt ja nicht, wie ein Listenfeld, statt des angezeigten Inhaltes einen Fremdschlüssel an die darunterliegende Tabelle weiter.

Du musst ein Listenfeld erstellen unbd dort eine Abfrage bauen, die eben als erstes Feld den Text und als zweites Feld den dazugehörigen Schlüssel enthält. Und diesen schlüssel fragst Du über CurrentValue ab.

Gruß

Robert

Re: Filter aus Kombinationsfeld

Verfasst: So 24. Jan 2021, 14:16
von deife
Hallo Robert,

mit dem Listenfeld hab ich auch schon mal experimentiert. Eigentlich wollte ich was zum Aufklappen, aber das versteckt sich in den Eigenschaften und hab ich auch noch gefunden.

Jetzt hab ich auch kapiert, wie man die Liste der Eigenschaften lesen muss.

Leider wurde bei CurrentValue auch der Text und nicht die ID verwendet. Mit der Eigenschaft "SelectedItems(0)" konnte ich die ID auslesen und dem Filter übergeben.

Vielen Dank.

Grüße
deife

Re: Filter aus Kombinationsfeld

Verfasst: So 24. Jan 2021, 14:20
von deife
zu früh gefreut.

SelectedItems(0) ist nur die Nummer des Eintrags im Listenfeld.

Bin weiter auf der Suche.

Re: Filter aus Kombinationsfeld

Verfasst: So 24. Jan 2021, 14:34
von deife
ok, du hattest Recht. CurrentValue ist die Eigenschaft. Durch meine Spielerei habe ich auch die Nummer des gebundenen Feldes verbogen. Gebundenes Feld wieder auf 1 gesetzt und schon hat CurrentValue den Wert der ID

Danke.