MappedDataFieldCollection
Innehåll
[
Dölj
]MappedDataFieldCollection class
Gör det möjligt att automatiskt mappa mellan namn på fält i din datakälla och namn på sammanslagningsfält i dokumentet.
För att lära dig mer, besökMail Merge och rapportering dokumentationsartikel.
public class MappedDataFieldCollection : IEnumerable<KeyValuePair<string, string>>
Egenskaper
namn | Beskrivning |
---|---|
Count { get; } | Hämtar antalet element som finns i samlingen. |
Item { get; set; } | Hämtar eller ställer in namnet på fältet i datakällan som är kopplad till det angivna kopplingsfältet. |
Metoder
namn | Beskrivning |
---|---|
Add(string, string) | Lägger till en ny fältmappning. |
Clear() | Tar bort alla element från samlingen. |
ContainsKey(string) | Bestämmer om en mappning från det angivna fältet i dokumentet finns i samlingen. |
ContainsValue(string) | Bestämmer om en mappning från det angivna fältet i datakällan finns i samlingen. |
GetEnumerator() | Returnerar ett ordboksuppräkningsobjekt som kan användas för att iterera över alla objekt i samlingen. |
Remove(string) | Tar bort en fältmappning. |
Anmärkningar
Detta implementeras som en samling strängnycklar i strängvärden. Nycklarna är namnen på kopplingsfälten i dokumentet och värdena är namnen på fälten i din datakälla.
Exempel
Visar hur man mappar datakolumner och MERGEFIELDs med olika namn så att data överförs mellan dem under en sammankoppling.
public void MappedDataFieldCollection()
{
Document doc = CreateSourceDocMappedDataFields();
DataTable dataTable = CreateSourceTableMappedDataFields();
// Tabellen har en kolumn som heter "Column2", men det finns inga MERGEFIELDs med det namnet.
// Dessutom har vi ett MERGEFIELD som heter "Column3", men datakällan har inte en kolumn med det namnet.
// Om data från "Column2" är lämplig för "Column3" MERGEFIELD,
// vi kan mappa det kolumnnamnet till MERGEFIELD i nyckel/värdeparet "MappedDataFields".
MappedDataFieldCollection mappedDataFields = doc.MailMerge.MappedDataFields;
// Vi kan länka ett datakällas kolumnnamn till ett MERGEFIELD-namn som detta.
mappedDataFields.Add("MergeFieldName", "DataSourceColumnName");
// Länka datakällans kolumn med namnet "Column2" till MERGEFIELDs med namnet "Column3".
mappedDataFields.Add("Column3", "Column2");
// MERGEFIELD-namnet är "nyckeln" till respektive datakällas kolumnnamn "värde".
Assert.AreEqual("DataSourceColumnName", mappedDataFields["MergeFieldName"]);
Assert.True(mappedDataFields.ContainsKey("MergeFieldName"));
Assert.True(mappedDataFields.ContainsValue("DataSourceColumnName"));
// Om vi nu kör den här kopplingen, kommer "Column3" MERGEFIELDs att ta data från "Column2" i tabellen.
doc.MailMerge.Execute(dataTable);
doc.Save(ArtifactsDir + "MailMerge.MappedDataFieldCollection.docx");
// Vi kan iterera över elementen i denna samling.
Assert.AreEqual(2, mappedDataFields.Count);
using (IEnumerator<KeyValuePair<string, string>> enumerator = mappedDataFields.GetEnumerator())
while (enumerator.MoveNext())
Console.WriteLine(
$"Column named {enumerator.Current.Value} is mapped to MERGEFIELDs named {enumerator.Current.Key}");
// Vi kan också ta bort element från samlingen.
mappedDataFields.Remove("MergeFieldName");
Assert.False(mappedDataFields.ContainsKey("MergeFieldName"));
Assert.False(mappedDataFields.ContainsValue("DataSourceColumnName"));
mappedDataFields.Clear();
Assert.AreEqual(0, mappedDataFields.Count);
}
/// <summary>
/// Skapa ett dokument med 2 MERGEFIELDs, varav ett inte har en
/// motsvarande kolumn i datatabellen från metoden nedan.
/// </summary>
private static Document CreateSourceDocMappedDataFields()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField(" MERGEFIELD Column1");
builder.Write(", ");
builder.InsertField(" MERGEFIELD Column3");
return doc;
}
/// <summary>
/// Skapa en datatabell med 2 kolumner, varav en inte har en
/// motsvarande MERGEFIELD i källdokumentet från metoden ovan.
/// </summary>
private static DataTable CreateSourceTableMappedDataFields()
{
DataTable dataTable = new DataTable("MyTable");
dataTable.Columns.Add("Column1");
dataTable.Columns.Add("Column2");
dataTable.Rows.Add(new object[] { "Value1", "Value2" });
return dataTable;
}
Se även
- namnutrymme Aspose.Words.MailMerging
- hopsättning Aspose.Words