Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2010, 20:12   #1
oasis
 
Регистрация: 29.10.2009
Сообщений: 7
Печаль Формирование отчёта в Word

Здравствуйте, люди добрые и отзывчивые!
Помогите пожалуйста!
Имеется код:

Код:
procedure TForm5.Button4Click(Sender: TObject);
begin
  doc:= CreateOleObject('Word.Basic');
  doc.FileNew(Template:='E:\Гульнара\Практика\octchet.doc',NewTemplate:=0);
  doc.EditGoTo('name');
  doc.Insert('название');
 doc.AppShow;
end;
По нажатию кнопки должен открыться Word-документ с уже заранее созданными закладками. И в место закладки нужно записать текст.
В итоге: документ открывается, но текст записывается в самом начале документа, как будто закладки там никакой нет. Что у меня не правильно? и как исправить? Подскажите пожалуйста, очень-очень надо

Последний раз редактировалось oasis; 21.07.2010 в 20:43. Причина: уточнение темы
oasis вне форума Ответить с цитированием
Старый 22.07.2010, 13:00   #2
ov_lab
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от oasis Посмотреть сообщение
Здравствуйте, люди добрые и отзывчивые!
Помогите пожалуйста!
Имеется код:

Код:
procedure TForm5.Button4Click(Sender: TObject);
begin
  doc:= CreateOleObject('Word.Basic');
  doc.FileNew(Template:='E:\Гульнара\Практика\octchet.doc',NewTemplate:=0);
  doc.EditGoTo('name');
  doc.Insert('название');
 doc.AppShow;
end;
По нажатию кнопки должен открыться Word-документ с уже заранее созданными закладками. И в место закладки нужно записать текст.
В итоге: документ открывается, но текст записывается в самом начале документа, как будто закладки там никакой нет. Что у меня не правильно? и как исправить? Подскажите пожалуйста, очень-очень надо
У меня работает так:
WF:=CreateOleObject('Word.Applicati on');
WF.DisplayAlerts:=wdAlertsNone;
WF.Documents.Open('E:\Гульнара\Прак тика\octchet.doc',False,True);
WF.ActiveDocument.Bookmarks.Item('n ame').Range.Text:='название';
//при необходимости можно выполнить макрос из документа
WF.Run('MacroName');
WF.ScreenUpdating:=True;
WF.Visible:=True;

WF:=Unassigned; //если необходимо оставить документ открытым

//или, если надо закрыть Word
WF.Quit;
WF:=Unassigned;
ov_lab вне форума Ответить с цитированием
Старый 22.07.2010, 15:49   #3
oasis
 
Регистрация: 29.10.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ov_lab Посмотреть сообщение
У меня работает так:
WF:=CreateOleObject('Word.Applicati on');
WF.DisplayAlerts:=wdAlertsNone;
WF.Documents.Open('E:\Гульнара\Прак тика\octchet.doc',False,True);
WF.ActiveDocument.Bookmarks.Item('n ame').Range.Text:='название';
//при необходимости можно выполнить макрос из документа
WF.Run('MacroName');
WF.ScreenUpdating:=True;
WF.Visible:=True;

WF:=Unassigned; //если необходимо оставить документ открытым

//или, если надо закрыть Word
WF.Quit;
WF:=Unassigned;
Попробовала так, документ не открывается, и выдается ошибка:

Проект effecienty.exe вызвыл исключение класса EOleError с сообщением 'Недопустимая строка с указанием класса'. Процесс остановлен. Используйте Шаг или Запуск для продолжения.
oasis вне форума Ответить с цитированием
Старый 23.07.2010, 10:50   #4
ov_lab
Пользователь
 
Регистрация: 24.07.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от oasis Посмотреть сообщение
Попробовала так, документ не открывается, и выдается ошибка:

Проект effecienty.exe вызвыл исключение класса EOleError с сообщением 'Недопустимая строка с указанием класса'. Процесс остановлен. Используйте Шаг или Запуск для продолжения.
почему-то в слове Application форум вставил пробел. Вот он класс и не находит. и "name", "практика" почему-то с пробелами...
И еще я не написал: WF должна быть типа OleVariant.
Если снова будет ошибка, выясняйте в отладчике в какой строке ошибка, т.к. приведенный код работает уже не один год

Последний раз редактировалось ov_lab; 23.07.2010 в 10:56.
ov_lab вне форума Ответить с цитированием
Старый 23.07.2010, 11:55   #5
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Проект effecienty.exe вызвыл исключение класса EOleError с сообщением 'Недопустимая строка с указанием класса'. Процесс остановлен.
Это ошибка OLE при создании позднего связывания, если в реестре на зарегистрировани интерфейс с таким КоКлассом
Код:
WF:=CreateOleObject('Word.Applicati on');
Ошибка в этой строке
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.07.2010, 12:53   #6
oasis
 
Регистрация: 29.10.2009
Сообщений: 7
Печаль

Цитата:
Сообщение от ov_lab Посмотреть сообщение
почему-то в слове Application форум вставил пробел. Вот он класс и не находит. и "name", "практика" почему-то с пробелами...
И еще я не написал: WF должна быть типа OleVariant.
Если снова будет ошибка, выясняйте в отладчике в какой строке ошибка, т.к. приведенный код работает уже не один год
Лишние пробелы-то я убрала. а сообщение всё равно выходит..
не понимаю
oasis вне форума Ответить с цитированием
Старый 23.07.2010, 13:09   #7
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от oasis Посмотреть сообщение
Лишние пробелы-то я убрала. а сообщение всё равно выходит..
не понимаю
попробуйте поставить брекпоинт на строке "WF:=CreateOleObject('Word.Applicat ion');" и потом пошагово просмотреть, где именно выдает ошибку (впринципе должно работать, а то складывается впечатление как будто Word не установлен, но я думаю это не так).
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переход по стрелкам alex77755 Microsoft Office Excel 3 03.06.2010 00:11
Переход на C Gapro Свободное общение 8 09.11.2009 13:02
случайный переход Naposaram PHP 10 01.02.2009 16:47
НЕ могу найти Server Socket в закладке Internet в Delphi 7 для создания серверной части трояна Reds Общие вопросы Delphi 4 11.10.2008 16:27
Переход Gorychev PHP 6 26.05.2008 01:16