TF GRID 的简单概念

JTF Grid不是Form 的标准功能,而是 Oracle自己在 EBS 开发中总结出来的“可配置块字段”:块中有多少字段可以通过专门的界面定义。

对于开发来说,要做的事情就是用“遵循 JTF Grid规范”换取“增删字段无需修改 Form代码”。

测试:

1.引用JTF Grid的PLL库

选中 Attached Libraries ,点击“+ ”,选择 JTF_GRID.pll,其将自动引用 JTF_UTIL 、JTFDEBUG 。如果本地没有请先从服务器下载

2.拷贝标准 JTF Grid对象

1.1 对象组

打开 JTFSTAND.fmb,把对象组“JTF_GRID”拖到我们自己的 Form中,并选择“Subclass”而非“ Copy”,这个和前面讲的Folder一样。

这样会自动产生一系列用于 JTF_GRID的对象:块、画布、参数、 Property Classes、Window ,尤其注意 Form级触发器JTF_GRID_EVENT 。这些都不用修改。

1.2 过程

从JTFSTAND.fmb拷贝 JTF_CUSTOM_GRID_EVENT过程到我们自己的Form中,然后补上事件处理,暂时全部放 null

PROCEDURE jtf_custom_grid_event(gridname  IN VARCHAR2

,eventtype IN VARCHAR2 ) IS

grid_selection jtf_grid_property.row_selection_type;

l_start_row    NUMBER;

BEGIN

IF eventtype = jtf_grid_events.hyperlink_event THEN

NULL;

ELSIF eventtype = jtf_grid_events.new_record_event THEN

NULL;

ELSIF eventtype = jtf_grid_events.popup_event THEN

NULL;

ELSIF eventtype = jtf_grid_events.row_selection_event THEN

NULL;

ELSIF eventtype = jtf_grid_events.end_of_find_event THEN

NULL;

ELSIF eventtype = jtf_grid_events.doubleclick_event THEN

NULL;

END IF ;

END;

3.创建数据库对象

-- Create table
CREATE TABLE cux_test_jtf_grid
AS
SELECT line_num,vendor_name,vendor_id,order_date,po_number,inventory_item_id,item_number,DESCRIPTION,quantity,unit_of_measure,unit_price,currency_code
FROM  xxibi_rcv_att_ohhand_v ;--Or Create table
create table CUX_TEST_JTF_GRID
(LINE_NUM          NUMBER not null,VENDOR_NAME       VARCHAR2(240),VENDOR_ID         NUMBER,ORDER_DATE        DATE,PO_NUMBER         VARCHAR2(20) not null,INVENTORY_ITEM_ID NUMBER not null,ITEM_NUMBER       VARCHAR2(40),DESCRIPTION       VARCHAR2(240),QUANTITY          NUMBER not null,UNIT_OF_MEASURE   VARCHAR2(25) not null,UNIT_PRICE        NUMBER,CURRENCY_CODE     VARCHAR2(15)
)

4.定义 CRM 电子表格

路径:

输入电子表格名称、源视图、字段定义

5.创建GRID块

手工创建非数据库块,规范起见,块名后加“GRID”,这里是“DEMO_GRID”。

当然了,从 Template开始的常规修改步骤也是要做的。

6.修改GRID块

添加三个ITEM

Bean Area :READONLY_GRID

Button :FIND

Button :DETAIL

7.布局ITEM到画布

对于Bean Area 只能在其属性上设置其在画布上的显示宽度和高度

8.添加触发器代码

Form 级别 WHEN-NEW-FORM-INSTANCE

IF NOT jtf_grid.getbooleanproperty('DEMO_GRID.READONLY_GRID',

jtf_grid_property.initialized) THEN

jtf_grid.init('DEMO_GRID.READONLY_GRID','CUX_TEST_JTF_GRID_V');

jtf_grid.setbooleanproperty('DEMO_GRID.READONLY_GRID',

jtf_grid_property.allow_multiple_row_selection,

FALSE);

END IF ;

用户点击 Find,通常是弹出查询界面,输入完条件再执行查询,我们这里省去查询条件界面

Find 按钮 WHEN-BUTTON-PRESSED

jtf_grid.removeallbindvariables( 'DEMO_GRID.READONLY_GRID');

jtf_grid.setcharproperty('DEMO_GRID.READONLY_GRID'

,jtf_grid_property.where_clause

,'CURRENCY_CODE = ''USD''');

IF jtf_grid.getbooleanproperty('DEMO_GRID.READONLY_GRID'

,jtf_grid_property.is_populated) THEN

jtf_grid.refresh('DEMO_GRID.READONLY_GRID');

ELSE

jtf_grid.populate('DEMO_GRID.READONLY_GRID');

END IF ;

9.处理选择事件

用户选中某行后,我们可以根据其选中的信息去打开一个普通块,这样首先需要在 FIND按钮的WHEN-BUTTON-PRESSED 中编写

jtf_grid.requestrowselection('DEMO_GRID.READONLY_GRID');

可以打开该包查看其具体作用。然后在过程 jtf_custom_grid_event中响应选择事件

PROCEDURE JTF_CUSTOM_GRID_EVENT(gridName in varchar2, eventType in varchar2) IS

grid_selection JTF_GRID_PROPERTY.ROW_SELECTION_TYPE;

l_start_row  number;

BEGIN

IF eventtype = jtf_grid_events.hyperlink_event THEN

null;

ELSIF eventtype = jtf_grid_events.new_record_event THEN

null;

