Looper: Control Zeilenweise unsichtbar machen

Übergeordnete Themen zum gesamten Paket passend
Antworten
satmax
Senior Member
Beiträge: 312
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Looper: Control Zeilenweise unsichtbar machen

Beitrag von satmax »

Ich möchte in einem Looper-Control, abhängig von den Daten, in einzelnen Looperzellen eine Checkbox anzeigen/verstecken. Ist das überhaupt möglich?
Aus einem Beispielprogramm:

IF MySource.Photo = "" THEN ATT_FIRSTNAME += "!"

Funktioniert einwandfrei, kein Foto dann wird dem Vornamen ein ! angehängt.

Aber das "Control" STC_FIRSTNAME kann ich nicht in Abhängigkeit der Daten verstecken, so zB.:
IF MySource.Photo = "" THEN MySelf.STC_FIRSTNAME..Visible=False

Kann man das überhaupt?

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von Herbert »

Ich glaube, das geht wahrscheinlich nur bei einem Browser-Looper. Da brauchst die Daten aus einem Query oder Datenfile. So kannst du den Slot "Filtering the records" verwenden.

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von satmax »

In meinem Fall ist es ein Browser Looper, leider verstehe ich den folgenden Satz nicht...

>> So kannst du den Slot "Filtering the records" verwenden.

Wie soll ich damit ein Control verstecken?

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von Herbert »

Ich verstehe dich wohl nicht genau. Gibst dort ein false zurück, wird nicht angezeigt.
Falls du aber ein einziges Element daraus ausblenden willst, ist dies nicht der Weg... einzig du versuchst dort auf das Control ein ..visible=false zu setzen

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von satmax »

Ich setzte das Control auf false, wenn ich dann aber über den Bildschirmrand scrolle greift das false nicht mehr, oder es wird das Control in keiner Zeile mehr angezeigt. Die Daten sind kein Problem, aber das Control lässt sich nicht verstecken. Muss ich wohl anders lösen.

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von Lewi »

Hallo,

hier eine Lösung auf Basis des Demo-Beispiels "LOOPER" in WinDev:

Code: Alles auswählen

>>im Abschnitt ->DISPLAYING a ROW of LOOPORDER
IF LOOPORDER[LOOPORDER][4] = 0 THEN
	LOOPORDER[LOOPORDER].CBOXINSTOCK..Visible=False
END
Gruß Olaf

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von satmax »

Hallo Olav,

versuche mal:

Code: Alles auswählen

// im Abschnitt ->DISPLAYING a ROW of LOOPORDER
nPrice is numeric = LOOPORDER[LOOPORDER][3] 

// IF LOOPORDER[LOOPORDER][4] = 0 THEN
IF  nPrice < 1000
	LOOPORDER[LOOPORDER].CBOXINSTOCK..Visible=False
END
Dann wird keine einzige Checkbox angezeigt, obwohl einige mit Preis > 999 vorhanden sind.

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von Lewi »

Die Fehlerursache liegt daran, dass in diesem Beispiel die Werte als STRING erzeugt werden ( in der Funktion "FillLoope").
Insofern kann Dein Code auch nicht funktionieren. ;-)

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

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von satmax »

Hast recht, so gehts:

Code: Alles auswählen

// im Abschnitt ->DISPLAYING a ROW of LOOPORDER
nPrice is numeric = Val(NoCharacter(LOOPORDER[LOOPORDER][3],".",sscAll))

IF  nPrice < 1000
	Trace("True")	
	LOOPORDER[LOOPORDER].CBOXINSTOCK..Visible=False
ELSE
	Trace("False")	
END
Was ich nicht ganz verstehe:

LOOPORDER[LOOPORDER]

LOOPORDER ist das Control, [LOOPORDER] ist der aktuelle Index, oder? Ist das so? In der Docu habe ich das so nicht gefunden.

Lewi
Member
Beiträge: 74
Registriert: 3. September 2010, 14:45
Wohnort: Hamburg
Kontaktdaten:

Re: Looper: Control Zeilenweise unsichtbar machen

Beitrag von Lewi »

Bei
trace( LOOPORDER[LOOPORDER] ) wird die komplete Zeile ausgegeben.
trace(LOOPORDER[LOOPORDER][1] ) wird die erste Spalte der Zeile ausgegeben.

Antworten