存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入)

news2024/11/20 9:37:53

之前一直想实现厂区-区域-产线之间的级联选取,于是导入插件Apex-Fancy-Tree-Select花式树

存档&改造【03】Apex-Fancy-Tree-Select花式树的导入-CSDN博客

现在则是在Oracle Apex中的应用

花式书级联列表展示厂区-区域-产线

想要实现的效果

  • 由厂区>区域>产线逐级将项列出后来发现三层暂时无法实现,改为厂区>区域逐级将项列出
  • 勾选指定项目进行筛选勾选上级时默认勾选下级
  • 筛选条件应用于右侧

参考APP145,P26

select distinct (o.DEPT_ID) as id,  --数据id
                o.PARENT_ID as PARENT_ID, --父id
                o.NAME      as title,  --显示的标题
                o.DEPT_ID   as VALUE, --标题对应的值
                case
                    when o.PARENT_ID is null then
                        0
                    else
                        1
                    end     as TYPE, --使用选择功能时需要 - 是配置 json 中 typeSettings 的映射值
                case
                    when mod(o.DEPT_ID, 2) = 0 then 
                        1
                    else
                        0
                    end     as SELECTED,  --设置加载时选中 0(null): 不选中 1:选中
                0        as EXPANDED,     --是否展开未选中项 0(null): 不展开 1:展开
                1           as CHECKBOX,     --是否启用复选框 0(null): 禁用 1:启用
                0           as UNSELECTABLE  --设置不可选中 0(null): 可以 1: 不可以
from APEX_TEST_DEPT o
start with PARENT_ID is not null
connect by prior DEPT_ID = PARENT_ID
order by DEPT_ID;

试着改一个

Error occured! Please check browser console for more information.

发生错误!有关详细信息,请查看浏览器控制台。

查看会话

后来在蒋老师提供PL/SQL代码支持下得以展示

select a.id    as ID,
       a.PARENT_ID,
       a.NAME  as TITLE,
       a.id    as VALUE,
       case
           when a.PARENT_ID is null  then
               0
           else
               1
           end as TYPE,
       0          SELECTED,
       NULL    as EXPANDED,
       1       as CHECKBOX,
       0       as UNSELECTABLE
from (
         select a.AREA_ID || '_area' id,
                a.NAME,
                FAB_ID || '_fab'     parent_id
         from FND_AREAS a
         where a.TYPE = 2
           and a.DEL_FLAG = 0
           and a.TENANT_ID = 2

         union all

         select f.FAB_ID || '_fab' id,
                f.NAME,
                null               parent_id
         from FND_FAB f
         where f.DEL_FLAG = 0
           and f.TENANT_ID = 2
     ) a
start with a.PARENT_ID is null
connect by prior a.id = a.PARENT_ID
order by a.NAME;

查看会话

DEPRECATED: json_from_sql, use APEX_EXEC and APEX_JSON instead

已弃用:json_from_sql,请改用APEX_EXEC和APEX_json

后来找到了,需要在【属性】里配置json,将类型改成3,即选中父项也会选中子项

之后就是在页面根据级联列表选中的厂区和区域进行筛选展示,及一进来默认全不选,所有数据都能展示,勾选厂区/区域后进行对应数据展示。

一整个完整过程

查看筛选代码样例

select *
from CODE_DEVICE
where AREA_ID in (
    select regexp_replace(data_val, '_area', '')
    from UTILS_PKG.SPLIT_STR(
            '94_area:102_area:103_area:104_area:321_area:322_area:323_area:324_area:325_area:326_area:327_area:95_area:328_area:93_area:96_area:97_area:98_area:99_area:100_area:101_area',
            ':')
);

到数据库查询改数据核对是否成功

查询成功,方向可行。

后续在实现的时候出现网页上显示id取到了,但是查找一片空白,什么都没有

