Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
var parentObj = obj.FindReferencedObject<IDataObject>("Parent");

Filtern von :1 Sourcen

Beziehungen welche auf ein einzelnes Objekt verweisen zeigen im UI normalerweise eine Liste von möglichen Einträgen zur Auswahl an. Diese Auswahl kann eingeschränkt werden - auch in Abhängigkeit zum aktuell geöffneten Objekt.

Um die der Relation zur Verfügung stehenden Einträge zu reduzieren kann folgende Methode verwendet werden:

Code Block
languagec#
Elements.Office.Add.Relation(AssociationType.ZeroOrOneToMany, Elements.Person)
    .FilterSource("SourceObject.CompanyId == CompanyId")

Der Aufruf von FilterSource erstellt im Hintergrund eine neue virtuelle Relation welche beliebig gefiltert werden kann. In der Expression steht das aktuelle Objekt (wenn vorhanden) als SourceObject zur Verfügung.

Diese Art von Filter führt dazu das die Auswahlliste neu geladen wird wenn eine abhängige Eigenschaft editiert wird. In diesem Beispiel wenn eine andere Company ausgewählt wird und sich der Fremdschlüssel CompanyId ändert.

Filtern von ValueList Sourcen

Die zur Auswahl stehenden Werte einer ValueList können ebenfalls eingeschränkt werden. Dabei wird jedoch lediglich der “enabled” state des entsprechenden Eintrag geändert.

Code Block
languagec#
Elements.Person.Add.ValueListRelation(Elements.PersonMaritalStatus)
  .IsValueListEntryEnabled(MaritalStatus.Married, "Active == true")
  .IsValueListEntryEnabled(MaritalStatus.Divorced, "Active == true")
  .IsValueListEntryEnabled(MaritalStatus.Single, "Active == true")

Im obigen Beispiel stehen die Werte Married, Divorced und Single nur zur Verfügung wenn eine Person als aktiv markiert ist. Diese Einschränkung kann sowohl auf Level der Relationen als auch auf Level von PropertyLinks im Layout gemacht werden.

Die Expressions werden im Client evaluiert - asynchrone Expressions sind nicht unterstützt.