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 。
参数:
范围 | 类型 | 描述 |
---|---|---|
tableName | java.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)
参数:
范围 | 类型 | 描述 |
---|---|---|
fieldName | java.lang.String | |
fieldValue | Ref |
退货: 布尔值
moveNext()
public abstract boolean moveNext()
前进到数据源中的下一条记录。
退货: boolean - 如果成功移动到下一条记录,则为真。如果到达数据源的末尾,则为 False。