com.aspose.words
Class FieldDatabaseDataTable

java.lang.Object
    extended by com.aspose.words.FieldDatabaseDataTable

public class FieldDatabaseDataTable 
extends java.lang.Object

Provides data for the FieldDatabase field result. Please see com.aspose.words.net.System.Data.DataTable instance.

To learn more, visit the Working with Fields documentation article.

Example:

Shows how to extract data from a database and insert it as a field into a document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// This DATABASE field will run a query on a database, and display the result in a table.
FieldDatabase field = (FieldDatabase) builder.insertField(FieldType.FIELD_DATABASE, true);
field.setFileName(getDatabaseDir() + "Northwind.accdb");
field.setConnection("DSN=MS Access Databases");
field.setQuery("SELECT * FROM [Products]");

Assert.assertEquals(MessageFormat.format(" DATABASE  \\d {0} \\c \"DSN=MS Access Databases\" \\s \"SELECT * FROM [Products]\"", getDatabaseDir().replace("\\", "\\\\") + "Northwind.accdb"),
        field.getFieldCode());

// Insert another DATABASE field with a more complex query that sorts all products in descending order by gross sales.
field = (FieldDatabase) builder.insertField(FieldType.FIELD_DATABASE, true);
field.setFileName(getMyDir() + "Database\\Northwind.accdb");
field.setConnection("DSN=MS Access Databases");
field.setQuery("SELECT [Products].ProductName, FORMAT(SUM([Order Details].UnitPrice * (1 - [Order Details].Discount) * [Order Details].Quantity), 'Currency') AS GrossSales " +
        "FROM([Products] " +
        "LEFT JOIN[Order Details] ON[Products].[ProductID] = [Order Details].[ProductID]) " +
        "GROUP BY[Products].ProductName " +
        "ORDER BY SUM([Order Details].UnitPrice* (1 - [Order Details].Discount) * [Order Details].Quantity) DESC");

// These properties have the same function as LIMIT and TOP clauses.
// Configure them to display only rows 1 to 10 of the query result in the field's table.
field.setFirstRecord("1");
field.setLastRecord("10");

// This property is the index of the format we want to use for our table. The list of table formats is in the "Table AutoFormat..." menu
// that shows up when we create a DATABASE field in Microsoft Word. Index #10 corresponds to the "Colorful 3" format.
field.setTableFormat("10");

// The FormatAttribute property is a string representation of an integer which stores multiple flags.
// We can patrially apply the format which the TableFormat property points to by setting different flags in this property.
// The number we use is the sum of a combination of values corresponding to different aspects of the table style.
// 63 represents 1 (borders) + 2 (shading) + 4 (font) + 8 (color) + 16 (autofit) + 32 (heading rows).
field.setFormatAttributes("63");
field.setInsertHeadings(true);
field.setInsertOnceOnMailMerge(true);

doc.updateFields();
doc.save(getArtifactsDir() + "Field.DATABASE.docx");

Constructor Summary
FieldDatabaseDataTable(java.lang.String[] columnNames)
           Initializes a new instance of the FieldDatabaseDataTable class.
 
Property Getters/Setters Summary
java.lang.String[]getColumnNames()
           Gets columns that belong to this table.
java.util.ArrayList<FieldDatabaseDataRow>getRows()
           Gets rows that belong to this table.
 
Method Summary
static FieldDatabaseDataTablecreateFrom(com.aspose.words.net.System.Data.DataTable dataTable)
           Initializes a new instance of the FieldDatabaseDataTable class from the com.aspose.words.net.System.Data.DataTable instance.
 

Constructor Detail

FieldDatabaseDataTable

public FieldDatabaseDataTable(java.lang.String[] columnNames)
Initializes a new instance of the FieldDatabaseDataTable class.

Property Getters/Setters Detail

getColumnNames

public java.lang.String[] getColumnNames()
Gets columns that belong to this table.

getRows

public java.util.ArrayList<FieldDatabaseDataRowgetRows()
Gets rows that belong to this table.

Method Detail

createFrom

public static FieldDatabaseDataTable createFrom(com.aspose.words.net.System.Data.DataTable dataTable)
Initializes a new instance of the FieldDatabaseDataTable class from the com.aspose.words.net.System.Data.DataTable instance.

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.