Ich arbeite jetzt seit 2007 mit combit cRM. Dieses Problem hatte ich auch schon x-mal. Leider gibt es immer noch keine Möglichkeit, über eine Formel bei der Darstellungs-Bedingung eine SQL-Abfrage einzubauen. Sonst könnte man ein einfaches „SELECT COUNT(*)“ verwenden.
Ein Datenbank-Trigger, welcher beim Anlegen eines DS in der 1:n-verknüpften Ansicht ein Feld in der „Haupt“-Ansicht ändert, wäre durchaus eine Möglichkeit.
Man kann auch einen ganz seltsamen Weg gehen. Ich hab’s mal irgendwann ausprobiert:
Wenn man in der Haupt-Ansicht ein Feld anlegt, welches automatisch den gleichen Wert enthält, wie das eigentliche Schlüsselfeld (per SQL-Trigger, automatischem Inhalt am SQL-Server oder einfach über einen Auto-Wert bei Neuanlage des DS im cRM), dann kann man mit diesem Feld eine 1:1-Verknüpfung auf den Fremdschlüssel eintragen.
Sobald es mindestens einen 1:n-Verknüpften DS gibt, gibt es auch eine 1:1-Verknüpfung auf das zweite Feld. Und dies kann man mit „NOT Empty()“ abfragen.
Beispiel:
Ansicht 1: „Personen“, Schlüssel „ID_Personen“
Ansicht 2: „Kontakte“, Schlüssel „ID_Kontakte“, Fremdschlüssel „RECID_Personen“
Im cRM gibt es bei eine 1:n-Verknüpfung von „Personen.ID_Personen“ zu „Kontakte.RECID_Personen“.
Jetzt Fügen wir der Ansicht „Personen“ ein Feld namens „ID_Personen_Kopie“ hinzu. Über einen der beschriebenen Werte sorgen wir dafür, dass „ID_Personen_Kopie“ den gleichen Wert enthält, wie „ID_Personen“.
Nun tragen wir im cRM eine 1:1-Verknpüfrung von von „Personen.ID_Personen_Kopie“ zu „Kontakte.RECID_Personen“ ein.
Danach können wir im Eingabemasken-Designer für „Personen“ als Darstellungs-Bedingung für den Container folgendes eintragen:
NOT Empty(ID_Personen_Kopie.Kontakte.RECID_Personen.ID_Kontakte)
Wie gesagt: Der Weg ist ziemlich seltsam und auch nicht wirklich empfehlenswert. Wenn man sich aber an DB-Trigger und dergleichen nicht heran traut, könnte es eine Alternative für den Einzelfall sein.