cnf
7 天以前 75c6229509e8e0888a0cbb21906468e43ce83b13
DevApp/Gs.DevApp/DevFrm/Ck/UcBlclSelect.cs
@@ -26,6 +26,7 @@
            this.orgId = _orgId;
            Gs.DevApp.ToolBox.UtilityHelper.SetGridViewParameter(gridView1, null, null, null, "", null, null, false);
            getPageList(1);
            getPageListWithFilter(2); // 使用过滤方法
            SetupButtonClickEvent();
        }
@@ -155,8 +156,18 @@
                var dd = UtilityHelper.ReturnToTablePage(strReturn);
                var dt = dd.rtnData.list;
                // 筛选掉kbsl为0的数据
                DataTable filteredDt = FilterZeroKbsl(dt);
                if (curPage == 1)
                {
                    // 筛选掉kbsl为0的数据
                    filteredDt = FilterZeroKbsl(dt);
                }
                else
                {
                    // 过滤dab006(需领用量)小于等于ylQty(已领用量)的数据
                    filteredDt = FilterByDab006AndYlQty(dt);
                }
                gcMain.BindingContext = new BindingContext();
                gcMain.DataSource = filteredDt;
@@ -210,5 +221,52 @@
            return filteredTable;
        }
        /// <summary>
        /// 过滤dab006(需领用量)小于等于ylQty(已领用量)的数据
        /// </summary>
        /// <param name="sourceTable">源数据表</param>
        /// <returns>过滤后的数据表</returns>
        private DataTable FilterByDab006AndYlQty(DataTable sourceTable)
        {
            if (sourceTable == null || sourceTable.Rows.Count == 0)
                return sourceTable;
            // 创建新的DataTable来存储过滤后的数据
            DataTable filteredTable = sourceTable.Clone();
            foreach (DataRow row in sourceTable.Rows)
            {
                // 检查dab006和ylQty列是否存在
                if (sourceTable.Columns.Contains("dab006") && sourceTable.Columns.Contains("ylQty"))
                {
                    object dab006Value = row["dab006"];
                    object ylQtyValue = row["ylQty"];
                    decimal dab006 = 0;
                    decimal ylQty = 0;
                    // 尝试转换为decimal
                    bool dab006Valid = dab006Value != null && dab006Value != DBNull.Value &&
                                      decimal.TryParse(dab006Value.ToString(), out dab006);
                    bool ylQtyValid = ylQtyValue != null && ylQtyValue != DBNull.Value &&
                                     decimal.TryParse(ylQtyValue.ToString(), out ylQty);
                    // 过滤条件:dab006 >= ylQty
                    if (dab006Valid && ylQtyValid && dab006 <= ylQty)
                    {
                        filteredTable.ImportRow(row);
                    }
                }
                else
                {
                    // 如果没有这两个列,保留所有行
                    filteredTable.ImportRow(row);
                }
            }
            return filteredTable;
        }
    }
}