Ich würde TurboPower Orpheus installieren. Fügen Sie die OvcDate-Unit in Ihre uses-Anweisung ein. Dieses Beispiel wurde mit Berlin 10.1 Architect erstellt und ist einigermaßen abwärtskompatibel. Es gibt viele Versionen von Orpheus.
procedure TForm2.SpeedButton1Click(Sender: TObject);
var
date1 : TDateTime;
date2 : TDateTime;
rdt1 : TStDateTimeRec;
rdt2 : TStDateTimeRec;
days : Integer;
seconds : Integer;
hrs : Integer;
min : Integer;
sec : Integer;
begin
date1 := StrToDateTime('01/05/2015 13:00');
date2 := StrToDateTime('02/05/2015 10:00');
rdt1.D := DateTimeToStDate(date1);
rdt2.D := DateTimeToStDate(date2);
rdt1.T := DateTimeToStTime(date1);
rdt2.T := DateTimeToStTime(date2);
DateTimeDiff(rdt1, rdt2, days, seconds);
hrs := seconds div SecondsInHour;
min := ((seconds - (hrs * SecondsInHour)) div SecondsInMinute);
sec := (seconds - (hrs * SecondsInHour) + (min * SecondsInMinute));
sec := sec;
// days = 30
// seconds = 75600
// hrs = 21
// min = 0
// sec = 0
end;
Das obige Beispiel erstellt einen Proof of Concept und zeigt, wie die Berechnung funktioniert. Ihre Eingabe war 1.5.2015 und 2.5.2015 für die jeweiligen Termine und das habe ich genutzt.
Ich würde die entsprechenden Formelfelder einrichten und diese Formel in das OnCalc-Ereignis einfügen. Achten Sie darauf, einen Mechanismus einzurichten, um die Datetime-Felder start und stop zu setzen. Lassen Sie das DBMS den Rest erledigen. Ich bin zufällig einer der beliebtesten Delphi-Autoren. http://cc.embarcadero.com/PopularAuthors.aspx
Ich weiß nicht, ob FastReports die Summe ausführen wird, aber Sie könnten in Erwägung ziehen, ein berechnetes Feld in Ihrer Datenmengenkomponente zu verwenden und dort die Summe zu berechnen. Welchen Typ haben die von Ihnen verwendeten Felder für Datum und Uhrzeit? –
Sie haben Recht. In der Zwischenzeit habe ich die Besetzung in Datensatz sql CAST (DATE_FROM als Datetime) + CAST (TIME_FROM als Zeit) AS DATE_TIME_FROM Kann ich den Unterschied in SQL aus solchen generierten Feldern berechnen? Wie: DATE_TIME_TO - DATE_TIME_FROM? – Volkan
mit zwei Güssen in Sql Ich habe diese Ergebnisse: 2016-01-13 09: 15: 00.000 \t 2016-01-13 14: 30: 00.000 – Volkan