X

Vielen Dank, dass Sie sich für unsere Dienstleistungen interessieren. Leider sind Sie auf einer veralteten Seite gelandet. Das sollte nicht vorkommen.

Besuchen Sie gerne unsere aktualisierte Webseite.

Oftmals gerät man in eine Situation, in der man die zurückgegebenen Datensätze ändern muss. Diese benötigten Änderungen können von einem neuen Report durchgeführt werden.

Man kann die Arbeit von einem Report oder von einer Codeunit erledigen lassen. Jedoch gibt es zwei gute Gründe warum ein Report für so einen Job benutzt werden sollte:

  • Ein Report besitzt von Haus aus schon die Eigenschaft, dass er Datensätze durchgeht und pro Datensatz einen Trigger ausführt.
  • Beim Starten des Reports ist das Setzen von Filter und Sortierung möglich.

Im Folgenden soll erklärt werden, wie man mit Hilfe eines Reports Debitoren, Kreditoren und Artikel sperrt:

Als erstes muss im Object Designer ein neuer Report mit den DataItems Customer, Vendor und Item erstellt werden.

Normalerweise werden mit Reports Daten ausgedruckt. In unserem Fall wollen wir das nicht und setzen die folgende Eigenschaft. Durch das Setzen dieser Eigenschaft erreichen wir, dass beim Ausführen des Reports nichts gedruckt und der Button Seitenansicht auf der RequestForm erst gar nicht dargstellt wird. Außerdem wird der Button Drucken durch den Button OK ausgetauscht.

 

Nun legt man eine "globale Variable" mit dem Namen "ModfiyAll" und vom Typ "Boolean" an. Desweiteren legt man eine "globale Textkonstante" mit dem Namen "Text000" und dem Wert "Jeden %1 sperren?".

Anschließend muss in dem "OnPreDateItem"-Trigger aller drei DataItems die folgenden Code hinterlegt werden:

 

IF NOT HASFILTER THEN
ModfiyAll := CONFIRM (Text000, FALSE, TABLECAPTION );

 

Die erste Zeile prüft, ob Filter gesetzt wurden. Ist dies nicht der Fall wird in der zweiten Zeile mit dem Befehl CONFIRM ein Dialogfenster geöffnet. In diesem Dialogfenster erscheint die Frage ob alle gesperrt werden sollen. Die Antwort des Benutzers wird in der Variable "ModifyAll" in Form TRUE/ FALSE gespeichert.

Als nächstes schreibe die folgenden vier Programmzeilen in den beiden "OnAfterGetRecord-Trigger" der DataItems "Customer" und "Vendor":

IF HASFILTER OR ModfiyAll THEN BEGIN
Blocked:=Blocked::All;

MODIFY;
END;

In dem "OnAfterGetRecord"-Trigger des DateItems "Item" die folgenden Programmzeilen:

IF HASFILTER OR ModfiyAll THEN BEGIN
Blocked:=TRUE;

MODIFY;
END;

Wir prüfen hier ob Filter gesetzt wurden oder ob die Vairable "ModfiyAll" den Wert TRUE besitzt. In beiden Fällen wird der aktuelle Datensatz gesperrt.

Bewertung: 0 / 5

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
 
Go to Top