FieldDatabase

FieldDatabase class

Реализует поле БАЗЫ ДАННЫХ.

Чтобы узнать больше, посетитеРабота с полями статья документации.

public class FieldDatabase : Field

Конструкторы

ИмяОписание
FieldDatabase()Конструктор по умолчанию.

Характеристики

ИмяОписание
Connection { get; set; }Получает или устанавливает соединение с данными.
DisplayResult { get; }Получает текст, представляющий результат отображаемого поля.
End { get; }Получает узел, представляющий конец поля.
FileName { get; set; }Получает или задает полный путь и имя файла базы данных .
FirstRecord { get; set; }Получает или задает целочисленный номер первой вставляемой записи данных.
Format { get; }ПолучаетFieldFormat объект, обеспечивающий типизированный доступ к форматированию поля.
FormatAttributes { get; set; }Получает или задает атрибуты формата, которые следует применить к таблице.
InsertHeadings { get; set; }Получает или задает, следует ли вставлять имена полей из базы данных в качестве заголовков столбцов в результирующую таблицу.
InsertOnceOnMailMerge { get; set; }Получает или задает необходимость вставки данных в начале слияния.
IsDirty { get; set; }Получает или устанавливает, является ли текущий результат поля более неправильным (устаревшим) из-за других изменений, внесенных в документ.
IsLocked { get; set; }Получает или задает, заблокировано ли поле (не следует пересчитывать результат).
LastRecord { get; set; }Получает или задает целый номер последней вставляемой записи данных.
LocaleId { get; set; }Получает или задает LCID поля.
Query { get; set; }Получает или задает набор инструкций SQL, которые запрашивают базу данных.
Result { get; set; }Получает или задает текст, расположенный между разделителем полей и концом поля.
Separator { get; }Получает узел, представляющий разделитель полей. Возможнонулевой .
Start { get; }Получает узел, представляющий начало поля.
TableFormat { get; set; }Получает или задает формат, который будет применен к результату запроса к базе данных.
virtual Type { get; }Получает тип поля Microsoft Word.

Методы

ИмяОписание
GetFieldCode()Возвращает текст между началом поля и разделителем поля (или концом поля, если разделителя нет). Включены как код поля, так и результат поля дочерних полей.
GetFieldCode(bool)Возвращает текст между началом поля и разделителем полей (или концом поля, если разделителя нет).
Remove()Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним его родительского узла, возвращает его родительский абзац. Если поле уже удалено, возвращаетсянулевой .
Unlink()Выполняет отсоединение поля.
Update()Выполняет обновление поля. Выдает, если поле уже обновляется.
Update(bool)Выполняет обновление поля. Выдает, если поле уже обновляется.

Примечания

Вставляет результаты запроса к базе данных в таблицу WordprocessingML.

Примеры

Показывает, как извлечь данные из базы данных и вставить их как поле в документ.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Это поле DATABASE будет выполнять запрос к базе данных и отображать результат в таблице.
FieldDatabase field = (FieldDatabase)builder.InsertField(FieldType.FieldDatabase, true);
field.FileName = DatabaseDir + "Northwind.accdb";
field.Connection = "Provider=Microsoft.ACE.OLEDB.12.0";
field.Query = "SELECT * FROM [Products]";

Assert.AreEqual($" DATABASE  \\d {DatabaseDir.Replace("\\", "\\\\") + "Northwind.accdb"} \\c Provider=Microsoft.ACE.OLEDB.12.0 \\s \"SELECT * FROM [Products]\"", field.GetFieldCode());

// Вставьте еще одно поле БАЗЫ ДАННЫХ с более сложным запросом, который сортирует все продукты в порядке убывания валового объема продаж.
field = (FieldDatabase)builder.InsertField(FieldType.FieldDatabase, true);
field.FileName = DatabaseDir + "Northwind.accdb";
field.Connection = "Provider=Microsoft.ACE.OLEDB.12.0";
field.Query =
    "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";

// Эти свойства имеют ту же функцию, что и предложения LIMIT и TOP.
// Настройте их для отображения только строк с 1 по 10 результата запроса в таблице полей.
field.FirstRecord = "1";
field.LastRecord = "10";

// Это свойство является индексом формата, который мы хотим использовать для нашей таблицы. Список форматов таблиц находится в меню «Автоформат таблицы...».
// которое появляется, когда мы создаем поле БАЗЫ ДАННЫХ в Microsoft Word. Индекс №10 соответствует формату «Цветной 3».
field.TableFormat = "10";

// Свойство FormatAttribute — это строковое представление целого числа, которое хранит несколько флагов.
// Мы можем индивидуально применить формат, на который указывает свойство TableFormat, установив в этом свойстве разные флаги.
// Используемое нами число представляет собой сумму комбинации значений, соответствующих различным аспектам стиля таблицы.
// 63 представляет собой 1 (границы) + 2 (затенение) + 4 (шрифт) + 8 (цвет) + 16 (автоподбор) + 32 (строки заголовков).
field.FormatAttributes = "63";
field.InsertHeadings = true;
field.InsertOnceOnMailMerge = true;

doc.FieldOptions.FieldDatabaseProvider = new OleDbFieldDatabaseProvider();
doc.UpdateFields();

doc.Save(ArtifactsDir + "Field.DATABASE.docx");

Смотрите также