后来蒋老师慧眼如炬找到了问题所在,在点击确认后确实会执行Javascript代码中在网页控制台打印选中的id,但是参考的样例只是个demo没有实际数据,所以id置空,我也跟着置空,可不是取不到吗,我的问题!

后来将取到的ID传过去就没问题了

按钮【确定】→【动态操作】→【执行JavaScript代码】↓

if (!utils.checkNull($v('P34_IDS_1'))) {
    decives_ids = $v('P34_IDS_1');
} else {
    $s('P34_IDS_1', decives_ids);
}
console.log("选中的区域ids:",$v('P34_IDS_1'));

查询结果

页面会展示含有选中厂区/区域ID的数据

【存在的问题】确定键只能选一次,每次选中展示数据都要刷新重新选,而且页面不刷新还会展示上一次界面

【突发状况】想要删除无用的app277多余页面,但是数据交互一不小心删除了app145,想要还原对应数据,但是历史记录对应景删除的页面无能为力

【解决办法】导出删除时间前的应用程序数据,然后再次导入

替换被删除的应用程序

被误删的页终于回来了!!!

【待解决】在选中数据生成对应二维码

之前因为没给到数据表和结构,所以用的是测试表数据,展现效果差强人意,

后续使用新的数据表结果页面一片空白,查看会话调试结果,发现报错

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

嘶——怪哉,之前用老数据还能展示的,只是名称没能转换出来

到底是哪里出了问题呢?

去看登录页查看USER_TENANT,对照晶豹发现该项没有改变

值列表依旧是SQL查询

SELECT DISTINCT (SELECT NAME FROM MPF.SHARE_TENANT_V B WHERE B.TENANT_ID = A.TENANT_ID) NAME, TENANT_ID
FROM MPF_USER_DEPT_MAIN_ASSO_V A
WHERE MOBILE = :P9999_USERNAME
   or JOB_NUMBER = :P9999_USERNAME
ORDER BY TENANT_ID

倒是REMEMBER(记住账户)发生了一些改变:

原来的【标识】→【类型】是“复选框”,新的是“复选框组”

新增【值列表】内容,

和登录还有样式关系不大,还是去调试里找原因

app277,page14,

还是之前的问题,

ERR-1002 在应用程序 "277" 中未找到项 "USER_TENANT" 的项 ID。
【问题原因】USER_TENANT租户信息未获取
【问题解决】在USER_TENANT项下的设置【默认值】,获取租户信息

参考存档&改造【05】通过视图实现多表联查&理清级联层级关系&对字段的唯一约束_王小小鸭的博客-CSDN博客

【可操作对象的存储】

-- 可操作对象的指定和存储
declare
    v_err_msg  nvarchar2(2000);
    v_user_ids varchar2(2000);
    v_dept_ids varchar2(2000);
--     v_user_ids varchar2(2000) = 'JA063198';
--     v_dept_ids varchar2(2000) = '100';
begin

    if :AUTH_RANGE = 'IS_ALL' then
        -- 主表新增一条数据(验证是否存在)
      select JOB_NUMBER from MPF_USER_DEPT_MAIN_ASSO_V
      where TENANT_ID = :USERTENANT AND DEL_FLAG = 0;

    else
        -- 主表新增一条数据 (验证是否存在)
        --- 查询本次要新增的人员数据
        for c in ( select u.JOB_NUMBER
                   from (select JOB_NUMBER
                         from MPF_USER_DEPT_MAIN_ASSO_V
                         where EXT_USER_ID in (
                             select *
                             from JA_UTILS_PKG.SPLIT_STR(v_user_ids, ',')
                         )
                         union
                         select JOB_NUMBER
                         from MPF_USER_DEPT_MAIN_ASSO_V
                         where EXT_ORG_ID in (
                             select *
                             from JA_UTILS_PKG.SPLIT_STR(v_dept_ids, ',')
                         )) u
                            left join CODE_SYSTEM_OPERATION_AUTH a on u.JOB_NUMBER = a.JOB_NUMBER
                   where a.OPERATION_AUTH_ID is null)
            loop
                DBMS_OUTPUT.PUT_LINE(c.JOB_NUMBER);
            end loop;
    end if;

