那位高手能帮我实行WORD在ole实现打印预览和把quickrep的报表保存成WORD文档(100分)

  • 主题发起人 主题发起人 heijuanma
  • 开始时间 开始时间
H

heijuanma

Unregistered / Unconfirmed
GUEST, unregistred user!
那位高手能帮我实行WORD在ole实现打印预览和把quickrep的报表保存成WORD文档,高手们
这应该能实行吧?
 
procedure TForm1.butSaveClick(Sender: TObject);
var
ItemIndex:OleVariant;
i,j: integer;
TempDoc,NewTempDoc,TempWord,TempEmpty:OleVariant;
TempW:OleVariant;
Temp1,Temp2,Temp3,Temp4:OleVariant;
TempTemp : string;
Tt : String;
T: OleVariant;
begin
try
for j := 0 to RzListView1.Items.Count-1 do
begin
TempEmpty := EmptyParam;
TempDoc := EmptyParam;
NewTempDoc := True;
ItemIndex := 1;
try
Wordapplication1.Connect;
except
MessageDlg('无法打开Word,请确认已安装Word。', mtError, [mbOk], 0);
Abort;
end;
//打开指定WORD文档
TempWord := Edit1.Text ;
//WordApplication1.Visible := True;
WordApplication1.Documents.Open(TempWord,TempEmpty,TempEmpty,
TempEmpty,TempEmpty,TempEmpty,TempEmpty,
TempEmpty,TempEmpty,TempEmpty);
TempDoc := EmptyParam;
NewTempDoc := False;

TempWord := wdGoToBookmark;
//方法:用Bookmarks;
//i := wordapplication1.ActiveDocument.Bookmarks.Count;
//showmessage(inttostr(i));

for i:= 0 to wordapplication1.ActiveDocument.Bookmarks.Count-1 do
begin
T := i+1;
TempEmpty := EmptyParam;
//取出bookmard的名字
TempW := WordApplication1.ActiveDocument.Bookmarks.Item(T).Name;
IF TempW = 'c' then
begin
TempTemp := RzListView1.Items[j].Caption;
wordapplication1.Selection.GoTo_(TempWord,TempEmpty,TempEmpty,TempW);
wordapplication1.Selection.TypeText(TempTemp);//'一个好人'
end;
if TempW = 'd' then
begin
TempTemp := RzListView1.Items[j].SubItems.Strings[0];
wordapplication1.Selection.GoTo_(TempWord,TempEmpty,TempEmpty,TempW);
wordapplication1.Selection.TypeText (TempTemp);//'一个好人';
end;
end;

//保存退出WORD
try
wordapplication1.ChangeFileOpenDirectory('C:/My Documents');
Temp1 := 'b.rtf';
Temp2 := wdFormatDocument;
Temp3 := '';
Temp4 := True;
TempW := False;
WordApplication1.ActiveDocument.SaveAs(Temp1,Temp2,TempW,
Temp3,Temp4,Temp3,TempW,TempW,TempW,TempW,TempW);
wordApplication1.Quit;
WordApplication1.Disconnect;
showmessage('保存成功');

except
on E: Exception do
begin
Showmessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;

end;
 
to smallmoneybags
谢谢你的回答,不过不是我要的,我要打印预览的代码啊?
 
who! help me!!!!!!!!!!!
 
我知道你们会,我看了好多,就是找不到答案
 
多人接受答案了。
 
张老大,我没有重新开贴,不介意吧,我看了好多dfw上的贴子,有人遇到过和我一样的问题,
但我用那些DFW的方法还是不能解决我的问题,我怕另开贴,会被人唾骂,还请请多指教
我用这个回答我的这个贴的方法,连接,打开word文档都可以实现,但在保存文件的时候
报'命令失败',我改了其中的几个参数,而保另存为一个文件的时候只有一个空文件名:没有
内容,:(。
后我用其它富翁的方法,结果还是一样,像

procedure TForm1.Button2Click(Sender: TObject);
var //存盘
SaveChanges,OriginalFormat,RouteDocument: OleVariant;
SavePath: OleVariant;
begin
SaveChanges := WdDoNotSaveChanges;
OriginalFormat := UnAssigned;
RouteDocument := UnAssigned;
try
SavePath := 'd:/samp.doc';
WordDocument1.SaveAs(SavePath);
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Quit(SaveChanges,OriginalFormat,RouteDocument);
WordApplication1.Disconnect;
except
On E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
张老大,问题困了我一个星期了,还是不能解决,还望批点一二
 
不好意思,我没有作过OA的开发[:(]
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
I
回复
0
查看
489
import
I
后退
顶部