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

FlexGrid에 데이터 채우기 > 온라인 스터디

본문 바로가기

ComponentOne

온라인 스터디

Winforms윈폼 FlexGrid에 데이터 채우기

페이지 정보

작성자 GrapeCity 작성일 2022-03-15 15:36 조회 793회 댓글 0건

본문

본문에서는 FlexGrid에 데이터를 채우는 방법에 대해 설명합니다. 살펴볼 내용은 다음과 같습니다.

  • 언바운드 모드(Unbound Mode)

  • 바운드 모드(Bound Mode)

    • 디자인 타임에서의 바인딩

    • 런타임에서의 바인딩


언바운드 모드(Unbound Mode)

이름에서 알 수 있듯이, 언바운드 모드에서 그리드는 데이터 소스에 바인딩되지 않으며, 컨트롤 자체에 데이터가 저장됩니다.

이 경우 디자인 타임 또는 행 및 열 컬렉션을 통해 프로그래밍 방식으로 행과 열을 추가하여 데이터를 제공해야 합니다. 사용자가 데이터를 입력할 수 있도록 빈 그리드를 만들수도 있습니다.

언바운드 그리드는 그리드가 데이터를 저장하지 않아 사용자가 수동으로 관리해야 하기 때문에, 일반적인 사용 방식은 아닙니다. 그러나 레코드 생성 및 유지 관리와 같은 일부 비즈니스 시나리오에는 더 적합할 수 있습니다. Ex>

  • 날짜별 판매 데이터를 기록할 때

  • 일일 재고 변경을 유지할 때

아래 예제는 코드를 통해 채워진 데이터가 있는 그리드를 보여줍니다.

01_UnboundMode


C1FlexGrid의 Count 속성을 설정하거나 Add 메소드를 사용하여, 그리드에 빈 행이나 열을 추가할 수 있습니다.

셀에 데이터를 설정하려면 그리드의 인덱스 값을 통해 셀에 접근하거나 SetData 메소드를 사용합니다.

아래 코드는 언바운드 FlexGrid에 열을 추가하고, 해당 열의 헤더와 첫 행에 값을 입력하는 코드입니다.

// 언바운드 열을 추가합니다.
    Column col = c1FlexGrid1.Cols.Add();
    ​
    // 추가된 열의 이름을 "Unbound_Column"로 설정합니다.
    col.Name = "Unbound_Column";
    ​
    // 추가한 열 헤더에 "AddedColumn"을 입력합니다.
    col.Caption = "Added Column";
    ​
    // 추가한 열의 첫번째 행에 "data"를 입력합니다.
    c1FlexGrid1[1, "Unbound_Column"] = "data";


코드를 실행했을 때, 그리드의 우측 끝에 열이 추가되고 해당 열의 헤더 셀과 첫번째 데이터 셀에 값이 추가된 것을 확인하실 수 있습니다.

02_Add



바운드 모드(Bound Mode)

이름에서 알 수 있듯이 바운드 모드는 그리드가 기본 데이터 소스에서 데이터를 가져오는 상태를 나타냅니다. 또한 데이터 바인딩을 사용하면 여러 데이터 소비자가 동기화된 방식으로 데이터 공급자에 연결될 수 있습니다.

FlexGrid는 아래와 같이 일반적으로 사용되는 대부분의 데이터 소스와의 데이터 바인딩을 지원합니다.

  • ObservableCollection

  • IList<T>, List<T>

  • Array

  • BindingSource

  • DataSet, DataTable와 같은 ADO.NET 객체

FlexGrid를 데이터 소스에 바인딩하는 방법에는 다음과 같이 세 가지가 있습니다.

  • 디자인 타임에서의 바인딩

  • 런타임에서의 바인딩

