| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9428 人关注过本帖, 2 人收藏
标题:有关报表上图片的一个问题,麻烦高手帮看看。谢谢。
只看楼主 加入收藏
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用沙枣在2016-10-14 08:49:35的发言:

这个问题单用VFP处理,可能存在一些意想不到的问题,图片不是VFP的强项,word处理图片比VFP要专业,建议在word中制作一个模板(包括所有的固定项和印章),再用VFP程序将数据写入word表格,生成的word表格除了能保存,还可进一步修改、完善、电邮等,远比VFP报表只能打印要好。

感谢,但是利用WORD里的邮件合并,照片要手工的拉大拉小才能适合图片的大小。

[此贴子已经被作者于2016-10-14 09:21编辑过]

2016-10-14 09:16
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:525
专家分:1278
注 册:2010-1-11
收藏
得分:0 
编辑字体属性,取消使用字体脚本OK.
图片附件: 游客没有浏览图片的权限,请 登录注册



[此贴子已经被作者于2016-10-14 09:30编辑过]

2016-10-14 09:21
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用星光悠蓝在2016-10-14 09:21:53的发言:

编辑字体属性,取消使用字体脚本OK.

感谢你,问题终于解决了。

[此贴子已经被作者于2016-10-14 10:16编辑过]

2016-10-14 09:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用wangzhiyi在2016-10-14 08:28:00的发言:


老大,能教教如何在一个报表文件里同时实现字段域与GDI+处理的图片吗?

显示图片示例:
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
**
** test.prg
**
DECLARE LONG GdipLoadImageFromFile IN GDIPlus.DLL STRING@, LONG@
DECLARE LONG GdipDisposeImage IN GDIPlus.DLL LONG
DECLARE LONG GdipDrawImageRect IN GDIPlus.DLL LONG, LONG, SINGLE, SINGLE, SINGLE, SINGLE

CREATE CURSOR tt (Name C(10), FileName C(240))
INSERT INTO tt VALUES ("张三", "C:\TEMP\Test\分班\36042919821017001X.jpg")
INSERT INTO tt VALUES ("李四", "C:\TEMP\Test\分班\320321199202204233.jpg")

oRL = CREATEOBJECT("myReportListener")
oRL.ListenerType = 1
REPORT FORM 报表扩展功能示例(图片).frx OBJECT oRL
CLEAR DLLS
RETURN

DEFINE CLASS myReportListener AS ReportListener
    DynamicLineHeight = .F.
    
    IsRotate = .F. 

    PROCEDURE BeforeBand(nBandObjCode, nFRXRecNo) 
        DODEFAULT(nBandObjCode, nFRXRecNo) 
        this.IsRotate = (nBandObjCode==4)
    ENDPROC

    PROCEDURE AfterBand(nBandObjCode, nFRXRecNo)
        this.IsRotate = .F.
        DODEFAULT(nBandObjCode, nFRXRecNo)
    ENDPROC

    PROCEDURE Render(nFRXRecNo, nLeft, nTop, nWidth, nHeight,;
                     nObjectContinuationType, cContentsToBeRendered, GDIPlusImage) 
        IF this.IsRotate AND (STRCONV(cContentsToBeRendered,6)==ALLTRIM(tt.FileName))
            LOCAL hImage
            hImage = 0
            GdipLoadImageFromFile(STRCONV(ALLTRIM(tt.FileName)+0h00,5), @hImage)
            GdipDrawImageRect(this.GDIPlusGraphics, hImage, nLeft, nTop, nWidth, nHeight)
            GdipDisposeImage(hImage)
            NODEFAULT 
        ELSE
            DODEFAULT(nFRXRecNo, nLeft, nTop, nWidth, nHeight, ;
                      nObjectContinuationType, cContentsToBeRendered, GDIPlusImage)
        ENDIF
   ENDPROC
ENDDEFINE 
2016-10-14 10:36
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:992
专家分:4966
注 册:2013-2-16
收藏
得分:0 
这帖子建议精华。
2016-10-14 13:47
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:525
专家分:1278
注 册:2010-1-11
收藏
得分:0 
以后造假的就多了!
2016-10-14 14:00
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用星光悠蓝在2016-10-14 14:00:18的发言:

以后造假的就多了!

你说的也有道理,所以现在很多东西都要加盖钢印。
2016-10-14 14:25
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
收藏
得分:0 
回复 21楼 wangzhiyi
    以下的'程序1'是我自制的数据管理系统中几个过程组合成的程序,具有高度的通用性,可用于任何样式的word报表打印。其中的zhdyjl8为主打印程序,rqxh()、nyr()分别日期数据处理函数,可按需选用。这个程序可以自动扫描word样表中的“书签”和“变量表达式”标记,自动生成特定的打印程序,针对每一个管理事务,只需建立一个数据表,再对应地制作一个word模板就可以开始工作,可以用这一个程序解决很多问题。能够最大限度减轻工作量,不用“一事一策”地去编程序。我使用了很多年,运行非常稳定高效。

     如果word模板是文字与表格混排,文字部分要插入相关内容时,要用与字段名相同的“书签”在指定位置进行标记(不同则不能打印),表格内的数据填写可用”书签“标记,也可用字段或字段表达式标记(表达式中的连接符只能用单引号”''“或方括号”[]“,否则程序会出错),其中字段变量或其表达式用尖角号(^^)括起来,图片字段变量用井号(##)括起来就行了,就像我样表中做的那样。数据表中的图片字段中要记录图片文件的绝对路径和文件全名。
     使用方法:打开数据表book1,运行程序1,在对话框中选择word样表”样表“,再选定一种需要的日期格式。保存文件名或生成的报表是否直送打印机可按需选择。生成的报表保存在c:\my documents目录下,除了可每条记录生成一个报表,还可以形成所有报表的汇总文档。

     windows xp,VFP6.0,office 2003下测试通过。

新建文件夹.rar (134.89 KB)


[此贴子已经被作者于2016-10-14 15:42编辑过]

2016-10-14 15:28
tack
Rank: 1
等 级:新手上路
帖 子:24
专家分:3
注 册:2015-12-22
收藏
得分:0 
回复 24楼 吹水佬
强!能否给照片加个圆圈,只显示在圆圈内?表单里显示。非常感谢!
2016-10-18 20:19
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 

沙枣
程序运行到下列语句提示错误
 use lsdytjk
2017-06-09 11:44
快速回复:有关报表上图片的一个问题,麻烦高手帮看看。谢谢。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039444 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved