첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170
using System.Data;

using DevExpress.XtraGrid.Views.Grid;

#region 그리드 뷰 셀 병합시 처리하기 - gridView_CellMerge(sender, e)

/// <summary>
/// 그리드 뷰 셀 병합시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void gridView_CellMerge(object sender, CellMergeEventArgs e)
{
    GridView gridView = sender as GridView;

    // 계약금액, 계약원화금액 컬럼에 대해서만 처리한다.
    if(e.Column.FieldName == "ContractAmount" || e.Column.FieldName == "ContractWONAmount")
    {
        DataRow row1 = gridView.GetDataRow(e.RowHandle1); // 비교 상위 행
        DataRow row2 = gridView.GetDataRow(e.RowHandle2); // 비교 하위 행

        string budgetSubjectCode1 = row1["BudgetSubjectCode"].ToString(); // 예산과목코드
        string budgetSubjectCode2 = row2["BudgetSubjectCode"].ToString(); // 예산과목코드

        string currencyCode1 = row1["CurrencyCode"].ToString(); // 통화코드
        string currencyCode2 = row2["CurrencyCode"].ToString(); // 통화코드

        // 예산과목코드가 같은 경우
        if(budgetSubjectCode1 == budgetSubjectCode2)
        {
            // 통화코드가 같은 경우
            if(currencyCode1 == currencyCode2)
            {
                // 셀을 병합한다.
                e.Merge = true;
            }
            else // 통화코드가 같지 않은 경우
            {
                // 셀을 병합하지 않는다.
                e.Merge = false;
            }
        }
        else // 예산과목코드가 같지 않은 경우
        {
            // 셀을 병합하지 않는다.
            e.Merge = false;
        }

        e.Handled = true;
    }
}

#endregion
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요