Seite 1 von 1

dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Fr, 05. Mär 2010 9:44
von Herbert
Ich blick nicht durch

definiere in der .ARC

Code: Alles auswählen

#define   ID_LIS_OK_BMP      320
#define   ID_LIS_NOK_BMP     321
BITMAP  ID_LIS_OK_BMP      = "Icons\pbokay.bmp"
BITMAP  ID_LIS_NOK_BMP     = "Icons\pbcancel.bmp"
definiere die Spalte

Code: Alles auswählen

    oCol := dsXColumn():new(XBPCOL_TYPE_BITMAP , &(cDataLink), cTitel)
wobei für logische Werte der Datalink die ID zurückgibt. Es erscheint in der Spalte die ID als Nummer

Code: Alles auswählen

//  cBuf := "IIF("+cField+"=.T.,ID_LIS_OK_BMP,ID_LIS_NOK_BMP)"   // id der buttons (320/321) -  gibt zur Laufzeit Fehlermeldung, dass ID.. nicht bekannt
  cBuf := "IIF("+cField+"=.T.,320,321)"     // cField ist der DB-Feldname
  cDataLink     := "{|x| iif(X==NIL,"+cBuf+","+cField+" := x )}"
Was mache ich falsch?

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: Fr, 05. Mär 2010 10:02
von Tom
Hast Du eine Ressourcendatei (ARC) erzeugt und auch an Deine App gelinkt?

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: Fr, 05. Mär 2010 11:05
von Herbert
JA

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: So, 07. Mär 2010 18:44
von Herbert
Ich gebs auf. Bleibe bei 'Ja' und 'Nein', was offenbar alle mit XClass auch machen.

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: So, 07. Mär 2010 18:47
von Martin Altmann
Moin Herbert,
sorry - habe es überlesen! XClass++ nimmt standardmäßig eine Checkbox für das Darstellen des logischen Wertes - und das funzt einwandfrei bei mir.

Viele Grüße,
Martin

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: So, 07. Mär 2010 19:04
von Martin Altmann
Hast Du Dir mal die CellEditType() in der Hilfe angeschaut?
Da musst Du für Deine Spalte (hier die 6.) den Eintrag wahrscheinlich folgendermaßen setzen:

Code: Alles auswählen

aCol[6]:CellEditType( CELL_IMAGE, , , iif( logisches_Feld, ID_LIS_OK_BMP, ID_LIS_NOK_BMP ) )
Kann auch sein, dass Du statt der ID den Pfad nehmen musst oder mit LoadResource() an der Stelle arbeiten musst.

Viele Grüße,
Martin

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: So, 07. Mär 2010 22:07
von Herbert
Danke Martin für dein Erbarmen =D>
Also: Ich will nur ansehen ohne Editieren und die Daten werden aus AddColumn() nicht AddColumnDB geladen.
Deshalb kein CellEditType().

Ich werde morgen Dieter Stelzner fragen, ob da ev. ein Fehler vorliegt, da ich eigentlich nicht LoadResource verwenden möchte (und auch nicht testen mag).

Liebe Grüsse

Re: dsXBrowse: Wie Symbole für logische Werte?

Verfasst: Do, 11. Mär 2010 17:15
von Herbert
Nun gut, Support ist eine Kunst...

Code: Alles auswählen

Guten Tag,
scheuen sie sich bitte die Beispiele in XClass\Demo\Browse_DB an.
Da sind jede Menge Beispiele mit Checkbox, Combobox
Der Begriff Checkbox kommt da ganze 2x vor.

Was bereits war:

Code: Alles auswählen

oBrowse:LogicalAsCheckbox := .T.
hab noch eingebaut (bei logioscher Info):

Code: Alles auswählen

oCol:CellEditType( CELL_CHECKBOX )
was nichts bringt und so zum Schluss führt, dass nur dsxColumnDB resp. dsxColumnA grafisch anzeigen können.

Re: dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Do, 11. Mär 2010 17:23
von Martin Altmann
Hallo Herbert,
nun - ich nutze dsXBrowse mit AddColumnA und dsXColumn - und bei mir geht das wunderbar!

Code: Alles auswählen

