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

本文主要是介绍存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

现在则是在Oracle Apex中的应用

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

想要实现的效果

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

参考APP145,P26

select distinct (o.DEPT_ID) as id,  --数据ido.PARENT_ID as PARENT_ID, --父ido.NAME      as title,  --显示的标题o.DEPT_ID   as VALUE, --标题对应的值casewhen o.PARENT_ID is null then0else1end     as TYPE, --使用选择功能时需要 - 是配置 json 中 typeSettings 的映射值casewhen mod(o.DEPT_ID, 2) = 0 then 1else0end     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,casewhen a.PARENT_ID is null  then0else1end 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_idfrom FND_AREAS awhere a.TYPE = 2and a.DEL_FLAG = 0and a.TENANT_ID = 2union allselect f.FAB_ID || '_fab' id,f.NAME,null               parent_idfrom FND_FAB fwhere f.DEL_FLAG = 0and 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_USERNAMEor JOB_NUMBER = :P9999_USERNAME
ORDER BY TENANT_ID

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

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

新增【值列表】内容,

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

app277,page14,

还是之前的问题,

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

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

【可操作对象的存储】

-- 可操作对象的指定和存储
declarev_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';
beginif :AUTH_RANGE = 'IS_ALL' then-- 主表新增一条数据(验证是否存在)select JOB_NUMBER from MPF_USER_DEPT_MAIN_ASSO_Vwhere TENANT_ID = :USERTENANT AND DEL_FLAG = 0;else-- 主表新增一条数据 (验证是否存在)--- 查询本次要新增的人员数据for c in ( select u.JOB_NUMBERfrom (select JOB_NUMBERfrom MPF_USER_DEPT_MAIN_ASSO_Vwhere EXT_USER_ID in (select *from JA_UTILS_PKG.SPLIT_STR(v_user_ids, ','))unionselect JOB_NUMBERfrom MPF_USER_DEPT_MAIN_ASSO_Vwhere EXT_ORG_ID in (select *from JA_UTILS_PKG.SPLIT_STR(v_dept_ids, ','))) uleft join CODE_SYSTEM_OPERATION_AUTH a on u.JOB_NUMBER = a.JOB_NUMBERwhere a.OPERATION_AUTH_ID is null)loopDBMS_OUTPUT.PUT_LINE(c.JOB_NUMBER);end loop;end if;exceptionwhen others thenv_err_msg := sqlerrm || chr(13) || dbms_utility.format_error_backtrace;DBMS_OUTPUT.PUT_LINE(v_err_msg);
end;

未完成功能:

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

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

存在的问题:

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

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

重点和难点:

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

设备模板下载和设备导入

厂区-区域的级联展示

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

这篇关于存档&改造【06】Apex-Fancy-Tree-Select花式树的使用误删页数据还原(根据时间节点导出导入)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206686

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数