我想讓用戶從預定義的模板列表中進行選擇。選擇模板後,RichEditControl(REC)將顯示根據所選模板格式化的文檔,其中已經合併了字段。 (用戶從來不會看到合併文檔的雙括號「代碼隱藏」。)我的模板以varbinary形式存在數據庫中,並作爲類中的字節數組傳遞給gui,拆分後的形式如下所示:如何以編程方式合併DevExpress RichEditControl中的數據?
public class Template
{
public byte[] Document {get;set;}
}
在包含REC形式,我打電話了包含可用模板的下拉列表的改變事件的事件處理下列方法(letterWriterEditor是我的REC,和templateBindingSource是綁定到LetterWriterMergeFieldCollection,一個包含字符串屬性的類,該字段代表我希望在文檔中合併的字段以及它們的值(該程序中的其他位置確定)):
public void MergeTemplateFieldsWithValues(IList<LetterWriterMergeFieldCollection> mergeValues, Template template)
{
using (Stream s = new MemoryStream(template.Document))
{
letterWriterEditor.LoadDocument(s, DocumentFormat.Rtf);
}
BindingList<LetterWriterMergeFieldCollection> bindingList = new BindingList<LetterWriterMergeFieldCollection>(mergeValues);
templateBindingSource.DataSource = bindingList;
templateBindingSource.ResetBindings(false);
}
我有這種形式的構造函數聲明如下:
letterWriterEditor.Options.MailMerge.ViewMergedData = true;
字段綁定精細合併:我可以用在拍攝的功能條的郵件按鈕之一,手動插入。但是當我嘗試以編程的方式完成這個文檔時,這個文檔就變成了空白。當用戶選擇所需的模板時,我希望它最終成爲一個合併的信件,隨時可以保存。我的理解是,將ViewMergeData屬性設置爲true,這就是應該發生的事情。
如果有人有任何想法,我會很感激。提前致謝。
@Kuffs我使用的代碼是以上 - 我的問題中的第二個代碼塊。我期待看到將我的模板(由Template.Document提供)與由LetterWriterMergeFieldCollection類提供的數據合併的結果。 – RobC