::optionen := dsXBrowse():new( ::drawingArea, , {24,72}, {626,480} )
::optionen:clipSiblings := .T.
::optionen:type := XBPSTATIC_TYPE_GROUPBOX
::optionen:EnableSearch := .F.
::optionen:EnableEdit := .T.
::optionen:DirectEdit := .F.
::optionen:ColSep := .T.
::optionen:CursorMode := XBPBRW_CURSOR_ROW
::optionen:RowSep := .F.
::optionen:QuickEdit := .T.
::optionen:HScroll( .F. )
::optionen:EnableRowBreak := .F.
::optionen:SetSelectMode( SELECT_NONE )
::optionen:EnableColMove := .F.
::optionen:FootHeight := 1
::optionen:EnableFocusFrame( .f. )
::optionen:EnableColResize := .F.
::optionen:EnableAppend := .F.
::optionen:hitTopBlock    := {|| SetStatusMessage("Erster Sonderraum...", GRA_CLR_RED, 200, .T. ), AnimiereCharacter( "Alert" ), CharacterDenke( "Dies ist der erste Eintrag!" ) }
::optionen:hitBottomBlock := {|| SetStatusMessage("Letzter Sonderraum...", GRA_CLR_RED, 200, .T. ), AnimiereCharacter( "Alert" ), CharacterDenke( "Dies ist der letzte Eintrag!" ) }

ocolumn := dsXColumn():new(XBPCOL_TYPE_TEXT,1,"Tag" )
ocolumn:enableEdit := .f.
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_HCENTER
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(XBPCOL_TYPE_TEXT,2,"Varietät" )
ocolumn:enableEdit := .f.
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_LEFT
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(XBPCOL_TYPE_TEXT,3,"Enr." )
ocolumn:enableEdit := .f.
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_RIGHT
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(XBPCOL_TYPE_TEXT,4,"Hunde" )
ocolumn:enableEdit := .f.
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_RIGHT
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(,5,alltrim( str( g&dateiname->sonderg1 ) ) + " m²" )
ocolumn:enableEdit := .f.
ocolumn:CellEditType( CELL_CHECKBOX )
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_HCENTER
::optionen:AddColumnA( oColumn )

text1 := iif( ( g&dateiname->sonder2 > 0 ), alltrim( str( g&dateiname->sonderg2 ) ) + " m²", " " )
ocolumn := dsXColumn():new(,6,text1 )
ocolumn:enableEdit := .f.
ocolumn:CellEditType( CELL_CHECKBOX )
ocolumn:ColSep := .t.
ocolumn:alignment := XBPALIGN_HCENTER
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(,7,alltrim( str( g&dateiname->sonderg1 ) ) + " m²" )
ocolumn:enableEdit := .t.
ocolumn:CellEditType( CELL_CHECKBOX )
ocolumn:ColSep := .t.
ocolumn:colorBlock := {|| { NIL, GRA_CLR_GREEN, NIL, GRA_CLR_GREEN } }
ocolumn:alignment := XBPALIGN_HCENTER
::optionen:AddColumnA( oColumn )

ocolumn := dsXColumn():new(,8,text1 )
ocolumn:enableEdit := ( text1 <> " " )
ocolumn:CellEditType( CELL_CHECKBOX )
ocolumn:ColSep := .t.
ocolumn:colorBlock := {|| iif( ( text1 <> " "), { NIL, GRA_CLR_GREEN, NIL, GRA_CLR_GREEN }, ) }
ocolumn:alignment := XBPALIGN_HCENTER
::optionen:AddColumnA( oColumn )

::optionen:Connect( ::aus )
aadd( ::editControls, ::optionen )
Viele Grüße,
Martin

Re: dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Do, 11. Mär 2010 19:58
von Herbert
Ja bei Edit ists ok.
Ich will aber nur anzeigen...
und du verwendest AddColumnA.

Ich lebe nun mal mit 'Ja' und 'Nein' in der Spalte.

Werde mich aber das Xclass ganz wegnehmen. Brauche nur das Browse und ein Kalender-Dingens.

Re: dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Do, 11. Mär 2010 20:37
von Martin Altmann
Herbert,
dann setze doch Edit auf .f.!
Bei den Spalten mit den Checkboxen ist teilweise auch kein Edit möglich (wie Du im source sehen kannst)!

Viele Grüße,
Martin

Re: dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Fr, 12. Mär 2010 7:55
von Herbert
Ja, schon, nur klappts eben auch so nicht.

Re: dsXBrowse: Wie Symbole für logische Werte [erl ohne Lösung]

Verfasst: Fr, 12. Mär 2010 8:18
von Martin Altmann
Herbert,
was genau klappt denn bei Dir nicht?
Bei meinem Code werden die Checkboxen ordentlich angezeigt - teilweise editierbar, teilweise nicht (so, wie gewollt).

Viele Grüße,
Martin