Seite 1 von 1

XbpQuickBrowse, Spalten selektieren

Verfasst: Di, 17. Mai 2022 14:31
von Udo
Hallo,

zur schnellen Anzeige einer Auswertung, die in einem 2 dimensionalen Arrays (saData) abgelegt ist, verwende ich XbpQuickBrowse.
Dem User soll die Anzeige weiter einschränken (filtern) können.

Zur Anzeige bestimmter Spalten , hatte ich auf den 2. Parameter bei DacPagedDataStore():new() gehofft.
Zunächst zeige ich alle Spalten an ; schreibe dazu alle Spaltennummern in das Array saSpShow -
oBrow:datalink:new( saData, saSpShow) Alles gut.

Dann reduziere ich saSpShow :
mit oBrow:datalink:new( saData, saSpShow) erscheinen links die richtigen Spalten, aber die alte Anzeige bleibt dahinter stehen
mit oDL := DacPagedDataStore():new( saData, saSpShow) und oBrow:setdatalink(oDL) ist aber alles Bestens; die gewünschten Spalten erscheinen, sonst nichts.
So steht auch in der Doku zu XbpQuickBrowse:setDataLink(): "It also configures the browser to the number of columns of the datalink, respectively."

Setze ich aber den Spaltenfilter zurück (oder erhöhe die Anzahl der anzuzeigenden Spalten), bleibt die Anzeige auf die Anzahl
der vorher ausgewählten Spalten beschränkt.
Es kommt mir so vor als müsse ich dem Quickbrowse nur sagen, aktualisiere deinen internen Wert für ColCount...

oBrow:configure() hilft da auch nicht weiter.
Ebenso führen Versuche statt dem Ursprungs Array eine reduzierte Kopie zu verwenden zu analogen Ergebnissen.

Hat jemand einen Tipp für mich ?

Glück Auf!
Udo

Re: XbpQuickBrowse, Spalten selektieren

Verfasst: Di, 17. Mai 2022 16:11
von Werner_Bayern
Servus Udo,

Code: Alles auswählen

aSize := oBrowse:currentSize(), aSize[1]--, oBrowse:setsize(aSize)
nach dem setDataLink?

Re: XbpQuickBrowse, Spalten selektieren

Verfasst: Di, 17. Mai 2022 16:49
von Udo
Hallo Werner,

danke, aber das hat leider keinen Effekt.
Wie schon zuvor, wird nur die Fläche des Browse Fensters neu gezeichnet, die zuvor schon benutzt wurde.

Glück Auf!
Udo

Re: XbpQuickBrowse, Spalten selektieren

Verfasst: Mi, 25. Mai 2022 15:38
von Udo
Hallo,

das Thema ist erledigt.
Werden mit SetdataLink() der ursprünglichen Anzeige Spalten hinzugefügt, berechnet xbpQuickBrowse die Spaltenbreite aus einem Referenzarray, das aus den Daten des ersten Element/der 1.Zeile gebildet wird, berechnet. Sind hier Zellen leer, wird eine Spaltenbreite von 1 errechnet = die Spalten sind nicht zu sehen.

Das kann man mit :setColWidth() nach dem :SetDataLink() heilen.

Glück Auf!
Udo