合并datagridview 条件合并行数据

        public void HeBing()
        {
            int rowsCount;
            int CellCount;
            rowsCount = FG1.Rows.Count;
            CellCount = FG1.Columns.Count;
            for (int a = 0; a < rowsCount; a++)
            {
                string F_OnlyCode = FG1.Rows[a].Cells[1].Value.ToString();
                string F_Code = FG1.Rows[a].Cells[2].Value.ToString();
                double quanty = double.Parse(FG1.Rows[a].Cells[5].Value.ToString());
                if (quanty < 0)
                {
                    for (int b = 0; b < rowsCount; b++)
                    {
                        string F_Code1 = FG1.Rows[b].Cells[2].Value.ToString();
                        double quanty1 = double.Parse(FG1.Rows[b].Cells[5].Value.ToString());
                        string f_Onlycode = FG1.Rows[b].Cells[1].Value.ToString();
                        if (F_Code == F_Code1 && f_Onlycode != F_OnlyCode )
                        {
                            //  出库计费等于退费
                            if (quanty1 == -quanty)
                            {
                                //FG1.Rows.RemoveAt(a);
                                FG1.Rows[a].Visible = false;

                                for (int c = 0; c < FG1.Rows.Count; c++)
                                {
                                    if (FG1.Rows[c].Cells[2].Value.ToString() == F_Code)
                                    {
                                        FG1.Rows[c].Visible = false;

                                    }
                                }
                            }

                            //出库计费大于退费
                            if (quanty1 > -quanty && quanty1 != quanty)
                            {
                                FG1.Rows[b].Cells[5].Value = (quanty - (-quanty1)).ToString("F3");
                                this.FG1.Rows[b].DefaultCellStyle.BackColor = Color.Aqua;
                                FG1.Rows[a].Visible = false;

                            }//出库计费小于退费
                            if (quanty1 < -quanty && quanty1 != quanty)
                            {

                                this.FG1.Rows[b].Cells[5].Value = ((quanty1) + (quanty)).ToString("F3");
                                //this.FG1.Rows.RemoveAt(a);
                                FG1.Rows[a].Visible = false;
                            }
                            if (quanty1 == quanty && quanty < 0 && quanty != quanty)
                            {
                                FG1.Rows[a].DefaultCellStyle.BackColor = Color.Aqua;
                            }

                        }

                    }
                }

            }
            //只存在退费信息
            for (int u = 0; u < rowsCount; u++)
            {
                if (double.Parse(FG1.Rows[u].Cells[5].Value.ToString()) < 0)
                {
                this.FG1.Rows[u].DefaultCellStyle.BackColor = Color.Red;
                }
            }

        }

四种合并情况:

出库计费等于退库计费

出库计费大于退库计费

出库计费小于退库计费

只存在退库计费

时间: 2024-08-09 23:52:45

合并datagridview 条件合并行数据的相关文章

HDU 3308 LCIS (线段树区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308 题目很好懂,就是单点更新,然后求区间的最长上升子序列. 线段树区间合并问题,注意合并的条件是a[mid + 1] > a[mid],写的细心点就好了. 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 using namespace std; 5 const int MAXN = 1

hdu1540/poj2892 线段数区间合并

HDU - 1540 POJ - 2892 题意:n个点,有3种操作D a表示摧毁a这个点,R 表示修复上一个点,Q x表示查询x所在的区间没被摧毁的连续最大区间 思路:线段树区间合并,区间合并主要就是对lsum rsum 和sum的动态维护,注意合并的条件,写的时候主要注意push_up和push_down,还有对于不同的查询query的写法不一样,update和creat和普通的线段树差不多,这里查询x所在区间可行的最大区间,每一个节点(子树)可以知道的连续区间只有lsum[rt],rsum

margin外边距合并详解

margin外边距合并详解: 外边距合并现象在网页布局中非常的常见,必须对此有明确的把我,以此做到未雨绸缪,否则可能影响工作效率,甚至严重阻碍项目的进度.在网络上已经有大量的相关文章,下面再通过实例结合对网络教材的总结,再来介绍一下外边距合并现象. 概念: 相邻的两个或者多个外边距在垂直方向上合并成一个外边距,这就是所谓的外边距合并. 水平方向不存在此现象. 外边距合并产生条件: 1.相邻的外边距之间没有非空内容.padding和border和clear分隔. 2.对象都处于文档流中,即非浮动和

GJM:C# WinForm开发系列 - DataGridView 使用方法集锦 [转载]

1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar 3.DataGridView单元格显示GIF图片 gifanimationindatagrid.rar 4.自定义显示DataGridView列(行头显示行号与图标,同一单元格显示图片也显示文字)TestDataGridViewRowStyle2.rar 5.扩展DataGr

Egret Wing4.0.3 合并资源图片问题

一 发布项目时,选择合并图片资源 选择合图大小 发布后,图片合并.随机了图片名字.  二  随机名的问题 当资源不变更的情况下,多次发布,每次发布后资源的图片随机名是不变的. 现在改变preload组中一张图片的高宽,合并资源图后,preload合并图随机名改变 改变preload组中一张图片的名字,合并资源图后,preload合并图随机名改变 每次更新图片后,合并资源图的名字都随机改变了.这样图片不会有缓存. 但是配置文件default.res.json仍然有缓存,对于更新时有缓存帮助不大..

自定义 Azure Table storage 查询过滤条件

本文是在Azure Table storage 基本用法一文的基础上,介绍如何自定义 Azure Table storage 的查询过滤条件.如果您还不太清楚 Azure Table storage 的基本用法,请先移步前文. 文章来源:葡萄城产品技术社区 让我们回到前文中提到的一个问题,如何过滤出 MyLogTable 表中某一天产生的所有日志?在进入细节之前,我们先来回顾一下 MyLogTable 类的设计: internalclassMyLogEntity : TableEntity {

Opencv图像识别从零到精通(25)------区域分裂与合并

区域分割一般认为有漫水填充,区域分裂与合并,分水岭,这篇是中间的区域分裂和合并. 区域分裂合并算法的基本思想是先确定一个分裂合并的准则,即区域特征一致性的测度,当图像中某个区域的特征不一致时就将该区域分裂成4 个相等的子区域,当相邻的子区域满足一致性特征时则将它们合成一个大区域,直至所有区域不再满足分裂合并的条件为止.  当分裂到不能再分的情况时,分裂结束,然后它将查找相邻区域有没有相似的特征,如果有就将相似区域进行合并,最后达到分割的作用.  在一定程度上区域生长和区域分裂合并算法有异曲同工之

【链表+启发式合并】Bzoj1483 [HNOI2009] 梦幻布丁

Description N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. Input 第一行给出N,M表示布丁的个数和好友的操作次数. 第二行N个数A1,A2...An表示第i个布丁的颜色从第三行起有M行,对于每个操作,若第一个数字是1表示要对颜色进行改变,其后的两个整数X,Y表示将所有颜色为X的变为Y,X可能等于Y. 若第一个数字为2表示要进行询问当前有多少段颜色,这时你应该输出一个

fastjson合并json数组中相同的某个元素

/** * @param array JSON数组 * @param array 需合并后的某个元素名 */ private static JSONArray mgreArray(JSONArray array, String arrayname) { Map<Integer, JSONObject> map = new HashMap<>(); for (int i = 0; i < array.size(); i++) { JSONObject jsonObject =