FieldNext
Contenuti
[
Nascondere
]FieldNext class
Implementa il campo NEXT.
Per saperne di più, visita ilLavorare con i campi articolo di documentazione.
public class FieldNext : Field
Costruttori
| Nome | Descrizione | 
|---|---|
| FieldNext() | Default_Costruttore | 
Proprietà
| Nome | Descrizione | 
|---|---|
| DisplayResult { get; } | Ottiene il testo che rappresenta il risultato del campo visualizzato. | 
| End { get; } | Ottiene il nodo che rappresenta la fine del campo. | 
| Format { get; } | Ottiene un FieldFormatoggetto che fornisce accesso tipizzato alla formattazione del campo. | 
| 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). | 
| LocaleId { get; set; } | Ottiene o imposta l’LCID del campo. | 
| 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ò essere null. | 
| Start { get; } | Ottiene il nodo che rappresenta l’inizio del campo. | 
| virtual Type { get; } | Ottiene il tipo di campo di Microsoft Word. | 
Metodi
| Nome | Descrizione | 
|---|---|
| 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, restituisce null. | 
| 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
Unisce il record di dati successivo al documento unito risultante corrente, anziché avviare un nuovo documento unito.
Esempi
Mostra come utilizzare i campi NEXT/NEXTIF per unire più righe in un’unica pagina durante una stampa unione.
public void FieldNext()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    // Creiamo un'origine dati per la nostra stampa unione con 3 righe.
    // Una stampa unione che utilizza questa tabella normalmente creerebbe un documento di 3 pagine.
    DataTable table = new DataTable("Employees");
    table.Columns.Add("Courtesy Title");
    table.Columns.Add("First Name");
    table.Columns.Add("Last Name");
    table.Rows.Add("Mr.", "John", "Doe");
    table.Rows.Add("Mrs.", "Jane", "Cardholder");
    table.Rows.Add("Mr.", "Joe", "Bloggs");
    InsertMergeFields(builder, "First row: ");
    // Se abbiamo più campi di unione con lo stesso FieldName,
    // riceveranno i dati dalla stessa riga della sorgente dati e visualizzeranno lo stesso valore dopo l'unione.
    // Un campo NEXT indica alla stampa unione di spostarsi immediatamente verso il basso di una riga,
    // il che significa che tutti i MERGEFIELD che seguono il campo NEXT riceveranno i dati dalla riga successiva.
    // Assicurati di non provare mai a passare alla riga successiva mentre sei già all'ultima riga.
    FieldNext fieldNext = (FieldNext)builder.InsertField(FieldType.FieldNext, true);
    Assert.AreEqual(" NEXT ", fieldNext.GetFieldCode());
    // Dopo l'unione, i valori dell'origine dati accettati da questi MERGEFIELD
     // finirà sulla stessa pagina dei MERGEFIELD precedenti.
    InsertMergeFields(builder, "Second row: ");
    // Un campo NEXTIF ha la stessa funzione di un campo NEXT,
    // ma salta alla riga successiva solo se un'istruzione costruita dalle seguenti 3 proprietà è vera.
    FieldNextIf fieldNextIf = (FieldNextIf)builder.InsertField(FieldType.FieldNextIf, true);
    fieldNextIf.LeftExpression = "5";
    fieldNextIf.RightExpression = "2 + 3";
    fieldNextIf.ComparisonOperator = "=";
    Assert.AreEqual(" NEXTIF  5 = \"2 + 3\"", fieldNextIf.GetFieldCode());
    // Se il confronto affermato dal campo sopra è corretto,
    // i seguenti 3 campi di unione prenderanno i dati dalla terza riga.
    // In caso contrario, questi campi prenderanno nuovamente i dati dalla riga 2.
    InsertMergeFields(builder, "Third row: ");
    doc.MailMerge.Execute(table);
     // La nostra sorgente dati ha 3 righe e abbiamo saltato due volte alcune righe.
    // Il nostro documento di output avrà 1 pagina con i dati di tutte e 3 le righe.
    doc.Save(ArtifactsDir + "Field.NEXT.NEXTIF.docx");
}
/// <summary>
/// Utilizza un generatore di documenti per inserire MERGEFIELD per un'origine dati che contiene colonne denominate "Titolo di cortesia", "Nome" e "Cognome".
/// </summary>
public void InsertMergeFields(DocumentBuilder builder, string firstFieldTextBefore)
{
    InsertMergeField(builder, "Courtesy Title", firstFieldTextBefore, " ");
    InsertMergeField(builder, "First Name", null, " ");
    InsertMergeField(builder, "Last Name", null, null);
    builder.InsertParagraph();
}
/// <summary>
/// Utilizza un generatore di documenti per inserire un MERRGEFIELD con le proprietà specificate.
/// </summary>
public void InsertMergeField(DocumentBuilder builder, string fieldName, string textBefore, string textAfter)
{
    FieldMergeField field = (FieldMergeField) builder.InsertField(FieldType.FieldMergeField, true);
    field.FieldName = fieldName;
    field.TextBefore = textBefore;
    field.TextAfter = textAfter;
}
Guarda anche
- class Field
- spazio dei nomi Aspose.Words.Fields
- assemblea Aspose.Words