Rechnen mit Datum: Ablaufdatum erreicht für Medikamentenverordnung Feld einfärben

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
Benutzeravatar
schuh
Beiträge: 80
Registriert: 03.01.2017, 13:53
Wohnort: Leverkusen
Kontaktdaten:

Rechnen mit Datum: Ablaufdatum erreicht für Medikamentenverordnung Feld einfärben

Beitrag von schuh » 25.05.2023, 21:16

Hallo Leute,

Erst einmal vielen Dank für dieses tolle Forum und die wirklich sehr kompetenten Berater*innen.

Mein Problem ist folgendes: Eine Liste enthält das Datum der Medikamentenverordnung des Arztes (nennen wir das Feld "ausst_dat")
Beim Laden des Formulars soll bei allen Eintragungen eines dynamischen Formulars geschaut werden, ob ausst_dat älter (bis zum Wert 329) oder gleich als 300 Tage ist verglichen mit dem aktuellen Datum... Wenn das so ist, dann soll der Feldhintergrund von ausst_dat Gelb gefärbt werden und bei einem Wert von 330 oder älter Rot und die Schrift in Weiß.

Kann da jemand helfen? Link zu einem schon existierenden Beitrag würde es auch tun. Meine Suche brachte kein Ergebnis. Vielen Dank schon einmal im voraus.

Euer Thórralf
Zuletzt geändert von schuh am 07.06.2023, 13:39, insgesamt 1-mal geändert.

landei2003
Beiträge: 114
Registriert: 25.02.2011, 19:08

Re: Rechnen mit Datum: Ablaufdatum erreicht für Medikamentenverordnung Feld einfärben

Beitrag von landei2003 » 26.05.2023, 09:14

Hallo,

Häng doch mal ein Beispiel Formular an, macht es einfacher.




LG, Stephan

Benutzeravatar
schuh
Beiträge: 80
Registriert: 03.01.2017, 13:53
Wohnort: Leverkusen
Kontaktdaten:

Re: Rechnen mit Datum: Ablaufdatum erreicht für Medikamentenverordnung Feld einfärben

Beitrag von schuh » 07.06.2023, 13:45

Hier war die fragliche Datei. Da das Problem gelöst ist, habe ich die ursprünglich unvollständige Datei gelöscht... :idea:
Zuletzt geändert von schuh am 12.01.2024, 12:59, insgesamt 2-mal geändert.

Benutzeravatar
schuh
Beiträge: 80
Registriert: 03.01.2017, 13:53
Wohnort: Leverkusen
Kontaktdaten:

GELÖST: Rechnen mit Datum: Ablaufdatum erreicht für Medikamentenverordnung Feld einfärben

Beitrag von schuh » 12.01.2024, 10:01

Guten Morgen,

Gerade habe ich die Lösung gefunden! HEUREKA...

Die Funktion zum Bewerten des Ablaufdatums und die Funktion des resultierenden Einfärben wird im Feld ausst_dat in die Ereignisse "Initialize" und "Exit" geschrieben. Hier die Funktionen, die ich im Bereich Skripte hinterlegt habe:

Code: Alles auswählen

// Ablaufdatum berechnen

function expiringDate(Objekt) {

var sDate = util.scand("yyyy-mm-dd", xfa.resolveNode("ausst_dat[0]").rawValue);
var hDate = util.scand("yyyy-mm-dd", xfa.resolveNode("heute").rawValue);
var diffDays = Math.round((Number(hDate) - Number(sDate))/1000/60/60/24);
var NewsDate = Number(sDate) + (24*60*60*1000*Number(365));
var nDate = util.printd("dd.mm.yy", new Date(NewsDate));   

if	(Objekt.rawValue != null)
{
	
	xfa.resolveNode("ablauf_dat[0]").rawValue = nDate;	
}
else
{
	xfa.resolveNode("ablauf_dat[0]").rawValue = "";
};

}

// Ablaufdatum einfärben

function colorField(Objekt) {

var sDate = util.scand("yyyy-mm-dd", xfa.resolveNode("ausst_dat[0]").rawValue);
var hDate = util.scand("yyyy-mm-dd", xfa.resolveNode("heute").rawValue);
var yellowDate = Number(sDate) + (24*60*60*1000*Number(335));
var redDate = Number(sDate) + (24*60*60*1000*Number(365));
var diffDays = Math.round((Number(hDate) - Number(sDate))/1000/60/60/24);

if (redDate <= Number(hDate)){
	xfa.resolveNode("ablauf_dat[0]").fillColor = "255,200,200";
	
} else {

		if (yellowDate <= Number(hDate)){
		
			xfa.resolveNode("ablauf_dat[0]").fillColor = "255,255,200";
			
			} else {
	
					xfa.resolveNode("ablauf_dat[0]").fillColor = "255,255,255";
	
			};
		
};

}
Code zum Einbinden in das Feld:

Code: Alles auswählen

// Formular1.tbl_übersicht.items.ausst_dat::initialize - (JavaScript, client)

Skripte.expiringDate(this);
Skripte.colorField(this);

// Formular1.tbl_übersicht.items.ausst_dat::exit - (JavaScript, client)

Skripte.expiringDate(this);
Skripte.colorField(this);

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten