当前位置:   article > 正文

做FOLDER类型的FORM时需要添加的几个特殊ITEM的详解

promptfolder
疑问
在folder的开发中,我们需要在数据块的PROMPT块上添加6个folder特有的Item,分别是:
l FOLDER_OPEN
l FOLDER_TITLE
l FOLDER_DUMMY
l ORDER_BY1
l ORDER_BY2
l ORDER_BY3
这六个Item有什么用,在form中如何体现的呢? 在一般的主从数据块中,主块和从快都是用folder开发,那么主块该如何设置?在报表中,能不能及时的看到自己报表的样子,比如,点击按钮之后,就看到自己报表的输出是什么?
探究
上面的问题是在本周的form练习中遇到的,这里把自己查阅的相关资料以及结果给大家分享一下。
l FOLDER_OPEN
顾名思义,这是打开folder的,我们在form上,看到一个打开的按钮
[img]http://dl.iteye.com/upload/attachment/604111/15fa3458-09c1-37a1-84e5-da9cbee9a0d3.png[/img]


这个就是FOLDER_OPEN在form上的体现。可以参照folder的开发指南设置该Item的属性。
l FOLDER_TITLE
Folder开发的好处就是允许用户根据自己需要设置界面,比如修改标题
列,调整列的宽度以及顺序等,同时还能够允许用户保存这些修改,下次能够代开修改后的内容,FOLDER_OPEN的作用就能够体现了。如果我们保存了一个folder,那么可以通过文件夹工具打开folder。
[img]http://dl.iteye.com/upload/attachment/604113/6afb69f4-16f0-3176-923a-bc2b0bb7e396.png[/img]


这里包含了代开,关闭保存等。还有控制Item在form上的位置等。我们打开一个folder。

[img]http://dl.iteye.com/upload/attachment/604115/c865efcb-f628-3323-b552-1fde398403f8.png[/img]


需要让我们选择folder的标题,这个标题是在保存的时候输入的。FOLDER_TITLE即使这个标题。打开之后如下:
[img]http://dl.iteye.com/upload/attachment/604117/309d3aec-51d8-3f99-ae3e-145297562fae.png[/img]


一般在form开发的布局上将FOLDER_OPEN和FOLDER_TITLE放在一起,如上图,test_folder是folder的名称。
l FOLDER_DUMMY
这个Item的是需要显示出来的,画布选择“TOOLBAR”。如果没有这个
Item,或者Item的属性错误,或者Item的名称错误folder运行都不成功。
如果我把form中的FOLDER_DUMMY的名字 改成FOLDER_DUMY,那么运行form将出现如下的错误。这里这个item的作用应该是讲主数据块于prompt数据块相互关联的作用。具体有待查证。
[img]http://dl.iteye.com/upload/attachment/604119/2e1217d2-0ace-311d-885a-a5fdb0f1e06f.jpg[/img]


l ORDER_BY1、ORDER_BY2、ORDER_BY3
这三个Item是用来对folder中列的数据进行排序的。我们可以通过如下
的方式查看。


[img]http://dl.iteye.com/upload/attachment/604121/ba873513-ba00-3aed-987f-62c2a951bff6.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/604123/7a51846d-6f64-32b3-b67f-e5f968c0ae08.png[/img]


可以看到,一共有三个项供我们选择排序。分别对应ORDER_BY1、ORDER_BY2和ORDER_BY3。
对应单记录的folder,我们不需要这三个排序项,因为单记录的folder并没有需要排序的部分。

[img]http://dl.iteye.com/upload/attachment/604125/5e7f233a-8a63-3c03-a4e6-adfb7b6c6566.jpg[/img]


当光标移到这个folder上的时候,排序功能不可用。
 
l 主从数据块
主从数据块的folder中,主块是一个单记录的folder。在单记录的folder
中:
Ø 数据项布局和普通的单记录form开发一样,需要开发人员自己完成。
Ø 同样也需要添加对应prompt数据块,需要将显示在form上Item添加到prompt数据块中。Prompt数据块中需要包含folder特有的几个Item,如FOLDER_OPEN等。
Ø Prompt数据块中数据项对应的item的位置不需要特别的区关注其位置,系统会自动布局。
Ø 在prompt数据块中,不需要前面提到的ORDER_BY1、ORDER_BY2和ORDER_BY3,因为单记录的folder中,并没有排序的依据。
同时,一般主从数据块的相关设置也是需要的。比如禁止从块的操作等。
在主块的关系中,

[img]http://dl.iteye.com/upload/attachment/604127/6152c437-8abc-3b1a-b61a-7cc2b7f8dd18.jpg[/img]

这些属性是需要的,因为我们的主从数据块主块和从块的关系都比较严格,从快不能单独的进行修改。
l 及时输出报表
这个是我自己想到的,没什么实际意义。比如在这里的点击Print BI之后,
看到输出:

[img]http://dl.iteye.com/upload/attachment/604129/450cb6c9-6a39-3625-aa82-17735634cc4f.jpg[/img]


这里参照了标准的功能,写一下我的实现过程吧。
Step 1:
在form中添加一个标准库:FNDCONC

[img]http://dl.iteye.com/upload/attachment/604131/7e276936-083f-399b-80b5-1412aebf2a50.png[/img]

Step 2:
修改触发器:WHEN-BUTTON-PRESSED-
declare
l_header_id number;
l_request_id number;
l_is_finished boolean default false;
l_interval number default 60;
l_max_wait number default 0;
l_phase varchar2(30);
l_status varchar2(30);
l_dev_phase varchar2(30);
l_dev_status varchar2(30);
l_message varchar2(30);
begin
l_header_id := :HEADER.T_HEAdER_ID;
--提交并发请求
l_request_id := cux_submit_request.submit_bi_request(p_header_id =>l_header_id );
if l_request_id = 0 then
fnd_message.debug('请求发生错误');
else
fnd_message.debug('请求已经提交,请求ID为:'||l_request_id||',正在输出文件,请稍后...');
end if;
--等待请求完成
l_is_finished := fnd_concurrent.wait_for_request(request_id=>l_request_id,
interval =>l_interval,
max_wait => l_max_wait,
phase=> l_phase,
status=>l_status,
dev_phase=>l_dev_phase,
dev_status=>l_dev_status,
message =>l_message);
if l_is_finished then
editor_pkg.report(l_request_id, 'Y');
end if;
end;

上面的两步即可完成。
但是补充说一下,这个没什么实际的意义,因为并发请求在运行的时候,有时候非常的慢,如果用户等着跑玩的话,体验并不好。
我点击之后的效果如下:


[img]http://dl.iteye.com/upload/attachment/604133/05061229-6ebe-3346-9a22-eeec40c2c31a.jpg[/img]

要跑很久才能看到输出。所以不值得提倡。
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号