文档处理控件TX Text Control即将发布的X10版本,将升级重点仍是放到了其比较优点的流式布局报表设计和生成上。慧都得到了来自其开发商Text Control GmbH公司的一手资料,火烧眉毛的为你们带来还在测试阶段的TX Text Control X10的独家揭秘。 app
直接使用枚举业务对象做为数据源,来建立合并模板是TX Text Control最经常使用的需求之一。即将发布的TX Text Control X10使用了一个新方法来实现这一需求,即便用新增的DocumentServer.MailMerge方法和IEnumerable对象。 布局
public void MergeObjects(System.Collections.IEnumerable mergeData);
邮件合并须要将集合中全部对象的公共属性做为表列和子表,才能正常进行处理。IEnumerable的属性做为关系可以自动实例化,并被用于合并块和嵌套合并块。 测试
例如一下数据源的类结构: this
如下代码就是上图UML类设计: spa
public class Invoice { public List<Product> Products { get; set; } public Customer Customer { get; set; } } public class Product { public Product(string Name, Decimal Price) { this.Name = Name; this.Price = Price; } public string Name { get; set; } public Decimal Price { get; set; } }
如今须要一个报表模板,须要合并块Products,合并字段是块中的Name和Price。操做方式以下。 设计
使用如下代码就能实现建立数据源对象,并使用MergeObjects来开始合并。 code
Invoice invoice = new Invoice(); invoice.Products = new List<Product>(); invoice.Products.Add(new Product("Apple", 3.55m)); invoice.Products.Add(new Product("Banana", 2.4m)); invoice.Products.Add(new Product("Pineapple", 2.99m)); var invoices = new List<Invoice>(); invoices.Add(invoice); mailMerge1.MergeObjects(invoices);