Oracle Forms:某些行上的特定列未在数据库中存储值?
Oracle Forms: have a specific column on some rows not store a value in the database?
要求
这里是简化的要求。最终目标是能够显示有关项目的数据,或使用保存的数据打印标签。正在 Oracle Forms Builder
中创建解决方案
- 属性定义形式
- 旨在定义属性。
- 属性配置细节存储在一个属性中
定义 table
- 属性可以是手动输入的
值,或 SQL 驱动
- SQL 示例:案例重量(使用项目的
案例 UOM 转换率乘以项目的单位重量)
- 手册示例:项目的颜色
- 驱动SQL时,在属性配置中保存一条select语句
- 像
:INVENTORY_ITEM_ID
这样的标记在 SQL 中使用,并将被替换为
SQL 计算时的形式值。
- 项目属性分配表
- 旨在 link 属性到项目
- 表单包括分配给项目的属性列表
- 记录link物品的属性保存在
数据库
- 记录存储属性ID、项目ID和属性
值(如果适用)
- 列表应该在一个块中。
- 表格
允许额外的属性分配(首先定义
表格)
- 项目可以分配给 SQL 和手动类型属性
他们。
- 表单允许 "manual" 值随时由
用户
- Form 导出 SQL 值,将它们显示在 "value" 字段中,
但应禁用值字段,以便用户无法编辑它。
- 查询项目或分配新属性时
- SQL 值应为 derived/evaluated
- 应该提取手动输入的值
来自 tables "value" 列
问题
我们不希望表单将 SQL 派生值保存到 table。
有没有办法让某些行上的特定列不在数据库中存储值?这些将是包含 SQL 派生值的行,这些派生值显示在禁用的值单元格中,并在查询项目或分配属性时派生。
这是可能的,但您确实应该为您的表单实施 table 处理程序,而不是依赖 Oracle 表单为您执行 DML。
"implement table handlers",我的意思是,将块的“DML Data Target Type
”属性设置为“Use Transactional Triggers
”。
然后,为您的块编写 ON-INSERT
、ON-UPDATE
等触发器以调用 PL/SQL(传递适当的值以从您的块插入、更新等)。
在您的 PL/SQL 中,您可以将每一列准确地插入到您想要的位置和方式,或者根本不插入一列,这就是您想要的。
如果您使用的是 Oracle 电子商务套件,请参阅 Oracle 应用程序开发人员指南 第 10 章 ("Using PL/SQL in Oracle E-Business Suite: Coding Item, Event, and Table Handlers")。
要求
这里是简化的要求。最终目标是能够显示有关项目的数据,或使用保存的数据打印标签。正在 Oracle Forms Builder
中创建解决方案- 属性定义形式
- 旨在定义属性。
- 属性配置细节存储在一个属性中 定义 table
- 属性可以是手动输入的
值,或 SQL 驱动
- SQL 示例:案例重量(使用项目的 案例 UOM 转换率乘以项目的单位重量)
- 手册示例:项目的颜色
- 驱动SQL时,在属性配置中保存一条select语句
- 像
:INVENTORY_ITEM_ID
这样的标记在 SQL 中使用,并将被替换为 SQL 计算时的形式值。
- 像
- 项目属性分配表
- 旨在 link 属性到项目
- 表单包括分配给项目的属性列表
- 记录link物品的属性保存在 数据库
- 记录存储属性ID、项目ID和属性 值(如果适用)
- 列表应该在一个块中。
- 表格 允许额外的属性分配(首先定义 表格)
- 项目可以分配给 SQL 和手动类型属性
他们。
- 表单允许 "manual" 值随时由 用户
- Form 导出 SQL 值,将它们显示在 "value" 字段中, 但应禁用值字段,以便用户无法编辑它。
- 查询项目或分配新属性时
- SQL 值应为 derived/evaluated
- 应该提取手动输入的值 来自 tables "value" 列
问题
我们不希望表单将 SQL 派生值保存到 table。
有没有办法让某些行上的特定列不在数据库中存储值?这些将是包含 SQL 派生值的行,这些派生值显示在禁用的值单元格中,并在查询项目或分配属性时派生。
这是可能的,但您确实应该为您的表单实施 table 处理程序,而不是依赖 Oracle 表单为您执行 DML。
"implement table handlers",我的意思是,将块的“DML Data Target Type
”属性设置为“Use Transactional Triggers
”。
然后,为您的块编写 ON-INSERT
、ON-UPDATE
等触发器以调用 PL/SQL(传递适当的值以从您的块插入、更新等)。
在您的 PL/SQL 中,您可以将每一列准确地插入到您想要的位置和方式,或者根本不插入一列,这就是您想要的。
如果您使用的是 Oracle 电子商务套件,请参阅 Oracle 应用程序开发人员指南 第 10 章 ("Using PL/SQL in Oracle E-Business Suite: Coding Item, Event, and Table Handlers")。