FieldDatabase

FieldDatabase class

Реализует поле DATABASE.

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() Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним child его родительского узла, возвращает его родительский абзац. Если поле уже удалено, возвращает нулевой .
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 = MyDir + @"Database\Northwind.mdb";
field.Connection = "DSN=MS Access Databases";
field.Query = "SELECT * FROM [Products]";

Assert.AreEqual($" DATABASE  \\d \"{DatabaseDir.Replace("\\", "\\\\") + "Northwind.mdb"}\" \\c \"DSN=MS Access Databases\" \\s \"SELECT * FROM [Products]\"", 
    field.GetFieldCode());

// Вставьте еще одно поле DATABASE с более сложным запросом, который сортирует все продукты в порядке убывания по валовым продажам.
field = (FieldDatabase)builder.InsertField(FieldType.FieldDatabase, true);
field.FileName = MyDir + @"Database\Northwind.mdb";
field.Connection = "DSN=MS Access Databases";
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";

// Это свойство является индексом формата, который мы хотим использовать для нашей таблицы. Список форматов таблиц находится в меню "Автоформат таблицы..."
// это появляется, когда мы создаем поле DATABASE в 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.UpdateFields();
doc.Save(ArtifactsDir + "Field.DATABASE.docx");

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