FieldDatabase

FieldDatabase class

Implementa il campo DATABASE.

Per saperne di più, visita ilLavorare con i campi articolo di documentazione.

public class FieldDatabase : Field

Costruttori

NomeDescrizione
FieldDatabase()Default_Costruttore

Proprietà

NomeDescrizione
Connection { get; set; }Ottiene o imposta una connessione ai dati.
DisplayResult { get; }Ottiene il testo che rappresenta il risultato del campo visualizzato.
End { get; }Ottiene il nodo che rappresenta la fine del campo.
FileName { get; set; }Ottiene o imposta il percorso completo e il nome del file del database
FirstRecord { get; set; }Ottiene o imposta il numero di record integrale del primo record di dati da inserire.
Format { get; }Ottiene unFieldFormatoggetto che fornisce accesso tipizzato alla formattazione del campo.
FormatAttributes { get; set; }Ottiene o imposta quali attributi del formato devono essere applicati alla tabella.
InsertHeadings { get; set; }Ottiene o imposta se inserire i nomi dei campi dal database come intestazioni di colonna nella tabella risultante.
InsertOnceOnMailMerge { get; set; }Ottiene o imposta se inserire dati all’inizio di un’unione.
IsDirty { get; set; }Ottiene o imposta se il risultato corrente del campo non è più corretto (obsoleto) a causa di altre modifiche apportate al documento.
IsLocked { get; set; }Ottiene o imposta se il campo è bloccato (non dovrebbe ricalcolare il suo risultato).
LastRecord { get; set; }Ottiene o imposta il numero di record integrale dell’ultimo record di dati da inserire.
LocaleId { get; set; }Ottiene o imposta l’LCID del campo.
Query { get; set; }Ottiene o imposta un set di istruzioni SQL che interrogano il database.
Result { get; set; }Ottiene o imposta il testo compreso tra il separatore di campo e la fine del campo.
Separator { get; }Ottiene il nodo che rappresenta il separatore di campo. Può esserenull .
Start { get; }Ottiene il nodo che rappresenta l’inizio del campo.
TableFormat { get; set; }Ottiene o imposta il formato da applicare al risultato della query del database.
virtual Type { get; }Ottiene il tipo di campo di Microsoft Word.

Metodi

NomeDescrizione
GetFieldCode()Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non c’è un separatore). Sono inclusi sia il codice di campo che il risultato del campo dei campi figlio.
GetFieldCode(bool)Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non c’è separatore).
Remove()Rimuove il campo dal documento. Restituisce un nodo subito dopo il campo. Se la fine del campo è l’ultimo nodo figlio del suo nodo padre, restituisce il paragrafo padre. Se il campo è già stato rimosso, restituiscenull .
Unlink()Esegue lo scollegamento del campo.
Update()Esegue l’aggiornamento del campo. Genera un’eccezione se il campo è già in fase di aggiornamento.
Update(bool)Esegue un aggiornamento di campo. Genera un’eccezione se il campo è già in fase di aggiornamento.

Osservazioni

Inserisce i risultati di una query di database in una tabella WordprocessingML.

Esempi

Mostra come estrarre dati da un database e inserirli come campo in un documento.

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

// Questo campo DATABASE eseguirà una query su un database e visualizzerà il risultato in una tabella.
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());

// Inserire un altro campo DATABASE con una query più complessa che ordina tutti i prodotti in ordine decrescente in base alle vendite lorde.
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";

// Queste proprietà hanno la stessa funzione delle clausole LIMIT e TOP.
// Configurarli per visualizzare solo le righe da 1 a 10 del risultato della query nella tabella del campo.
field.FirstRecord = "1";
field.LastRecord = "10";

// Questa proprietà è l'indice del formato che vogliamo utilizzare per la nostra tabella. L'elenco dei formati di tabella si trova nel menu "Formattazione automatica tabella..."
// che viene visualizzato quando creiamo un campo DATABASE in Microsoft Word. L'indice n. 10 corrisponde al formato "Colorful 3".
field.TableFormat = "10";

// La proprietà FormatAttribute è una rappresentazione stringa di un numero intero che memorizza più flag.
// Possiamo applicare patrimonialmente il formato a cui punta la proprietà TableFormat impostando flag diversi in questa proprietà.
// Il numero che utilizziamo è la somma di una combinazione di valori corrispondenti a diversi aspetti dello stile della tabella.
// 63 rappresenta 1 (bordi) + 2 (ombreggiatura) + 4 (carattere) + 8 (colore) + 16 (adattamento automatico) + 32 (righe di intestazione).
field.FormatAttributes = "63";
field.InsertHeadings = true;
field.InsertOnceOnMailMerge = true;

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

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

Guarda anche