Mail Merge En Verslagdoening

Mail Merge is’n gewilde kenmerk vir die vinnige en maklike skep van dokumente soos briewe, etikette en koeverte. Aspose.Words stel jou in staat om dokumente te genereer uit templates met Mail Merge velde.

‘n Mail Merge veld is’n veld wat jy kan invoeg in’n Mail Merge sjabloon om spesifieke waardes van’n data bron rekord in uitset dokumente sluit. Byvoorbeeld, jy kan’n samesmeltingsveld in’n e-pos sjabloon invoeg sodat die groet die ontvanger se voornaam sal hê eerder as’n generiese “Hallo!”. Aspose.Words plaas data van’n eksterne bron, soos’n databasis of lêer, in hierdie velde en formateer dit. Die gevolglike dokument word in die gespesifiseerde gids gestoor.

Aspose.Words neem die standaard Mail Merge funksionaliteit en bevorder dit baie stappe vorentoe, en verander dit in’n volwaardige verslagdoeningsoplossing wat jou toelaat om selfs meer komplekse dokumente soos verslae, katalogusse, voorraad en fakture te skep. Hier is’n paar voordele van die Aspose.Words verslagdoening oplossing:

  • Ontwerp verslae in Microsoft Word met behulp van standaard Mail Merge velde
  • Definieer streke in die dokument wat groei, soos gedetailleerde volgorde rye
  • Voeg beelde in tydens a mail merge
  • Voer enige pasgemaakte logika, beheerformatering uit, of voeg komplekse inhoud in met Mail Merge gebeurtenishanteerders
  • Vul dokumente in met data van enige tipe databron

Meganisme en Hoofkomponente van Mail Merge

Aspose.Words bied die vermoë om dokumente in verskillende supported formats te laai en laat gebruikers toe om’n Mail Merge operasie uit te voer.

Gewoonlik laat’n gelaaide dokument jou toe om samesmeltingsvelde te stoor, byvoorbeeld’n dokument in DOCX - formaat. Maar daar is formate wat nie sulke velde stoor nie, byvoorbeeld TXT. As Aspose.Words die laai van sulke lêerformate ondersteun, kan u die samesmeltingsvelde direk by die dokumentmodel voeg, die dokument in’n gerieflike supported format stoor en die Mail Merge - bewerking uitvoer.

Die Mail Merge operasie sal jou mail merge template en jou data source saamvoeg om individuele merged documents te genereer.

Wat is’n Mail Merge Sjabloon

Die doel van die toepassing van’n Mail Merge operasie met behulp van’n samesmelting sjabloon is om die proses van die skep van’n dokument te vereenvoudig.

Daar is verskeie maniere om’n samesmelting sjabloon te skep en te ontwerp. Jy kan Microsoft Word gebruik, en die merge sjabloon hoef nie’n Microsoft Word sjabloon te wees nie, dit is’n dokument in die DOT of DOTX formaat, dit kan’n gewone dokument in die DOC of DOCX formaat wees. Jy moet’n paar spesiale velde genaamd merge fields in hierdie sjabloon invoeg op plekke waar jy wil hê dat data van jou databron later ingevoeg moet word. Of jy kan programmaties skep’n samesmelting sjabloon met behulp van die DocumentBuilder klas.

Die merge-sjabloon bevat die hoofteks, wat dieselfde moet wees in alle uitvoerdokumente nadat u die Mail Merge - bewerking uitgevoer het. U kan enige formaat vir u sjabloon gebruik as daar’n vermoë is om samesmeltingsvelde daarby te voeg. Alle saamvlans velde binne jou sjabloon sal ingevul word vanaf jou databron tydens die Mail Merge operasie.

Databronne vir’n Mail Merge Operasie

Aspose.Words Mail Merge aanvaar verskeie databronne. Dit kan ook’n DataTable, DataView, DataSet, IDataReader, ‘n verskeidenheid waardes ondersteun deur ADO .NET, of persoonlike databronne verteenwoordig deur IMailMergeDataSource implementasies.

