인사이드뱅크 그리드 합계처리하는 샘플
1. AMSGeneralGrid에서 합계영역을 추가합니다. (추가 방법 > 'UI개발가이드.ppt' 참조) GeneralGridView 속성의 FooterCaption_X 값을 조정하여 '합계:' 문구의 위치를 조정할 수 있습니다.
2. Grid Designer에서 View의 이벤트 속성에서 CustomSummaryCalculate 이벤트를 추가합니다.
3. 화면에서 그리드 초기화가 끝나는 부분에 사용할 GridColumnSummaryItem을 추가해 줍니다.
- 생성 방법만 참조하시고, 상황에 맞게 개발하시면 됩니다.
void CreateCustomSummaryItems()
{
DataTable dataTable = Grid당행출금이체내역.DataSource as DataTable;
if (dataTable == null)
return;
// 조건이 되는 컬럼 아래에 GridColumnSummaryItem 추가
GridColumnSummaryItem item = new GridColumnSummaryItem();
item.SummaryType = DevExpress.Data.SummaryItemType.Custom;
item.Tag = 1;
gridView_당행_전체.Columns["이체구분_D"].Summary.Add(item);
item = new GridColumnSummaryItem();
item.SummaryType = DevExpress.Data.SummaryItemType.Custom;
item.Tag = 2;
gridView_당행_전체.Columns["이체구분_D"].Summary.Add(item);
// 값을 계산할 컬럼 아래에 GridColumnSummaryItem 추가
item = new GridColumnSummaryItem();
item.SummaryType = DevExpress.Data.SummaryItemType.Custom;
item.Tag = 3;
gridView_당행_전체.Columns["정상금액_VIEW"].Summary.Add(item);
item = new GridColumnSummaryItem();
item.SummaryType = DevExpress.Data.SummaryItemType.Custom;
item.Tag = 4;
gridView_당행_전체.Columns["정상금액_VIEW"].Summary.Add(item);
}
4. 2번에서 추가한 CustomSummaryCalculate 이벤트 함수에 GridColumnSummaryItem 의 값에 해당하는 값을 입력하도록 코드를 추가해 줍니다.
- 입력 방법만 참조하시고, 상황에 맞게 개발하시면 됩니다.
private void GridView_당행_전체_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)
{
DataTable dataTable = Grid당행출금이체내역.DataSource as DataTable;
if (dataTable == null || dataTable.Rows.Count <= 0)
return;
GridView view = sender as GridView;
GridColumnSummaryItem item = e.Item as GridColumnSummaryItem;
int item_tag = Convert.ToInt32(item.Tag);
if (item_tag == 1) // 이체구분_D 의 첫번째 SummaryItem
{
e.TotalValue = Convert.ToString("건별즉시");
}
else if (item_tag == 2) // 이체구분_D 의 두번째 SummaryItem
{
e.TotalValue = Convert.ToString("대량즉시");
}
else if (item_tag == 3) // 정상금액_VIEW 의 첫번째 SummaryItem
{
if(dataTable.Columns.Contains("정상금액_VIEW") && dataTable.Columns.Contains("이체구분_D"))
{
object obj = dataTable.Compute("Sum(정상금액_VIEW)", "이체구분_D = '건별즉시'");
long l합계 = obj.GetType() != typeof(DBNull) ? Convert.ToInt64(obj) : 0;
e.TotalValue = Formatter.Currency(l합계.ToString());
}
}
else if (item_tag == 4) // 정상금액_VIEW 의 두번째 SummaryItem
{
if (dataTable.Columns.Contains("정상금액_VIEW") && dataTable.Columns.Contains("이체구분_D"))
{
object obj = dataTable.Compute("Sum(정상금액_VIEW)", "이체구분_D = '대량즉시'");
e.TotalValue = Formatter.Currency((obj.GetType() != typeof(DBNull) ? Convert.ToInt64(obj) : 0).ToString());
}
}
}