Mail Mergeและการรายงาน

Mail Mergeเป็นคุณลักษณะที่เป็นที่นิยมสำหรับการสร้างเอกสารได้อย่างรวดเร็วและง่ายดายเช่นตัวอั Aspose.Wordsช่วยให้คุณสามารถสร้างเอกสารจากแม่แบบที่มีฟิลด์Mail Merge.

ฟิลด์Mail Mergeเป็นฟิลด์ที่คุณสามารถแทรกลงในแม่แบบmail mergeเพื่อรวมค่าที่เฉพาะเจาะจงจากแหล่งข้อมูล นแม่แบบอีเมลเพื่อให้คำทักทายจะมีชื่อแรกของผู้รับมากกว่าทั่วไป"สวัสดี!". Aspose.Wordsวางข้อมูลจากแหล่งภายนอกเช่นฐานข้อมูลหรือแฟ้มลงในฟิลด์เหล่านี้และจัดรูปแบบข้อมูล เอกสารผลลัพธ์จะถูกบันทึกไว้ในโฟลเดอร์ที่ระบุ.

Aspose.Wordsใช้ฟังก์ชันการทำงานมาตรฐานMail Mergeและก้าวหน้าไปหลายขั้นตอนข้างหน้า,เปลี่ยนมันเป็นโซลูชันการรายงานที่เต็มเปี่ยมที่ช่วยให้คุณสามารถสร้างเอกสารที่ซับซ้อนมากขึ้นเช่นรายงาน,แคตตาล็อก,สินค้าคงคลัง,และใบแจ้งหนี้. นี่คือข้อดีบางประการของโซลูชันการรายงานAspose.Words:

  • รายงานการออกแบบในMicrosoft Wordโดยใช้ฟิลด์มาตรฐานMail Merge
  • กำหนดพื้นที่ในเอกสารที่มีการเจริญเติบโต,เช่นแถวลำดับโดยละเอียด
  • แทรกภาพในระหว่างmail merge
  • ดำเนินการตรรกะที่กำหนดเองการควบคุมการจัดรูปแบบหรือแทรกเนื้อหาที่ซับซ้อนโดยใช้ตัวจัดการเหตุการณ์Mail Merge
  • กรอกเอกสารด้วยข้อมูลจากแหล่งข้อมูลทุกประเภท

กลไกและส่วนประกอบหลักของMail Merge

Aspose.Wordsให้ความสามารถในการโหลดเอกสารในต่างๆรูปแบบที่รองรับและจากนั้นช่วยให้ผู้ใช้สามารถดำเนินการMail Merge.

โดยปกติเอกสารที่โหลดช่วยให้คุณสามารถจัดเก็บฟิลด์ผสานตัวอย่างเช่นเอกสารในรูปแบบDOCX แต่มีรูปแบบที่ไม่เก็บฟิลด์ดังกล่าวตัวอย่างเช่นTXT ถ้าAspose.Wordsสนับสนุนการโหลดรูปแบบไฟล์ดังกล่าวคุณสามารถเพิ่มฟิลด์ผสานกับโมเดลเอกสารโดยตรงบันทึกเอกสารในรูปแบบที่รองรับที่สะดวกและดำเนินการMail Merge.

การดำเนินการMail Mergeจะรวมmail merge templateของคุณและdata sourceของคุณเพื่อสร้างแต่ละบุคคลmerged documents.

เทมเพลตMail Mergeคืออะไร

เป้าหมายของการใช้การดำเนินการmail mergeโดยใช้เทมเพลตผสานคือการทำให้กระบวนการสร้า.

มีหลายวิธีในการสร้างและออกแบบเทมเพลตผสาน คุณสามารถใช้Microsoft Wordและแม่แบบผสานไม่จำเป็นต้องเป็นแม่แบบMicrosoft Wordซึ่งเป็นเอกสารในรูปแบบDOTหรือDOTXอาจเป็นเอกสารปกติในรูปแบบDOCหรือDOCX คุณต้องแทรกฟิลด์พิเศษบางอย่างที่เรียกว่าฟิลด์ผสานลงในเทมเพลตนี้ในสถานที่ที่คุณต้องการ หรือคุณสามารถสร้างเทมเพลตผสานโดยใช้คลาสของDocumentBuilder.

เทมเพลตการผสานประกอบด้วยข้อความหลักซึ่งควรจะเหมือนกันในเอกสารออกทั้งหมดหลังจากที่คุณดำเนินการMail Merge คุณสามารถใช้รูปแบบใดก็ได้สำหรับเทมเพลตของคุณหากมีความสามารถในการเพิ่มฟิลด์ผ ฟิลด์ผสานทั้งหมดภายในเทมเพลตของคุณจะถูกกรอกจากแหล่งข้อมูลของคุณในระหว่างการดำเนินการMail Merge.

แหล่งข้อมูลสำหรับการดำเนินงานMail Merge

Aspose.WordsMail Mergeaccepแหล่งข้อมูลต่างๆ นี้สามารถเป็นได้ทั้งDataTable, DataView, DataSet, IDataReader, อาร์เรย์ของค่าที่สนับสนุนโดยADO.NETหรือแหล่งข้อมูลที่กำหนดเองที่แสดงโดยการใช้งานIMailMergeDataSource.

แหล่งข้อมูลประกอบด้วยข้อมูลทั้งหมดที่ถูกดึงในระหว่างการดำเนินการMail Mergeเพื่อปรับแต่งอีเม แหล่งข้อมูลที่สามารถสร้างขึ้นด้วยตนเองหรือสร้างขึ้นโดยการรายงานจากฐานข้อมูลที่มีอ หากคุณมีข้อมูลในรูปแบบXMLคุณสามารถโหลดและผสานกับDataSet การดำเนินงานMail Mergeจะผ่านระเบียนแหล่งข้อมูลทั้งหมดและแทรกลงในฟิลด์Mail Mergeในเอกสาร คุณสามารถใช้อินเทอร์เฟซmail mergeบางอย่างเช่นIMailMergeDataSourceRootเพื่อผสานข้อมูลจากแหล่งข้อมูลใดๆรวมถึงแบบสอบถามLINQไฟล์XMLหรือวัตถุทางธุรกิจ.

ตัวอย่างรหัสต่อไปนี้แสดงวิธีการโหลดตารางข้อมูลเป็นแหล่งข้อมูลสำหรับการดำเนินการMail Merge:

// 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);
}

ผสานเอกสารของการดำเนินการMail Merge

เอกสารที่ผสานเป็นผลมาจากการดำเนินการMail Mergeเมื่อคุณผสานแม่แบบกับแหล่งข้อมูล ฟิลด์ผสานทั้งหมดภายในเอกสารที่ผสานจะถูกแทนที่ด้วยข้อมูลจริงจากแหล่งข้อมูลของคุณ.

รูปภาพต่อไปนี้แสดงตัวอย่างของเทมเพลตผสานกับฟิลด์ที่ผสานก่อนดำเนินการดำเนินการMail Merge.

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

รูปภาพต่อไปนี้แสดงตัวอย่างของเอกสารที่ผสานเอาต์พุตอันเป็นผลมาจากการดำเนินการMail Merge.

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

ดูเพิ่มเติม