Hallo allerseits,
bin mal wieder ein wenig weiter mit dem Testen gekommen und hänge an einer Stelle, an der ich keine weitere Idee habe!
So sah es mit XClass++ 4.5 aus:
- 4.5.png (52.59 KiB) 9672 mal betrachtet
So sieht es mit der aktuellen XClass++ 5.2 aus:
- 5.2.png (27.57 KiB) 9672 mal betrachtet
Mir geht es dabei um die beiden dsXBrowse im mittleren und unteren Bereich (nicht darum, dass Windows 7 bzw. Windows 10 im Spiel ist).
In der Spalte Varietät ist in dem zugrundeliegenden Array, das im Browse angezeigt wird, eine dreistellige Nummer enthalten - dafür soll entsprechend ein Text (die Bezeichnung) angezeigt werden.
Die Spalte Geschlecht enthält ein Zeichen, angezeigt werden soll aber das ausgeschriebene Geschlecht.
Die Spaltenbreiten werden auf eine bestimmte Pixelanzahl gesetzt.
Das alles klappt nicht unter der aktuellen Version - ich weiß nicht, warum.
Hier ein wenig Codeschnippsel:
Code: Alles auswählen
(::dbSelect)->( DbEval( {|| aAdd( aGewaehlt, { WETTBEWERB, PLATZ, STARTNR, KNR, ENR, RASSE, TAG, alltrim( BESITZER ), BESNAT, alltrim( ZUECHTER ), ZUECHTNAT, GESCHLECHT, recno() } ) }, {|| ( tag == ::wettbewtag:GetValue() ) .and. ( wettbewerb == nWettbewerb ) .and. ( durchgang == nPickedListDurchgang ) } ) )
...
aSort( aGewaehlt,,, {|aX,aY| strzero( aX[2], 2 ) + strzero( aX[3], 5 ) + strzero( aX[13], 6 ) < strzero( aY[2], 2 ) + strzero( aY[3], 5 ) + strzero( aY[13], 6 ) } ) // Array alphabetisch sortieren
aCol := ::PickedList:AddColumnA({ { 3, "Startnr.", "N", 5, 0}, ; // col 1
{ 4, "Katalognr.", "N", 5, 0}, ; // col 2
{ 6, "Varietät", "N", 3, 0}, ; // col 3
{ 12, "Geschlecht", "C", 1, 0}}) // col 4
aCol[1]:setWidth( 35 )
aCol[2]:setWidth( 50 )
aCol[3]:setWidth( 680 )
aCol[3]:Alignment := XBPALIGN_LEFT
aCol[3]:DisplayCellBlock:= {|oBrowse, oCol, uVal, cPic| ::showVar( uVal ) }
aCol[4]:setWidth( 70 )
aCol[4]:DisplayCellBlock:= {|oBrowse, oCol, uVal, cPic| iif( uVal == "R", "Rüde", iif( uVal == "H", "Hündin", "" ) )}
::PickedList:Connect( aGewaehlt )
Die Methode ::showvar() hat beim Debuggen auch den passenden Eintrag gefunden und als String zurückgegeben. Angezeigt wird es trotzdem nicht.
Da der Sprung von 4.5 auf 5.2 natürlich sehr groß ist - wurde irgendwann dazwischen etwas geändert? Wenn ja, was? Wie muss ich das umändern?
Ich bin für jede Idee dankbar!
Viele Grüße,
Martin