exception
    when others then
        v_err_msg := sqlerrm || chr(13) || dbms_utility.format_error_backtrace;
        DBMS_OUTPUT.PUT_LINE(v_err_msg);
end;

未完成功能:

鼠标点击设备编码和设备名称可查看生成的二维码(最好能复制,复制不了就复制链接,蒋老师说不是什么问题,截个图的事儿)

二维码操作入口设置-新增、编辑

存在的问题:

级联树形列表刷新后只能保存一次数据(后续需刷新)

二维码操作入口-列表展示-可操作对象应该设置成仅展示,不能更改(更改在设置里)

重点和难点:

二维码的生成、预览、批量下载

设备模板下载和设备导入

厂区-区域的级联展示

二维码操作入口-操作项设置-设置可操作对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shopee活动报错怎么办?Shopee活动类型怎么选择?-站斧浏览器

有时候,在同步虾皮活动的过程中,您可能会遇到一些问题或报错信息。遇到这种情况要怎么办,Shopee活动类型怎么选择? Shopee活动报错怎么办? 下面是几种常见的问题及其解决方法: 1、网络连接问题&#xff…

05 | @Query 解决了什么问题?什么时候应该选择它?

上个课时我们介绍了 Query Define Method 的语法,这一课时来介绍一下 Query 注解的语法是什么样的。我们通过快速体验 Query 的方法、JpaQueryLookupStrategy 关键源码剖析、Query 的基本用法、Query 之 Projections 应用返回指定 DTO、Query 动态查询解决方法&…

网工笔记整理:策略工具Filter-policy的使用

一、概述 Filter-Policy(过滤-策略)是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于IS-IS、OSPF、BGP等协议。 Filter-policy在距离矢量路由协议中的应用 filter-policy import:不发…

Python学习基础笔记六十五——布尔值

布尔对象: Python中有一种对象类型称之为布尔对象(英文叫bool)。 布尔对象只有两种取值,True和False。对应的是真和假,或者说是和否。True对应的是,False对应的是否。 我觉得这句话是一个关键&#xff1a…

04 | 如何利用 Repository 中的方法返回值解决实际问题?

上一课时,我们着重讲了方法名和参数的使用方法,这一课时我们来看下Repository 支持的返回结果有哪些,以及 DTO 类型的返回结果如何自定义,及其在实际工作场景中我们如何做。通过本课时的学习,你将了解到 Repository 的…

Ansible概述以及模块

目录 一、Ansible概述 1、Ansible是什么 2、Ansible的作用 3、Ansible的特性 4、Ansible的工作机制 5、Ansible的特点 二、Ansible安装部署 1、管理端安装ansible 2、配置主机清单 3、配置密钥对验证 三、Absible命令行模块 1、command模块 2、shell模块 3、cron …

Jackson+Feign反序列化问题排查

概述 本文记录在使用Spring Cloud微服务开发时遇到的一个反序列化问题,RPC/HTTP框架使用的是Feign,JSON序列化反序列化工具是Jackson。 问题 测试环境的ELK告警日志如下: - [43f42bf7] 500 Server Error for HTTP POST "/api/open/d…

一篇文章让你了解“JWT“

一.JWT简介 1.概念 JWT (JSON Web Token) 是一种用于在网络上安全传输信息的开放标准(RFC 7519)。它是一种紧凑且自包含的方式,用于在不同组件之间传递信息,通常用于身份验证和授权目的。JWT 是以 JSON 格式编码的令牌&#xff…

Shell后门脚本

说明:请在云服务器中执行,执行脚本后会发生 1、创建${create_user}用户并赋予sudo权限2、获取公网IP地址和SSH端口3、将用户公网IPSSH端口信息发送给${mail_from}变量 #!/bin/bash # 收件人邮箱 mail_fromxxxxx.com sshd_port$(grep "^Port"…

