判断Sbo的Matrix中是否存在相同数据行

简介:
软件中,我们经常要进行一些输入数据的合法性验证,下例给出了在Sbo中如何判断在matrix数据控件中,是否存在具有相同的数据特点的数据行?
 
显然,这是一个非常有用的函数,因为在数据行中,除了关键字之外(Primary Key)之外,可能还是需要其他的唯一数据行,而这些数据唯一性使用Unique Index又存在一些业务上的约束或者要求。那么这个函数就非常有用了。
 
        public Boolean IsExistsSameLine4Matrix( SAPbouiCOM.Matrix mtx, string[] strColumns, string strFocusId, string strShowMsg)
        {
            for (int j = 1; j <= mtx.RowCount; j++)
            {
                string[] strValues = new string[strColumns.Length];
                for (int m = 0; m < strValues.Length; m++) strValues[m] = GetMtxEditValue(mtx, strColumns[m], j);
                for (int k = j + 1; k <= mtx.RowCount; k++)
                {
                    Boolean bExistSameLine = true;
                    for (int m = 0; m < strValues.Length; m++)
                        if (strValues[m] != GetMtxEditValue(mtx, strColumns[m], k))
                        {
                            bExistSameLine = false;
                            break;
                        }
                    if (bExistSameLine)
                    {
                        string strMsg = "";
                        for (int m = 0; m < strValues.Length; m++) strMsg += " - " + strValues[m];
                        if (IsNull(strShowMsg, "").Length < 1) strShowMsg = "信息:重复的数据行";
                        ShowMsg(strShowMsg + strMsg);
                        if (IsNull(strFocusId, "").Length > 0) SetMtxFocus(mtx, strFocusId, j);
                        return bExistSameLine;
                    }
                }
            }
            return false;
        }
 
此函数在VS 2005/2008+Sbo 2005B/2007B中调试通过。


本文转自foresun  51CTO博客,原文链接:http://blog.51cto.com/foresun/96815,如需转载请自行联系原作者
相关文章
|
4月前
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
|
4月前
|
移动开发 前端开发 JavaScript
如何应用 matrix3d 映射变幻
如何应用 matrix3d 映射变幻
|
6月前
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)
122 0
|
算法 定位技术
【逻辑设计】卡诺图 | 布尔方程式 | 最小项与最大项 | 卡诺图无关项 Don‘t cares
【逻辑设计】卡诺图 | 布尔方程式 | 最小项与最大项 | 卡诺图无关项 Don‘t cares
454 0
|
PHP 数据格式
php清洗数据实战案例(1):根据关联数组的某个状态求不同状态下的个数
php清洗数据实战案例(1):根据关联数组的某个状态求不同状态下的个数
63 0
|
数据采集 移动开发 数据可视化
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
650 0
|
Python
numpy重新学习系列(8)---如何用np.empty创建一个未初始化的array
numpy重新学习系列(8)---如何用np.empty创建一个未初始化的array
81 0
numpy重新学习系列(8)---如何用np.empty创建一个未初始化的array
|
Python
numpy重新学习系列(9)---如何用np.empty_like创建一个新的和原来array形状一样的,但是未初始化的array
numpy重新学习系列(9)---如何用np.empty_like创建一个新的和原来array形状一样的,但是未初始化的array
123 0
numpy重新学习系列(9)---如何用np.empty_like创建一个新的和原来array形状一样的,但是未初始化的array
|
算法 异构计算 Python
【Python】向量叉积和凸包 | 引射线法 | 判断点是否在多边形内部 | 葛立恒扫描法 | Cross Product and Convex Hul
这个系列似乎反响不错, 所以我继续水下去 (bushi)。本篇博客是关于经典的 Cross Product and Convex Hull (向量叉积和凸包)的,我们将介绍引射线法,葛立恒扫描法。在讲解之前我会对前置知识做一个简单的介绍,比如向量叉积,如何确定直线是在顺时针上还是逆时针上等。算法讲解部分是为后面练习题做准备的,比如如何判断内点是否在多边形内,如何计算多边形面积等,还将简单介绍一下葛立恒扫描法,在提供的练习题中就能碰到.
872 0
【Python】向量叉积和凸包 | 引射线法 | 判断点是否在多边形内部 | 葛立恒扫描法 | Cross Product and Convex Hul
【TP5】不重复添加数据(案例:专题下的视频管理)
【TP5】不重复添加数据(案例:专题下的视频管理)
197 0
【TP5】不重复添加数据(案例:专题下的视频管理)