dev GridControl 按条件纵向合并单元格

2023-10-29

dev GridControl 按条件纵向合并单元格

 gridView5.OptionsView.AllowCellMerge = true;

  gridView5.CellMerge += gridView5_CellMerge;

  //自定义合并单元格监听事件

        void gridView5_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {

            int rowHandle1 = e.RowHandle1;
            int rowHandle2 = e.RowHandle2;
            string strValue1 = gridView5.GetDataRow(rowHandle1)["chbwtypename"].ToString(); //获取分数列值
            string strValue2 = gridView5.GetDataRow(rowHandle2)["chbwtypename"].ToString();
            if (strValue1 != strValue2)
            {
                e.Merge = false; //值相同的2个单元格是否要合并在一起
                e.Handled = true; //合并单元格是否已经处理过,无需再次进行省缺处理
            }

            if (e.Column.FieldName != "chbwtypename") //只对分数这一列进行合并,其他列一律不合并
            {
                e.Merge = false; //值相同的2个单元格是否要合并在一起
                e.Handled = true; //合并单元格的操作是否已经处理过,不再需要进行省缺处理
            }
        }

反向合并

 //自定义合并单元格监听事件

        void gridView4_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {
 

            if (e.Column.FieldName == "chbJwightnum")
            {
                var val1 = gridView4.GetRowCellValue(e.RowHandle1, e.Column);
                var val2 = gridView4.GetRowCellValue(e.RowHandle2, e.Column);
                e.Merge = val1 == val2;
                e.Handled = true;
            }

            if (e.Column.FieldName == "chbJrewightnum")
            {
                var val1 = gridView4.GetRowCellValue(e.RowHandle1, e.Column);
                var val2 = gridView4.GetRowCellValue(e.RowHandle2, e.Column);
                e.Merge = val1 == val2;
                e.Handled = true;
            }


            if (e.Column.FieldName == "chbjscore")
            {
                var val1 = gridView4.GetRowCellValue(e.RowHandle1, e.Column);
                var val2 = gridView4.GetRowCellValue(e.RowHandle2, e.Column);
                e.Merge = val1 == val2;
                e.Handled = true;
            }

            if (e.Column.FieldName == "chbjrescore")
            {
                var val1 = gridView4.GetRowCellValue(e.RowHandle1, e.Column);
                var val2 = gridView4.GetRowCellValue(e.RowHandle2, e.Column);
                e.Merge = val1 == val2;
                e.Handled = true;
            }


        }

