IMailMergeDataSource

public interface IMailMergeDataSource

实现此接口以允许从自定义数据源(例如对象列表)合并邮件。还支持主从数据。

创建数据源时,应将其初始化为指向 BOF(在第一条记录之前)。 Aspose.Words 邮件合并引擎将调用moveNext()前进到下一条记录,然后调用**M:Aspose.Words.MailMerging.IMailMergeDataSource.GetValue(System.String,System.Object@)**对于它在文档或当前邮件合并区域中遇到的每个合并字段。

方法

方法描述
getChildDataSource(String tableName)Aspose.Words 邮件合并引擎在遇到嵌套邮件合并区域的开头时调用此方法。
getTableName()返回数据源的名称。
getValue(String fieldName, Ref fieldValue)
moveNext()前进到数据源中的下一条记录。

getChildDataSource(String tableName)

public abstract IMailMergeDataSource getChildDataSource(String tableName)

Aspose.Words 邮件合并引擎在遇到嵌套邮件合并区域的开头时调用此方法。

当 Aspose.Words 邮件合并引擎用数据填充邮件合并区域并遇到 MERGEFIELD TableStart:TableName 形式的嵌套邮件合并区域的开头时,它调用getChildDataSource(java.lang.String)在当前数据源对象上。您的实现需要返回一个新的数据源对象,该对象将提供对当前父记录的子记录的访问。 Aspose.Words 将使用返回的数据源来填充嵌套的邮件合并区域。

以下是执行的规则getChildDataSource(java.lang.String)必须遵循。

如果此数据源对象表示的表有一个具有指定名称的相关子(明细)表,那么您的实现需要返回一个新的IMailMergeDataSource对象,它将提供对当前记录的子记录的访问。一个例子是 Orders / OrderDetails 关系。我们假设当前IMailMergeDataSourceobject 表示 Orders 表,它有一个当前的订单记录。接下来,Aspose.Words 在文档中遇到“MERGEFIELD TableStart:OrderDetails”并调用getChildDataSource(java.lang.String).您需要创建并返回一个IMailMergeDataSource允许 Aspose.Words 访问当前订单的 OrderDetails 记录的对象。

如果此数据源对象与指定名称的表没有关系,则需要返回一个IMailMergeDataSource对象,它将提供对指定表的所有记录的访问。

如果具有指定名称的表不存在,您的实现应返回 null 。

参数:

范围类型描述
tableNamejava.lang.String模板文档中指定的邮件合并区域的名称。不区分大小写。

退货: IMailMergeDataSource - 将提供对指定表的数据记录的访问的数据源对象。

getTableName()

public abstract String getTableName()

返回数据源的名称。

如果您正在实施IMailMergeDataSource,从该属性返回数据源的名称。

Aspose.Words 使用此名称来匹配模板文档中指定的邮件合并区域名称。数据源名称和邮件合并区域名称之间的比较不区分大小写。

退货: java.lang.String - 数据源的名称。如果数据源没有名称,则为空字符串。

getValue(String fieldName, Ref fieldValue)

public abstract boolean getValue(String fieldName, Ref fieldValue)

参数:

范围类型描述
fieldNamejava.lang.String
fieldValueRef

退货: 布尔值

moveNext()

public abstract boolean moveNext()

前进到数据源中的下一条记录。

退货: boolean - 如果成功移动到下一条记录,则为真。如果到达数据源的末尾,则为 False。