AI低代码维格云甘特视图怎么用?

甘特视图,以日期为横轴展示任务持续时长和先后顺序,简称甘特图。 项目管理过程中,合理分配任务和资源至关重要,使用甘特图,妥当解决以下场景: 想知道整个项目的周期多长,哪些任务对项目的周期影响最大; 想知道每个任务的时间有多长,任务的优先级和依赖关系是什么; 想…

VUE3页面截取部署后的二级目录地址

用vue3开发了一个项目,只能部署在根目录,不能加二级目录,后来网上找了解决方案,在vite.config.ts中增加base: ./,配置解决问题,参考下图: 但部署后要获取部署的二级目录地址切遇到问题,后来想了…

SQL如何导入数据以及第一次上机作业

如何导入excel数据 首先得学会导入数据 使用excel格式不需要改成其它格式(如csv,txt),因为你改了到时候还是会报错(实践过使用Sum统计总数一直说我数据格式有问题) 首先右键TSGL数据库->任务->导入数…

makefile规则查找

文章目录 对应 跟我一起写Makefile2.1**makefile** **的规则****2.2** **一个示例****2.5** **让** **make** **自动推导****2.6 makefile** **的另一种风格****2.7** **清空目录的规则****2.10** **包含其它** **Makefile****3.4** **文件搜寻****3.5** **伪目标****3.6** **多…

AWS香港Web3方案日,防御云安全实践案例受关注

9月26日,AWS合作伙伴之Web3解决方案日在香港举办。来自人工智能、Web3等领域的创业公司、技术专家、风险投资商,就元宇宙时代未来发展进行了深入交流。现场展示了顶象防御云在金融与Web3领域的安全实践案例。 Web3为互联网体系架构的一个整体演进和升级&…

LoRa技术未来发展前景:物联网和边缘计算的引领者

随着物联网和边缘计算的快速发展,低功耗广域网(LoRa)技术在连接远距离设备、实现长距离通信和满足低功耗需求方面崭露头角。本文将分析LoRa技术在未来的发展前景,尤其是在物联网和边缘计算领域的潜在影响。 LoRa技术的核心优势 1…

自动化产线集控系统(西门子CNC 840D/840DSL远程控制)

1.1项目背景 RQQ/VF120机组目前为1人操作3台机床,需在机台旁监控。为了改善人员在班中劳动强度非常大的现状,调整好每台机床的节奏,以保证机床的最少的等待时间。本项目旨在通过远程监视设备运行过程关键参数,操作人员人员可远程监…

清洁洗鞋商城小程序的作用是什么

人靠衣装,一身干净合身的衣物总是给人赏心悦目的感觉,人们对颜值要求越来越高,不仅是衣服,鞋也是重要的组成部分。各种品牌样式鞋,很多人家里往往有几十双,而在清洁这一块,没有时间、或材质特殊…

JS加密/解密之webpack打包代码逆向

Webpack 是一个强大的打包工具,能够将多个文件打包成一个或多个最终的文件。然而,将已经经过打包的代码还原回原始源代码并不是一件直接的事情,因为 webpack 打包的过程通常会对代码进行压缩、混淆和优化,丢失了部分变量名和代码结…

K8S环境搭建

K8S环境搭建 前置条件 部署3台VM,一台作为master,两台作为slave需要保障vm之间网络是互通的 为vm安装docker # 安装/更新 yum-utils yum install -y yum-utils#添加阿里镜像稳定版仓库 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce…

TCP/IP(六)TCP的连接管理(三)半连接

一 半连接和全连接 内容参考小林coding 说明: 普通中小厂不会问的这么深,这么细,但是当性能调优阶段必须掌握原理 ① 内容提纲 ② 概念 说明: 半连接只是一个中间状态 ② 图谱 二 半连接 ① 查看 TCP 半连接队列长度 root 用户 执行 --> …