Bonjour,

j'ai une application développé sous Delphi 5.
Dans cette application, j'ai une fonctionnalité qui me permet d'imprimer en masse des documents word fusionnés.

Cependant, nous nous sommes rendu compte que si l'application tourne sous windows serveur 2008 R2 avec office 2003/2007 et 2010,alors au bout d'un certain temps, l'application se plante après la fermeture du document word.

Le problème apparaît de façon aléatoire et sans erreur particulière. De plus, il nous semble que ce phénomène se produit plus rapidement sur office 2003 et 2007 ( plantage après une cinquantaine de document ouvert successivement puis refermé après impression).

Voici au niveau du code comment nous fonctionnons :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
var Myword:_application;
DocWord: Variant;
begin
myword:=CoApplication_.create; //creation d'un objet application
 
myword.Set_ActivePrinter(Printer.Printers[ImprimanteparDefaut]); // récupération de l'imprimante par defaut
 
DocWord :=myword.Documents.open(Filename,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam);
  Destinat := 0; //envoi vers nouveau document
  myword.ActiveDocument.MailMerge.Set_Destination(Destinat);
  myword.ActiveDocument.MailMerge.OpenDataSource(Pchar(Repertoireposte+nomtxt),EmptyParam,EmptyParam,EmptyParam,                                                     EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); //ici on fusionne le document word avec une source de données au format .txt
 
Myword.ActiveDocument.PrintOut(xbackground,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Copies,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam,Emptyparam);//impression du document word
 
Myword.quit(XsaveChanges,Emptyparam,Emptyparam); //fermeture de word