当前位置: 首页 > news >正文

Oracle APEX 经典报表中的Checkbox

1. 建表&投入测试数据

CREATE TABLE CONTRACT_YEAR_SETTING (BU_CODE        VARCHAR2(2 CHAR), BU_NAME        VARCHAR2(500 CHAR), YEAR           NUMBER(4), STATUS         VARCHAR2(30), START_DATE     DATE, END_DATE       DATE
);
/
INSERT INTO CONTRACT_YEAR_SETTING VALUES('02', '医学部_01',2024,'O',TO_DATE('2024-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2024-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO CONTRACT_YEAR_SETTING VALUES('03', '医学部_02',2024,'O',TO_DATE('2024-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2024-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO CONTRACT_YEAR_SETTING VALUES('10', '医学部_10',2024,'O',TO_DATE('2024-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2024-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO CONTRACT_YEAR_SETTING VALUES('02', '医学部_01',2025,'O',TO_DATE('2025-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2025-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO CONTRACT_YEAR_SETTING VALUES('03', '医学部_02',2025,'O',TO_DATE('2025-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2025-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
INSERT INTO CONTRACT_YEAR_SETTING VALUES('10', '医学部_10',2025,'O',TO_DATE('2025-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2025-12-01 12:34:56','YYYY-MM-DD HH24:MI:SS'));
COMMIT;

2. 经典报表做成

2-1. 画面布局如下

2-2. 报表使用的SQL

select APEX_ITEM.CHECKBOX2(1,ROWID,'class="row-checkbox"') as RS,BU_CODE,BU_NAME,YEAR,DECODE(STATUS,'O','オーペン','C','クロース','') AS STATUS,START_DATE,END_DATEfrom CONTRACT_YEAR_SETTING cyswhere (:P3003_YEAR IS NULL OR cys.YEAR = :P3003_YEAR)order by cys.BU_CODE, cys.YEAR

2-3. RS列的Heading设定

<input type="checkbox" id="selectAll" onclick="toggleSelectAll(this)">

2-4. Function and Global Variable Declaration

function toggleSelectAll(checkbox) {$('.row-checkbox').prop('checked', checkbox.checked);
}
function initCheckboxSync() {$('#selectAll').click(function() {var isChecked = $(this).prop('checked');$('.row-checkbox').prop('checked', isChecked).trigger('change');});$('.row-checkbox').change(function() {updateHeaderState();updateSelectedItems();});updateHeaderState();
}
function updateHeaderState() {var total = $('.row-checkbox').length;var checked = $('.row-checkbox:checked').length;$('#selectAll').prop('checked', checked === total).prop('indeterminate', false);
}

2-5. Execute when Page Loads

initCheckboxSync();

2-6. Process

DECLARElt_selected_ids    apex_application_global.vc_arr2;lv_status          CONTRACT_YEAR_SETTING.STATUS%type;
BEGINlt_selected_ids := apex_application.g_f01;if lt_selected_ids.COUNT = 0 thenapex_error.add_error (p_message          => 'No rows are selected or updated.',p_display_location => apex_error.c_inline_in_notification );return;end if;FOR i IN 1..lt_selected_ids.COUNT LOOPSELECT STATUSINTO lv_statusFROM CONTRACT_YEAR_SETTINGWHERE ROWID = lt_selected_ids(i);IF lv_status = 'C' THENUPDATE CONTRACT_YEAR_SETTINGSET STATUS = 'O'WHERE ROWID = lt_selected_ids(i);ELSEUPDATE CONTRACT_YEAR_SETTINGSET STATUS = 'C'WHERE ROWID = lt_selected_ids(i);END IF;END LOOP;COMMIT;
END;

3. 运行效果

http://www.dtcms.com/a/344274.html

相关文章:

  • 期货Level2五档订单簿0.25秒级高频分时及日频历史行情数据使用指南
  • Docker 部署 MySQL 8.0 完整指南:从拉取镜像到配置远程访问
  • 高级SQL优化 | 告别 Hive 中 GROUP BY 的大 KEY 数据倾斜!PawSQL 自适应优化算法详解
  • MsSQL 函数,实现数字转换成人民币大写
  • IDEA基础配置优化指南(中英双版)
  • matlab中随机森林算法的实现
  • AI重塑职业教育:个性化学习计划提效率、VR实操模拟强技能,对接就业新路径
  • 在Excel和WPS表格中如何隐藏单元格的公式
  • 视觉语言对比学习的发展史:从CLIP、BLIP、BLIP2、InstructBLIP(含MiniGPT4的详解)
  • 一分钟了解六通道 CAN(FD) 集线器
  • 第二阶段WinFrom-6:文件对话框,对象的本地保存,序列化与反序列化,CSV文件操作,INI文件读写
  • 【虚拟化】磁盘置备方式的性能损耗对比
  • k8s应用的包管理Helm工具
  • 基于国产麒麟操作系统的Web数据可视化教学解决方案
  • 【Java SE】深入理解继承与多态
  • 使用 YAML 文件,如何优雅地删除 k8s 资源?
  • Apache Druid SSRF漏洞复现(CVE-2025-27888)
  • 孤独伤感视频素材哪里找?分享热门伤感短视频素材资源网站
  • Sklearn 机器学习 房价预估 使用GBDT训练模型
  • 【Linux我做主】细说进程地址空间
  • Ansible入门:自动化运维基础
  • docker 打包
  • 前端项目打包+自动压缩打包文件+自动上传部署远程服务器
  • 设计模式笔记
  • 开题报告被退回?用《基于大数据的慢性肾病数据可视化分析系统》的Hadoop技术,一次通过不是梦
  • Matplotlib 可视化大师系列(五):plt.pie() - 展示组成部分的饼图
  • 故障诊断:基于大模型的实现方法与开源实践(从入门到精通)
  • Matplotlib 可视化大师系列(一):plt.plot() - 绘制折线图的利刃
  • linux----进度条实现和gcc编译
  • [MySQL数据库] MySQL优化策略