데이터 찾아가기 (IFindingData)

개요

  • 프로그램 A에서 프로그램 B를 실행하고 특정 데이터를 찾아가는 기능 구현 가이드

  • BaseForm.OpenFormByTab 메서드로 특정 프로그램을 실행하고 메서드의 반환 값을 IFindingData 인터페이스 형식으로 캐스팅하여 GoToData 메서드를 호출

Guide

폼 실행 <From>

  • OpenFormByTab 메서드를 호출하여 반환 값을 IFindingData 인터페이스 형식으로 캐스팅하고 GoToData 메서드를 호출

  • 아래 코드는 Grid의 행을 더블 클릭하면 [공지사항] 메뉴를 실행하는 예시

private void GridView_DoubleClick(object sender, EventArgs e)
{
    var gridView = sender as GridView;

    DevExpress.Utils.DXMouseEventArgs dxMouseEventArgs = e as DevExpress.Utils.DXMouseEventArgs;
    DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hitInfo = gridView.CalcHitInfo(dxMouseEventArgs.Location);

    if (!hitInfo.InRow || hitInfo.RowHandle < 0 || hitInfo.Column == null) 
        return;

    if (gridView.Equals(gvwNotice))
    {
        string datnum = gridView.GetRowCellValue(hitInfo.RowHandle, "datnum")?.ToString() ?? string.Empty;
        string recdt = gridView.GetRowCellValue(hitInfo.RowHandle, "recdt")?.ToString() ?? string.Empty;
        
        BaseForm form = OpenFormByTab("CM_A0000", null, false);

        // 전달할 파라미터 (0: 현재 폼ID, 1: 키 값(datnum), 2: 작성일(recdt))
        var paramValues = new object[]
        {
            FormId,
            datnum,
            recdt
        };

        (form as IFindingData)?.GoToData(paramValues);
    }
}

실행된 폼 <To>

  • IFindingData 인터페이스를 상속받아 GoToData 메서드를 구현

  • 아래 코드는 전달받은 파라미터를 참조하여 검색 결과로부터 FindRow로 찾을 데이터가 조회될 수 있도록 조회 조건의 기간을 수정하고 RetrieveHelper.SetValueToFindRow 메서드로 찾을 데이터의 키 값(datnum)을 세팅

Last updated