Variant Word, Document, Table, Cell;
int RowCount, ColCount;
Word = CreateOleObject("Word.Application.8");
Word.OlePropertySet("Visible", true);
Word.OlePropertyGet("Documents").OleProcedure("Add");
Document = Word.OlePropertyGet("Documents").OleFunction("Item", 1);
Table = Document.OlePropertyGet("Tables").OleFunction("Add", Document.OleFunction("Range", 0, 0), 5, 5);
RowCount = Table.OlePropertyGet("Rows").OlePropertyGet("Count");
ColCount = Table.OlePropertyGet("Columns").OlePropertyGet("Count");
for (int i=1; i <=RowCount; i++)
for(int j=1; j <=ColCount; j++) {
Cell = Table.OleFunction("Cell", i, j);
Cell.OlePropertyGet("Range").OleProcedure("InsertAfter", WideString(IntToStr(i)) + WideString("-") + WideString(IntToStr(j)));
}
Document.OleProcedure("SaveAs", ChangeFileExt(Application->ExeName, ".doc"));//здесь...
Word.OleProcedure("Quit");
Как до конца расконнектиться с Word2000?
Открываю MyShablon.dot и выбрасываю из проги данные в Ворд. После завершения расконнекчиваюсь. Видимо, при этом Ворд желает закрыться и вылазит сообщение "Сохранить ли Документ1? Да. Нет. Отмена." Приходится каждый раз жать "Отмену".
Народ, посоветуйте, что делать.
Как программно нажать "Отмену"?
Или как сделать так, чтобы Ворд не закрывался при расконнекчивании?
Цитата:
Originally posted by Dani
C++ Builder 6.0.
Открываю MyShablon.dot и выбрасываю из проги данные в Ворд. После завершения расконнекчиваюсь. Видимо, при этом Ворд желает закрыться и вылазит сообщение "Сохранить ли Документ1? Да. Нет. Отмена." Приходится каждый раз жать "Отмену".
Народ, посоветуйте, что делать.
Как программно нажать "Отмену"?
Или как сделать так, чтобы Ворд не закрывался при расконнекчивании?
C++ Builder 6.0.
Открываю MyShablon.dot и выбрасываю из проги данные в Ворд. После завершения расконнекчиваюсь. Видимо, при этом Ворд желает закрыться и вылазит сообщение "Сохранить ли Документ1? Да. Нет. Отмена." Приходится каждый раз жать "Отмену".
Народ, посоветуйте, что делать.
Как программно нажать "Отмену"?
Или как сделать так, чтобы Ворд не закрывался при расконнекчивании?
Хорошо было-бы между "выбрасывания данных из проги" и "расконнективанием" закрыть файл...
Код:
Просто ставлю на форму WordAppication, называю его, например, WA1 и работаю с ним по типу:
Открываю MyShablon.dot.
...bla-bla-bla..
TVariant S;
S="Здравствуй, мир!";
WA1->ActiveDocument->Tables->Item(1)->Cell(1,1)->Range->InsertAfter(S);
...bla-bla-bla..
WA1->Disconnect();
И вот здесь-то как раз Word и порывается закрыться.
Как же это обойти?
Как программно нажать "Отмену"?
Ну как?.. :(
Цитата:
Originally posted by Dani
И все бы хорошо, да только я работаю не через ОЛЕ.
Просто ставлю на форму WordAppication, называю его, например, WA1 и работаю с ним по типу:
Открываю MyShablon.dot.
...bla-bla-bla..
TVariant S;
S="Здравствуй, мир!";
WA1->ActiveDocument->Tables->Item(1)->Cell(1,1)->Range->InsertAfter(S);
...bla-bla-bla..
WA1->Disconnect();
И вот здесь-то как раз Word и порывается закрыться.
Как же это обойти?
Как программно нажать "Отмену"?
Ну как?.. :(
И все бы хорошо, да только я работаю не через ОЛЕ.
Просто ставлю на форму WordAppication, называю его, например, WA1 и работаю с ним по типу:
Открываю MyShablon.dot.
...bla-bla-bla..
TVariant S;
S="Здравствуй, мир!";
WA1->ActiveDocument->Tables->Item(1)->Cell(1,1)->Range->InsertAfter(S);
...bla-bla-bla..
WA1->Disconnect();
И вот здесь-то как раз Word и порывается закрыться.
Как же это обойти?
Как программно нажать "Отмену"?
Ну как?.. :(
1. Это все равно ОЛЕ...
2. Сохранить файл и Ворд ничего не попросит.
3. Или закрыть файл Close(...) там есть параметр подавляющий вызов "Отмены".
Close(SaveChanges, // = wdSaveChanges
OriginalFormat,
RouteDocument)
4. Вроде можно глобально подавить все запросы.
Application.DisplayAlerts = wdAlertsNone
Блин, это вообще можно?.. :(
Цитата:
Originally posted by Dani
Мне не нужно сохранять документ на диске (зачем копить их в папке?), мне не нужно закрывать его. Нужно, чтобы он остался просто выведенным в Ворд. Чтобы пользователь сам решал, что с ним делать. И чтобы кнопки никакие не нажимать после расконнекчивания.
Блин, это вообще можно?.. :(
Мне не нужно сохранять документ на диске (зачем копить их в папке?), мне не нужно закрывать его. Нужно, чтобы он остался просто выведенным в Ворд. Чтобы пользователь сам решал, что с ним делать. И чтобы кнопки никакие не нажимать после расконнекчивания.
Блин, это вообще можно?.. :(
Дело в том что Excel определяет был ли изменен файл, и соответственно задает вопрос об сохранении на основании свойства
Workbook->Saved, тип TOLEBOOL. Оно доступно также для записи, поэтому если установить это свойство в true, то Excel не запросит сохранение даже если файл был изменен.