回 帖 发 新 帖 刷新版面

主题:如何在vfp中调用excel实现图、表的制作(之一)

在vfp中不是也能制作图表吗?也对也不对。对于图形来说我们可以通过'查询设计器'(在命令窗口敲入create query)来一步一步生成一个图形,但这样的图形只好看不中用,因为首先你无法打印,更无法生成一个图形文件(生成图形文件的好处是以后想什么时候调看就什么时候看不必重新生成),你必须每看一次便需要用代码生成一次,生成的图形的二次编辑等均无从谈起。报表也一样,vfp提供了制作报表的功能,你可以把报表设计的很花哨。然而(对于vfp6.0而言)这报表只能打印却不能传送给他人。比如你的上司要求你把报表原样以文件的形式通过局域网发送给本单位的十个有关科室供参考或做进一步修改,你总不能要求这十个部门都在微机上安装VFP6.0吧?想想看人家还想用微机修改一下呢!再比如,用vfp有时根据需要可能要做出很随机的报表内容、或表格宽度不定的报表,这样的话你很难用A4、B5或是其它什么纸型来设计报表,因为表格的栏目、字体大小、间距都可能不定!
以上问题如果我们能在VFP中调用MS的Excel就可以迎刃而解了。首先Excel共可生成30多种类型的图形,功能强大且所见即所得。一次成图存盘后以后既可以随时调看图形,又可以把该图形文件作为邮件的附件通过网上传送给任何个人或部门。图形的二次修改简便,用来作为书写论文的插图也仅仅是 Cut & Paste 。我们在vfp中经过统计处理的数据(存放在.dbf文件)可以利用Excel生成报表。Excel的制表功能又是大大强过vfp。举例来说,财务报表经常需要在表格里制作出斜线,Excel可以做得很轻松,而vfp只能是望洋兴叹!      待续...

回复列表 (共6个回复)

沙发

VFP的图表不能打印? 不会吧?找个时间交流一下。

板凳

老兄,你误会我的意思啦,你这样做很好啊,我看过你回复的贴子,很有水平,真希望多点象你这种高手在论谈具体讲些一般教材上没讲到的知识.大家都可能有"空白区",相互学习嘛

3 楼

感谢huangdehua版主的提醒,请参照版主提供的教材深入学习。
foxd

4 楼

我上次也用是碰到着样的问题,后来用了虚拟打印就可以了,你可以试一下

5 楼

附主要代码可以借鉴一下了!首先要读懂下面的代码,把要转换到电子表格的数据表字段及记录负给数组。

GO TOP
FOR i=1 TO jls
FOR l=1 TO zds
  FieldName=FIELD(l)
  DO CASE
  CASE TYPE(FIELD(l))='C'
   if ALLTRIM(FieldName)='身份证号'
     oleApp.Cells(3+i,l).Value="'"+ALLTRIM(&FieldName)
   else
     oleApp.Cells(3+i,l).Value=ALLTRIM(&FieldName)
   endif  
  CASE TYPE(FIELD(l))='N'
   oleApp.Cells(3+i,l).Value=&FieldName
  CASE TYPE(FIELD(l))='D'
   oleApp.Cells(3+i,l).Value=DTOC(&FieldName)
  ENDCASE
ENDFOR
SKIP
IF FORM_JDT.Olecontrol2.Value<100
    FORM_JDT.Olecontrol2.Value=100*i/jls
ELSE
    FORM_JDT.RELEASE
ENDIF
ENDFOR
FORM_JDT.RELEASE
oleApp.Visible=.T. && 显示 Excel。

*oleApp.ActiveWorkbook.SaveAs('J:\RSGL\temp.XLS')
RETURN

6 楼

太好啦,又学了一招

我来回复

您尚未登录,请登录后再回复。点此登录或注册