WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Alle Themen rund um die Erstellung von Programmen
Antworten
MiellesMain
Junior Member
Beiträge: 4
Registriert: 19. Dezember 2022, 16:21

WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von MiellesMain »

Windev 26

Ich nutze Databinding in einer Tabelle. Leider kann ich im Event "Display a row of TABLE..." nicht einzelne Zeilen hervorheben, also z.B. FontUnderlined nutzen. Also überlege ich, was ich stattdessen machen kann. Gibt es die Möglichkeit einen Tooltipp abhängig von der gewählten Zeile anzuzeigen, oder fäll euch was anderes ein? Unten hab ich ein paar Zeilen Code und ihre Auswirkungen

I am using data binding in a table. Unfortunately, i can't find a way in the event "Display a row of TABLE..." to adress row-specific values like FontUnderlined, etc. So I'm thinking of other ways to hightlight some rows, for example hovering a table row -> row specific tool tip. Can you think of an solution?


in "Display a row of TABLE_Objects"

TABLE_Objects.COL_Type = "ABC" -> works
TABLE_Objects.COL_Type.FontUnderlined = True -> changes whole row
TABLE_Objects[TABLE_Objects].COL_Type.FontUnderlined = True -> crashes (can't convert Databinding object type to int)
Zuletzt geändert von MiellesMain am 24. Oktober 2023, 09:47, insgesamt 1-mal geändert.

MiellesMain
Junior Member
Beiträge: 4
Registriert: 19. Dezember 2022, 16:21

Re: Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von MiellesMain »

Sorry, deutsch geht selbstverständlich auch. Hab ich mal nachgetragen

marmai
Junior Member
Beiträge: 1
Registriert: 9. November 2023, 19:29

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von marmai »

COL_Type[TABLE_Objects].FontUnderlined = True müsste funktionieren.

MiellesMain
Junior Member
Beiträge: 4
Registriert: 19. Dezember 2022, 16:21

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von MiellesMain »

Nein, das hilft nicht. Gleiches Problem mit dem Databinding

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von Herbert »

Bestimmte Bedingungen kannst du der Eigenschaft der Spalte angeben, so auch Font und Farbe.
Einfaches Beispiel (im Init der Spalte):

Code: Alles auswählen

SWITCH TABLE_Liste.COL_TYP..Value
CASE 2
	TABLE_Liste.COL_TYP..Color = LightRed
CASE 3
	TABLE_Liste.COL_TYP..Color = DarkGreen
CASE 4
	TABLE_Liste.COL_TYP..Color = LightOrange
OTHER CASE
	TABLE_Liste.COL_TYP..Color = LightBlue
END
Die Spalte weiss nun, was bei welchem Wert in der einzelnen Zelle geschehen soll. Müsste übertragbar wein auch Fontverhalten usw.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von satmax »

IMHO ist "Initialization of Table_* " der Spalte der falsche Ort. Der Wert kann sich ja nach dem aktualisieren ändern. Ich verwende dazu "Display a in Table_ *". Da funktioniert der folgender Code einwandfrei:

Code: Alles auswählen

i	is int	= TABLE_Frachtpreis
SWITCH TABLE_Frachtpreis.COL_Verkaufspreis[i].Value
	CASE > 0
		TABLE_Frachtpreis.COL_Verkaufspreis[i].Color			= DarkBlue
		TABLE_Frachtpreis.COL_Verkaufspreis[i].FontUnderlined	= False
	CASE < 0
		TABLE_Frachtpreis.COL_Verkaufspreis[i].Color			= LightRed
		TABLE_Frachtpreis.COL_Verkaufspreis[i].FontUnderlined	= True
		
	OTHER CASE
END

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von Herbert »

Interessant. Dein Vorschlag erscheint mir besser. Zeigt denselben Effekt.

Falls das nicht klappt, nachträglich durch die Tabelle gehen oder nur die aktuell bekannte Linie ändern:

Code: Alles auswählen

TABLE_LISTE[nl][3].color = LightRed
mit nl der aktuellen Linie.

satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: WD26 Databinding in Table + bestimmte Zeilen hervorheben / Row specific hightlighting

Beitrag von satmax »

"Display a in Table" wird halt bei jeder Aktualisierung aufgerufen, egal ob der Datensatz gerade in der Table editiert wurde oder du ein DisplayTable() via taStart, taInit, taReExecuteQuery oder ähnlich aufrufst. Bei mir hats nur in "Display a in Table" richtig funktioniert.

Antworten