Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

끄적끄적IT공부방

델파이 - Fields Editor 본문

카테고리 없음

델파이 - Fields Editor

도비네이션 2018. 11. 5. 15:40

Fields Editor
▶ TField 컴포넌트
일반적으로 TTable과 TQuery컴포넌트가 데이터베이스 및 테이블과 연결되어 Open되면 동적으로 해당 TField컴포넌트를 생성하게 되지만 TField컴포넌트를 지속적으로 만들고 활용하기 위해선 Fields Editor를 사용할 수 있습니다.
Fields Editor를 실행하기 위해서는 Ttable, TQuery등의 DataSet을 선택하여 더블클릭하거나 오른쪽 마우스 버튼을 눌러 팝업 메뉴상의 'Fields Editor...'를 선택합니다.

TField컴포넌트를 추가하는 방법에는 3가지가 있는데,(위의 그림에서 오른쪽 마우스버튼을 클릭하면 팝업메뉴가 나타납니다.) 
테이블의 필드 중 몇개만 선택하고 싶을 때는 'Add Fields...'메뉴를 사용하며, 테이블의 모든 필드를 선택하고 싶을 때는 'Add All Fields'메뉴를 사용한다. 그리고 테이블내에는 없는 새로운 필드를 추가하려면 'New Fields...'메뉴를 사용합니다.
이 메뉴들을 사용하여 추가한 필드들은 Fields Editor에 등록되고 각 Field를 선택해 보면 그 필드에 적절한 속성과 이벤트를 정의할 수 있도록 Object Inspector창을 사용하실 수 있습니다. 
또한 Fields Editor를 이용하여 DBGrid등에서 보여주는 필드의 순서도 이곳에서 변경할 수 있으며, 작업에서 불필요한 필드를 제거하거나 새로운 필드를 추가하여 구성하는 것도 가능합니다. 
필드 개체의 위치변경은 마우스의 Drag&Drop 기능을 사용하여 조정할 수 있습니다. 그 외에 추가한 필드 컴포넌트를 삭제하기 위해서는 제거할 필드항목을 선택하고 Del을 누르면 됩니다.
Fields Editor를 통해 새롭게 생성된 필드 개체는 단지 표시를 목적으로만 사용하게 되며, 데이터베이스 테이블에 보관하지는 않습니다. 
예를 들어 수량필드와 단가필드가 있다면 합계필드는 실제 존재하지 않아도 수량과 단가 두 필드를 곱해서 화면에 나타내는 것 만으로도 합계필드가 존재하는 것처럼 보일 수 있습니다.
다음은 새롭게 생성할 수 있는 필드의 종류를 보여줍니다.

필드 종류
사용 목적
Data
기존의 필드를 교체하여 사용하고자 할 때 사용합니다.
(예를 들어, 필드의 Type을 다른 Type으로 변경해 사용하고자 할 때)
Calculated
DataSet의 OnCalcFields이벤트 핸들러에 의해 실행시간에 계산값을 표시하기 위한 필드로 사용합니다.
(위에서 설명한 합계필드는 여기에 해당합니다.)
InternalCalc
TClientDataSet에서 사용할 수 있으며, OnCalcFields이벤트 핸들러에서 동적으로 계산되는 것 대신에 그 DataSet과 함께 저장된 계산 값을 가져오기 위해 사용합니다.
Lookup
실행시간에 지정한 검색 기준으로 지정 DataSet으로부터 값을 가져옵니다.
Aggregate
TClientDatae에서 사용할 수 있으며, 레코드 집합에서 그 데이타의 집계값을 표시합니다.


 Data Field
Data 필드는 DataSet의 기존 필드 항목을 대체하여 사용할 수 있도록 해줍니다. 예를 들어, 프로그램적으로 TSmallIntField를 TIntergerField로 변경하여 처리해야 할 필요가 있는 경우입니다. 즉, 필드의 데이터 형은 직접 바꿀 수 없기 때문에 새로운 필드를 추가하여 정의해서 사용하는 것입니다.
 Calculated Field
계산 필드는 DataSet의 OnCalcFields이벤트 핸들러를 통해 실행시간에 계산 결과값을 표현하는 필드로 사용합니다.
Name란에 기존 DataSet의 필드 이름과 다른 새로운 계산 필드에 대한 이름을 지정합니다.
Type 콤보박스에서 데이터형을 지정합니다.
Size란에 적당한 필드의 크기를 지정합니다.
(StringField, TbytesField, TvarBytesField 형인 경우에만 지정합니다.)
Field Type부분에 Calculated가 선택되어 있는지 확인하고 OK버튼을 선택합니다.
작업하는 DataSet의 OnCalcFields이벤트 핸들러에 추가한 새로운 계산 필드에 적용할 계산식 코드를 작성합니다.

procedure TForm1.Table1CalcFields(DataSet: TDataSet); begin Table1Sum.Value := Table1Su * Table1Danga; // 합계 = 수량 * 단가 end;

 Lookup Field
조회 필드는 지정한 검색 기준으로 실행시간에 값을 표시하는 읽기전용의 필드이다. 조회 필드는 찾을 기존 필드의 이름과 찾는 필드 값, 표시하려는 Lookup DataSet의 지정한 필드를 넘기도록 구성하여 정의할 수 있습니다.
예를 들어, 수강 테이블의 과목 필드에 값을 입력하기 위해서 사용자가 직접 입력하는 것이 아니라 과목 테이블에서 정의된 과목명들을 리스트받아 그 레코드중에서 수강테이블의 과목 필드에 값을 입력하도록 할 경우에 유용할 것입니다.
따라서 DataSet은 2개(수강테이블, 과목테이블)가 있어야 Lookup필드를 Fields Editor에서 정의할 수 있습니다.
Name란에 기존 DataSet의 필드 이름과 다른 새로운 Lookup필드에 대한 이름을 지정합니다.
Type 콤보박스에서 데이터형을 지정합니다.
Size란에 적당한 필드의 크기를 지정합니다.
(StringField, TbytesField, TVarBytesField형인 경우에만 지정합니다.)
Field Type 부분에 Lookup을 선택합니다.
Lookup definition 부분에서 DataSet란에서 현재 작업하는 DataSet이 아닌 Lookup으로 사용할 다른 DataSet을 선택합니다. 여기서 DataSet을 정의하면 Lookup Keys 와 Result Field콤보박스가 활성화됩니다.
Key Fields란에 Lookup과 연계되는 현재의 DataSet 필드를 지정합니다. 여러 필드를 지정하려면 세미콜론(;)을 사용하여 직접 입력할 수도 있습니다.
Lookup Keys란에는 6에서 지정한 원시 데이터셋 필드와 대응하는 Lookup 데이터셋의 필드를 선택합니다. 마찬가지로 하나 이상의 필드를 지정하였다면 세미콜론을 사용하여 직접 입력합니다.
Result Field에는 생성하는 Lookup 필드의 값을 리턴받을 Lookup 데이터셋의 필드를 선택합니다.