디자인 타임에서의 바인딩

  1. 디자인 보기에서, FlexGrid를 선택하고 우측 상단의 스마트 태그를 클릭하여 C1FlexGrid 작업 메뉴를 엽니다.

    03_TasksMenu   

  2. 데이터 소스 선택 드롭다운 버튼을 클릭하고, 프로젝트 데이터 소스 추가를 선택합니다.

    04_ChooseDataSource 

    05_AddPjtDataSource      

  3. 다음과 같이 데이터 소스 구성 마법사가 실행됩니다. 애플리케이션이 데이터를 가져오는 위치 목록에서 데이터베이스를 선택하고 다음 버튼을 클릭합니다.

    06_Wizard    
     

  4. 사용할 데이터베이스 모델 형식 목록에서 데이터 세트를 선택하고 다음 버튼을 클릭합니다.

    07_Wizard    

  5. 데이터 연결 선택 페이지에서 새 연결 버튼을 클릭합니다.

    08_NewConnection   

  6. 팝업으로 표시되는 데이터 소스 선택창에서 Microsoft Access 데이터베이스 파일을 선택하고, 계속 버튼을 클릭합니다. (실무 프로젝트에서는 필요에 따라서 다양한 DB를 연결하여 사용하실 수 있습니다.)

    09_AddCunecction    

  7. 데이터베이스 파일 이름 필드에 대해 찾아보기를 클릭합니다. 필요한 경우 사용자 이름암호를 입력합니다. 이 예에서는 기본적으로 \Documents\ComponentOne Samples\Common 디렉터리에 있는 C1NWind.mdb 파일을 사용하겠습니다.

    10_FileName  

  8. 연결 테스트 버튼을 클릭하여 데이터베이스 또는 서버에 성공적으로 연결되었는지 확인하고 확인을 클릭합니다.

    12_test

    13_popup   

  9. 확인 다시 클릭 하여 연결 추가 대화 상자를 닫습니다.  

  10. 프로젝트에 데이터 파일을 추가하고 연결 문자열을 수정할 것인지 묻는 대화상자가 나타납니다. 체크박스를 체크한 후 다음 버튼을 클릭하여, 응용 프로그램 구성 파일에 연결 문자열을 저장합니다.

  11. 필요한 테이블을 체크한 후 마침 버튼을 클릭합니다.

    16_ChooseTables   

  12. 위의 단계에서는 프로젝트에 데이터세트와 연결 문자열을 추가합니다. 또한 Visual Studio는 데이터 세트를 채우기 위해 다음 코드를 자동으로 만듭니다.

    // TODO: 이 코드는 데이터를 'c1NWindDataSet.Cities' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다.
        this.citiesTableAdapter.Fill(this.c1NWindDataSet.Cities);


  13. 프로젝트를 실행하면, 다음과 같이 그리드에 연결한 데이터가 보여지는 것을 확인할 수 있습니다.

    18_Run


런타임에서의 바인딩

코드를 이용하여 그리드에 데이터를 바인딩하기 위해, 먼저 데이터베이스 연결 문자열을 생성해야 합니다. 그런 다음 데이터 연결자 객체(OleDbDataAdapter)를 사용하여 데이터 테이블에서 제품을 가져오는 쿼리를 만들고, C1FlexGrid 클래스의 DataSource 속성에 할당된 데이터 테이블을 채웁니다.

// bind grid to a data source
    string conn = GetConnectionString();
    OleDbDataAdapter da = new OleDbDataAdapter("select * from cities", conn);
    DataTable dt = new DataTable("Cities");
    da.Fill(dt);
    c1FlexGrid1.DataSource = dt;


아래 샘플 코드와 같이 GetConnectionString 이라는 사용자 지정 메소드를 사용하여 데이터베이스와의 연결 문자열을 만듭니다.

static string GetConnectionString()
    {
      string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\ComponentOne Samples\Common";
      string conn = @"provider=microsoft.jet.oledb.4.0;data source={0}\c1nwind.mdb;";
      return string.Format(conn, path);
    }


위 코드를 입력한 후 프로젝트를 실행하면, 그리드에 데이터가 바르게 입력된 것을 확인할 수 있습니다.



지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!

c1.png



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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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