本页目录:
- 1、数据库获取图片存储地址
- 2、4gl制作图http可访问
- 3、水晶报表显示
数据库获取图片存储地址
--鼎捷支持bmp、jpg格式,这里我限制只取jpg
SELECT GCB01,GCB10,substr(GCB07,length(GCB07)-3, length(GCB07)) GCB07
FROM GCB_FILE
WHERE substr(GCB07,length(GCB07)-3, length(GCB07)) IN ('.JPG','.jpg')
AND GCB10 LIKE '%sfb01-UFD11-24060001%'
AND ROWNUM=1
ORDER BY GCB01
4gl制作图http可访问
参考代码:/u1/topprod/tiptop/lib/4gl/cl_doc.4gl 的cl_openDocument() 函数的 WHEN "FILE" 里面相关逻辑程序
# 全局变量
DEFINE temp_fname STRING,
g_cmd STRING,
gs_tempdir STRING,
gs_fglasip STRING,
g_table_count INTEGER,
g_ii INTEGER,
g_table DYNAMIC ARRAY OF RECORD
temp_fname STRING
END RECORD
# 局部变量
DEFINE sr6 RECORD
gcb01 LIKE gcb_file.gcb01,
gcb10 LIKE gcb_file.gcb10,
gcb07 LIKE gcb_file.gcb07
END RECORD
# 放到报表获取数据前初始化
INITIALIZE sr6.* TO NULL
CALL g_table.clear()
LET g_table_count=0
FOREACH xxxxxxx
# 获取多个图片
DECLARE r102_6_cs SCROLL CURSOR FOR SELECT GCB01,GCB10,substr(GCB07,length(GCB07)-3, length(GCB07)) GCB07
FROM GCB_FILE
WHERE substr(GCB07,length(GCB07)-3, length(GCB07)) IN ('.JPG','.jpg')
AND GCB10 LIKE '%sfb01-'||cr.sfb01||'%'
FOREACH r102_6_cs INTO sr6.*
IF NOT cl_null(sr6.GCB01) THEN
LET gs_tempdir=FGL_GETENV("TEMPDIR")
LET gs_fglasip = FGL_GETENV("FGLASIP")
LET temp_fname=gs_tempdir||os.path.separator()||sr6.GCB01||sr6.GCB07
LET g_cmd= "cp " || '"' || sr6.gcb10 || '"' || " " || temp_fname
LET g_table_count=g_table_count+1
LET g_table[g_table_count]=temp_fname
RUN g_cmd
LET sr6.gcb10 = gs_fglasip||"/tiptop/out/"||sr6.GCB01||sr6.GCB07
END IF
EXECUTE insert_prep USING xxxx,sr6.gcb10
END FOREACH
END FOREACH
# 展现报表
CALL cl_prt_cs3(xxxxxxxx)
# 放到展现报表之后,清除临时文件
SLEEP(20)
FOR g_ii=1 TO g_table_count
IF NOT cl_null(g_table[g_ii].temp_fname) THEN
LET g_cmd= "rm -f " || g_table[g_ii].temp_fname
RUN g_cmd
END IF
END FOR
水晶报表显示
1、插入空白的jpg图片
2、引用路径