ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » Oracle Developer Suite » 有人知道folder 制作带拖动那个功能 是怎么 做的吗?

标题: 有人知道folder 制作带拖动那个功能 是怎么 做的吗?
离线 Arrayleexiaodon
Chris Paul
组织后卫


来自 上海市
精华贴数 1
个人空间 0
技术积分 359 (5439)
社区积分 235 (2184)
注册日期 2003-12-29
论坛徽章:3
每日论坛发贴之星2008北京奥运纪念徽章:沙滩排球2008北京奥运纪念徽章:田径   
      

发表于 2007-11-11 10:02 
有人知道folder 制作带拖动那个功能 是怎么 做的吗?

有人知道folder 制作带拖动那个功能 是怎么 做的吗?
就是图中所示的那个样子,照着做了好长时间,也没能实现这个功能! 仍是死死的在那儿呆着!
有那位高人,能发过来一个详细的制作步聚吗?谢啦




leexiaodong 上传了这个附件:
2007-11-11 10:02
folder.jpg (37.9 KB)
 

__________________
只看该作者    顶部
在线/呼叫 workflow263
一般会员


精华贴数 1
个人空间 0
技术积分 486 (4005)
社区积分 393 (1616)
注册日期 2007-8-28
论坛徽章:2
生肖徽章2007版:鸡     
      

发表于 2007-11-15 17:39 
这个是EBS的FILEFOLDER应该很简单的啊
打开TEMPLATE.FMB,如果打开的是APPSTAND.FMB,以下步骤省略:
1、FORM级触发器:
1、        在WHEN-NEW-FORM-INSTANCE后面添加以下代码:
--定义文件夹数据块
app_folder.define_folder_block(       
object_name                        => ' DETAILBLOCK _FOLDER' ,
                        folder_block_name                => 'DETAILBLOCK',
                        prompt_block_name        => 'DETAILBLOCK_PROMPT',
                        folder_canvas_name        => 'DETAILBLOCK_STACKED',
                        folder_window_name        => 'BLOCKNAME',
                        disabled_functions        => '');
--以上参数均为VARCHAR2,长度不得超过20个字符

2、        增加FORM级触发器:FOLDER_ACTION, PL/SQL代码如下:
app_folder.event(:global.folder_action);

3、        增加FORM级触发器:FOLDER_RETURN_ACTION, PL/SQL代码如下:
null;
--
-- action code is in :global.folder_action
-- affected field is in :global.folder_field
--
2、Attached Libraries:
        添加文件:APPFLDR.PLL
        来源:ERP安装目录下,AU目录下查找该类文件所在的目录

3、Object Groups
        继承一个对象组:STANDARD_FOLDER
        做法:复制APPSTAND.FMB中的同名对象,粘贴到模板对象组中,选择“Refence”(继承),路径方式选择“Remove path”(不要路经)。
        结果:将会把对象组中的所有对象映射添加到相应的对象节点中。
二、模板例子的制作
1、        修改WHEN-NEW-FORM-INSTANCE中文件夹数据块定义语句中的参数,确定对象名称(一般为form对象名称)、文件夹数据块名称、标题块名称、堆叠画布名称、窗口名称。
2、        定义窗口(windows),win_main:继承属性WINDOW_NORMAL
3、        定义堆叠画布(stacked canvas-views), cv_detail_stacked:继承属性类CANVAS_STACKED
4、        定义文件夹数据块(folder block),blk_detail:继承属性类BLOCK
(1)        触发器:
·        KEY-EXEQRY:
app_folder.event('KEY-EXEQRY');
·        KEY-NEXT-ITEM
                                                app_folder.event('KEY-NEXT-ITEM');
·        KEY-PREV-ITEM
                                                app_folder.event('KEY-PREV-ITEM');
·        POST-BLOCK
                                                app_folder.event('POST-BLOCK');
·        PRE-BLOCK
                                                app_folder.event('PRE-BLOCK');
·        WHEN-NEW-BLOCK-INSTANCE
                                                App_folder.event('WHEN-NEW-BLOCK-INSTANCE');



·        KEY_CLRBLK
                                                App_folder.event(' KEY_CLRBLK ');
·        KEY_ENTQRY
                                                App_folder.event(' KEY_ENTQRY ');
·        KEY_NXTREC
                                                App_folder.event(' KEY_NXTREC ');
·        KEY_PRVREC
                                                App_folder.event(' KEY_PRVREC ');
·        PRE_QUERY
                                                App_folder.event(' PRE_QUERY ');
·        WHEN-NEW-RECORD-INSTANCE
                                                App_folder.event('WHEN-NEW-RECORD-INSTANCE');


