Я пытаюсь автоматизировать приложение членства в Delphi с помощью word2010, создав вместо объекта формы oleobject:
wrdApp := createoleobject('word.application');
открывает шаблон слияния:
wrdDoc := wrdApp.Documents.Open('user definable template location')
wrdMailMerge := wrdDoc.MailMerge;
Создайте и заполните почтовое слияние DataDoc.docx с полями и данными, извлеченными из базы данных членов.
CreateMailMergeDataDile;
PopulateMailMergeDataFile;
Выполните слияние:
wrdMailMerge.Destination := wdSendToNewDocument;
wrdMailMerge.Execute(False);
Очистите:
wrdDoc.Saved := True;
wrdDoc.Close(False);
DeleteFile(DataDoc.docx);
Показать слово:
wrdApp.Visible := True;
Это работает как брелок в моей пробной версии Word2010, как для одного, так и для нескольких почтовых рассылок из моей базы данных о членстве.
Однако я только что проверилна ПК с полной версией Word2010 и получил ошибку:
"Этот метод или свойство недоступны, поскольку текущему основному документу слияния почты требуется источник данных"
Временный источник данных кажется правильно заполненным, но шаблон документа, похоже, не может его использовать ...
Кто-нибудь получил какие-либо подсказки, почему это происходит, или почемуБудет разница между автоматизацией с полной и пробной версиями.Возможно, это даже может быть решено с помощью плагина?
Большое спасибо
Редактировать: Ниже моя функция CreateMergeDataFile:
procedure TForm1.CreateMailMergeDataFile;
var
wrdDataDoc : Variant;
begin
// Open a data source from C:\Leisure\Membership\Documents containing the field data
If FileExists(DocumentDirectory+'\..\DataDoc.docx') then
DeleteFile(DocumentDirectory+'\..\DataDoc.docx');
CopyFile(PChar(DocumentDirectory+'\..\MergeFields.docx'),PChar(DocumentDirectory+'\..\DataDoc.docx'),True);
wrdDoc.MailMerge.OpenDataSource(DocumentDirectory+'\..\DataDoc.docx',EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;
Кроме того, этот код действует только еслиВерсия msword - 14.0 (2010), определенная ранее созданным приложением word.application, хотя мне сказали, что это не нужно прекращать.