Як правильно завершити збереження документа word
Як правильно завершити збереження Документа Word
Судячи з усього питання занадто простий. Так що на нього за останні півгодини знайшов багато відповідей типу "ці питання не розглядаємо, тому що вони неодноразово обговорювалися"
Дайте, будь ласка посилання.
Конректно з проблеми:
Відкриваю шаблон, модифікує його і зберігаю під іншим ім'ям.
От і все. Тут же перевіряю # XA0; його FileExists - не знаходить. Хоча візуально бачу його. FileExists починає бачити його тільки після того як, його відкриваю і закриваю самим Ворд або після перезавантаження комп'ютера.
Procedure ...
var
# XA0; vr1, vr2, vr3: OleVariant;
begin
If FileExists (ExtractFileDir (Application.ExeName) + 'Shablon.doc ") then begin # XA0; # XA0; # XA0;
# XA0; WA.Free;
# XA0; WA: = TWordApplication.Create (MainForm);
# XA0; vr1: = ExtractFileDir (Application.ExeName) + 'Shablon.doc ";
# XA0; vr2: = ExtractFileDir (Application.ExeName) + '\ DirOther \';
# XA0; vr3: = 'OtherDoc.doc';
# XA0; try
# XA0; # XA0; WA.Connect;
# XA0; # XA0; WA.Documents.Open (vr1, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, vr4, EmptyParam, EmptyParam, vr3, EmptyParam, # XA0; EmptyParam, EmptyParam, EmptyParam, EmptyParam);
# XA0; # XA0; WA.модіфікація;
# XA0; # XA0; # XA0; WA.ChangeFileOpenDirectory (vr2);
# XA0; # XA0; # XA0; WA.ActiveDocument.SaveAs (vr3, EmptyParam, EmptyParam, EmptyParam, # XA0; EmptyParam, EmptyParam, EmptyParam, EmptyParam, # XA0; EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, # XA0; EmptyParam, EmptyParam);
# XA0; # XA0; # XA0; # XA0;
# XA0; # XA0; finally
# XA0; # XA0; # XA0; WA.Disconnect;
# XA0; # XA0; # XA0; WA.Free;
# XA0; # XA0; end;
# XA0; # XA0; if not FileExists (vr2 + vr3)) then ShowMessage ( "Так") # XA0;
# XA0; # XA0; else ShowMessage ( "Ні");
# XA0; end;
end;
приберіть try. finally і подивіться, де виникне помилка. До збереження документа справа просто не доходить.
може
FileExists (vr2 + "" + vr3))?
і чому б відразу не вказувати повний шлях в vr3?
Дякуємо за увагу.
Помилки ніякий не порушується.
Зараз побачив, що процес WINWORD.EXE після іспоненіе процедури не завершується, продовжує висіти.
> # XA0; # XA0; # XA0; WA.ChangeFileOpenDirectory (vr2);
як Ви думаєте, що відбувається при виконанні цього методу?
Вважаю змінюється робоча директорія Ворда. Потрібно в цю, іншу директорію зберігати файл.
> Процес WINWORD.EXE після іспоненіе процедури не завершується,
> Продовжує висіти
WA.Quit ()
> Гадаю змінюється робоча директорія Ворда. Потрібно в цю,
> Іншу директорію зберігати файл.
змінюється директорія, яку видно в діалозі "відкрити файл". Ви ж нічого не відкриваєте, а навпаки, зберігаєте. Для цього є св-во DefaultFilePath (подробиці див. В справе по Word VBA).
> Clickmaker,> umbra
Дякуємо. Зробив без відкриття директорії.
Після WA.Quit Ворд вивантажився.
FileExists (vr2), де vr2, на відміну від вищенаведеного коду, повне ім'я файлу-результату, як і раніше не бачить файлу.
> FileExists (vr2), де vr2, на відміну від вищенаведеного
> Коду, повне ім'я файлу-результату, як і раніше не бачить
> Файлу.
>
тому, що його там немає. а є він в папці документів за замовчуванням, яку можна дізнатися, якщо подивитися в меню Ворда сервіс \ параметри, закладка "розташування".
> Тому, що його там немає. а є він в папці документів по
> замовчуванням
і що, він туди потрапить навіть якщо вказати повний шлях в SaveAs?
Типу "всі шляхи ведуть в Рим"?
> Umbra [10]
Після виконання коду бачу цей файл своїми очима в заданій директорії. Але всеодно. Дякуємо за увагу.
Помилка моя, логічна. Виправив.
Після застосування Ваших порад [2]. [6]. [7] все запрацювало.
Усім дуже дякую.