! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

OData를 사용하여 WinForms용 FlexGrid에 데이터 시각화 적용하기 > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

OData를 사용하여 WinForms용 FlexGrid에 데이터 시각화 적용하기

페이지 정보

작성자 GrapeCity 작성일 2020-06-15 00:00 조회 6,193회 댓글 0건

본문

ComponentOne 2020 V1 릴리스는 새로운 데이터 관련 서비스 컴포넌트인 DataConnectors 및 DataCollection를 포함하고 있습니다.


DataConnectors는 OData 및 Dynamics 365와 같이 널리 사용되는 데이터 소스에 연결하기 위한 크로스 플랫폼 데이터 연결 라이브러리입니다. DataCollection은 데이터 필터링, 정렬 및 그룹화를 지원하는 크로스 플랫폼 데이터 바인딩 라이브러리입니다.


이러한 데이터 조작 기능과 함께 DataCollection은 대용량 데이터 세트를 증분로드 할 수 있도록 데이터 가상화를 지원 합니다.


이 게시물에서는 이러한 두 서비스 컴포넌트를 통합하여 데이터 가상화를 OData 서비스와 함께 사용하고 FlexGrid for WinForms 와 같은 데이터 인식 컨트롤에 바인딩하는 방법을 보여줍니다.


다음 단계를 사용하여 애플리케이션을 작성합니다.


  1. 필요한 NuGet 패키지를 설치합니다.
  2. C1AdoNetVirtualDataCollection을 사용하여 OData 웹 API 서비스에 연결합니다.
  3. C1AdoNetVirtualDataCollection을 사용하여 FlexGrid에 바인딩합니다.

1단계 : 필요한 NuGet 패키지 설치

WinForms 프로젝트를 만들고 다음 NuGet 패키지를 설치합니다.


  • C1.AdoNet.OData
  • C1.DataCollection.AdoNet
  • C1.DataCollection.BindingList


NuGet 패키지를 추가하려면 'Solution Explorer'창에서 'References' 노드를 마우스 오른쪽 단추로 클릭하고 'Manage NuGet Packages'를 선택하십시오.



2단계 : C1AdoNetVirtualDataCollection을 사용하여 OData 웹 API 서비스에 연결하기

DataCollection 서비스 라이브러리는 페이징을 구현하는 기본 클래스 C1VirtualDataCollection을 제공합니다 이 클래스에는 컬렉션을 채울 항목을 반환하기 위해 구현해야 하는 추상 메서드 GetPageAsync가 있습니다.


라이브러리는 다음과 같은 클래스도 제공합니다.


  1. C1AdoNetVirtualDataCollection
  2. C1EntityFrameworkCoreVirtualDataCollection


이 클래스는 필요한 모든 메소드를 구현하므로 애플리케이션에서 직접 사용할 수 있습니다. C1VirtualDataCollection에 의해 노출된 속성을 사용하여 가상화 조작을 제어할 수 있습니다.


다음 옵션을 사용하여 C1VirtualDataCollection 객체를 구성 할 수 있습니다.


가상화 모드 :

이 모드는 가상 데이터 수집에서 데이터가 로드되는 방법을 정의합니다.


  • 자동 (기본 옵션) : 항목에 액세스 할 때 데이터를 로드합니다
  • 수동 : LoadAsync 메서드를 호출하여 데이터를 로드합니다.

페이지 크기:

각 페치 요청에서 요청된 행 수를 결정합니다.


이 예에서는 Northwind OData Web API를 사용하고 Orders 테이블에서 레코드를 가져옵니다.


string connectionString = @"Url=https://services.odata.org/Experimental/Northwind/Northwind.svc/";
var odataConnection = new C1ODataConnection(connectionString);
var collectionView = new C1AdoNetVirtualDataCollection<Order>(odataConnection, "Orders");
collectionView.PageSize = 100;


generic 클래스 C1AdoNetVirtualDataCollection<T>를 사용하여 데이터 소스에서 강력한 형식의 레코드를 가져옵니다. non-generic 클래스 C1AdoNetVirtualDataCollection을 사용하면 런타임시 레코드에 적절한 유형을 만들 수 있습니다 ( 'ItemType' 속성 에서 정보 유형에 액세스 할 수 있음)


3 단계 : C1AdoNetVirtualDataCollection을 사용하여 C1FlexGrid 바인딩하기


가상 데이터 수집 객체를 C1DataCollectionBindingList에 감싸서 FlexGrid의 인스턴스에 바인딩합니다.


_flexGrid.BeginInvoke(new MethodInvoker(() =>
{
    _flexGrid.DataSource = new C1DataCollectionBindingList(collectionView);
    _flexGrid.AllowFiltering = true;
}));


데이터 콜렉션이 다른 스레드에 채워지므로 FlexSource의 BeginInvoke 메소드를 사용하여 데이터 소스 변경에 대한 스레드 간 예외를 피하십시오.


샘플을 실행합니다. 그리드에는 처음에 100개의 행이 있습니다 (PageSize 속성을 사용하여 구성). 아래로 스크롤하면 더 많은 데이터를 자동으로 가져옵니다.




전체 샘플 다운로드 


DataCollection 및 DataConnector에 대한 자세한 내용은 여기를 참조하십시오. 



  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.