Hallo „F“,
zunächst mal ganz allgemein: ein logisches Feld (optisch durch eine
Checkbox in der Eingabemaske visualisiert) lässt sich per
SetContentsByName( …, „1“) setzen und per SetContentsByName( …, „0“)
löschen. Diese Methode gibt es für die Eingabemaske (InputForm Objekt)
oder für einen Datensatz (Record Objekt). Der Unterschied zw. beiden
Objekten besteht darin, dass wenn du über die Eingabemaske gehst, der
Datensatz nicht gespeichert sein muss, du „simulierst“ praktisch den
Klick auf die Checkbox seitens eines Benutzers.
Für deinen Anwendungsfall kannst du den Datensatz des betreffenden
Buches heraussuchen (SetFilter…) und dann per SetContentsByName() den
Wert setzen/löschen und den Datensatz dann speichern. Ggf. musst du die
Buch-Ansicht noch aktualisieren, damit sich dies auch optisch auswirkt -
du machst das ganze ja „von hinten“ in der Datenbank.
Andersherum möchte ich einen Button in der Mitarbeiteransicht über
dem Container, der „Literatur zurückgeben“ heißt und das Häkchen
wieder setzt wenn man diesen betätigt und den entsprechende Datensatz
im Container angewählt hat.
Du kannst per Script nicht herausbekommen, welches der aktuell
selektierte Datensatz in einem Container ist.
Du musst also den Button in die Literaturzuordnung-Eingabemaske
reinmachen und darin dann wie oben geschildert das logische Feld beim
Buch zurücksetzen und den Zuordnungsdatensatz (auf dem du ja gerade
„stehst“) löschen. „Kostet“ den Anwender halt noch den Doppelklick auf
das zurückzugebende Buch im Container, aber das geht halt nicht anders.
ABER überdenke dein Design: Du hast hier redundante Informationen und
das ist immer heikel. Redundant, weil ja die reine Existenz eines
Zuordnungsdatensatz bereits bedeutet, dass das Buch ausgeliehen ist
(sofern die Zuordnung bei Rückgabe gelöscht wird), die Checkbox enthält
dieselbe Information, d.h. die Info ist „doppelt“. Wehe, die Info ist
nicht immer synchron! (Z.B. der Benutzer klickt nicht den vorgesehenen
Button, sondern macht das „manuell“, es werden eines Tages per Import
„Ausleihen“ eingepflegt, oder ein Benutzer klickt einfach die Checkbox
an, löscht aber Ausleih-Datensatz gar nicht, oderwasweissich.)
Du solltest dir überlegen, ob du nicht lieber eine Datenbanksicht
spendierst, welche per EXISTS Unterabfrage dir diese Info autom. besorgt
und als Spalte „einblendet“. Dann haste auch die vorgenannte Scripting
Baustelle mit der Checkbox nicht mehr.
Gruß
Alex.
–
CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“