using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win.UltraWinMaskedEdit;
using Infragistics.Win;
using System.Collections;
using System.Text.RegularExpressions;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
namespace Core.StlMes.Client.Mcp.BaseMethod
{
public class BaseHelper
{
///
/// 仓库数据权限(用于报表)
///
/// 页面配制信息(自定义参数)
/// 用户数据权限
/// 可查看仓库组成的字符串
public static string[] WarehousePermissionsStore1(String[] validDataPurviewIds, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.getWarehousePermissionsStore", new object[] { validDataPurviewIds }, ob);
if (dt != null && dt.Rows.Count > 0)
{
string[] storages = new string[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
storages[i] = dt.Rows[i]["STORAGE_NO"].ToString();
}
return storages;
}
else
{
return new string[1] { "" };
}
}
///
/// 通过科室查找对应的部门
///
/// 科室ID
///
/// 部门名称
public static string GetDepartBySectionId1(string sectionId, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.getDeptBySection", new object[] { sectionId }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["DEPARTNAME"].ToString();
}
else
{
return "";
}
}
///
/// 通过科室查找对应的部门
///
/// 科室ID
///
/// 部门ID
public static string GetDepartIdBySectionId1(string sectionId, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.CollarLibrary.FrmCollarOutBound.getDeptBySection", new object[] { sectionId }, ob);
if (dt.Rows.Count > 0)
{
return dt.Rows[0]["DEPARTID"].ToString();
}
else
{
return "";
}
}
public static string[] SetData(string methodId, object[] param, OpeBase ob)
{
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = methodId.Substring(0, methodId.LastIndexOf("."));
ccp.MethodName = methodId.Substring(methodId.LastIndexOf(".") + 1);
ccp.ServerParams = param;
ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return null;
}
else
{
string[] strArray = new string[2];
strArray[0] = ccp.ReturnObject.ToString();
strArray[1] = ccp.ReturnInfo;
return strArray;
}
}
///
/// 设置Grid统计格式
///
///
/// 统计格式集合
/// 显示格式
/// 列名
///
/// 位置
public static void SetupSummaryHeade(string[] Arrsumtype, string[] HeadeVale, string[] ColumName, UltraGridBand band, SummaryDisplayAreas areas)
{
if (HeadeVale.Length != Arrsumtype.Length && Arrsumtype.Length != ColumName.Length)
{
return;
}
SummaryType sumType; ;
for (int i = 0; i < HeadeVale.Length; i++)
{
//SummaryType.Count 统计 Average平均值 Maximum最大值 Minimum 最小值 Sum 求和
if (Arrsumtype[i] == "Count")
{
sumType = SummaryType.Count;
}
else if (Arrsumtype[i] == "Maximum")
{
sumType = SummaryType.Maximum;
}
else if (Arrsumtype[i] == "Minimum")
{
sumType = SummaryType.Minimum;
}
else
{
sumType = SummaryType.Sum;
}
if (band.Columns.Exists(ColumName[i]))
{
SummarySettings summary = band.Summaries.Add(sumType, band.Columns[ColumName[i]]);
summary.SummaryDisplayArea = areas;
summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
summary.DisplayFormat = HeadeVale[i];
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
//summary.Appearance.ForeColor = Color.Black;
//summary.Appearance.BackColor = Color.FromArgb(248, 253, 180);
}
}
Infragistics.Win.Appearance appearance21 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance20 = new Infragistics.Win.Appearance();
appearance20.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
band.Override.SummaryFooterAppearance = appearance20;
appearance21.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));
appearance21.TextHAlignAsString = "Right";
band.Override.SummaryValueAppearance = appearance21;
}
///
/// 查询选择记录
///
/// 类名
/// Grid
/// 列
/// 对应值
///
public static ArrayList GetRows(UltraGrid ug, string columns, string value)
{
try { ug.UpdateData(); }
catch (Exception) { return null; }
IQueryable chcRows = ug.Rows.AsQueryable().Where(a => a.GetValue(columns) == value);
if (chcRows == null || chcRows.Count() == 0)
{
return null;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow ugr in chcRows)
{
T t = (T)ugr.ListObject;
list.Add(t);
}
return list;
}
///
/// 控制行
///
///
public static void ControlCellEdit(UltraGridRow row)
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.CellAppearance.BackColor == Color.FromArgb(255, 255, 128))
{
if (row.Cells["CHC"].Value.ToString() == "True")
{
cell.Activation = Activation.AllowEdit;
}
else
{
cell.Activation = Activation.ActivateOnly;
}
}
else
{
if (!cell.Column.Key.Equals("CHC"))
{
cell.Activation = Activation.ActivateOnly;
}
}
}
}
///
/// UltraGrid可读(非主从结构)
///
/// UltraGrid
/// 可编辑列
public static void setOtherColumnReadOnly(UltraGrid ugr, string[] keys)
{
if (keys == null || keys.Length == 0)
{
foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
{
ugc.CellActivation = Activation.ActivateOnly;
}
}
else
{
keys.ToArray();
foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
{
if (!keys.Contains(ugc.Key))
{
ugc.CellActivation = Activation.ActivateOnly;
}
}
}
}
///
/// UltraGrid可读(主从结构)
///
///
///
public static void setColumnReadOnly(UltraGrid ugr, string[] keys)
{
keys.ToArray();
foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
{
if (!keys.Contains(ugc.Key))
{
ugc.CellActivation = Activation.ActivateOnly;
}
}
foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[1].Columns)
{
if (!keys.Contains(ugc.Key))
{
ugc.CellActivation = Activation.ActivateOnly;
}
}
}
///
/// 设置列背景颜色
///
/// UltraGrid
/// 列数组
public static void setColumnBackColor(UltraGrid ugr, String[] columns)
{
for (int i = 0; i < columns.Length; i++)
{
ugr.DisplayLayout.Bands[0].Columns[columns[i]].CellAppearance.BackColor = Color.FromArgb(255, 255, 128);
}
}
///
/// 设置列字段显示位置在右
///
/// UltraGrid
/// 要设置的列
public static void InitCellPosition(UltraGrid ug, string[] columnsKeys)
{
if (columnsKeys == null || columnsKeys.Length == 0)
{
return;
}
columnsKeys.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
{
if (columnsKeys.Contains(ugc.Key.ToString()))
{
ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}
}
///
/// 设置列字段显示位置在右
///
/// UltraGrid从表
/// 要设置的列
public static void InitCellPositionC(UltraGrid ug, string[] columnsKeys)
{
columnsKeys.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[1].Columns)
{
if (columnsKeys.Contains(ugc.Key.ToString()))
{
ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}
}
///
/// 列求和
///
/// UltraGrid
/// 列数组
public static void GridColumnSum(UltraGrid ug, string[] columnKeys, string[] descritions)
{
if (columnKeys.Length == 0 || descritions.Length != columnKeys.Length)
{
return;
}
for (int i = 0; i < columnKeys.Length; i++)
{
SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
summary.DisplayFormat = "{0}" + descritions[i];
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}
///
/// 列求和
///
///
///
public static void GridColumnSum(UltraGrid ug, string[] columnKeys)
{
if (columnKeys.Length == 0)
{
return;
}
for (int i = 0; i < columnKeys.Length; i++)
{
SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
summary.DisplayFormat = "{0:N3}";
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}///
/// 列求和
///
/// UltraGrid
/// 列数组(支)
public static void GridColumnCount(UltraGrid ug, string[] columnKeys)
{
if (columnKeys.Length == 0)
{
return;
}
for (int i = 0; i < columnKeys.Length; i++)
{
SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
summary.DisplayFormat = "{0:N0}";
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}
///
/// 设置UltraGrid行颜色
///
/// UltraGrid
/// 列
/// 值
/// 颜色
public static void SetUltraGridRowColor(UltraGrid ug, string[] columnKeys, string[] values, Color color)
{
if (ug.Rows.Count == 0 || columnKeys.Length == 0 || values.Length == 0 || color == null || values.Length != columnKeys.Length)
{
return;
}
foreach (UltraGridRow ugr in ug.Rows)
{
Boolean flag = true;
for (int i = 0; i < columnKeys.Length; i++)
{
if (!ugr.Cells[columnKeys[i]].Value.ToString().Equals(values[i]))
{
flag = false;
}
}
if (flag)
{
ugr.Appearance.BackColor = color;
}
}
}
///
/// 合并单元格
///
///
///
public static void MergedCell(UltraGrid ug, string[] columnKeys)
{
if (columnKeys.Length == 0)
{
return;
}
ug.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Never;
for (int i = 0; i < columnKeys.Length; i++)
{
ug.DisplayLayout.Bands[0].Columns[columnKeys[i]].MergedCellStyle = MergedCellStyle.Always;
}
}
///
/// 设置ULTRAGIRD列的颜色
///
/// ultragrid
/// 列Key
/// 颜色
public static void setUltraGridColumnColor(UltraGrid ug, string[] arr, Color color)
{
if (arr == null || arr.Length == 0 || ug == null)
{
return;
}
arr.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
{
if (arr.Contains(ugc.Key.ToString()))
{
ugc.CellAppearance.BackColor = color;
}
}
}
///
/// 设置列显示位数
///
///
///
public static void setUltraGridColumnMaxInput(UltraGrid ug, string[] arr)
{
if (ug == null || arr == null || arr.Length == 0)
{
return;
}
arr.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
{
if (arr.Contains(ugc.Key.ToString()))
{
ugc.MaskDisplayMode = MaskMode.IncludeLiterals;
ugc.MaskInput = "{LOC}-n,nnn,nnn.nnn";
}
}
}
///
/// 设置列显示位数
///
///
///
public static void setUltraGridColumnBits(UltraGrid ug, string[] arr)
{
if (ug == null || arr == null || arr.Length == 0)
{
return;
}
arr.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
{
if (arr.Contains(ugc.Key.ToString()))
{
ugc.MaskDisplayMode = MaskMode.IncludeLiterals;
ugc.MaskInput = "{LOC}-nn,nnn,nnn";
}
}
}
///
/// 列绑定下拉框
///
/// 下拉框
/// 列名
/// 行
public static void BindColumn(UltraComboEditor uce, string column, UltraGridBand ugb)
{
ugb.Columns[column].EditorComponent = uce;
ugb.Columns[column].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
///
/// 初始化下拉框
///
/// 下拉框
/// 方法名
/// 显示值
/// 隐藏值
/// 是否增加空行
/// OB对象
public static void NitializeDropDownBox(UltraComboEditor uce, string methodID, string showValue, string hiddenValue, Boolean isNull, OpeBase ob)
{
DataTable dt = ServerHelper.GetData(methodID, new Object[] { }, ob);
if (dt != null && dt.Rows.Count > 0 && isNull)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
dr[i] = "";
}
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.DisplayMember = showValue;
uce.ValueMember = hiddenValue;
ClsBaseInfo.SetComboItemHeight(uce);
}
///
/// 初始化下拉框
///
/// 下拉框
/// 方法名
/// 参数
/// 显示值
/// 隐藏值
/// 是否增加空行
/// OB对象
public static void NitializeDropDownBox(UltraComboEditor uce, string methodID, Object[] param, string showValue, string hiddenValue, Boolean isNull, OpeBase ob)
{
DataTable dt = ServerHelper.GetData(methodID, param, ob);
if (dt != null && dt.Rows.Count > 0 && isNull)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
dr[i] = "";
}
dt.Rows.InsertAt(dr, 0);
}
uce.DropDownListWidth = -1;
uce.DropDownStyle = DropDownStyle.DropDownList;
uce.DataSource = dt;
uce.DisplayMember = showValue;
uce.ValueMember = hiddenValue;
ClsBaseInfo.SetComboItemHeight(uce);
}
private Object setObjectByDataRow(Object obj, DataRow dr)
{
System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
foreach (System.Reflection.PropertyInfo item in properties)
{
string name = item.Name;
string value = item.GetValue(obj, null).ToString();
for (int i = 0; i < dr.Table.Columns.Count; i++)
{
if (dr.Table.Columns[i].ColumnName.ToString().Equals(name))
{
item.SetValue(obj, dr[i].ToString(), null);
}
}
}
return obj;
}
private Object setObjectByDataTable(Object obj, DataTable dt)
{
System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
foreach (System.Reflection.PropertyInfo item in properties)
{
string name = item.Name;
string value = item.GetValue(obj, null).ToString();
foreach (DataRow dr in dt.Rows)
{
{
if (dr[0].ToString().Equals(name))
item.SetValue(obj, dr[1].ToString(), null);
}
}
}
return obj;
}
///
/// 禁止排序
///
///
public static void ForbidSort(UltraGrid ugr)
{
foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
{
ugc.SortIndicator = SortIndicator.Disabled;
}
}
///
/// 用于初始化F1功能加字段问题
///
///
///
///
public static void SetGridColunmName(FrmBase frm, UltraGrid ug)
{
System.Threading.Thread.Sleep(3000);
if (!frm.IsDisposed)
{
EntityHelper.ShowGridCaption(ug.DisplayLayout.Bands[0]);
}
}
///
/// 设置列居中
///
///
///
public static void InitCellPositionMiddle(UltraGrid ug, string[] columnsKeys)
{
columnsKeys.ToArray();
foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
{
if (columnsKeys.Contains(ugc.Key.ToString()))
{
ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Center;
}
}
}
///
/// 激活行选中
///
///
public static void SetRowChecked(UltraGrid ug)
{
foreach (UltraGridRow ugr in ug.Rows)
{
if (ugr.Activated)
{
ugr.Cells["CHC"].Value = true;
}
else
{
ugr.Cells["CHC"].Value = false;
}
}
}
///
/// 初始化下拉框(增强型)
///
/// 下拉框
/// 请求的服务
/// 值成员
/// 显示成员
/// ob对象
/// 是否添加空行
public static void InitComboEditorNew(UltraComboEditor uce, string methodId, string valueMember, string textMember, OpeBase ob, bool isEmpty)
{
InitComboEditor(uce, methodId, valueMember, ob, isEmpty);
uce.DisplayMember = textMember;
}
///
/// 初始化下拉框
///
/// 下拉框
/// 请求的服务
/// 值成员
/// ob对象
/// 是否有空行
public static void InitComboEditor(UltraComboEditor uce, string methodId, string valueMember, OpeBase ob, bool isEmpty)
{
DataTable dt = ServerHelper.GetData(methodId, null, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (isEmpty)
{
Object[] obj = new Object[] { "", "" };
DataRow dr = dt.NewRow();
dr.ItemArray = obj;
dt.Rows.InsertAt(dr, 0);
}
uce.DataSource = dt;
uce.ValueMember = valueMember;
SetComboItemHeight(uce);
}
}
///
/// 设置UltraComboEditor中的中文和非中文统一高度。
///
///
public static void SetComboItemHeight(UltraComboEditor cmb)
{
foreach (ValueListItem item in cmb.Items)
{
if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
{
item.Appearance.FontData.SizeInPoints = 9.0F;
}
else
{
item.Appearance.FontData.SizeInPoints = 10.5F;
}
}
}
///
/// 将下拉框绑定到GRID列
///
/// 下拉框(已经初始化完成)
/// 列名
/// 空间集合(每次只需填入this.Controls)
/// GRID
/// GRID的第几层结构
public static void BindColumn(UltraComboEditor uce, string ColumnName, System.Windows.Forms.Control.ControlCollection con, UltraGrid ug, int i)
{
con.Add(uce);
uce.Visible = false;
ug.DisplayLayout.Bands[i].Columns[ColumnName].EditorComponent = uce;
ug.DisplayLayout.Bands[i].Columns[ColumnName].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown;
SetComboItemHeight(uce);
}
///接箍编辑区显示支数
public static string piecesJg(string woidId,string[] plinCode,OpeBase ob)
{
string piece = "";
try
{
DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.coup.BaseHelper.doQueryPiece", new Object[] { woidId,plinCode }, ob);
{
if (dt != null && dt.Rows.Count > 0)
{
piece = dt.Rows[0]["FAIL"].ToString();
}
}
return piece;
}
catch (Exception ex)
{
return ex.ToString();
}
}
///
/// 设置Grid可拖拽行, 设置拖拽前提条件,拖拽后的操作
///
/// 待设置的Grid
/// 拖拽后需要实现的业务
public static void SetGridDragDropRows(UltraGrid ug, Action action, Cursor myCursor)
{
ug.AllowDrop = true;
ug.SelectionDrag += (sender, args) => { if (ug.Selected.Rows.Count > 0) ug.DoDragDrop(ug.Selected.Rows, DragDropEffects.Move); };
ug.GiveFeedback += (sender, args) =>
{
//Cursor myCursor = new Cursor();
//ug.Cursor = Cursors.Hand;
args.UseDefaultCursors = false;
ug.Cursor = myCursor;
};
ug.DragOver += (sender, args) =>
{
args.Effect = DragDropEffects.Move;
UltraGrid grid = sender as UltraGrid;
Point pointInGridCoords = grid.PointToClient(new Point(args.X, args.Y + 10));
UIElement uieOver = ug.DisplayLayout.UIElement.ElementFromPoint(ug.PointToClient(new Point(args.X, args.Y + 10)));
if (uieOver != null)
{
UltraGridRow ugrOver = uieOver.GetContext(typeof(UltraGridRow), true) as UltraGridRow;
if (ugrOver != null) ug.ActiveRow = ugrOver;
}
if (pointInGridCoords.Y < 30)
// 当拖动行到当前视图顶端,滑轮自动向上滚动.
ug.ActiveRowScrollRegion.Scroll(RowScrollAction.LineUp);
else if (pointInGridCoords.Y > grid.Height - 30)
// 当拖动行到当前视图尾端,滑轮自动向下滚动.
ug.ActiveRowScrollRegion.Scroll(RowScrollAction.LineDown);
};
ug.DragDrop += (sender, args) =>
{
ug.Cursor = Cursors.Default;
UIElement uieOver = ug.DisplayLayout.UIElement.ElementFromPoint(ug.PointToClient(new Point(args.X, args.Y + 10)));
UltraGridRow ugrOver = uieOver.GetContext(typeof(UltraGridRow), true) as UltraGridRow;
if (ugrOver != null)
{
var dropIndex = ugrOver.HasParent() ? ugrOver.ParentRow.Index : ugrOver.Index;
SelectedRowsCollection SelRows = args.Data.GetData(typeof(SelectedRowsCollection)) as SelectedRowsCollection;
if (action != null)
{
action(SelRows, dropIndex);
}
else
{
foreach (UltraGridRow aRow in SelRows)
{
ug.Rows.Move(aRow, dropIndex);
}
}
}
};
}
///
/// 合并单元格统计
///
public static void SetGroupBySum(UltraGrid ug, string[] columnKeys, string groupBy)
{
if (columnKeys.Length == 0)
{
return;
}
for (int i = 0; i < columnKeys.Length; i++)
{
SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(
columnKeys[i],
SummaryType.Custom,
new StringSummaryCalculator(groupBy), // Custom summary calculator
ug.DisplayLayout.Bands[0].Columns[columnKeys[i]],
SummaryPosition.UseSummaryPositionColumn, null);
summary.DisplayFormat = "{0:N3}";
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
}
}
}
class StringSummaryCalculator : ICustomSummaryCalculator
{
private string _summaryText = "";
private string groupby = "";
internal StringSummaryCalculator(string GroupBy)
{
groupby = GroupBy;
}
public void AggregateCustomSummary(SummarySettings summarySettings, UltraGridRow row)
{
}
public void BeginCustomSummary(SummarySettings summarySettings, RowsCollection rowCollection)
{
string key = summarySettings.Key;
var list = rowCollection.GroupBy(p => p.Cells[groupby].Value.ToString()).Select(p => p.LastOrDefault()).ToList();
_summaryText = list.Sum(p => double.Parse(p.Cells[key].Value.ToString())).ToString();
}
public object EndCustomSummary(SummarySettings summarySettings, RowsCollection rowCollection)
{
return this._summaryText;
}
}
}