Die databron bevat al die inligting wat tydens die Mail Merge operasie getrek word om individuele e-posse en dokumente te personaliseer. Databronne kan handmatig geskep word of gegenereer word deur verslagdoening van’n bestaande databasis of aansoek. As jy data in XML formaat het, kan jy dit laai en saamvoeg met die DataSet. Die Mail Merge operasie sal deur al die data bron rekords gaan en voeg hulle in Mail Merge velde in die dokument. Jy kan’n paar Mail Merge koppelvlakke soos IMailMergeDataSourceRoot implementeer om data van enige databron saam te voeg, insluitend’n LINQ navraag, ‘n XML lêer, of besigheid voorwerpe.

Die volgende kode voorbeeld toon hoe om’n data tabel te laai as die data bron vir die Mail Merge operasie:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
private static final String dataDir = Utils.getSharedDataDir(ExecuteMailMergeWithRegions.class) + "MailMerge/";
public static void main(String[] args) throws Exception {
Document doc = new Document(dataDir + "MailMerge.ExecuteWithRegions.doc");
int orderId = 10444;
// Perform several mail merge operations populating only part of the document each time.
// Use DataTable as a data source.
// The table name property should be set to match the name of the region defined in the document.
DataTable orderTable = getTestOrder(orderId);
doc.getMailMerge().executeWithRegions(orderTable);
DataTable orderDetailsTable = getTestOrderDetails(orderId, "ExtendedPrice DESC");
doc.getMailMerge().executeWithRegions(orderDetailsTable);
doc.save(dataDir + "MailMerge.ExecuteWithRegionsDataTable Out.doc");
}
private static DataTable getTestOrder(int orderId) throws Exception {
java.sql.ResultSet resultSet = executeDataTable(java.text.MessageFormat.format("SELECT * FROM AsposeWordOrders WHERE OrderId = {0}", Integer.toString(orderId)));
return new DataTable(resultSet, "Orders");
}
private static DataTable getTestOrderDetails(int orderId, String orderBy) throws Exception {
StringBuilder builder = new StringBuilder();
builder.append(java.text.MessageFormat.format("SELECT * FROM AsposeWordOrderDetails WHERE OrderId = {0}", Integer.toString(orderId)));
if ((orderBy != null) && (orderBy.length() > 0)) {
builder.append(" ORDER BY ");
builder.append(orderBy);
}
java.sql.ResultSet resultSet = executeDataTable(builder.toString());
return new DataTable(resultSet, "OrderDetails");
}
/**
* Utility function that creates a connection, command, executes the command
* and return the result in a DataTable.
*/
private static java.sql.ResultSet executeDataTable(String commandText) throws Exception {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String connString = "jdbc:ucanaccess://" + dataDir + "Northwind.mdb";
// From Wikipedia: The Sun driver has a known issue with character encoding and Microsoft Access databases.
// Microsoft Access may use an encoding that is not correctly translated by the driver, leading to the replacement
// in strings of, for example, accented characters by question marks.
//
// In this case I have to set CP1252 for the European characters to come through in the data values.
java.util.Properties props = new java.util.Properties();
props.put("charSet", "Cp1252");
// DSN-less DB connection.
java.sql.Connection conn = java.sql.DriverManager.getConnection(connString, props);
// Create and execute a command.
java.sql.Statement statement = conn.createStatement();
return statement.executeQuery(commandText);
}

Saamgesmelte Dokumente van’n Mail Merge Operasie

‘n saamgesmelte dokument is die resultaat van die Mail Merge operasie wanneer jy die sjabloon saamvoeg met die databron. Alle samesmeltingsvelde binne die saamgesmelte dokument word vervang met werklike data van u databron.

Die volgende beeld toon’n voorbeeld van die samesmelting sjabloon met saamgesmelt velde voor die uitvoering van die Mail Merge operasie.

mail-merge-and-reporting-aspose-words-java-1

Die volgende beeld toon’n voorbeeld van die uitset saamgesmelt dokument as gevolg van die uitvoering van die Mail Merge operasie.

mail-merge-and-reporting-aspose-words-java-2

Sien Ook