L'application développée sous Delphi7 et IB6 utilise pour certaines éditions des "modéles" Office ( .xlt ou .dot ).
Ces modéles sont actuellement des fichiers sur le réseau ( ce qui les rend "fragiles", et complique les éventuelles migrations, nom de chemin... ).
Pour fiabiliser et rendre l'application plus homogène j'ai chargé ces fichiers dans des blobs:
Je n'ai trouvé d'autre solution pour les afficher et les éditer que de les "réécrire" et de les "réouvrir" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if Opendialog1.Execute then begin with ibdsBlob do begin .... Insert; ibdsBlobNOM_BLOB.value := extractFilename(opendialog1.FileName); ibdsBlobRESERVOIR.LoadFromFile(opendialog1.FileName); Post; end; end;
puis d'effacer par :
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
17
18
19
20 procedure TForm1.ouvre_Xl(filename : AnsiString); var vMSExcel,vLink,vReadOnly : variant; vXLWorkbooks, vXLWorkbook : variant; vFilename : AnsiString; begin vFileName := 'c:\temp\'+filename ; ibdsBlobRESERVOIR.SavetoFile(vfilename); try vMSExcel := GetActiveOleObject('Excel.Application'); except vMSExcel := CreateOleObject('Excel.Application'); end; vMSExcel.Visible := true; vLink := unassigned; vReadOnly := False; vXLWorkbooks := vMSExcel.Workbooks; vXLWorkbook := vXLWorkbooks.Open(vFileName, vLink, vReadOnly); end;
Je suis persuadé qu'il existe une méthode plus performante et plus "propre" pour lancer l'application ( Excel ou Word) et passer le contenu du Blob par un LoadFromStream...mais je n'y arrive pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DeleteFile(vfilename);
Quelques lumiéres la dessus ?
Merci d'avance
Partager