请教各位大侠,关于delphi调用word书签的,
用word书签生成报告
现在我有一个模版,书签我也弄好了,也能生成一个报告了。
但我的要求是要根据数据库里的情况,生成多份报告,而且是生成在同一个word里面。 
请问实现?  if(Application.MessageBox('你确定要生成report文档吗?','提示',MB_OKCANCEL)=IDOK) then
  begin
    wordapp:=CreateOLEObject('Word.Application');
      wordapp.visible:=true;
      if Opendialog1.Execute then
        FileName:=Opendialog1.FileName;   //'f:\a.dot';
         
      wordapp.documents.add(FileName,False);
      wordapp.Documents.Item(1).Books.Item('name_1').Range.Text := 'test';
      wordapp.Documents.Item(1).Books.Item('no_1').Range.Text :=  '1111';
      wordapp.Documents.Item(1).Books.Item('firstName_1').Range.Text := 'S';
      wordapp.Documents.Item(1).Books.Item('LastName_1').Range.Text := 'H';
      wordapp.Documents.Item(1).Books.Item('age').Range.Text :='1';
      
      wordapp.Documents.Item(1).Saveas('report1.doc');
  end;

解决方案 »

  1.   

    既然你都知道生成一个是Item(1)
    那么多份我就不多说吧
      

  2.   

    不好意思,这段代码我也是copy来,对于这里面的item(1)是什么含义我也不清楚。
    看了你的回复,我加了一段:wordapp.Documents.Item(2).Books.Item('name_1').Range.Text := 'test';但执行时报错了,说“集合所要求的成员不存在”敬请指教! 非常感谢!!!!!!
      

  3.   

    wordapp.Documents.Item.add?
      

  4.   

    wordapp.Documents.Item.add(name,range)
    name书签名string
    range是word中选中内容  你的书签所表示的地方  举例Selection.Range
      

  5.   

    您好!!  能不能指导一下,如何具体写? 我花了一天的时间看这些个word的操作,晕了也没找到办法。
    非常感谢!!  
      

  6.   

    抱歉我在4楼打错了,用了上一楼的  不过你应该看的出来吧
    如果你按下面这样写不行,说一下我再研究加书签  就是指定一个位置range 加一个书签name
    wordapp.Documents.Item(1).Books.Item.add(name,range)
    所以你加多个书签的难点  是在于找到哪个地方添加的range 
      

  7.   

    我可能没说清楚,
    我现在碰到的问题是用word做好模版,要替换的地方用word的书签。
    然后用delphi对书签相应位置赋值,完成。但是要生成的报告不是只有一两份,数量不定,而我不可能写一个很长的模版。
    所以我的解决思路是 根据数据量循环取模版,替换数据后,插入到目标word文件里,打印即可。
        碰到的问题是如何反复取模版并插入同一个目标word。
      

  8.   

    表达有些混乱   问人应该抓住点 技术点 哪里不会  不是这样带着逻辑你应该是想要到word里面插入报告,有一定格式要求,不能直接插入。
    你又不可能提前做好所有书签。if是这样的话  1,你的问题可以变为如何在word指定位置插入内容  2,你为何要用书签呢
    {1.通过搜索关键字来定位  
     2,目录结构  标题级别之类定位
    我的资源有份 word api你应该看过吧不然上面书签也写不出来 我资源里面有wps的与word差不多,word api很好找
    }
    else
    {我提供不了建议}