ELSIF eventtype = jtf_grid_events.popup_event THEN

null;

ELSIF eventtype = jtf_grid_events.row_selection_event THEN

grid_selection := jtf_grid.getRowSelection('DMEO_GRID.READONLY_GRID' );

if grid_selection.COUNT > 0 then

l_start_row := grid_selection(1).startrow;

--fnd_message.debug(jtf_grid.getcolumncharvalue('DMEO_GRID.READONLY_GRID',l_start_row,'NAME'));

end if ;

ELSIF eventtype = jtf_grid_events.end_of_find_event THEN

null;

ELSIF eventtype = jtf_grid_events.doubleclick_event THEN

null;

END IF;

END;

10.上传编译

 

Form 电子表格(JTF GRID)相关推荐

  1. Windows Form中的Grid Control

    MDI的一些界面设计方案: DotNetMagic Tim Dawson Syncfusion Xtreme Docking Pane Infragistics WinTabbedMDI Window ...

  2. Milking Grid poj2185

    Milking Grid POJ - 2185 时限: 3000MS   内存: 65536KB   64位IO格式: %I64d & %I64u 提交 状态 已开启划词翻译 问题描述 Eve ...

  3. ext2 grid 封装 (包含增删改查 导入导出等操作)

    最近项目又用到ext 比较杯具的是ext版本使用2.0 初步封装了一下grid(还在完善中)              ext技术交流群:164648099 取一行所有信息通用函数 Ext.overr ...

  4. ExtJs6 form回显combo下拉框的值方法

    一般grid加载出来值之后我们对某一行编辑时,打开form会出现远程查询下拉框值不会回显,也就是没有值的情况,我们可以按照以下方法让值回显. 比如说后端返回实体类中有cityId和cityName两个 ...

  5. Yahoo javascript 开源界面库YUI 和EXT

    清清月儿整理 [yui][译]Yahoo!User Interface Libray 介绍 Yahoo! User Interface Library(简称yui) 是一个使用JavaScript编写 ...

  6. css 倒三角_倒三角结构:如何管理大型CSS项目

    css 倒三角 by Luuk Gruijs Luuk Gruijs着 倒三角结构:如何管理大型CSS项目 (The Inverted Triangle Architecture: how to ma ...

  7. ExtAspNet应用技巧(十九) - 日志管理

    界面截图 点击左侧"日志管理",在右侧IFrame中载入./admin/log.aspx: 选择错误级别即更新Grid: 在TwinTriggerBox中输入需要查询的关键词,回车 ...

  8. 编程命名中的7+1个提示

    编程命名中的7+1个提示 前几天Neo写过<编程中的命名设计那点事>,这里也有另外一篇和程序命名的文章,可以从另一个角度看看. 1.- 变量应该是尽可能的望文知意.千万不要使用教材中的命名 ...

  9. Flex 3 与 Flex 4 beta 之间的区别

    Flex 3 与 Flex 4 beta 之间的区别 Flex 4(代码名:Gumbo)beta 发行版在 Flex 3 基础上做出重大改动.Flex 4 beta 引入了一个新的组件和外观架构.但是 ...

  10. 基因表达聚类分析之初探SOM - 自组织特征图

    之前的培训有老师提出要做SOM分析,最后卡在code plot只能出segment plot却出不来line plot.查了下,没看到解决方案.今天看了下源码,设置了一个参数,得到趋势图.也顺便学习了 ...

最新文章

  1. ce修改器传奇刷元宝_真原始传奇刷元宝方法 不封号刷元宝技巧
  2. windows Pycharm 常用快捷键
  3. 《gcc五分钟系列》第六节:编译期符号检查
  4. MySQL / 可重复读到底是怎么实现的?图解 ReadView 机制
  5. SharpZipLib压缩解压
  6. 携程在港挂牌:两次疫情两次上市 穿越周期初心不灭
  7. python从入门到放弃-Python数据分析从入门到放弃(十五)爬虫(番外)基金选取实例...
  8. git工作区和暂存区(4)
  9. 16/32/64位平台下char、short、int、long、指针等类型分别占多少字节,操作系统可以使用的最大内存空间为多大?
  10. 最强推荐:Android攒了一个月的面试题及解答,震撼来袭免费下载!
  11. 基于物联网的多传感器远程温度监测系统
  12. 计算机用户账户不见了,电脑用户账户找不到了怎么处理
  13. 读《编码:隐匿在计算机软硬件背后的语言》有感
  14. LaTeX | LaTeX:写大论文时同时使用“\uline”和“\textbf”
  15. 我的2007-高开低走,无甚成就
  16. 一个表情包引发的悬案!
  17. OpenGL ES 3. 天空盒 立方体贴图
  18. Android Clean 架构浅析
  19. 每日股市大盘自动复盘(基于聚宽量化投资平台)
  20. Redis 安装+设置密码

热门文章

  1. win10升级补丁_win10教育版有什么优缺点
  2. 浅谈核桃的栽培技术与种植管理方法
  3. elementUI 日期时间选择器el-date-picker开始时间与结束时间约束
  4. Android面试准备复习之Android知识点大扫描
  5. 国家知识产权局 下载专利全文
  6. OpenSSH私钥BEGIN OPENSSH PRIVATE KEY与BEGIN RSA PRIVATE KEY格式转换方式
  7. CC2430基础——串口测试实验
  8. TRUNCATE和DETELE的区别
  9. Windows和ubuntu互传文件
  10. hadoop key和value 分隔符号设置