n:m-Komponente

Anzahl der angekreuzten Zeilen einschränken

Beim Ankreuzen wird das Ereignis onRowCheck generiert. In der Variablen objid steht die Zeilen-ID (CI-ID) und die Variable checkbox ist das Javascript-Checkbox-Element.

var RU=rimacon._userform, RUC=rimacon._userform._customer;
if (!checkbox.checked) return;
var cnt = RU.listHWM.getCheckedRowIDs().length;
if (cnt>3) RU.listHWM.checkRow(objid,false); // mehr als 3 => unchecken

Eigene Spalte (Anzahl der an anderer Stelle zugeordneten Objekte)

Im n:m-Zuordnungselement können eigene Spalten definiert werden. Der Inhalt kann vom jeweiligen Kontext abhängig sein.

Aufgabe

In einer individuellen Maske für Rechner (Tabelle HWM) gibt es ein n:m-Element (Tabelle HWMPPD) für Produkte (Tabelle PPD). Jede Zeile für Produkt sollte die Anzahl der woanders zugeordneten Rechner enthalten, d.h. der aktueller Rechner zählt nicht mit.

Elemente

HWMPPDn:m-Tabelle
HWMPPD.HWMPPD_HWM_IDFK-Spalte auf Rechner
HWMPPD.HWMPPD_PPD_IDFK-Spalte auf Produkt

Lösung

Da die Anzahl vom aktuellen Rechner abhängig ist, kann eine dynamische Spalte nicht benutzt werden. Stattdessen nutzen wir eine benutzerdefinierte Spalte.

select distinct HWMPPD_PPD_ID, count(*)
from HWMPPD
where HWMPPD_HWM_ID<>$_ObjID
group by HWMPPD_PPD_ID