ASPOSE.Wordsの調査を行っています。すべてが正常に機能しますが、最後のものが残っています。質問は、テーブルをテーブル内にレンダリングする方法ですか?ネストされたテーブルのドキュメントでは、サンプルデータがプレゼンテーション層と緊密に結合されています。データとプレゼンテーション層を分離する必要があります。ここでのテストはほとんどありません。
[Test]
public void CreateDocumentRecurentalTableInTableTest()
{
// Structural items are in [], values/data in {}
//GIVEN (presentation layer)
const string FileName = "_6CreateDocumentRecurentalTableInTableTest.txt";
var doc = new Document();
var builder = new DocumentBuilder(doc);
builder.Writeln("TEST -- START");
builder.InsertField(@"MERGEFIELD TableStart:[MyTable] MERGEFORMAT");
builder.InsertField(@"MERGEFIELD [MyTableCol1] \* MERGEFORMAT");
builder.InsertField(@"MERGEFIELD [MyTableCol2] \* MERGEFORMAT");
builder.InsertField(@"MERGEFIELD TableStart:[SubTable] MERGEFORMAT");
builder.InsertField(@"MERGEFIELD [SubTable.Col1] \* MERGEFORMAT");
builder.InsertField(@"MERGEFIELD [SubTable.Col2] \* MERGEFORMAT");
builder.InsertField(@"MERGEFIELD TableEnd:[SubTable] MERGEFORMAT");
builder.InsertField(@"MERGEFIELD TableEnd:[MyTable] MERGEFORMAT");
builder.Writeln("\nTEST -- END");
//WHEN (Data layer)
using (var dt2 = new DataTable("[SubTable]"))
{
dt2.Columns.Add("[SubTable.Col1]");
dt2.Columns.Add("[SubTable.Col2]");
dt2.Rows.Add(" {SubTable.Row1.Cont1} ", " {SubTable.Row1.Cont2} ");
dt2.Rows.Add(" {SubTable.Row2.Cont1} ", " {SubTable.Row2.Cont2} ");
dt2.Rows.Add(" {SubTable.Row3.Cont1} ", " {SubTable.Row3.Cont2} ");
using (var dt = new DataTable("[MyTable]"))
{
dt.Columns.Add("[MyTableCol1]");
dt.Columns.Add("[MyTableCol2]");
dt.Rows.Add(" {MyTable.firstRow} ", dt2);
doc.MailMerge.ExecuteWithRegions(dt);
doc.Save(FileName, SaveFormat.Text);
}
}
//THEN
//Assert...
}
結果の取得:
TEST -- START
{MyTable.firstRow} [SubTable]«TableStart:[SubTable]»«[SubTable.Col1]»«[SubTable.Col2]»«TableEnd:[SubTable]»
TEST -- END
私が達成しようとしていること:
TEST -- START
{MyTable.firstRow} {SubTable.Row1.Cont1} {SubTable.Row1.Cont2}
{SubTable.Row2.Cont1} {SubTable.Row2.Cont2}
{SubTable.Row3.Cont1} {SubTable.Row3.Cont2}
{MyTable.nextRow}
TEST -- END
両方のテーブルがDataSet.Tablesに格納されている場合、テーブルごとに複数回レンダリングされます。
TEST -- START
{MyTable.firstRow} {SubTable.Row1.Cont1} {SubTable.Row1.Cont2}
{MyTable.firstRow} {SubTable.Row2.Cont1} {SubTable.Row2.Cont2}
{MyTable.firstRow} {SubTable.Row3.Cont1} {SubTable.Row3.Cont2}
{MyTable.nextRow} {SubTable.Row1.Cont1} {SubTable.Row1.Cont2}
{MyTable.nextRow} {SubTable.Row2.Cont1} {SubTable.Row2.Cont2}
{MyTable.nextRow} {SubTable.Row3.Cont1} {SubTable.Row3.Cont2}
TEST -- END