2017-05-10 7 views
0

Ich habe ein Datenfenster mit 3 Spalten. Ich möchte den Benutzer irgendwie informieren, dass der Wert einer Spalte in 5 Tagen ab heute verfügbar ist. Wie ein Countdown. Nach diesen 5 Tagen nimmt die Spalte den Standardwert an. Ist das möglich?Countdown-Timer Powerbuilder

+1

Es ist nicht klar, was Sie erreichen möchten. Der Wert von "Heute" ändert sich nie, daher ist der Kommentar "nach diesen 5 Tagen" nicht klar. Aber es scheint, dass Sie etwas Code schreiben müssen, um "etwas" zu tun, nachdem Sie Ihr Datenfenster gefüllt haben. Wie Sie das tun und was Sie tun, hängt von Ihrem Code ab. Es kann sein, dass Sie eine Spalte zu Ihrer Tabelle hinzufügen müssen, um das Datum zu markieren, an dem dieser Countdown beginnt. – SMor

Antwort

0

Verwenden Sie Datenfensterausdrücke!

Sie können über den Datenfenster-Painter verwendet werden und erlauben eine sehr feine Steuerung auf dem Display ohne die Last der Programmierung. Genauer gesagt, in diesem Fall nehme ich an, dass Sie eine Spalte "Ablauf" haben, um die maximale Verfügbarkeitsdauer anzugeben. Klicken Sie im Datenfenstermaler auf die Spalte, für die Sie etwas ausführen möchten. Im ‚Hintergrund‘ Registerkarte setzte

Gradient: horizontal 
Color: Red 
Spread: expression (see the little box on the right?) 

‚Spread‘ einen Wert von 0 bis 100 haben kann, so einen Ausdruck von 0 bis 100 in Abhängigkeit von der Anzahl der verbleibenden Tage bis zur berechnen:

100 -((5 - if(daysafter(expiry , today) < 5, daysafter(expiry , today()), 5))* 20)

Damit wird die 'rote' Hintergrundfarbe mehr oder weniger abhängig von der Anzahl der verbleibenden Tage.

Andere Möglichkeit: die ‚Tooltip‘ Tab verwenden, aktivieren Sie den Tooltip (erstes Feld) und als Nachricht setzen: 'You have ' + string (daysafter(expiry, today()) + ' days left to modify this field'

Diese Nachricht (Variable mit der Zeile) jedes Mal zeigen, werden Sie mit der Maus auf den Pass Feld.

Sobald Sie den Trick bekommen, können Sie herumspielen und Ihre eigenen Ideen haben, diese Datenfensterausdrücke verwendend.

+0

Ich wählte die Gradientenlösung. Meine Frage ist nun, gibt es eine Möglichkeit, die Farbe von links nach rechts anstatt von rechts nach links zu verteilen? Danke –

+0

(5 - wenn (Tage nach (Ablauf, heute) <5, Tage nach (Ablauf, heute()), 5)) * 20 –