恳请各位delphi高手停步进入,难题有待您的解决了:(十万火急!!)(100大洋相谢了)(100分)

  • 主题发起人 主题发起人 xiao_wen
  • 开始时间 开始时间
X

xiao_wen

Unregistered / Unconfirmed
GUEST, unregistred user!
二进制字段存储的是一个word文档!

如何把数据库中的二进制字段的内容写入到word模版的适当位置???
而且我是要在模版的莫个表格中的适当位置插入二进制字段的内容!!!
(有图形和公式的)

本来可以通过读取word相应表格的方式去插入相应的内容,可我只会用
str1:=adotable1.Fields[24].AsVariant ;
table3.cell(1,1).range.text:=str1;

这样读不出来内容,而且range的text是字符串,而不是二进制的?????
这样做是肯定不对的,可我不知道该怎样解决????

恳请各位高手指教!
 
str1:=adotable1.Fields[24].AsString;?????????????
table3.cell(1,1).range.text:=str1;
 
use ole
createoleobject
 
to lgxing:
我的二进制字段存放的是一个word文档,用asstring肯定读不出来的!!
to wangxd:
用ole的话也一样要把二进制字段存放的word文档插入到word模版中的表格的相应位置?
可我不知道怎样做,能详细些吗????
 
你的意思是把整个word文档原样的作为BLOB字段存起来了?
如果是这样的话可不可以先把它SaveToFile,恢复成Word文档,再把该文档的内容放到模板
里.
 
试试用BMP把图片取出来,再插入文档
 
To :kidneyball
不是,是把blob字段的内容写到word模版的一个表格里的相应位置上!

为何不直接在模版上操作是因为需要把录入的内容存储到数据库中(这项工作已经完成)

/to all :
*** 但现在的问题是要把数据库中的内容(包括blob字段)写到已作好的word模版中打印出来
(就好象申报书样的东西,主要贡献及成就需要有图形和公式的所以用blob存储了,但
现在要把blob的内容答应出来,自己做报表吧,太累了,所以就利用现成的模版从数据库中读取
然后打印出来! 但现在又遇到这个难题。。。。。)
所以特恳请各位高手指教了!

 
str1:=TBlobField(adotable1.Fields[24]).AsString;
这样行不行?
 
你具体说说Blob字段里存着什么格式的东西。照我对上文的理解,你把blob的东西
SavetoFile后就应该是一个可用Word打开的Word文档。如果不是这样,请你说说里面的
格式是怎么样的,或者说,你是怎么样构造这个Blob字段里的数据的
 
To :kidneyball
谢谢你!
To all
不过即使按照你的思路存为文档的话,可我还要这个文档写入到word模版里的摸个表格的
相应位置上的,可怎么处理呢?????见下示意图:

--------------------------------------------------------------------------
| 单位地址:北京市海淀区复兴路。。。 |
|---------------------------------------------------- |
|。。。。
|—————————————————————————————————————
| 主要科技内容 : |
| 用delphi怎样能把blob字段的内容(含有图形和公式)写入到本表格的这个单元 |
|格里????可我用 str1:=adotable1.Fields[24].AsVariant ; asstring是肯定|
| 不行的因为 table3.cell(1,1).range 中range对象能插入文档吗???? |
| 希望各位高手指点迷津! |
| |
|。。。。。。 |
| |
|--------------------------------------------------------------------------|
 
我想你的问题可能是可以这样描述的:

有一组记录,所有的记录都类似这样的记录
addr:单位地址
descr: 成果描述
photo:作者照片,以blob方式存储
你希望将他输入到word中,形成一个文档,其中有图片,有文字。
对吗?

如果是,那么文本不成问题,对图片就不能直接取,而必须创建一个tblobstream对象
var blobs : tblobstream;
fs : TFilestream;
fs := tfilestream.create(filename,fscreate);
blobs := Table2.CreateBlobStream(table2.fieldbyname('photo'));
fs.copyfrom (blobs)
fs.free;blobs.free;
就产生了一个图片文件。
然后再word中把这个图片插进去到表格的合适地方,这个只要录制一个宏,
修改一下就可以了。

基本过程就是这样,你看是否合你的要求。
 
to :sanrex
不是这样的,我的blob字段中存的是一个word文档(里面含有图形和公式,很多图形和 公式)
而且,他们是不能分成图片和其他的。。。
还有我就是不知道该怎样用宏能把一个blob放到word表格的相应位置?????
该怎样做,请帮我!!!!
 
呵呵
首要问题是能判断出转换成STREAM时插入的位置在哪里!:)
 
谢谢大家的参与了!!!!!!!!!
现在,问题我基本上解决了,首先我是通过把blob字段的内容存为一个word文档
并打开然后,全部选中其内容后copy它。
然后再打开word模版,利用其range对象的paste属性 在表格的莫个单元格中粘贴
上去就可以了(不过这样做比较麻烦,且对用户的机器配置要求较高,不知各位高人可有
什么好的方法,谢谢了)

不过我现在又想到了一个新的问题,就是我想把word版里的内容取回到数据库中的
话(因为我做的是一个报表打印系统,这样的话可以不用做录入界面,可以省去很多事情)
可我该怎么办?
因为假如就是去取一些简单的文字东西的话,是比较好办的,可当取到一些大段的
word文档时需要存到数据库中的一个字段中去的时候好象就有些麻烦的,我不想用那个copy的
方法(把表格的内容copy到一个临时的空的word 文档中,然后再把它存到blob字段 里),还有
对于放在表格中的内容可以这样做,可没有放在表格中的文字我该怎样取他们呀??????请
各位高手指点!!!
 
就应该这么做,可惜没早看到
 
To crab :
可是你能告诉我的新思路该怎样解决吗????

可当取到一些大段的word文档时需要存到数据库中的一个字段中去的时候好象就有些麻烦的,我
不想用那个copy的方法(把表格的内容copy到一个临时的空的word 文档中,然后再把它存到blob
字段 里),还有对于放在表格中的内容可以这样做,可没有放在表格中的文字我该怎样取他们的
内容然后放到表的莫个字段里??????请你指点指点!!!
特请你的答复!!!!!!!拜托了!!!!!
 
斑竹可以结束本次问答,这个问题我自己已经解决了!谢谢大家的参与!
 
呵呵,结束问题也要斑竹大架啊!!!
 
多人接受答案了。
 
后退
顶部