
Leider kann man keine lokalen Variablen mit festem Typ in der Memo-Feld Logik vereinbaren.
Und wenn der AvERP-Pascal Interpreter ein Feld erst als Integer betrachtet
und nach Berechnung ein Float braucht, dann knallt es irgendwann hinterrücks mitten im Ausdruck.
Andrer Fall - Feld ist Null - dann kann die automatische Typumwandlung nur schiefgehen.
Generelles Vorgehen:
Möglichst in kleinen Steps Änderungen in der Pascal-Logik vornehmen und auf Daten testen, die möglichst vollständig alle Konstellationen abdecken, dann ist die letzte Änderung die Verdächtige.
oder:
Gleich nach FastReport4 umformen und lokale Variablen mit dem richtigen Typ vereinbaren - ist meist effektiver als stundenlanges Fehlersuchen und vermeidet das Problem in der Zukunft.
Außerdem wird AvERP 5... wahrscheinlich keine FR2-Reports mehr unterstützen.

WorkAround in FR2:
Bei Berechnungen mit Werten die Leer sind, erst Integer und dann zu Float berechnet werden: Float über *1.0 erzwingen.
Null-Wert in Datumsfeld:
Druck in Abhängigkeit von globaler Variable.
Dem Pascal-Interpreter die Leerstring-Behandlung überlassen
und nur wenn nicht gewünscht, das Feld über Memo.Clear(); löschen:
Daten:
[q_repXX."MYDATE"]
------------------------------
Script:
begin
if (DRUCKEN) then
memo.clear();
end
----------------------------
statt
begin
memo.clear();
if (DRUCKEN) then
begin
a := [q_repXX."MYDATE"]; // erzeugt "Ungültige Variant-Typumwandlung"
memo.add(a);
end;
end
Dank an SYNERPY für die Unterstützung
und dies als Spur im Netz für Mitleidende
