0

Unterschiedliches verhalten Browser und App bei Abfrage

Hallo zusammen,

 

ich komme gerade bei folgenden Problem nicht weiter.

In einer Datenbankmit Angeboten, Aufträgen und Verträgen möchte ich bei der Anlage eines Auftrags aus einem Angebot für jede Angebotsposition prüfen wie viele verschiedene Verträge in Auftrag angelegt werden müssen.

 

for i in Angebot.Angebotspositionen['Alternativ/Optional' != true] do
let dStart := correctedDate(i.'Laufzeit Start');
let dEnd := correctedDate(i.'Laufzeit Ende');
if dStart or dEnd or i.'Laufzeit Monate' then
if cnt(Auftrag.Vertrag[Start = dStart and Ende = dEnd]) = 0 then
let newVertrag := (create Vertrag);
vert.(Vertragsnummer := Angebot.Titel);
if not dStart and not dEnd then
let dend := correctedDate(date(year(today()), month(today()) + i.'Laufzeit Monate', day(today()) - 1));
newVertrag.(Start := today());
newVertrag.(Ende := dend)
else
if dStart = null then
newVertrag.(Start := today())
else
newVertrag.(Start := dStart)
end;
newVertrag.(Ende := dEnd)
end;
newVertrag.(Auftrag := Auftrag)
end
end
end;

 

In der Mac App legt er bei Besipielsweise bei 6 vorhandenen Angebotspositionen mit identischen Start- und Enddatum nur einen Vertrag an.

Im Browser erhalte ich 6 Verträge.  Die if-Abfrage läuft also jedes Mal durch obwohl ja bei der ersten Position eigentlich bereits ein Vertrag mit den Daten angelegt wird.

if cnt(Auftrag.Vertrag[Start = dStart and Ende = dEnd]) = 0 then
let newVertrag := (create Vertrag); 

Hat jemand eine Idee wie der Ablauf im Programm so ausgefühert wird wie gewollt?

 

Viele Grüße 

Chris

2 Antworten

null
    • chris.3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich habe noch einen zweiten wahrscheinlich ähnlichen Fall. 

    Eine Funktion zum initialen setzen von Werten wird innerhalb einer Schleife am Anfang aufgerufen.

    In den Apps funktioniert dies auch, im Web wird diese Funktion nur für manche der for-Schleifen Datensätze ausgeführt.

    • mirko3
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo chris.

    Ich gebe mal ein paar Vorschläge zum Besten. Dein Code enthält 4 ineinander verschachtelte if-Anweisung. Da ist es schwieriger gegenseitige Aus- oder Einschlüsse zu verstehen. Ich rate Dir. 4 einzelne, getrennte if-Anweisungen zu erstellen und sie hintereinander zu schreiben. Das heißt, dass Du jedesmal die if-Anweisung gleich mit "end" abzuschliessen. Dann ist mir in Zeile 7 aufgefallen, dass vert. im Code keinen Bezug hat. Ist das eine andere Tabelle?

    In Zeile 20 wird Ninox nicht verstehen, warum Du das Feld Auftrag mit Auftrag füllst. Meinst Du i.Auftrag, oder woher kommt der Wert?

    Warum der Code in der Web-Anwendung und Mac-Anwendung unterschiedlich behandelt wird, weiß ich auch nicht. Die App ist bei mir auch das unzuverlässigere Programm. Insbesondere die Aktualisierung von Funktionsfeldern ist manchmal unzuverlässig. Das ist leider alles, was ich ohne Kenntnis über Deine Datenbank beisteuern kann. Ich hoffe Dir hilft es etwas. Gruß Mirko

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 2Antworten
  • 163Ansichten