判断画布中有重复纪录
情景:输入条码,需要从一数据源A表查询数据,将查询结果显示在基于line表的block上面。
假设BLOCK是基于表line,然后新建临时表line_tmp,并新建唯一索引。
item:barcode 和 indate,其中barcode是条码,indate是条码之后紧接的一个item。
新增数据 :
barcode(post-change):
先将条码匹配的数据查询出来,insert于line_tmp;
indate(when-new-item-instance):
这个触发器每刷一次条码就会触发一次,且紧接着barcode(post-change)。
从line_tmp查询数据,然后一行一行copy到block上。
在block级的post-insert或update后,delete临时表line_tmp数据。
更改数据:
首先查询出block数据,在post-query将block数据装入临时表。
重复上面新增数据的步骤。
以下转载
由于when-validate-item 不能使用go_item(),first_record等,而when-new-item-instance却允许,所以,可以这样处理: 以基本表(id主键,name ,remark,20行每页界面)
在id(主键)的下一导航项,设置为check_uniqueness_button.
check_uniqueness_button为这个块内的一个按钮,它的when-new-item-instance担任检查该行的重复情况的功能,代码见本贴附录。
另外,手工按check_uniqueness_button,也会执行这段代码,产生手工检查重复情况的功能。
附录代码:
declare
temprecord number;
tempval varchar2(20);
temp_count number :=0;
BEGIN
go_item('base_table.id');
temprecord := :system.cursor_record;
tempval := :base_table.id;
first_record;
if :system.current_value is not then ---如果有记录,开始运算
loop
if :base_table.id = tempval and :system.cursor_record <> temprecord then
temp_count := temp_count + 1;
message('代码有重复,请检查第:' || :system.cursor_record
|| '行,代码:'|| :base_table.id ||',名称:' ||:base_table.name);
message('代码有重复,请检查第:' || :system.cursor_record
|| '行,代码:'|| :base_table.id ||',名称:' ||:base_table.name);
end if;
next_record;
if :system.current_value is then
exit;
end if;
end loop;
if temp_count = 0 then
message('该行代码没有重复');
end if;
go_record(temprecord);
go_item('base_table.name');
else
message('光标所有行没有代码为空,请先将光标放在有数值的地方');
message('光标所有行没有代码为空,请先将光标放在有数值的地方');
end if;
END;
附录
check_record_uniqueness 可以检查一个数据块(Data Block)内,主键有无重复的记录。
使用方法举例:
1.Block 上,先设定一个item是主键。
2。在主键字段的 when-validate-item trigger 上,加入如下代码:
check_record_uniqueness;
if not form_sucess then
clear message;
message(数据有重复!");
end if;
以上代码,可以使用户每输入一条记录时,系统自动检查主键有无重复。
优点:速度快,代码简单。
缺点:只能应用于主键。
最致命的缺点:经测试后发现,它只能检查新输入的数据,与已存盘的数据有无重复。如果新输入的记录与未存盘的记录重复,它不会报警!
使用建议:
1。只可用于比较简单的场合,及用户每次输入的资料数目比较少的情况。如果用户大批量输入:如每次输入几十条,甚至上百条,使用check_record_uniqueness便会心惊胆跳了,因为谁也不能保证 ,新输入的数据内会否有重复。
2。如果不是应用于主键,如果每次用户输入量可能比较大,建议自行编写查重复的代码
转载于:https://www.cnblogs.com/liuweicong39/archive/2012/06/01/2530677.html
判断画布中有重复纪录相关推荐
- JS的表单序列化,数组去重,判断数组是否重复等方法
一.背景 本篇主要是记录一下JS中常用的工具方法.包括表单序列化,判断数组是否重复,数组去重等.做个笔记 二.工具方法 1.表单元素序列化为对象 public function serializeOb ...
- 判断字符串中有多少汉字
如何判断字符串中有多少汉字代码实例: <html xmlns="http://www.w3.org/1999/xhtml" ><head> <titl ...
- 给定一个整数数组,判断是否存在重复元素。
存在重复元素 给定一个整数数组,判断是否存在重复元素. 如果存在一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false 示例 1: 输入: [1,2,3,1] ...
- java检测用户是否重复登录_Java web工程判断用户是否重复登录
前几天,网上找了些朋友的资料,做了一个小功能,验证用户是否重复登录. 原理就是:每一个用户,登录前有一个验证,当第一次登录时,会把其session信息,添加到一个特定的静态变量中.当第二次登录时,验证 ...
- SQL Server 表中有重复的数据,无法对重复数据进行更新或删除。
SQL Server 表中有重复的数据,无法对重复数据进行更新或删除. 弹出错误信息提示窗口提示"已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行). 通常这种情况是因为表 ...
- BZOJ1654 奶牛舞会+tarjan算法(入门题目)+判断图中有几个环
题目大意: 判断图中有几个环 #include<cstdio> #include<cstring> #include<algorithm> using namesp ...
- html怎么校验用户名重复,layui的表单验证支持ajax判断用户名是否重复的实例
如下所示: 在一个表单中,在提交前我们想判断该用户名是否存在,在layui中不支持.onblur()失去焦点事件,用按钮来手动触发,表单又不太美观,可以使用form表单的verify来进行验证. ht ...
- python 判断list 中重复元素最后1次出现的位置
方法 1 把list 转string 之后使用rfind python 判断list 中重复元素最后1次出现的位置 ,list 中没有直接方法判断 不过string 有find 和 rfind的 ,f ...
- js判断数组中重复元素并找出_面试中常遇见的数组去重
导读 JS数组去重是面试中并不少见的问题,听起来很简单,当你兴高采烈地回答了你的方法之后,你以为这道题就结束了吗?No,一般来说,面试官会继续问你"除了你刚刚说的方法,还有其他更好的方法吗? ...
最新文章
- rsync+inotify实现服务器之间文件实时同步--转
- Java中的门面设计模式,非常有用!
- Chrome安装metamask
- CSS实现div悬浮框的代码(兼容IE6)
- 【SDOI2013】项链【莫比乌斯反演】【Polya定理】【递推式求通项】【数论】
- 第一个smarty例子--分页显示数据
- 图像处理算法工程师——1必备技能总结——2面试题大全
- JavaScript服务器端开发(函数实参对象arguments使用的几个注意事项)
- 管理感悟:一偷懒,必出错
- 使用TRADOS翻译软件助力论文写作-基本软件设置、谷歌GOOGLE和百度翻译平台接入
- CAMERA效果中有关SHADING的概述
- 计算机网络状态机,计算机网络之七:TCP协议(1)
- ABAP总结之十一,Enhancement(5)--Field Exits
- TaWRKY19/61/82激活糖转运蛋白TaSTP3从而增强小麦条锈病敏感性
- vue组件中的data为什么是一个函数
- Python服务器开发(1)
- 命令行下批量下载网易相册
- eplan和西门子plc的对接_Eplan成为西门子PLM解决方案合作伙伴:集成Eplan和Teamcenter系统...
- python获取网页验证码_Python识别网站验证码
- 宝藏APP,小众但好用
热门文章
- python string转int_Python int与string之间的转化
- oracle利用游标添加数据库,Oracle数据库游标的类型及使用实例全解
- 大数据学习笔记:Hadoop生态系统
- 【BZOJ2440】完全平方数,莫比乌斯反演+二分答案+容斥思想
- 【BZOJ3531】旅行,树链剖分+开点线段树
- android+proguard目录,Android proguard问题:路径可能不是null或空字符串.路径=“空”...
- 2017.3.31 棋盘制作 失败总结
- Linux下配置简单的图形桌面环境
- 【Python】理解Python(1) - Python数据模型,is关键字,类型
- 【英语学习】【Level 08】U04 What I love L5 Breathe in, breathe out