===============

 /// <summary>
        /// 自定义合并列
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gvSummary_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {
            //只合并以下列名的单元格,其他列一律不合并
            if (e.Column.FieldName == "FCheckDisplay" || e.Column.FieldName == "FOutPlanNo" || e.Column.FieldName == "FSaleOrderNo" || e.Column.FieldName == "FBatchNo" || e.Column.FieldName == "FDeliveryTypeName" || e.Column.FieldName == "FDeliveryTime" || e.Column.FieldName == "FCustName" || e.Column.FieldName == "FProductCode" || e.Column.FieldName == "FProductName" || e.Column.FieldName == "FSpecsName" || e.Column.FieldName == "FMaterialStatus" || e.Column.FieldName == "FNum" || e.Column.FieldName == "FWeight" || e.Column.FieldName == "FMakeDate" ||e.Column.FieldName == "FMaker" || e.Column.FieldName == "FIssuer" || e.Column.FieldName == "FIssueDate")
            {
                int row1 = e.RowHandle1;
                int row2 = e.RowHandle2;
                string value1 = gvSummary.GetDataRow(row1)["FOutPlanNo"].ToString(); 
                string value2 = gvSummary.GetDataRow(row2)["FOutPlanNo"].ToString();
                if (value1 != value2)
                {
                    e.Merge = false;   //值相同的2个单元格是否要合并在一起
                    e.Handled = true;  //合并单元格是否已经处理过,无需再次进行省缺处理
                }
            }
        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dev GridControl 按条件纵向合并单元格 的相关文章

  • 如何拦截 .Net 中第三方库对非虚拟方法的调用?

    我认为我需要的是 net 人们称之为 透明动态代理 的东西 但到目前为止我所看到的所有实现 Castle DynamicProxy Spring NET AOP 等 都要求我至少执行以下操作之一 将拦截的方法声明为虚拟方法 包装类并创建包装
  • 自定义可视化 Web 部件属性 sharepoint

    我在 Visual Studio 2012 中创建可视 Web 部件属性时遇到问题 我被提及http msdn microsoft com en us library ee231551 aspx http msdn microsoft co
  • 如何查找boost运行时版本

    我正在编写一个使用 boost 的 C 库 在这个库中 我想包含有关用于编译我的库的二进制版本的 boost 版本的信息 我可以使用宏BOOST VERSION这很好 我还想确定哪个是 boost 的运行时版本 以便我可以与用于编译我的库的
  • 如何使用movntdqa避免缓存污染?

    我正在尝试编写一个 memcpy 函数 该函数不会将源内存加载到 CPU 缓存中 目的是避免缓存污染 下面的 memcpy 函数可以工作 但会像标准 memcpy 一样污染缓存 我正在使用带有 Visual C 2008 Express 的
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • C# - 如何将 IntPtr 缓冲区数据保存到文件(最快的方法)?

    我使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中 这是一个简单的回调函数 private void callback IntPtr buffer int length byte bytes new byte lengt
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • 尝试将元素推入向量

    在头文件 我没有编写 中 已经定义了一个结构体 如下所示 struct MemoryMessage public boost counted base public FastAlloc explicit MemoryMessage Memo
  • 从空白启动时 VSTO 功能区不显示解决方案

    如果我从 文件 新建项目 菜单创建一个新的 Excel 2013 和 2016 VSTO 加载项 项目 然后单击 项目 添加新项目 gt 功能区 可视化设计器 则一切正常 我启动了应用程序 我的功能区显示在 Excel 中 但是 如果我首先
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • 使用 cryptoapi CryptImportKey 导入公钥时出错

    我想将公钥 blob 导入到 CSP 但发生了错误 BYTE pbData 0xEB 0x2A 0x38 0x56 0x86 0x61 0x88 0x7F 0xA1 0x80 0xBD 0xDB 0x5C 0xAB 0xD5 0xF2 0x
  • 读取所有进程内存以查找字符串变量c#的地址

    我有 2 个用 C 编写的程序 第一个名为 ScanMe 的程序包含一个包含值 FINDMEEEEEEE 的字符串变量 以及一个值为 1546 22915487 的双精度变量 另一个名为 MemoryScan 的程序读取第一个程序的所有内存
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 修改公共属性的访问修饰符是否是重大更改?

    如果我将公共属性的 setter 的访问修饰符从私有更改为公共 是否会导致引用它的其他程序集发生任何重大更改 UPDATE 这个问题是我 2012 年 1 月博客的主题 https ericlippert com 2012 01 09 ev
  • #define, #ifdef #undef #endif

    我有以下代码 define PROC ADD void main void while 1 ifdef PROC ADD Do this code here then undefined it to run the code in the
  • Yield Return == IEnumerable 和 IEnumerator 吗?

    Is yield return实施的捷径IEnumerable and IEnumerator 是的 您可以在我的书 C in Depth 的第 6 章中找到更多相关信息 幸好第六章是免费提供 http www manning source
  • 为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

    当我们的头文件中有原型时 我们的静态分析工具会抱怨 返回类型上有无用的类型限定符 例如 const int foo 我们这样定义它是因为该函数返回一个永远不会改变的常量 认为 API 看起来更清晰const到位 为了清楚起见 我觉得这类似于
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进

随机推荐

  • 解读Android LOG机制的实现:(5)获取LOG的应用程序LogCat

    解读Android LOG机制的实现 5 获取LOG的应用程序LogCat 田海立 CSDN 2011 07 27 Android提供的LOG机制的实现贯穿了Java JNI 本地c c 实现以及LINUX内核驱动等Android的各个层次
  • 三步教你实现MyEclipse的debug远程调试

    MyEclipse远程调试程序是个神奇的东西 有时一个项目本地运行没问题可放到服务器上 同样的条件就是结果不一样 有时服务器上工程出点问题需要远程调测 于是就灰常想看一下程序在远程运行时候的状态 希望让程序在远程运行 还可以在本机打断点跟一
  • 执行力的关键在于中层,成败的关键在于细节

    编者注 这是一位国内著名企业总裁在一次工作会议上的讲话 文中说到完美的 细节 一定是完美执行力的结果 并且切中时弊的指出 执行力的关键在于中层 如何做到这一点 关键就是要建立一个保证中层执行力到位的强势文化 也许真正落实到位 不但首先会冲击
  • Nodejs

    一 是什么 中间件 Middleware 是介于应用系统和系统软件之间的一类软件 它使用系统软件所提供的基础服务 功能 衔接网络上应用系统的各个部分或不同的应用 能够达到资源共享 功能共享的目的 在NodeJS中 中间件主要是指封装http
  • 华为OD机试 - 阿里巴巴找黄金宝箱(IV)(Java)

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面有一个数字 箱子排列成一个环 编号最大的箱子的下一个是编号为0的箱子 请输出每个箱了贴的数字之后的第一个比它大的数 如果不
  • java爱心效果代码来了

    爱心 代码来了 村上春树说 仪式是一件很重要的事 现实生活被琐事充斥 仪式感总是被人遗忘 凑合的晚饭 乱丢的衣物 杂乱无章的生活让原本平淡的生活过得一潭死水 找不到生活的乐趣 童话 小王子 里狐狸对小王子说 你最好在每天相同的时间来 比如你
  • scrapy提高爬取速度

    scrapy在单机跑大量数据的时候 在对settings文件不进行设置的时候 scrapy的爬取速度很慢 再加上多个页面层级解析 往往导致上万的数据可能爬取要半个小时之久 这还不包括插入数据到数据库的操作 下面是我在实验中测试并且验证爬取速
  • Docker 之桥接网络(一)

    参考 https docs docker com network bridge 在网络方面 桥接网络是一个链路层设备 它在网络段之间转发流量 网桥可以是运行在主机内核中的硬件设备或软件设备 就Docker而言 桥接网络使用软件桥 允许连接到
  • Windows下配置环境变量

    Windows下配置环境变量 在安装某些软件或者应用程序时 需要配置环境变量 以便在后续可以正常使用 环境变量相当于给系统或用户应用程序设置一些参数 具体起什么作用和对应的环境变量相关 比如path 是告诉系统 当要求系统运行一个程序而没有
  • React 18的新特新

    React 18 最新的特性 批处理文件 在同一个 函数中 调用多次 useState 也只是会更新一次 function App const count setCount useState 0 const flag setFlag use
  • 基于51单片机的水位液位温度监测鱼缸系统仿真原理图程序

    硬件设计 上一篇咱们讲了基于数码管显示的液位检测 本章讲一下基于LCD1602显示的液位检测 同时伴有温度测量 该系统可应用于鱼缸 水塔 水箱的检测 本系统液位检测方案是基于液位传感器 通过传感器嵌入液体反馈回电信号 通过电信号的大小可以反
  • 如何利用python将一个list中的数字提取,然后求和?

    coding UTF 8 import re name score list u 唐僧 100 u 猪八戒 60 u 孙悟空 95 u 沙和尚 80 1 将score list列表转换为以 为分隔符的字符串 name score list
  • 极限学习机ELM原理与实现

    极限学习机 ELM 是当前一类非常热门的机器学习算法 被用来训练单隐层前馈神经网络 SLFN 本篇博文尽量通俗易懂地对极限学习机的原理进行详细介绍 之后分析如何用python实现该算法并对代码进行解释 1 算法的原理 极限学习机 ELM 用
  • 【STM32】 JDY-31蓝牙模块

    目录 一 介绍 二 模块特点 三 产品应用范围 四 模块技术参数 五 模块接口说明 六 蓝牙模块接口电路图 七 蓝牙模块实物图 一 介绍 蓝牙模块是指集成蓝牙功能的芯片基本电路集合 用于无线网络通讯 本蓝牙模块就是为了只能无线数据传输而专门
  • 微服务 - 拆分微服务的问题和拆分方法

    概述 现在被谈论最多的就是微服务和中台系统 我个人的理解是微服务或者是中台好不好 主要看实际的业务场景 架构的变迁往往需要耗费很大的学习成本和时间成本 所以更改架构的时候要三思而后行 适合自己特别重要 由单体到多应用的演变 从我入职开始 公
  • 变压器哪些部位易造成渗油?

    变压器哪些部位易造成渗油 答 1 套管升高座电流互感器小绝缘子引出线的桩头处 所有套管引线桩头 法兰处 2 气体继电器及连接管道处 3 潜油泵接线盒 观察窗 连接法兰 连接螺丝紧固件 胶垫 4 冷却器散热管 5 全部连接通路碟阀 6 集中净
  • [前端] vue开发的项目用ajax发送请求携带cookie

    只需要在main js中写这三行代码即可 import axios from axios axios defaults withCredentials true 让ajax携带cookie Vue prototype axios axios
  • 初谈 ChatGPT

    引子 最近 小编发现互联网中的大 V 突然都在用 ChatGPT 做宣传 ChatGPT不会淘汰你 能驾驭ChatGPT的人会淘汰你 带领一小部分人先驾驭ChatGPT 确实 ChatGPT这个新生事物 如今被视为蒸汽机 电脑 iPhone
  • 众所周知,YouTube是个学习网站

    大数据文摘出品 来源 medium 编译 Hippo 国内有小破站 国外有YouTube 就像国内的b站一样 YouTube不仅是一个多媒体娱乐帝国 还是一个全面的学习平台 每月无需支付订阅费即可在YouTube上观看视频 所有供你观看和学
  • dev GridControl 按条件纵向合并单元格

    dev GridControl 按条件纵向合并单元格 gridView5 OptionsView AllowCellMerge true gridView5 CellMerge gridView5 CellMerge 自定义合并单元格监听事