SVN r810
SVN-Revision: r810
This commit is contained in:
@@ -7030,7 +7030,7 @@ namespace Lskj.Control
|
||||
bandedGridControlEx.BandedView.Columns.Clear();
|
||||
|
||||
// 保留其他非聚合列
|
||||
List<GridColumnModel> normalColumns = ColumnList.Where(o => o.IsCustomGroupField == 0).ToList();
|
||||
List<GridColumnModel> normalColumns = ColumnList.Where(o => o.IsCustomGroupField == 0|| o.IsCustomGroupField == 3).ToList();
|
||||
|
||||
// 创建正常列的Band
|
||||
GridBand normalBand = new GridBand() { Caption = "基本信息" };
|
||||
@@ -7171,15 +7171,25 @@ namespace Lskj.Control
|
||||
foreach (var col in normalCols.Where(c => exist.Contains(c.FieldName)))
|
||||
newRow[col.FieldName] = first[col.FieldName];
|
||||
|
||||
// 求和列
|
||||
// ─── 求和列:只用第 1 个 Header 小组的行来累加 ───
|
||||
foreach (var col in sumColumns.Where(c => exist.Contains(c.FieldName)))
|
||||
{
|
||||
var sum = grp
|
||||
.Where(r => r[col.FieldName] != DBNull.Value)
|
||||
.Sum(r => Convert.ToDecimal(r[col.FieldName]));
|
||||
// ① 取当前分组里第一个 Header 值
|
||||
var firstHeader = grp
|
||||
.Select(r => r[headerCol.FieldName])
|
||||
.FirstOrDefault();
|
||||
|
||||
// ② 过滤到只剩这个 Header 的行后求和
|
||||
decimal sum = grp
|
||||
.Where(r => Equals(r[headerCol.FieldName], firstHeader)
|
||||
&& r[col.FieldName] != DBNull.Value)
|
||||
.Sum(r => Convert.ToDecimal(r[col.FieldName]));
|
||||
|
||||
// ③ 写入结果行
|
||||
newRow[col.FieldName] = sum;
|
||||
}
|
||||
|
||||
|
||||
// 动态列
|
||||
var lookup = grp.ToLookup(r => r[headerCol.FieldName]?.ToString());
|
||||
foreach (string h in headers)
|
||||
@@ -8716,30 +8726,4 @@ namespace Lskj.Control
|
||||
{
|
||||
// 只处理列名可解析成日期的列
|
||||
if (!DateTime.TryParse(col.FieldName, out _))
|
||||
continue;
|
||||
|
||||
// 取 “Sum” 合计
|
||||
var sumItem = col.Summary
|
||||
.OfType<GridColumnSummaryItem>()
|
||||
.FirstOrDefault(s => s.SummaryType == SummaryItemType.Sum);
|
||||
|
||||
bool needRed = false;
|
||||
|
||||
if (sumItem?.SummaryValue != null &&
|
||||
decimal.TryParse(sumItem.SummaryValue.ToString(), out var colSum) &&
|
||||
jhrowitem.Table.Columns.Contains(col.FieldName) &&
|
||||
decimal.TryParse(jhrowitem[col.FieldName].ToString(), out var planVal))
|
||||
{
|
||||
needRed = (colSum != planVal);
|
||||
}
|
||||
|
||||
// 只改表头文字颜色
|
||||
col.AppearanceHeader.ForeColor = needRed ? Color.Red : Color.Black;
|
||||
col.AppearanceHeader.Options.UseForeColor = true;
|
||||
}
|
||||
// 立刻刷新表头
|
||||
gridView.Invalidate();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,18 +256,11 @@ namespace Lskj.Control.Model
|
||||
|
||||
ToolStripMenuItem item = sender as ToolStripMenuItem;
|
||||
DXMenuItem items = sender as DXMenuItem;
|
||||
GridRightMenuModel model = item == null ? items.Tag as GridRightMenuModel : item.Tag as GridRightMenuModel;
|
||||
if (!string.IsNullOrEmpty(model.UnionZTid))
|
||||
{
|
||||
string condition = string.Format("where ShowName ='{0}'", ERPInfo.Instance.AccountBook);
|
||||
DataTable dt = MainImpl.GetLedgerList(condition);
|
||||
DataRow RT = BaseImpl.GetDataRowResult($"select * from p_sydbGroupTab where ID={model.UnionZTid}");
|
||||
AccountItem = dt.Rows[0];
|
||||
ToDBatching(RT, AccountItem);
|
||||
}
|
||||
|
||||
|
||||
DataRow[] rowArray = GetSelectedRows();
|
||||
|
||||
GridRightMenuModel model = item == null ? items.Tag as GridRightMenuModel : item.Tag as GridRightMenuModel;
|
||||
|
||||
if (!model.Mergeexec && !model.MoreClick && rowArray.Length > 1)
|
||||
{
|
||||
MessageUtil.Show(string.Format(ResourceKeys.ExecRightMenuOnlyOne, model.MenuName));
|
||||
@@ -279,7 +272,15 @@ namespace Lskj.Control.Model
|
||||
MessageUtil.Show(ResourceKeys.SelectRowIsNull);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(model.UnionZTid))
|
||||
{
|
||||
string UnionZTid = ReplaceHelper.ReplaceRowParam(rowArray[0], model.UnionZTid);
|
||||
string condition = string.Format("where ShowName ='{0}'", ERPInfo.Instance.AccountBook);
|
||||
DataTable dt = MainImpl.GetLedgerList(condition);
|
||||
DataRow RT = BaseImpl.GetDataRowResult($"select * from p_sydbGroupTab where ID={UnionZTid}");
|
||||
AccountItem = dt.Rows[0];
|
||||
ToDBatching(RT, AccountItem);
|
||||
}
|
||||
try
|
||||
{
|
||||
this.MenuStripClickBefore(item, model);
|
||||
|
||||
Reference in New Issue
Block a user