开发记录01——开发细节和问题解决

本文讲述了在Oracle开发中遇到的问题,包括使用rownum、共享组件显示部门名、交互式网格的配置、主键定义、FancyTreeSelect插件、数据传递及主键错误等,并提供了相应的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给列表加上序号

实现:Oracle有自带序号rownum,加上这个字段即可

【开发细节1】更新人可通过共享组件获取

【开发细节2】存入部门ID,想让其展示部门名,使用了共享组件,但是没显示,这是为什么呢?

【原因及解决方法】虽然引入了值列表,但是基于Item Value下无法展示NAME,必须选择Display Value of List of Values

【开发细节3】明明是交互式网格,但是没有复选框

【解决方法】将交互式网格中【属性】-【编辑】-取消【允许的操作】勾选

【通过中间表查询数据】

通过中间表CHECK_OBJECT_DEVICE_ASSO

来实现点检对象和点检设备表code_device

数据查询

  with area_v as (
            select a.area_id, a.name, a.del_flag
            from fnd_areas a
            where tenant_id = :usertenant
        )

        select rownum,
               c.device_id,
               c.tenant_id,
               c.device_code,
               c.device_name,
               decode(f.del_flag, 1, '', f.name)   fab_name,
               decode(a1.del_flag, 1, '', a1.name) area_name,
               decode(a2.del_flag, 1, '', a2.name) line_name
        from code_device c
                 left join fnd_fab f on c.fab_id = f.fab_id and c.tenant_id = f.tenant_id
                 left join area_v a1 on a1.area_id = c.area_id
                 left join area_v a2 on a2.area_id = c.line_id
        where c.device_id in (select device_id
                              from check_object_device_asso d
                              where object_id = :p20_object_id)
          and c.tenant_id = :usertenant
          and c.del_flag = 0;

【问题记录】点击“查看”设置跳转到P21的查看表单,但事与愿违,每次都报错然后跳转到P20

很疑惑到底是那一步出了问题

查看会话:

Exception in "final_exception_handler": Error Stack: ORA-20987: APEX - 没有为表单区域 点检对象_查看 定义主键项。

定义主键

定义主键

【开发细节4】搜索栏无法使用

【原因】属性未配置
【解决方法】进行配置

APEX Fancy Tree Select[插件]所在位置→【属性】→【Search Item】选择搜索框

【APEX Fancy Tree Select[插件]使用小细节】

selectMode为2时,选中父项并不会选中其下的子项,但是可以单独选中子项(父子之间独立)

“selectMode”控制父子级联,2为选中父级不会关联子,但选中子级会让父级变色,
改成3就能选中父的同时选中子,也可以单独选中子

换成实际数据:

【问题记录】

通过中间表CHECK_OBJECT_DEVICE_ASSO存储设备相关信息,但是传值未能传过去主表主键

【原因】OBJECT_ID未获取(P20→P26)

查看会话发现P9→P20还有

【解决方法】需要跳转的按钮→行为→重定向到指定的页需要绑定ID值

【出现问题】点击“查看”,显示对应的点检对象内容和绑定的点检表单,但是实际展示出来是空表单

查看会话,发现有报错:Error: 没有为表单区域 点检表单_查看 定义主键项。

Error: 没有为表单区域 点检表单_查看 定义主键项。

设置主键

【再次查看】并且将展示类型设为交互式网格

可以展示出来了,但是需要改一下样式和排版

【问题记录】基础数据获取到值,但是传值过程中获取不到值,

数据丢失如图所示:

而且点击保存后会弹出提示:

Header rewrite
Old: 显示处理过程中尝试保存处于会话状态的项 P20_OBJECT_ID。项保护级别为:
  可以在项具有 "会话" 校验和时设置项。

未传入校验和, 或者传入的校验和应该适合保护级别为 "(未提供校验和)" 的项。

注: 最终用户将得到不同的错误消息。
New: 显示处理过程中尝试保存处于会话状态的项 P20_OBJECT_ID。项保护级别为: 可以在项具有 "会话" 校验和时设置项。 未传入校验和, 或者传入的校验和应该适合保护级别为 "(未提供校验和)" 的项。 注: 最终用户将得到不同的错误消息。

【小细节】点击查看有分栏效果

   将点检对象和表单放在一个区域内[新建],设置父项,改变模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值