Lieferdatum berechnen aus Datenbankinformationen

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
viper
Beiträge: 17
Registriert: 12.05.2014, 23:56

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von viper » 18.05.2014, 15:10

Hi,

ich habe eine Selectdatenbox, welche mir die entsprechenden Daten aus der Datenbank(MySQL) anzeigt. Wenn ich dann einen Eintrag auswähle kommt das entsprechende Produkt. Nun habe ich zu dem Produkt ein Feld in die Datenbank eingefügt welche die Arbeitstage beschreibt. Nun möchte ich das daraus das entsprechende Lieferdatum(Arbeitstage Mo-Fr) für das Produkt berechnet wird.

Wie kann ich das entsprechend umsetzen?

Vielen Dank schon mal...

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von radzmar » 19.05.2014, 21:04

Hi,

das kannst Du super über eine While-Schleife lösen.
Angenommen Du hast ein Datumsfeld für das Lieferdatum, dann kannst Du mit diesem FormCalc-Skript das Lieferdatum berechnen lassen.

Code: Alles auswählen

var today = date()
var deliveryDays = Arbeitstage.rawValue
var weekDays = 0
var workDays = deliveryDays

while (workDays gt 0) do
	weekDays = weekDays + 1
	var weekDay = Num2Date(Sum(today, weekDays), "E")
	if (Within(weekDay, 2, 6) eq 1) then
		workDays = workDays - 1
	endif
endwhile

$ = Num2Date(Sum(today, weekDays), "EEE DD.MM.YYYY")

viper
Beiträge: 17
Registriert: 12.05.2014, 23:56

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von viper » 21.05.2014, 08:09

Klingt gut und wie sage ich Ihm das er diese Arbeitstage aus einem Datenbankfeld/spalte nehmen soll, damit er dieses berechnen kann?

Merci :)
radzmar hat geschrieben:Hi,

das kannst Du super über eine While-Schleife lösen.
Angenommen Du hast ein Datumsfeld für das Lieferdatum, dann kannst Du mit diesem FormCalc-Skript das Lieferdatum berechnen lassen.

Code: Alles auswählen

var today = date()
var deliveryDays = Arbeitstage.rawValue
var weekDays = 0
var workDays = deliveryDays

while (workDays gt 0) do
	weekDays = weekDays + 1
	var weekDay = Num2Date(Sum(today, weekDays), "E")
	if (Within(weekDay, 2, 6) eq 1) then
		workDays = workDays - 1
	endif
endwhile

$ = Num2Date(Sum(today, weekDays), "EEE DD.MM.YYYY")

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von radzmar » 21.05.2014, 21:52

Na du wirst ein Feld über Datenbindung mit den Arbeitstagen vorbefüllen müssen.

In meinem Beispiel verweist var deliveryDays = Arbeitstage.rawValue auf ein Feld "Arbeitstage".
Wenn das anders heißt, musst Du das entsprechend anpassen.

viper
Beiträge: 17
Registriert: 12.05.2014, 23:56

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von viper » 24.05.2014, 10:09

radzmar hat geschrieben:Na du wirst ein Feld über Datenbindung mit den Arbeitstagen vorbefüllen müssen.

In meinem Beispiel verweist var deliveryDays = Arbeitstage.rawValue auf ein Feld "Arbeitstage".
Wenn das anders heißt, musst Du das entsprechend anpassen.

Danke, das hat gut funktioniert. Jedoch soll er wenn kein Wert aus Arbeitstage.rawValue kommt, dann auch das berechnete Feld Leer lassen.

Wie würde das gehen?

vg
Benjamin

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von radzmar » 24.05.2014, 12:54

So würde das dann aussehen...

Code: Alles auswählen

var today = date()
var deliveryDays = NumerischesFeld1.rawValue
var weekDays = 0
var workDays = deliveryDays

if (deliveryDays ne "") then
	while (workDays gt 0) do
		weekDays = weekDays + 1
		var weekDay = Num2Date(Sum(today, weekDays), "E")
		if (Within(weekDay, 2, 6) eq 1) then
			workDays = workDays - 1
		endif
	endwhile
	
	$ = Num2Date(Sum(today, weekDays), "EEE DD.MM.YYYY")
else
	$ = null
endif

viper
Beiträge: 17
Registriert: 12.05.2014, 23:56

Lieferdatum berechnen aus Datenbankinformationen

Beitrag von viper » 24.05.2014, 19:54

radzmar hat geschrieben:So würde das dann aussehen...

Code: Alles auswählen

var today = date()
var deliveryDays = NumerischesFeld1.rawValue
var weekDays = 0
var workDays = deliveryDays

if (deliveryDays ne "") then
	while (workDays gt 0) do
		weekDays = weekDays + 1
		var weekDay = Num2Date(Sum(today, weekDays), "E")
		if (Within(weekDay, 2, 6) eq 1) then
			workDays = workDays - 1
		endif
	endwhile
	
	$ = Num2Date(Sum(today, weekDays), "EEE DD.MM.YYYY")
else
	$ = null
endif

Super vielen Dank....Hat alles super funktioniert :)))

vg Benjamin

Antworten