(2)        定义数据项,可以是表项,也可以是非基表项,确定哪些项需要放在堆叠画布上,注意只有在堆叠画布上的项才能使用文件夹功能
(3)        注意:数据项的类型不能是:Display Item、List Item等;
可以是:Text Item、Check Box等;
如果打开folder时出现错误:“Set_Item_Property没有这样的属性”,说明erp标准程序中用到的属性在个别项中不存在,出现几次就有几个缺乏这个属性的Item;是否拥有这个属性,是由Item的类型确定的,因此有些Item类型不能用于folder功能。
(4)        确定各个项在画布中的位置
5、        定义标题数据块(prompt block), blk_detail_prompt:继承属性类BLOCK_DIALOG
便捷的做法:先复制文件夹数据块blk_detail,改名称,再删去新块下的全部触发器,然后除去不需要的项,修改剩下所有项的属性继承FOLDER_PROMPT_MULTRIROW,最后将各个项的default value属性值写入对应的中文或英文标题
(1)        触发器:无
(2)        标题项,来自文件夹数据块blk_detail,属性继承自FOLDER_PROMPT_MULTIROW,default value属性值写入相应的中英文标题
标题项必须和参与folder功能的数据项保持一一对应,名称必须一致
(3)        文件夹功能项(6个):
·        FOLDER_OPEN:属性继承FOLDER_OPEN
Canvas: CV_MAIN
·        FOLDER_TITLE:属性继承DYNAMIC_TITLE
Canvas: CV_MAIN
·        ORDER_BY1、ORDER_BY2、ORDER_BY3:
属性:
继承FOLDER_ORDERBY
                                            触发器:
WHEN-BUTTON-PRESSED:
     APP_FOLDER.EVENT('TOGGLE-ORDER-BY');
Canvas: CV_DETAIL_STACKED
                                FOLDER_OPEN、FOLDER_TITLE可见,放置在堆叠画布的左上位置
(4)        确定各个项在画布上的位置
(5)        注意:在文件夹数据块中,项的初始宽度由同名的标题项的宽度确定,而且只有存在标题项的文件夹数据项才能使用文件夹功能。设计时,应该将文件夹数据块中项的宽度与标题块中项的宽度保持一致。
(6)        如果文件夹数据块在第一个窗口,可能会出现初次进入窗口标题项没有显示的现象,需要在form级触发器when-new-form-instance中,在导航到控制块之前,先将导航到标题块,例如:

GO_BLOCK(‘BLK_DETAIL_PROMPT’);
GO_BLOCK(‘BLOCKCONTROL’);
                        (7) Q&A

三、基于模板的开发过程
        1.模板名:XZ_FOLDER.fmb
        2.模板说明:
2.1 APP_FOLDER.DEFINE_FOLDER_BLOCK参数说明
        'XZ_FOLDER'àMODULE NAME ,表单名称
'BLK_DETAIL'àFOLDER数据块名称
'BLK_DETAIL_PROMPT'àFOLDER标题块名称
'CAVSTACK'àFOLDER数据块所在画布
'WINFOLDER'à FOLDER数据块所在画布所属的窗口
        2.2数据块
2.2.1 BLK_DETAILàFOLDER数据块
2.2.2 BLK_DETAIL_PROMPTàFOLDER标题块
                其中的:FOLDER_OPEN、FOLDER_TITLE、ORDER_BY1、ORDER_BY2、ORDER_BY3,不用动。
        2.3画布
'CAVSTACK'àFOLDER数据块所在画布,堆叠类型
                'CAVMAIN'àcontent类型, CAVSTACK堆叠在其上边。
        2.4窗口

    3修改过程
3.1修改form级触发器WHEN-NEW-FORM-INSTANCE:APP_FOLDER.DEFINE_FOLDER_BLOCK('XZ_FOLDER','BLK_DETAIL','BLK_DETAIL_PROMPT','CAVSTACK','WINFOLDER','ENABLED');
在模板xz_folder.fmb基础上开发程序时,把‘XZ_FOLDER’替换为自己的表单名即可。
3.2修改数据块BLK_DETAIL,在模板块的基础上改数据源,增删数据项
3.3修改数据块BLK_DETAIL_ PROMPT在模板块的基础上增删项,与BLK_DETAIL中的项一一对应。
3.4调整画布输出及大小格式


__________________
非常熟悉 oracle developer (6,9i,10g) suite ,workflow 2.6.3,OAF/BC4J, 走EBS的支持路线... MSN:WORKFLOW263@HOTMAIL.COM
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问