FieldDatabase

FieldDatabase class

Implementerar fältet DATABAS.

För att lära dig mer, besökArbeta med Fields dokumentationsartikel.

public class FieldDatabase : Field

Konstruktörer

namnBeskrivning
FieldDatabase()Default_Constructor

Egenskaper

namnBeskrivning
Connection { get; set; }Hämtar eller ställer in en anslutning till datan.
DisplayResult { get; }Hämtar texten som representerar det visade fältresultatet.
End { get; }Hämtar noden som representerar fältänden.
FileName { get; set; }Hämtar eller ställer in hela sökvägen och filnamnet för databasen
FirstRecord { get; set; }Hämtar eller ställer in integralpostnumret för den första dataposten som ska infogas.
Format { get; }Får enFieldFormat objekt som ger maskinskriven åtkomst till fältets formatering.
FormatAttributes { get; set; }Hämtar eller ställer in vilka attribut av formatet som ska tillämpas på tabellen.
InsertHeadings { get; set; }Hämtar eller ställer in om fältnamnen från databasen ska infogas som kolumnrubriker i den resulterande tabellen.
InsertOnceOnMailMerge { get; set; }Hämtar eller ställer in om data ska infogas i början av en sammanslagning.
IsDirty { get; set; }Hämtar eller ställer in om det aktuella resultatet av fältet inte längre är korrekt (inaktuellt) på grund av andra ändringar som gjorts i dokumentet.
IsLocked { get; set; }Hämtar eller ställer in om fältet är låst (ska inte räkna om resultatet).
LastRecord { get; set; }Hämtar eller ställer in integralpostnumret för den senaste dataposten som ska infogas.
LocaleId { get; set; }Hämtar eller ställer in LCID för fältet.
Query { get; set; }Hämtar eller ställer in en uppsättning SQL-instruktioner som frågar databasen.
Result { get; set; }Hämtar eller ställer in text som är mellan fältavgränsaren och fältslutet.
Separator { get; }Hämtar noden som representerar fältseparatorn. Kan varanull .
Start { get; }Hämtar noden som representerar början av fältet.
TableFormat { get; set; }Hämtar eller ställer in formatet som ska tillämpas på resultatet av databasfrågan.
virtual Type { get; }Hämtar fälttypen Microsoft Word.

Metoder

namnBeskrivning
GetFieldCode()Returnerar text mellan fältstart och fältavgränsare (eller fältslut om det inte finns någon avgränsare). Både fältkod och fältresultat för underordnade fält ingår.
GetFieldCode(bool)Returnerar text mellan fältstart och fältavgränsare (eller fältslut om det inte finns någon avgränsare).
Remove()Tar bort fältet från dokumentet. Returnerar en nod direkt efter fältet. Om fältets slut är den sista child av dess överordnade nod, returnerar dess överordnade stycke. Om fältet redan är borttaget, returnerasnull .
Unlink()Utför fältavlänkningen.
Update()Utför fältuppdateringen. Kastar om fältet redan uppdateras.
Update(bool)Utför en fältuppdatering. Kastar om fältet redan uppdateras.

Anmärkningar

Infogar resultaten av en databasfråga i en WordprocessingML-tabell.

Exempel

Visar hur man extraherar data från en databas och infogar den som ett fält i ett dokument.

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

// Detta DATABAS-fält kommer att köra en fråga på en databas och visa resultatet i en tabell.
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());

// Infoga ett annat DATABAS-fält med en mer komplex fråga som sorterar alla produkter i fallande ordning efter bruttoförsäljning.
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";

// Dessa egenskaper har samma funktion som LIMIT- och TOP-satser.
// Konfigurera dem för att endast visa raderna 1 till 10 i frågeresultatet i fältets tabell.
field.FirstRecord = "1";
field.LastRecord = "10";

// Den här egenskapen är indexet för formatet vi vill använda för vår tabell. Listan över tabellformat finns i menyn "Tabell AutoFormat...".
// som dyker upp när vi skapar ett DATABAS-fält i Microsoft Word. Index #10 motsvarar formatet "Colorful 3".
field.TableFormat = "10";

// Egenskapen FormatAttribute är en strängrepresentation av ett heltal som lagrar flera flaggor.
// Vi kan tillämpa formatet som TableFormat-egenskapen pekar på genom att sätta olika flaggor i den här egenskapen.
// Siffran vi använder är summan av en kombination av värden som motsvarar olika aspekter av tabellstilen.
// 63 representerar 1 (kanter) + 2 (skuggning) + 4 (teckensnitt) + 8 (färg) + 16 (autopassning) + 32 (rubriker).
field.FormatAttributes = "63";
field.InsertHeadings = true;
field.InsertOnceOnMailMerge = true;

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

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

Se även