<script></script>
procedure TExprmResultDlg.PreviewExprmReport;
var
Template, NewTemplate,DocumentType,OleVisible:oleVariant;
strTitle_Prior,strText_Prior,strTitle_Last,strText_Last:String;
begin
Try
Wordapplication1.Connect;
Except
Application.MessageBox('您尚未安装 Word应用程序,请先安装Word2000,然后再运行本程序!',
'系统提示',mb_Ok +MB_ICONWARNING);
Abort;
End;
Template := EmptyParam; //表示不使用模板
NewTemplate := False; //表示新建新建文档的类型为文档
Doc.ConnectTo(WordApplication1.Documents.Add(Template, NewTemplate,DocumentType,OleVisible));
//关闭拼音查找和语法查找,以便提高程序运行的效率
WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;
//添加页眉
AddRepPageHeader(18,Edit_RepHeader.Text,alCenter);
//添加页脚 页码设置
AddRepPageFooder(1,alCenter);
m_wordSesson:= WordApplication1.Selection;
WordFont1.ConnectTo(m_wordSesson.Font);
WordFont1.Name := '宋体';
//输出报告信息
AddParagraphTitle('模块信息');//添加段落标题
strTitle_Prior:='厂站名称:';
strText_Prior:=Edit_FactoryName.Text;
AddParagraphContentSingle(strTitle_Prior,strText_Prior);
strTitle_Prior:='测试人:';
strText_Prior:=Edit_TestPeoson.Text;
strTitle_Last:='测试时间:';
strText_Last:=FormatDateTime('yyyy"年"mm"月"dd"日"',now);
AddParagraphContentDouble(strTitle_Prior,strText_Prior,strTitle_Last,strText_Last);
//输出报告内容
AddParagraphTitle('试验结果');//添加段落标题
WriteReportInformation;
AddParagraphTitle('试验结论');//添加段落标题
m_wordSesson.TypeParagraph;
m_wordSesson.TypeParagraph;
m_wordSesson.TypeParagraph;
Wordapplication1.Disconnect;
end;
procedure TExprmResultDlg.AddRepPageHeader(const nFontSize:integer;const strText:String;Const PageFoodAlign:TPageFoodAlign);//添加页眉
var
alTextAlign:OleVariant;
begin
Case PageFoodAlign of
alLeft:alTextAlign:=wdAlignParagraphLeft;
alCenter:alTextAlign:=wdAlignParagraphCenter;
alRight:alTextAlign:=wdAlignParagraphRight;
alJustify:alTextAlign:=wdAlignParagraphJustify;
end;
WordApplication1.ActiveWindow.ActivePane.View.SeekView :=wdSeekCurrentPageHeader;
WordApplication1.Selection.ParagraphFormat.Alignment := alTextAlign;
WordApplication1.Selection.Font.Size:=18;
WordApplication1.Selection.Font.Color:=ClBlack;
WordApplication1.Selection.InsertAfter(strText);
end;
procedure TExprmResultDlg.AddRepPageFooder(const nFistPageNum:integer;Const PageFoodAlign:TPageFoodAlign);//添加页脚 页码设置
var
mmm,nPageNum,aaa,alTextAlign:OleVariant;
begin
Case PageFoodAlign of
alLeft:alTextAlign:=wdAlignParagraphLeft;
alCenter:alTextAlign:=wdAlignParagraphCenter;
alRight:alTextAlign:=wdAlignParagraphRight;
alJustify:alTextAlign:=wdAlignParagraphJustify;
end;
mmm:=wdLine;
nPageNum:=nFistPageNum;
aaa:=wdFieldPage;
WordApplication1.ActiveWindow.ActivePane.View.SeekView :=wdSeekCurrentPageFooter;
WordApplication1.Selection.Move(mmm,nPageNum);
WordApplication1.Selection.ParagraphFormat.Alignment := alTextAlign;
WordApplication1.Selection.InsertAfter('第');
mmm:=wdCharacter;
WordApplication1.Selection.Move(mmm,nPageNum);
WordApplication1.Selection.Fields.Add(WordApplication1.Selection.Range,aaa,mmm,nPageNum);
aaa:=wdFieldNumPages;
WordApplication1.Selection.InsertAfter('页/共');
WordApplication1.Selection.Move(mmm,nPageNum);
WordApplication1.Selection.Fields.Add(WordApplication1.Selection.Range,aaa,mmm,nPageNum);
WordApplication1.Selection.InsertAfter('页');
WordApplication1.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;
end;
procedure TExprmResultDlg.PastePicToWord(Const imageName:TImage);
var
AFormat:word;
AData :cardinal;
APalette : hpalette;
begin
imageName.Picture.SaveToClipboardFormat(AFormat,AData,APalette);
Clipboard.SetAsHandle(AFormat,AData);
doc.Sentences.Last.Paste;
end;
procedure TExprmResultDlg.AddParagraphTitle(const strTitle:String);//添加段落标题
begin
//加回车键,形成段落:
ParaFmt.SpaceBefore := 30;
ParaFmt.SpaceAfter := 30;
//m_wordSesson.TypeParagraph;
WordFont1.Size:=14;
WordFont1.Bold:=1;
m_wordSesson.TypeText(strTitle + #13);
m_tableNum:=m_tableNum + 1;
end;
procedure TExprmResultDlg.AddParagraphContentSingle(Const strTitle,strText:String);
var
i:integer;
TableBehavior,AutoFitbehavior:oleVariant;
begin
TableBehavior:=FALSE;
AutoFitbehavior:=FALSE;
Doc.Tables.Add(WordApplication1.Selection.Range, 1 , 4, TableBehavior,AutoFitbehavior);//创建表格
m_tableRow:=m_tableRow + 1;
for i:=1 to 4 do
begin
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Font.Size := 12;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Font.Bold:=0;
//去掉表格边框
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderLeft).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderRight).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderTop).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderBottom).LineStyle := wdLineStyleNone;
end;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Merge(Doc.Tables.Item(m_tableNum).Cell(m_tableRow,3));
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Merge(Doc.Tables.Item(m_tableNum).Cell(m_tableRow,3));
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,1).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Range.ParagraphFormat.Alignment:=wdAlignParagraphLeft;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,1).Range.Text:=strTitle;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Range.Text:=strText;
WordApplication1.Selection.SetRange(100 * m_tableRow,100 * m_tableRow);//设定段落范围
end;
procedure TExprmResultDlg.AddParagraphContentDouble(Const strTitle_Prior,strText_Prior,strTitle_Last,strText_Last:String);
var
i:integer;
TableBehavior,AutoFitbehavior:oleVariant;
begin
TableBehavior:=FALSE;
AutoFitbehavior:=FALSE;
Doc.Tables.Add(WordApplication1.Selection.Range, 1 , 4, TableBehavior,AutoFitbehavior);//创建表格
m_tableRow:=m_tableRow + 1;
for i:=1 to 4 do
begin
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Font.Size := 12;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Font.Bold:=0;
//去掉表格边框
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderLeft).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderRight).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderTop).LineStyle := wdLineStyleNone;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,i).Range.Borders.item(wdBorderBottom).LineStyle := wdLineStyleNone;
end;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,1).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Range.ParagraphFormat.Alignment:=wdAlignParagraphLeft;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,3).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,4).Range.ParagraphFormat.Alignment:=wdAlignParagraphLeft;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,1).Range.Text:=strTitle_Prior;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,2).Range.Text:=strText_Prior;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,3).Range.Text:=strTitle_Last;
Doc.Tables.Item(m_tableNum).Cell(m_tableRow,4).Range.Text:=strText_Last;
WordApplication1.Selection.SetRange(100 * m_tableRow,100 * m_tableRow);//设定段落范围
end;
分享到:
相关推荐
【Delphi与Word之间的融合技术】是指在Delphi开发环境中,通过不同的技术手段与Microsoft Word进行交互,以实现更高级的文档处理功能。这通常涉及到使用Microsoft Word的VBA(Visual Basic for Applications)宏和...
这个名为"Delphi漂亮字体控件包.7z"的压缩文件提供了一种实现这一目标的方法,它包含了一些定制的字体控件,能够帮助开发者创建具有透明度、渐变色效果的Label,以及模拟Word中特殊字体的视觉效果,比如淡入淡出动画...
本书共分三部分、16章,主要介绍Delphi 5集成开发环境,对象Pascal语言、组件、通用编程技术、动态链接库、多线程、多媒体编程、数据库编程、网络编程和Windows API编程等。 目 录 前言 第一部分 Delphi编程基础 ...
第三部分 Delphi高级编程技术 第10章 多媒体技术 185 10.1 多媒体 185 10.1.1 概述 185 10.1.2 多媒体应用领域 186 10.1.3 多媒体软件开发工具 187 10.2 图像格式的处理 188 10.2.1 位图 189 10.2.2 JPEG文件 191 ...
1. **与Word的完全兼容**:系统与Word的深度融合不仅方便了用户的文档编辑,还提供了修订历史追踪等功能,增强了文件流转过程中的透明度。 2. **灵活的安全管理机制**:通过不同的权限等级设置,确保信息的安全流通...
C# 由 Anders Hejlsberg 和 Scott Wiltamuth 主导设计,Hejlsberg 曾经是 Turbo Pascal 和 Delphi 的主要开发者。 .NET Framework 是 C# 的核心支撑,它包含了通用语言运行时(Common Language Runtime, CLR)、...
- **编程语言**:如Visual Basic、Delphi,适合专业开发者进行更复杂的多媒体应用开发。 这些软件工具为不同需求和技能水平的用户提供了解决方案。 #### 四、多媒体元素及其应用 多媒体元素主要包括文字、声音、...
第1章 开发环境 1 ...0295 如何将应用程序背景与桌面融合 191 0296 如何在屏幕最前面显示滚动字幕 192 0297 制作磁性窗体 193 0298 制作浮动窗口 194 0299 制作另类提示窗口 195 0300 将窗体...
第1章 开发环境 1 ...0295 如何将应用程序背景与桌面融合 191 0296 如何在屏幕最前面显示滚动字幕 192 0297 制作磁性窗体 193 0298 制作浮动窗口 194 0299 制作另类提示窗口 195 0300 将窗体...
标题中的“18870_actionband_popup_menu_component_see_d7_patc_Indy_Word for”似乎是指一个针对 Indy 10 的更新补丁,可能是用于修复或增强 ActionBand 弹出菜单组件的功能。ActionBand 是 Delphi 中用于创建...
5. **Delphi与Word/Excel数据转换**:掌握如何在Delphi中读取和写入Office文档,实现数据的无缝交互。 6. **Delphi与XML**:学习XML在Delphi中的应用,包括解析、生成XML文档,以及与Web服务的集成。 #### Delphi...
电子签名[数字签名]功能采用标准接口,可以和企业已有的PKI系统无缝融合。 2 增强对WPS文档和金山电子表支持。增加保存PPT为HTML,支持UTF8 URL等功能 V2.5.2.3版本新增了对WPS痕迹保留的支持,并支持金山电子表。...
- **正确答案**:多媒体技术是指将多种媒体(如图像、音频和视频)融合在一起的技术,核心在于数字技术的应用。 ### 33. 计算机网络技术基础 - **正确答案**:计算机网络技术的核心组成部分是计算机技术和通信技术...
7. **数据保存与文档生成**:实验要求生成Word文档来保存查询结果,这涉及到文件操作和数据格式转换,学生需要了解如何在Delphi中调用外部程序(如Microsoft Word)并传递数据。 8. **界面设计**:界面设计包括菜单...
- **先进技术运用**:采用DELPHI+SQLServer开发,保证多客户端稳定高效的同时收费。 - **灵活性设计**:系统设计大量采用模块化、插件式设计,增强了灵活性,满足用户的自定义需求。 - **多层次安全性**:具备优秀、...
房地产信息管理系统是由怡海科技针对中国房地产业的现状研发的,融合了LotusNotes、Delphi、PowerBuilder、Visual C++、Interdev等多种编程语言,实现了办公自动化、数据库管理、网站建设及电话查询等功能。...
信息系统项目管理师是中国计算机技术与软件专业技术资格(水平)考试的一项高级认证,旨在考核考生对信息系统项目的全面管理能力。考试分为上午的综合知识试题和下午的案例分析试题两部分,涵盖了项目管理知识体系的...
开源的LaTeXEE不仅是一个优秀的方程编辑器,更是一个学习和实践软件开发的宝贵资源,尤其是对于想了解OLE技术和Delphi编程的人来说。 总而言之,LaTeXEE作为一个开源的Windows LaTeX方程编辑器,凭借其强大的功能和...
3、适用范围 因为ReportAll报表控件/插件是标准的ActiveX控件,所以所有支持ActiveX技术的前台开发工具(如:Delphi、C++Build、VC++、VB、、VC#、PowerBuild、JavaScript、VBScrip、Excel等)都可以使用ReportAll...