77范文网 - 专业文章范例文档资料分享平台

oracle form上传excel或图片及XML Publisher实现动态打印图片(2)

来源:网络收集 时间:2019-08-01 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

file_loc := 1; enter_loc := 1;

--开始进行填充一行数据 ln_line_number := 0; Loop

ln_line_number := ln_line_number+1;

--fnd_message.debug('my_field_loc:'||my_field_loc); Find Enter Key Location

select dbms_lob.instr(file_data,utl_raw.cast_to_raw(v_row_sep),file_loc,1)

into enter_loc from fnd_lobs

where file_id = l_gfm_id;

if enter_loc > 0 then

select

trim(utl_raw.cast_to_varchar2(utl_raw.convert(dbms_lob.substr(file_data,enter_loc-file_loc,file_loc),to_charset,from_charset)))

--utl_raw.cast_to_varchar2/dbms_lob.substr只能处理2000个字符的varchar2 into temp_data from fnd_lobs

where file_id = l_gfm_id;

file_loc := enter_loc + 2; enter_loc := enter_loc + 2; else

select

trim(utl_raw.cast_to_varchar2(utl_raw.convert(dbms_lob.substr(file_data,1000,file_loc),to_charset,from_charset)))

into temp_data from fnd_lobs

where file_id = l_gfm_id;

file_loc := file_len + 2; enter_loc := file_len + 2; end if;

IF LENGTH(LTRIM(TEMP_DATA)) > 2 THEN ---------- 避免有一整列的空白行

tab_loc := 1; tab_loc_old := 1; my_field_loc := 1;

WHILE (my_field_loc <= my_field_cnt and tab_loc > 0) Loop

tab_loc := instr(temp_data, v_col_sep, tab_loc_old);

if tab_loc > 0 then

temp_tab := substr(temp_data, tab_loc_old, tab_loc - tab_loc_old); else

temp_tab := substr(temp_data, tab_loc_old); end if;

tab_loc_old := tab_loc + 1;

沒有略過資料

if ln_line_number > skip_rows then --略过第一行

if my_field(my_field_loc) <> 'xxx' then

copy( temp_tab, v_block || '.' || my_field(my_field_loc) ); end if; end if;

my_field_loc := my_field_loc + 1; END Loop; END IF;

--导入数据验证

validate(RECORD_SCOPE); IF NOT form_success THEN

fnd_message.set_string('本行数据导入错误,请检查数据格式后重新导入!'); fnd_message.show;

RAISE form_trigger_failure; END IF; --end add

Exit When file_loc >= file_len;

Next_Record;

End Loop; first_record; end if;

----------------

Delete temp data if l_gfm_id >= 0 then

update fnd_lobs

set file_data = empty_blob() where file_id = l_gfm_id;

delete from fnd_lobs where file_id = l_gfm_id;

--commit;

copy( '0', 'system.message_level' ); end if; end import_file;

END knd_import_pkg;

第二章 oracle form 上传图片

1.新建表cux_logo 其中一个栏位IMAGE_BLOB类型为BLOB

2.修改BLOCK cux_logo item IMAGE_BLOB 的类型为 image(图像) 3.添加包knd_import_pkg(第一章内容) 4.新建一个按钮(上传照片) 代码如下: DECLARE

l_gfm_id NUMBER; a_blob BLOB; BEGIN

commit_form;

do_key('execute_query');

l_gfm_id := knd_import_pkg.open_file;

SELECT file_data INTO a_blob FROM fnd_lobs fl WHERE fl.file_id = l_gfm_id;

UPDATE cux_logo SET IMAGE_BLOB = a_blob WHERE IMAGE_ID = :parameter.org_id; forms_ddl('COMMIT'); go_block('detail');

DO_KEY('execute_query'); EXCEPTION

WHEN OTHERS THEN

message(SQLERRM); END;

第三章 Oracle XML Publisher实现动态打印图片

1. 目标,动态打印公司logo标志,图片大小可以超出10K.(承接第二章) 2.实现方式

a.转换表类型BLOB 为CLOB /*图片转码*/

function cux_getlogo(p_ou_id number) return CLOB is l_result CLOB; begin

select cux_getbase64string(cl.IMAGE_BLOB) into l_result from cux_logo cl

where cl.IMAGE_ID=p_ou_id; RETURN l_result; END;

b.主程序打印报表

Procedure is l_logo CLOB; l_org_id NUMBER; l_length NUMBER; BEGIN

Fnd_File.Put_Line(Fnd_File.Output,

'');

Fnd_File.Put_Line(Fnd_File.Output, '');

Fnd_File.Put_Line(Fnd_File.Output, '');

取主组织org_id及LOGO

BEGIN

SELECT ood.OPERATING_UNIT

INTO l_org_id

FROM org_organization_definitions ood

WHERE ood.ORGANIZATION_ID = c1.organization_id AND rownum = 1;

l_logo := cux_common_pkg.cux_getlogo(l_org_id); --看大小

l_length := length(l_logo); --循环put EXCEPTION

WHEN OTHERS THEN

l_logo := NULL; END;

Fnd_File.Put_Line(Fnd_File.Output, ''); FOR i IN 1 .. ceil(l_length / 255) LOOP

|| fnd_file.Put(fnd_file.OUTPUT, substr(l_logo, 255 * i - 254, 255)); Fnd_File.Put_Line(Fnd_File.Output, '');

Fnd_File.Put_Line(Fnd_File.Output, ''); Fnd_File.Put_Line(Fnd_File.Output, ''); END;

C.XML Publisher 添加输出LOGO栏位:LOG

3.上传运行即可.

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库oracle form上传excel或图片及XML Publisher实现动态打印图片(2)在线全文阅读。

oracle form上传excel或图片及XML Publisher实现动态打印图片(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/667230.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: