oracle apex master/detail 关系基于计算值?
oracle apex master/detail relationship based on a calculated value?
在 Oracle Apex 5.1
中,我想创建一个 master/detail
表单,其中的关系基于计算值。例如,主值是 'ABC_123'
,详细值类似于“\aaaa\bbbb\ABC_123_03-MAR-2017.txt
”。对于主值“ABC_123
”,我想要 return 所有包含“ABC_123
”的详细记录。我无法更改数据库表,因为这是供应商软件。在 Apex
中有什么方法可以做到这一点吗?
你们要re-designmaster-detail关系。方法如下:因为您已经在 master table 中有一个合适的列,所以没有什么可做的。假设它的源查询看起来像这样:
select id, name, master_value
from master_table
对于详细信息表单,其查询如下所示:
select some_date, some_name,
old_relationship_column --> this is used to currently create relationship
detail_value --> it is \aaaa\bbbb\ABC_123_03-MAR-2017.txt
from detail_table
您必须找到一种提取值的方法,然后将其与主表单相结合。例如:
SQL> with test (col) as
2 (select '\aaaa\bbbb\ABC_123_03-MAR-2017.txt' from dual)
3 select
4 substr(col,
5 instr(col, '\', 1, 4) + 1,
6 instr(col, '-') - instr(col, '\', 1, 4) - 4) new_rel_col
7 from test;
NEW_REL
-------
ABC_123
详细查询将是
select some_date, some_name,
old_relationship_column, --> irrelevant in new design
detail_value, --> it is \aaaa\bbbb\ABC_123_03-MAR-2017.txt
--
substr(detail_value,
instr(detail_value, '\', 1, 4) + 1,
instr(detail_value, '-') - instr(detail_value, '\', 1, 4) - 4)
new_relationship_column --> oh yes, we'll use it!
from detail_table
现在,转到详细信息表单的 OLD_RELATIONSHIP_COLUMN 属性并从其 主列 属性 中删除值。
接下来,转至 NEW_RELATIONSHIP_COLUMN 属性并 将其主列 属性 设置为主表单的 MASTER_VALUE 列。
就是这样 - 运行 表格和 - 如果一切设置正确 - 你将拥有一段充满活力的新关系。我怎么知道?刚刚测试过。
在 Oracle Apex 5.1
中,我想创建一个 master/detail
表单,其中的关系基于计算值。例如,主值是 'ABC_123'
,详细值类似于“\aaaa\bbbb\ABC_123_03-MAR-2017.txt
”。对于主值“ABC_123
”,我想要 return 所有包含“ABC_123
”的详细记录。我无法更改数据库表,因为这是供应商软件。在 Apex
中有什么方法可以做到这一点吗?
你们要re-designmaster-detail关系。方法如下:因为您已经在 master table 中有一个合适的列,所以没有什么可做的。假设它的源查询看起来像这样:
select id, name, master_value
from master_table
对于详细信息表单,其查询如下所示:
select some_date, some_name,
old_relationship_column --> this is used to currently create relationship
detail_value --> it is \aaaa\bbbb\ABC_123_03-MAR-2017.txt
from detail_table
您必须找到一种提取值的方法,然后将其与主表单相结合。例如:
SQL> with test (col) as
2 (select '\aaaa\bbbb\ABC_123_03-MAR-2017.txt' from dual)
3 select
4 substr(col,
5 instr(col, '\', 1, 4) + 1,
6 instr(col, '-') - instr(col, '\', 1, 4) - 4) new_rel_col
7 from test;
NEW_REL
-------
ABC_123
详细查询将是
select some_date, some_name,
old_relationship_column, --> irrelevant in new design
detail_value, --> it is \aaaa\bbbb\ABC_123_03-MAR-2017.txt
--
substr(detail_value,
instr(detail_value, '\', 1, 4) + 1,
instr(detail_value, '-') - instr(detail_value, '\', 1, 4) - 4)
new_relationship_column --> oh yes, we'll use it!
from detail_table
现在,转到详细信息表单的 OLD_RELATIONSHIP_COLUMN 属性并从其 主列 属性 中删除值。
接下来,转至 NEW_RELATIONSHIP_COLUMN 属性并 将其主列 属性 设置为主表单的 MASTER_VALUE 列。
就是这样 - 运行 表格和 - 如果一切设置正确 - 你将拥有一段充满活力的新关系。我怎么知道?刚刚测试过。