该代码可以把WORD的文档关闭,再退出WORD,但他会把我的模板文件修改后,再保存关闭,我需要的是不需要保存我的模板文件,再关闭。
if MessageDlg('您确认要批量打印 '+ IntToStr(DM.Table.RecordCount)+ ' 份 ' +DM.Table.FieldByName('vProgramName').AsString +' 收视协议?Yes 继续,No 取消!',mtInformation,[mbYes,mbNo],0) = mrYes then
begin
with DM do
begin
Table.First;
while not Table.Eof do
begin
WordDocument := WordApplication.Documents.Open(ExtractFilePath(application.exename)+ '\'+'协议模板'+'\'+DM.Table.FIeldByName('vProgramName').AsString+'.Doc');
myRange := WordDocument.Content;
{WordApplication.Options.CheckSpellingAsYouType := False;
WordApplication.Options.CheckGrammarAsYouType := False;}
myRange.Find.Execute('{$客户名称}', , ,,,, ,, , Table.FieldByName('vCustomerName').AsString, wdReplaceAll);
WordDocument.PrintOut;
WordApplication.Documents.Close;{可以关闭文档,但会把修改的内容保存,我不需要保存修改.}
Table.Next;
end;
Table.First;
WordApplication.Quit;
MessageDlg('批量打印 '+IntToStr(Table.RecordCount)+' 份协议完成!',mtInformation,[mbOK],0);
end;
end;
if MessageDlg('您确认要批量打印 '+ IntToStr(DM.Table.RecordCount)+ ' 份 ' +DM.Table.FieldByName('vProgramName').AsString +' 收视协议?Yes 继续,No 取消!',mtInformation,[mbYes,mbNo],0) = mrYes then
begin
with DM do
begin
Table.First;
while not Table.Eof do
begin
WordDocument := WordApplication.Documents.Open(ExtractFilePath(application.exename)+ '\'+'协议模板'+'\'+DM.Table.FIeldByName('vProgramName').AsString+'.Doc');
myRange := WordDocument.Content;
{WordApplication.Options.CheckSpellingAsYouType := False;
WordApplication.Options.CheckGrammarAsYouType := False;}
myRange.Find.Execute('{$客户名称}', , ,,,, ,, , Table.FieldByName('vCustomerName').AsString, wdReplaceAll);
WordDocument.PrintOut;
WordApplication.Documents.Close;{可以关闭文档,但会把修改的内容保存,我不需要保存修改.}
Table.Next;
end;
Table.First;
WordApplication.Quit;
MessageDlg('批量打印 '+IntToStr(Table.RecordCount)+' 份协议完成!',mtInformation,[mbOK],0);
end;
end;
a, b, c : OleVariant;
begin
a := false;
WordApplication.Documents.Close(a, b, c);
end;
试试。