标题:有关报表上图片的一个问题,麻烦高手帮看看。谢谢。
只看楼主
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
来 自:山水甲天下
等 级:贵宾
威 望:48
帖 子:459
专家分:1116
注 册: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
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
这帖子建议精华。
2016-10-14 13:47
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:48
帖 子:459
专家分:1116
注 册: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
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 

沙枣
程序运行到下列语句提示错误
 use lsdytjk
2017-06-09 11:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469721-1-1.html




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

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