• 存档&改造【04】二维码操作入口设置细节&自动刷新设置后的交互式网格&内容的隐藏


    因为数据库中没有数据无法查看设置效果,于是自己创建了个测试数据表,用来给demo测试

    1. -- 二维码操作入口设置
    2. create table JM_QR_CODE
    3. (
    4. QR_CODE_ID NUMBER generated as identity primary key,
    5. SYSTEM_ID NUMBER(20) not null,
    6. IS_ENABLE NUMBER(1),
    7. OPERATION_NAME NVARCHAR2(64),
    8. DESCRIPTION NVARCHAR2(255),
    9. ENTRY_URL NVARCHAR2(255),
    10. AUTH_RANGE NVARCHAR2(512) not null,
    11. CREATED_BY NUMBER(20),
    12. CREATION_TIME DATE,
    13. UPDATED_BY NUMBER(20),
    14. UPDATED_TIME DATE,
    15. TENANT_ID NUMBER(20) not null,
    16. DEL_FLAG NUMBER(1)
    17. )
    18. /
    19. comment on table JM_QR_CODE is '晶码二维码操作入口设置表'
    20. /
    21. comment on column JM_QR_CODE.QR_CODE_ID is '主键'
    22. /
    23. comment on column JM_QR_CODE.SYSTEM_ID is '接入系统ID'
    24. /
    25. comment on column JM_QR_CODE.IS_ENABLE is '启用状态'
    26. /
    27. comment on column JM_QR_CODE.OPERATION_NAME is '操作项名称'
    28. /
    29. comment on column JM_QR_CODE.DESCRIPTION is '操作项描述'
    30. /
    31. comment on column JM_QR_CODE.ENTRY_URL is '操作入口地址'
    32. /
    33. comment on column JM_QR_CODE.AUTH_RANGE is '操作权限范围:IS_ALL-任何人'
    34. /
    35. comment on column JM_QR_CODE.CREATED_BY is '创建人'
    36. /
    37. comment on column JM_QR_CODE.CREATION_TIME is '创建时间'
    38. /
    39. comment on column JM_QR_CODE.UPDATED_BY is '更新人'
    40. /
    41. comment on column JM_QR_CODE.UPDATED_TIME is '更新时间'
    42. /
    43. comment on column JM_QR_CODE.TENANT_ID is '租户ID'
    44. /
    45. comment on column JM_QR_CODE.DEL_FLAG is '逻辑删除'
    46. /

    在demo中引入该数据表,结果

    【错误记录】未定义交互式网格 '二维码操作入口设置' 的主键列, 而此列是编辑或主从关系所必需的。

    报错:

    未定义交互式网格 '二维码操作入口设置' 的主键列, 而此列是编辑或主从关系所必需的。

    请与您的应用程序管理员联系。

    技术信息(仅提供给开发人员使用)

    • is_internal_error: true
    • apex_error_code: APEXDEV.IG.NO_PK
    • component.type: APEX_APPLICATION_PAGE_REGIONS
    • component.id: 248143772048740294
    • component.name: 二维码操作入口设置
    • error_backtrace:
      ----- PL/SQL Call Stack -----
        object      line  object
        handle    number  name
      0x8828a6a8       981  package body APEX_220200.WWV_FLOW_ERROR.INTERNAL_GET_ERROR
      0x8828a6a8      1049  package body APEX_220200.WWV_FLOW_ERROR.INTERNAL_ADD_ERROR
      0x8828a6a8      1522  package body APEX_220200.WWV_FLOW_ERROR.RAISE_INTERNAL_ERROR
      0xa62db5b0      7104  package body APEX_220200.WWV_FLOW_INTERACTIVE_GRID.RENDER
      0x725d9208      2334  package body APEX_220200.WWV_FLOW_REGION_NATIVE.RENDER_REGION
      0x882538d0      2766  package body APEX_220200.WWV_FLOW_PLUGIN.RENDER_REGION
      0x729a3488      1023  package body APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS.DISPLAY_REGION_BODY
      0x729a3488      1584  package body APEX_220200.WWV_FLOW_DISP_PAGE_PLUGS.RENDER_REGION
      0x72ae1338      1880  package body APEX_220200.WWV_FLOW_PAGE.RENDER_COMPONENTS
      0x72ae1338      1975  package body APEX_220200.WWV_FLOW_PAGE.RENDER_PAGE_COMPONENTS
      0x72ae1338      2960  package body APEX_220200.WWV_FLOW_PAGE.EMIT_BODY
      0x72ae1338      3209  package body APEX_220200.WWV_FLOW_PAGE.RENDER
      0x8a3b2088      3308  package body APEX_220200.WWV_FLOW.SHOW
      0x8a3b2088      5393  package body APEX_220200.WWV_FLOW.RESOLVE_FRIENDLY_URL
      0xa69326d8         2  anonymous block

    说是为定义主键列,我:???  这不是在这儿呢吗

    【问题原因】后来找到原因了,是apex上的主键未设置

    【问题解决】需要将列下的主键→【源】→【主键】【仅查询】打开

    初具雏形

    给启用状态设置标识类型

    ”往返“

    【错误记录】给列设类型后报错"呈现区域xxx时出错"

    "切换"(直接报错)

    【问题原因】未设置启用禁用值(自带的是默认,默认不被识别)
    【问题解决】选中列中的对应字段→【设置】关闭默认值→设置启用/禁用值(这里我用的1/0)

    更改后:

    在设置里进行展示回显,但是值列表一查还是什么都不显示,后来去数据表查看还是什么都没有,才想起来数据表里没有任何数据ORZ

    往里面添加好数据以后的展示

    修修改改以后出现了新的问题:

    进入设置修改操作项描述点击“保存”以后没有反应,既无设置的项更改,也不关闭弹窗,进入对应的页设置,发现保存按钮对应的【行为】→【数据库操作】“SQL UPDATE操作”

    明明之前还能更改来着QAQ

    解决方法:重新建一个,这次可以成功实现点击保存后对话框消失,数据可以更改啦!

    【小技巧】更新后自动刷新交互式网格

    但是一个新的问题出现了:每次修改后主交互式网格数据需要手动进行刷新,这很不符合用户使用体验,于是需要在保存后对数据进行自动刷新:

    在主交互式网格页设计器→【动态操作】→【对话框已关闭】→右键 创建动态操作→【标识】自定义名称“保存后刷新”→【时间】选择类型“JavaScript表达式” →window刷新

    →创建真操作→【标识】刷新

    如此就大公告吉了。

    【待解决的问题】存入的是SYSTEM_ID,想要页面展示的是SYSTEAM_NAME

    【小细节】在查找多个字段时,哪个字段在前页面优先展示哪个内容

    实例:

    ID在前,优先展示ID

    NAME在前,优先展示NAME

    【待解决的问题】想要在选中选项“任何人”的时候隐藏部门和用户,只有选中选项“指定角色或部门”时才出现

    隐藏语句:

    1. if ($v('P38_TYPE') != 0) {
    2. $x_Show("P38_PARENT_ID");
    3. $x_Hide("P38_PAGE_ID");
    4. } else {
    5. $x_Hide("P38_PARENT_ID");
    6. $x_Show("P38_PAGE_ID");
    7. }

    过程

    记得要在【二维码操作入口设置】添加静态ID

    js语句

    var flag = $v('P27_HIDDEN');
    // console.log(flag);
    if (flag == 0){
       $("#P27_RANGE").parent('div').parent('div').show();

    } else{
       $("#P27_RANGE").parent('div').parent('div').hide();
    };

    PL/SQL语句

    begin
      if :P27_HIDDEN = 0 then
      :P27_HIDDEN := 1;
      else
        :P27_HIDDEN := 0;
      end if;
    end;

    if ($v('P27_AUTH_RANGE' != 0)) {
        $x_Show("P27_");
        $x_Hide("P38_PAGE_ID");
    } else {
        $x_Hide("P38_PARENT_ID");
        $x_Show("P38_PAGE_ID");
    }

    运行后报错

    ERR-1002 在应用程序 "277" 中未找到项 "P27_HIDDEN" 的项 ID。

    将可操作对象下的动态操作【时间】操作将“更改”改为“按键”就不报这个错了,但是也没能隐藏就是了

  • 相关阅读:
    django超市管理系统-计算机毕业设计源码53507
    银行人总结5个影响系统性能的因素,怕是很多人都会忽略
    了解一下拉绳位移编码器还有哪些功能特点?
    history命令(查看linux的shell执行命令记录)
    为什么使用KT6368A蓝牙芯片用app连接,基本都在5分钟左右后断开
    css实现三角形
    【JVM笔记】安全点与安全区域
    微软ML Copilot框架释放机器学习能力
    Elasticsearch
    【力扣刷题】Day30——DP专题
  • 原文地址:https://blog.csdn.net/clover_oreo/article/details/133635587