Hallo Mitentwickler!
Ich habe eine Datenbank entwickelt, in der die Mitarbeiter einer Abteilung durch Klicken auf einen von mehreren Buttons in der Aktionsleiste einer Ansicht ein Dokument erzeugen, das bekannt gibt, welcher Einzeltätigkeit Sie im Moment nachgehen. Natürlich gibt es auch einen "Ende"-Button, der das zuvor erzeugte Dokument mit einem Ende-Datum und einem Status versieht (siehe Anhang).
Es kann für jeden MA nur ein "aktuelles" Dokument geben. Klickt ein MA ein zweites Mal auf einen der Buttons, wir das erste Dokument "Beendet" und ein neues Dokument erzeugt. Jeder MA sieht nur sein Dokument. Die Teamleiter sehen die Dokumente aller MAs, daher die Kategorisierung.
Soweit funktioniert auch alles gut. Nun gibt es aber immer wieder Fälle, wo ein MA die Datenbank schließt, um in die Pause oder nach hause zu gehen, ohne vor dem Schließen der Datenbank auf den "Ende"-Button geklickt zu haben. Das versaut natürlich jegliche Statistik. Daher wollte ich per Formelbefehl im QueryClose der Datenbank das Dokument mit einem Ende-Datum und einem Status versorgen.
Leider klappt das nicht.
uname := @Name([CN];@UserName);
@If(@IsError(@DbLookup("":"NoCache";"";"ViewAbsMA";uname;1;[ReturnDocumentUniqueID]));
@Prompt([Ok]; "Test 0"; "nichts");
@Do(
docUID := @DbLookup("":"NoCache";"";"ViewAbsMA";uname;1;[ReturnDocumentUniqueID]);
@Prompt([Ok]; "Test 1"; @Text(docUID));
@Prompt([Ok]; "Test 2"; @GetDocField(@Text(docUID); "Grund"));
@SetDocField(@Text(docUID); "Ende"; @Now);
@SetDocField(@Text(docUID); "Status"; 90);
)
);
Für Testzwecke habe ich mal die @Prompts im Code belassen.
Beim Schließen der Datenbank wird die DocUID festgestellt und angezeigt; das klappt und die DocUID stimmt.
Aber schon das Auslesen des Felds "Grund" klappt nicht; der Prompt wird gar nicht erst angezeigt.
Das Setzen der Feldwerte klappt auch nicht.
Was mache ich falsch?
Grüße aus der Pfalz!
Frank