Datenquellen in Platzhaltern dienen als Ausgangspunkt für die Eigenschaften, Relationen und die berechneten Eigenschaften. Damit wird beispielweise vermieden, das man in jedem Platzhalter neu über die Relationen gehen muss.

Um eine eigene Datenquelle zu definieren muss das Interface IPlaceholderDataSource implementiert werden. Mit der Methode GetDataSourceName wird der Name festgelegt, mit dem die Datenquelle angebunden wird. Mit GetDataSource wird die Datenquelle dem Platzhaltersystem zur Verfügung gestellt.

public class MailMergeDataSourceNextAddress : IPlaceholderDataSource
{
    public string GetDataSourceName()
    {
        return "myDataSource";
    }

    public object GetDataSource(OrmBABase sourceOrm, OrmBABase parentOrm)
    {
        return Api.ORM.GetOrm<MyDataTable>("[MY DATA GUID]".ToGuid(), sourceOrm.Session);
    }
}