说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Word做Delphi报表输出工具

HTML文档下载 WORD文档下载 PDF文档下载
用Word做Delphi报表输出工具

笔者在实际应用中发现,报表的内容一般很少变动,但其字体格式及版式是经常变动的,而且有时用户为了某种需要,不想修改数据库的真实内容而又要改变报表内容。如果用ReportSmith可以解决前者问题,但对于后者则无能为力了,且其界面是英文的,不合用户习惯。如果用3.0中的TQReport的报表部件,则两者都不能实时解决,必须修改原代码后重新编译才能使用。而使用Word及Excel则完全可以克服以上不足。具体实现如下(以Word实现为例):

首先用Word编辑报表格式,并排好版,把将要输出的数据项用表单域代替,并取名。这里我们暂时假设有表单域Item1及Item2(均为文本型)

将这个文档存为模板文件Example.dot,然后按如下步骤进行:

1)运行Delphi3,在Form1里加入一个System部件集里的TDdeClientCov部件,取名为DdeExample

将其ConnectMode设为ddeManual(手动方式);将DdeService设为‘(WinWord)’;将ServiceApplication设为‘WinWord’。

2)编写一个自定义过程,以激活Word,如下:

procedure Tform1.WordActive(Cmds: TStrings);

var

WordPath: String;

begin

if(not DdeExample.OpenLink) then {判断是否巳动态链接}

begin

if(FindWindow('OpusApp'

nil)=0) then

begin

WordPath := 'C:\msoffice\winword';

if(WordPath='') then

ShowMessage('中文Word未安装或未设置路径,请安装设置Word中文 版。')

else begin

DdeExample.ServiceApplication := WordPath+'\Winword.exe';

if(DdeExample.OpenLink) then {如果巳动态链接执行宏命令}   

DdeExample.ExecuteMacroLines(Cmds

False)

else

ShowMessage('无法启动Word中文版!');

DdeExample.ServiceApplication := 'WinWord.exe';

end;

end

else begin{如果巳动态链接执行宏命令}

DdeExample.ExecuteMacroLines(Cmds

False);

end;

end

else

DdeExample.ExecuteMacroLines(Cmds

false);

end;

在private声明区里加入如下:

procedure ActiveWord(Cmds: TStrings);

3)在Form1中加入一个按钮Button1

在其onclick事件里写如下代码:

procedure TForm1.Button1Click(Sender: TObject);

var

Cmds:TStringList;{创建Cmds}

TempItem1

TempItem2:String;

begin

cmds:=TStringList.Create;

cmds.Clear;

TempItem1:='数据项一';

TempItem2:='数据项二';

with Cmds do

begin

Clear;

Add('[FileNew.Template ="Example.Dot″]');{打开模板文件Example.Dot}

Add('[AppMaximize]');{文档最大化}

Add('[SetFormResult"Item1″

″'+TempItem1+'″]');{将数据TempItem1传给表单域Item1}

Add('[SetFormResult"Item2″

″'+TempItem2+'″]);{将数据TempItem2传给表单域Item2}

end;

WordActive(DdeExample

Cmds);{调用自定义过程}

Cmds.Free;{释放Cmds}

end;

运行这个程序,单击Button1,大家可以发现Word被启动了,屏幕上出现了:数据项一;数据项二两个数据项。最后,大家可以任意修改本报表的格式及数据,因为这时这个报表与具体的应用程序巳没有关系了。

本例中用的是中文Word6或中文Word7。由于Word97的宏命令巳变为Visual Basic语句,如大家想用Word97实现,请将其宏命令改变为相应的代码。

这是个简单的示例,大家可以利用Word的宏录制功能,录取更多的宏(如自动生成表格、填充文字、变动字体等宏命令),并与数据库的各种表联系起来,依次加入Cmds中即可实现您所要求的更复杂的功能。

