云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Oracle FORM 开发笔记

Oracle FORM 开发笔记

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 22:12:08

格式: procedure APP_FIND.NEW(block_name varchar2);

Description

This routine is called by the \record in the block on which the find is based.

Arguments (input)

block_name The name of the block the Find Window is based on 3) APP_FIND.CLEAR

格式: procedure APP_FIND.CLEAR;

Description

This routine is called by the \4) APP_FIND.CLEAR_DETAIL

18、不管是基于基表还是基于视图的Block,都建议编写ON-UPDATE、ON-INSERT、ON-DELETE、ON-LOCK触发器,

并且,把具体的DML和锁记录代码放入数据库Package中,然后在Form中调用,该Package以后还可以在其他地方调用。

理解:对于基于非单表视图的Block来说,这里的4个触发器是必须要写的,具体代码可以直接写在触发器内,但为了模块化管理和今后维护方便,这里分为三层调用,触发器中调用Program Unit中的过程,Program Unit中调用数据库Package中的过程。

19、app_item_property.set_property

(’Item_name’,update/insert/delete_allowed,property_true);过程用于修改item属性, set_block_property(‘block_name’,update/…._allowed,property_true);

SET_ITEM_INSTANCE_PROPERTY('CUX_EMP_CSW.EMP_NAME',CURRENT_RECORD,UPDATE_ALLOWED,PROPERTY_FALSE); 设置当前某列的某个属性值

20、添加日历项:

1)添加key_listval触发器,代码:calendar.show(默认日期); 2)修改项的格式掩码—yyyy-mm-dd 时间显示格式

3)修改项的lov属性,为List of value 为enable_list_lamp,Validate from list为否

21、lov的注意

1)列:指要返回的列,并在界面显示(一般全选)

2)列显示:要在界面上显示的标题,并设置返回值(修改标题,设置要返回到那个item)

3)项:指要在那个列上显示lov按钮(选要进行选择的列)

22、滚动条

1)块滚动条:水平与垂直其一,一般只添加垂直滚动条

2)画布滚动条:因为view是显示在界面上的,而canvas是存放item的,如果view太小不足以显示所有的item则需要使用canvas滚动条了,一般使用在堆叠canvas上(一般使用水平滚动条)

23、创建堆叠画布时,要再new form触发器中添加入:

show_view(‘canvas_name’); 步骤:

1) 创建一个堆叠画布,设置标题、子类、显示水平滚动条、window与主画布相同 2) 设置item到新增加的堆叠画布上 3) 调整堆叠画布, 规则:

1) view在canvas上的坐标为:0,0;宽度以情况而定,高度与canvas相同 2) canvas左右没有空白,第一个item的坐标为0,0.25(用于放prompt) 3) canvas底部留出0.2的宽度用于存放滚动条

24、添加行指示符:在block中添加一个item,并设置为current_record_indicator 25、建立块查询步骤:

1)打开appstand.fmb,并拖动query_fnd对象组到所需要建立块查询的form中,选择copy的方式 2)删除对象组query_fnd,此时我们的form中会新增加了一个window、canvas、block,分别设置它们的子类属性,并设置block属性的上、下导航块(上为目标块,下为null)而主块的上、下导航为本身

3)修改clear、new、find按钮触发器中的block_name为要查询的块名 4)为query_find block手动添加所需要的item,并显示到相应的canvas上

5)修改块触发器,为要查询的块block添加一个user_name(name:query_find)的触发器,并写入代码:

app_find.query_find(‘block_window’,’query_find_window’,’query_find_block’);

block_window与query_find的window、block进行绑定,调用EBS中的手电筒按钮

6)为要查询的block添加一个pre_query触发器,并写入代码:(ture和false注意大小写)

if :parameter.G_query_find = 'TRUE' then

copy(name_in('query_find.ORGANIZATION_ID'),'CUX_DEPT_CSW.ORGANIZATION_ID');

copy(name_in('query_find.department_id'),'CUX_DEPT_CSW.DEPARTMENT_ID'); app_find.query_date_range(:query_find.VALID_date_f,

:query_find.VALID_date_t,

'CUX_DEPT_CSW.VALID_DATE'); :parameter.G_query_find := 'FALSE'; END IF;

将块查询的条件传递到主块上,并执行ctrl+F11,这样就达到了查询的目的了

26、光标从块A点入块B时触发器执行过程:

27、创建tab画布步骤:

1)新建一个tab_canvas,并创建herders与lines pages(这两个pages是必须的),设置herders与lines的显示标签

2)设置Item的显示canvas到新建立的tab_canvas上(设置初始化那个page显示) 3)切换到主画布,在view->stacked canvas中选择tab_canvas将tab_canvas显示到主画布上

4)控制标签pages的显示

1、在Form级WHEN-NEW-FORM-INSTANCE中追加:

SET_CANVAS_PROPERTY('TAB_CANVAS', TOPMOST_TAB_PAGE, 'HEADERS');

2、新建Form级WHEN-TAB-PAGE-CHANGED触发器,该触发器是用鼠标点时才会触

发;另外注意几个Form标准过程的使用: IF :system.tab_previous_page = 'HEADERS' THEN validate(block_scope);

IF :system.MODE = 'ENTER-QUERY' OR NOT form_success THEN --Message here

set_canvas_property('TAB_DEMO',topmost_tab_page,:system.tab_previous_pag

e);

RETURN; END IF;

ELSIF :system.tab_previous_page = 'LINES' THEN

validate(block_scope);

IF :system.MODE = 'ENTER-QUERY' OR NOT form_success THEN --Message here

set_canvas_property('TAB_DEMO',topmost_tab_page,:system.tab_previous_pag

e);

RETURN; END IF; END IF;

IF :system.tab_new_page = 'LINES' THEN

--show_view('ORDER_LINES_STACKED'); go_item('ORDER_LINES.ORGANIZATION_CODE'); ELSIF :system.tab_new_page = 'HEADERS' THEN --hide_view('ORDER_LINES_STACKED'); go_item('ORDER_HEADERS.DESCRIPTION'); END IF;

28、一个导航块中必须有一个ITEM可UPDATE或INSERT可输入,否则会提示目标块中没有可导航的项(frm-40106错误) 29、一个块名称超过22个字符,会提示(frm-41079:添加组

列错误)

30、创建文件夹步骤及注意:

注意:如果创建文件夹不显示prompt,则在new_form_instance触发器中添加app_folder.event('INSTANTIATE');

为文件夹添加自动伸缩的效果:在when_window_resized中添加

IF :SYSTEM.EVENT_WINDOW IN (‘WINDOW_NAME’) THEN APP_FOLDER.EVENT(‘WHEN_WINDOW_RESIZED’); END IF;

1)打开APPSTAND.FMB表单,将object group中的STARNDARD_FOLDER拖动到我们

新建的form中,选择subclass,将SAMPLE_FOLDER中的所有触发器拖动到我们要建立文件夹选项的block上

2)为我们新建的form导入APPFLDR.PLL库

3)新建一个prompt block,建完结果图,说明:ORDER_BY3以下属性为要导航的Item

搜索更多关于: Oracle FORM 开发笔记 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

格式: procedure APP_FIND.NEW(block_name varchar2); Description This routine is called by the \record in the block on which the find is based. Arguments (input) block_name The name of the block the Find Window is based on 3) APP_FIND.CLEAR 格式: procedure APP_FIND.CLEAR; Description This routine is called by the \4) APP_FIND.CLEAR_D

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com