Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

HELP!!!!!!   Найти похожие ветки 

 
Lariska   (2002-10-08 13:57) [0]

Доброе время суток господа! Помогите нерадивой!! У меня совершенно тупо выводился отчет в MSWord. Все было чудно, но тут меня попутал нечистый сделать апдейт моего офиса. И теперь вместо отчета в ворд мне рисуется такой кошмар типа: "Access violation at address 65346990 in module "oleaut32.dll". Read of address 658670E1". Что делать-то теперь????...


 
relict   (2002-10-08 15:25) [1]

ты из делфики в ворд пишеш...
если да то в делфи есть примерно такие строки:

....
var
Word: Variant;
....
Word:= CreateOleObject( ..<непомню чего>...,
"Word.Application.<а тут типа версия ворда>") );
...
пишем сам рапорт
...

меняй версию компили и пробуй
хотя может я и не прав..просто видел что где то так было зделано



 
Prooksius ©   (2002-10-08 17:01) [2]

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619885&n=18


 
Lariska   (2002-10-09 06:51) [3]

код такой:
на форме TWordApplication и TWordDocument
по клику на кнопке
.....
var
Shablon, FileName, OldStr, NewStr, replace, ext: OLEVariant;
i:integer;
begin
Shablon:=ExtractFilePath(Application.EXEName)+"f36.doc";
FileName:= ExtractFilePath(Application.EXEName)+"Forma36.doc";
// открывает шаблон
WordApplication1.Documents.Open(Shablon, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
// открывает компоненту с инерфейсом
WordDocument1.ConnectKind:=ckAttachToInterface;
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
// переменные для выполнения методов сервера
replace:=1;
oldStr:="Name";
newStr:=tbClient.FieldByName("Name").Value;
//собственно замена
WordDocument1.Range.Find.Execute(oldStr,EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, newStr, replace);
....

а где тут версию ворда ставить и зачем? если она таже, просто пропаченная.


 
KA_   (2002-10-09 09:23) [4]

Попробуй в uses прописать Word2000, вместо Word97 - они оба содержат TWordApplication и пр. или наоборот :)


 
Lariska   (2002-10-09 09:30) [5]

Да, а где мне взять тогда этот Word2000.dcu? Ох, как же тяжело мне жить с такой тупой головой!


 
Max Zyuzin ©   (2002-10-09 09:32) [6]

А вообще я долго пытался разобраться с этими серверами под Delphi5 потом вышел 6-й и моя прога перестала в нем компелироваться из за того, что количество параметров на все функции выросла в 2 раза. Я забросил такой способ подключения к офиссным прогам.


 
KA_   (2002-10-09 12:22) [7]

2 Lariska:
Word2000.dcu присутствует в D6 - \Delphi\Imports. Если прога написана в пятых, то действуй как советует relict, но придется переписать код.

Кстати, до боли знакомый кусок текста. Люди не читайте легкомысленные статьи. Открывайте библиотеки типов - там все написано.

Итак, после периписи получим примерно следующее:
var
Word: Variant;
ShablonName, FileName, oldStr, replace, newStr: OleVariant;
begin
Word:= CreateOleObject("Word.Application.9");
ShablonName := ExtractFilePath(Application.ExeName) + "1.doc";
try
Word.Documents.Open(ShablonName);
replace := 1;
oldStr := "Name";
newStr := "111";
Word.ActiveDocument.Range.Find.Execute(oldStr,EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, newStr, replace);
FileName := ExtractFilePath(Application.ExeName) + "2.doc";
Word.ActiveDocument.SaveAs(FileName);
finally
Word.Quit(EmptyParam, EmptyParam, EmptyParam);
end;



 
Lariska   (2002-10-09 14:12) [8]

Всем ОГРОМНОЕ спасибо! Теперь все ОК!



Страницы: 1 вся ветка

Текущий архив: 2002.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
3-101131
Veles
2002-10-10 13:02
2002.10.31
Что лишнее в BDE


14-101452
vopros
2002-10-10 17:56
2002.10.31
Выключил, телефоны так хорошо стало.


1-101352
Malc
2002-10-21 05:34
2002.10.31
Как? 3 Вопроса!


1-101248
Дядя Джонсон
2002-10-17 23:00
2002.10.31
Как перейти в самый верх memo?


3-101125
Wetnose
2002-10-08 08:11
2002.10.31
ERWin и русский шрифт