触宝输入法产品经理解析iOS 8第三方输入法开放程度 专访联想谢政维:功耗和价格是天蝎项目最大障碍! 《近匠》蚁视科技创始人覃政:ANTVR,虚拟现实的新生 后棱镜门时代:开发者保护应用安全的5大技巧 专访许鹏:谈C程序员修养及大型项目源码阅读与学习 65种GPU性能测试,AMD开源驱动领先! 一周消息树:我们从WWDC 2014收获了什么? 精益设计:“纸上谈兵”的说服力 指尖上的艺术——如何运用代码发挥无限创意 周末巨献:100+诡异的数据集,20万Eclipse Bug、死囚遗言等 TIOBE 2014年6月编程语言排行榜:Swift能否取代Objective-C? 移动游戏后端:开发还是购买?你必须知道的6件事 Vuforia SDK 3.0发布在即 全球注册开发者已逾10万 最受职场青睐的十大热门云计算技能盘点 Android Bootstrap:开发也能用模板,省时又省力! Facebook开源又一力作,欲借Broadcom开放交换机 华为敏捷网络:坚持被集成,引领ICT融合 专访赵桂华:.Net也有春天及高性能网站架构实践 《近匠》Testin:云测试除了APP和真机 还有可穿戴和汽车 应用开发利器FXForms:iOS上实现各种Form View Firefox 30正式版:支持GStreamer 1.0技术、内置全新Gecko 30内核 从阿里、UC联姻 看移动互联网“入口”之争 AppCode发布3.0.1更新,支持Xcode 6和Swift 智能家居持续升温:苹果HomeKit合作伙伴Honeywell发布恒温器 欲与谷歌、亚马逊抗衡,苹果推CloudKit拥抱云服务 针对新一代物联网应用 Atmel推全新32位微控制器 实时计算,流数据处理系统简介与简单分析 Cue:秒杀HealthKit,打造自己的家庭医生 新iPhone要来:4.7就够了么?我们还有更大的 Docker迈入云(DockerHub)+端(Docker引擎)时代 《近匠》壹枱智能钢琴:改造音乐行业的新“玩”家 急急急!!! PB6.5与MS SQL7.0连接问题 调查一下,青蛙举左手,恐龙举右手,比例是多少 各位请帮忙!!急需PB5下载!! 调查:大家作何打扮? 關于Exchange Server的管理!!! 软件发布:华容道 如何用PHP在页面里调用word编辑器,使之能在网页上编辑WORD文档? sql server 数据库ccyy,restore时总出错? DELPHI文本操作得一個小問題,請各位指教!!!! 关于鼠标左键单击与按住不放的区别? 高分求问,数据源的问题! 建议增加我的收藏夹功能 求教包容器问题 一个三层数据库的问题: VB爱好者们,帮小弟个忙!!!谢谢 怎么样动态建立一个新的ADOTable?? 十万火急,关于Unix平台下C编程(FTP传输方面) 我的英文还凑合,那么我应该选择4 中文版,还是 5英文版?(众所周知,5中文版翻译太差) 求开发 ActiveX Libary 的详细步骤! Com Object 与 Automation Object 区别,如何用? 用VB如何处理多个用户同时操作一个DBF文件的错误? 一个进程为VC2.0, 另一个为VC6编的MFC程序。如何控制从第2个控制第一个进程? 请assdeng(山野村夫)看看 pb,delphi,vb三种快速成型的语言都分别适合开发那些软件?欢迎大家来讨论 请问各位同仁如何设置sybase anywhere服务器参数? 串口通讯能否用pb做成动态连接库的形式?(急) 怎样使Response.redirect打开一个新窗口 为什么环境变量替换不正确? 怎么打开foxpro中,通过剪切板考过去的图片,dbimage和image控件都不能打开,显示“bitmap is not valid” vaj中如何使用自己的JAR? 怎样改变当前窗口的大小,是当前窗口最大化? 高手争峰 如何把一个log文件读到数据结构中去 请教一个很菜的问题:) 这个程序有什么问题? 怎样做???? 简单问题,可就是搞不定!! 请问jsp中servelet在win2000中的设置方法,需要下载什么类库文件么? 一个新问题,那就是点击工具栏的退出按钮以后只退出当前打开的窗口,而不是整个应用! 如何在 index.htm 中引用 count.asp ? 远程数据库访问的问题--亟待高手们解答 王国荣的电子信箱是哪里? 我的程序生活 先给50分,稍后在加:我正在做一个系统,需要做到每次开机时提醒用户有哪些事情要做! [Tips]获取Memo&Richedit中光标坐标的最简单方法! 急急,如何才能把图片的底色与窗口的底色自然地融为一体? 如何改变按钮的颜色? 在mtml help workshop 中如何制作带上下文关联ID的帮助 调试程序时,控制台程序与直接建立的C++程序有区别吗? 给菜鸟推荐本书 VB调用外部DLL问题 【洗心革面,重新做人,割发断指,庄严声明】 从今以后 kook 不近女色,不灌疯水,以 panda_w 为榜样,苦练VC,研习汇编,做一个 CSDN 的正面典型! 国庆节动物园的成人门票每张8元,儿童门票半价每张4元,全天共售3000张票,总收入15600元.这一天售出的成人票和儿童票各多少张? 某校26名老师带领600名学生到公园游玩.游园票价格如下表,你会设计购票方案吗?成人16元儿童8元团体10元1 实验小学四3班的48名同学去游乐园春游,中午在餐厅订盒饭.餐厅规定:每买5份就能赠送1份.请你帮他们设计一个最经济的购买方案. 六一儿童节,某动物园的成人门票每张8元,儿童票半价,全天共售出门票3000张,共收入15600元,则这天售出了成人票和儿童票各多少张? 王老师带领6名学生去公园游玩.成人票价每张30元,儿童可享受半价优惠.带150元够不够买票? 晨光小学六一班有36人到附近公园游玩,售票门口写着:“门票每人8元,40人以上可降价1/5.怎样买票花费最 国庆节动物园的成人票是8元,儿童票4元.全天共售票3000张,总收入15600元,一天售成人票和儿童票各多少张?(方程解答) 3位老师带42位小学生去公园游玩 他们最少要交多少钱门票钱 成人9.5元 学生5.5元 团体6.5元[10人以上]急 帮忙 48名同学去游乐园春游,中午在餐厅订盒饭,餐厅规定每买5份赠送一份,设计最经济购买方案 张小冬和刘文斌由他的爸爸带着,一起去动物园游玩.(修改病句) 4位老师带110名学生到公园游玩,门票共付472元.学生票价是多少元?游客须知:学生票价是成人票的一半. 实验小学四(3)班的48名同学去游乐园春游,中午在餐厅订盒饭.餐厅规定:每买5份就能送一份.请你帮他们设计一个最经济的购买方案.不要方程算式(☆_☆) 张小东和刘小斌由他的爸爸带着,一起去动物园游玩.(修改病句)急啊!只有1小时的时间, 7位老师带领46名学生到公园游玩,怎样够票最合算 ,共需要多钱?学生15,成人30元,团体18元,(30人以上)急, 48名同学去春游,中午定盒饭,餐厅规定:没买5份就能赠送1份,怎样购买 修改病句;1,我听到动听的声音美丽的笑脸,2,我们全校师生和老师去动物园游玩.3,天下着大雨和大风 . 5位老师带48名同学去参观动物园怎样买最合算,成人票十元学生票五元,集体票,十人以上六元 关于海底世界的作文 400字 李老师带38名同学去动物园观看大象表演,成人票每人30元,儿童半价,购买门票一共需要多少元? 学校组织六年级200名师生去参观动物园,共付门票1085元.已知每张成人票是10元,每张学生票是5元.去动物园参观的老师和学生各有多少人? 快 急 要的过程详细点 关于海底世界的作文(100字) 王老师和李老师带来领39名学生一起参观动物园请你设计一个购买门票的方案即让所以的学生和老师都能进入动物园游玩又花钱最少? 成人票每人3元 儿童票每人2元 团体票15元( 可供10人参 小梅和奶奶去动物园玩.买门票时奶奶付了50元钱,找回了8元.已知学生价是成人票价的一半,学生票和成人票的票价各是多少元? 关于海底世界的作文(100个字) 李老师带一批学生去动物园秋游,售票员告诉老师两种优惠方案:一种是老师免费,学生按7.25折优惠;一种是全体师按7折优惠,若从费用角度思考,应选择哪种方案? 三年级3名老师,带50名学生去植物园,门票【成人10元,儿童5元,团体票10人以上6元】怎样买票合算 作文写海底世界的300字!急 光华小学二年级的老师带同学去参观动物园,门票儿童20元,成人40元,两位老师带48位同学去参观动物园,买门票一共需要多少钱? 六(一)班同学36人去动物园游玩,门口的购票须知如下:1.游客凭票进入大门;2.成人票每张20元,学生票每张10元;3.10张票可享受团体优惠1/8;4.40张票可享受团体优惠1/5.请你帮忙算一算,六( 求一篇以游海底世界的作文 六(1)班45名学生到动物园去参观,门口的价格牌上写着"每人5元,团队票八五折优惠".这个班买团体票可以节省多少元钱? “六一”节,动物园儿童门票比原来优惠20%,优惠后动物园儿童门票每张20元,原来动物园儿童门票的价格是每张多少元? 请问北京海洋馆,富国海底世界,太平洋海底世界哪个更好玩呀?顺便说下地址和里面玩的项目~ 某班55名学生到动物园去参观,门口的价格牌上写着“每人5元,60张以上为团体票,团体票八五折优惠”这个班怎样买票比较合适?可节省多少元? 动物园门票每位大人20元,动物园门票大人20元,小孩10元.六一儿童节那天,儿童免票,结果与前一天相比,大人增加到原来的1.6倍,儿童增加到原来的1.9倍,共增加了2100人,但门票收入与前一天相同, 北京海洋馆 太平洋海底世界哪个好玩些?麻烦说一下这两个里面都有什么玩的~大概能玩多久~我和男朋友去哪个比较好呢? 某班55名学生到动物园去参观,门口的价格牌上写着"每人5元,团体票八五折优惠,"这个班怎样买票合算 请问重庆动物园和永川动物园哪个好玩些,现在去的话成人与儿童的票价分别是多少?自驾游 我打算和女朋友去北京玩 请问北京动物园海洋馆 富国海底世界 太平洋海底世界这3个地方哪比较好玩 六一班40名学生到动物园参观,门口的价格牌上写着“每人5元,团体票八五折优惠”.这个班买团体票参观可节省多少元 星期天,爸爸妈妈带着小丽去公园玩,买门票共用去了37.5元.已知一张成人票与两张儿童票的价格相等,一张成人票多少钱 北京动物园\海洋馆\富国海底世界\太平洋海底世界哪个好玩点?最好的是去过的介绍下还有哪个里面有表演啊?大概几点? 请根据以下提示,用英语写篇短文介绍你市动物园的情况1.中国最大的动物园之一,有数百种动物.2.有几十种鸟,黄色的,绿色的,橘红色的,棕色的,歌声特别美妙.3.有大大小小的许多猴子,很活跃, 十八名同学去动物园参观,学生每人2元,20人以上团体票安八折出售,怎么买票合适? 爸爸妈妈星期日带小东去游公园,买门票共用去3.5元,已知一张大人票的价钱与3张小孩爸爸妈妈带小明游公园,买门票用去3.5元,已知一张大人票价与三张小孩票价相等.一张大人票()元. 江西南昌新动物园的作文 某公园门票的价格是每位20元,20以上(含20人)的团体票8折优惠.现有18位游客要进该公园,如果他们买20人 爸爸妈妈带小玉去公园玩,他们买门票一共用去27.5元.已知一张成人票与两张儿童票票价相等,一张成人票多少 成人票每张50元 儿童票每张30元 售出门票700张 共得29000元 设儿童票为x 可列方程()A.30x+50(700-x)=29000B.50x+30(700-x)=29000C.30x+50(700+x)=29000D.50x+30(700+x)=29000 北京故宫博物馆的门票是每位60元,20人以上(含20人)的团体票8折优惠,现有18位游客买20人的团体票,问:比买普通票总共便宜多少钱?此外,不足20人时,多少人买20的团体票才比普通票便宜? 爸爸妈妈带4个孩子一起是动物园~他们带了50块钱~大人票是6块 孩子票是9块 问一共要付多少钱 请写出简单的算式请用?来算 ‘六一儿’童节,某动物园的成人票每张8元,儿童门票半价,全天共售出门票3000张,共收入15600元,则这一售出成人票多少张,儿童票多少张? 某博物馆门票每位10元,20 人以上地(含20 人)团体票8折优惠,先有18名学生按20人购买团体票 高分悬赏~!比买普通票便宜多少元钱?当参观的学生人数不足20人时,至少应有多少人才可买20人的团体 爸爸妈妈带小明去逛公园买门票公用十七点五元,已知一张成人票与三张儿童票的价格相同,一张成人票要多少钱? 动物园售两种门票成人票每张8元儿童票每张5元周日哪天售出成人票和儿童票数量相同共收入910这两种门票各售出多少张? 18名同学到动物园去观赏动物,在动物园的售票处写着:学生票每人2元,20人以上的团体票按八折优惠.请问他们该如何买票?(写出所有方案并选出你认为合理的方案)但他共18人能买团体票吗? 小华和爸爸妈妈到公园游玩、买门票共用去17.5元,已知成人票是儿童票的2倍,一张成人票的价格是多少元? 动物园成人票8元,儿童票4元全天共售3000张,共收入15600元.问售出成人票和儿童票各多少张. 某学校15名教师带领215名学生参观动物园,售票窗口告示如下:成人票每张20元,学生票每张10元,团体票(满20人)每张15元.请你设计一套买票方案(既符合规定,又花钱较少),并计算你的方案需 东胜小学六(1)班和六(2)班租车去旅游,共花450元.已知六(1)班有40人,六(2
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn