[Gelöst] TableBox: einzelne Zeile sperren

17. Juli 2008 14:53

Hallo,

ich habe schon etwas im Forum gestöbert und keine Lösung für mein Problem gefunden.

Ich zeige einige Records in einer TableBox an. Mein Ziel ist denkbar einfach:
Eine komplette Zeile sperren, so dass sie nicht mehr bearbeitet werden kann.

Mit EDITABLE habe ich bereits herumexperimentiert, habe aber immer nur ganze Spalten sperren können, nicht etwa einzelne Zellen oder eben eine Zeile.

Weiss jemand Rat?

Vielen Dank,
Merlin
Zuletzt geändert von Merlin am 17. Juli 2008 17:17, insgesamt 2-mal geändert.

17. Juli 2008 15:09

Hi! Also über Properties oder dergleichen lässt sich das nach meinem Wissen nicht realisieren. Ich würde auf der Form im OnModify-Trigger so was wie

Code:
IF Irgendwas THEN
  ERROR('Änderungen in dieser Zeile sind nicht möglich!');

schreiben.

Gruß, Marc

17. Juli 2008 16:41

Danke für die schnelle Antwort!

Die Idee an sich ist super! Ich habe jetzt in unterschiedlichen Triggern getestet. Allen voran der OnModifyRecord-Trigger der Form, in der sich die TableBox befindet. Die erste Spalte ist vom Typ Code 20, da klappt das wunderbar: ich ändere den Wert, bekomme den erwarteten Dialog und die Änderung wird rückgängig gemacht.

Leider verhält sich das Ganze beispielsweise bei einer Option anders. Hier wird die Veränderung immer noch übernommen. Auch kein Dialog zu sehen. Evtl. liegt das daran, dass es für eine Option-Spalte keinen OnModify-Trigger gibt.

Mit alternativen Triggern hab ich experimentiert, allerdings ohne den gewünschten Erfolg.

17. Juli 2008 17:15

Hab den Fehler bzgl. der Option-Spalte gefunden. In meiner IF-Abfrage habe ich ein Feld vom Datentyp BLOB abgefragt. Das liefert nicht immer ein Ergebnis, wenn man nicht vorher per CALCFIELDS den Inhalt updated.

Ich habe eine neue Spalte angelegt, die ich problemlos abfragen kann. So klappt das mit ERROR sehr gut, da sich die Mehrsprachigkeit der Meldung ja über eine globale Textvariable realisieren lässt.

Danke für den 'Schubs' in diese Richtung :).