2009-12-18 2 views
2

판매 문서 (예 : 인보이스) 입력을위한 사용자 인터페이스를 생성해야합니다. 저는 "개발자 특급"의 구성 요소, 특히 QuantumGrid 구성 요소 (TcxGrid)를 사용하려고합니다. master-detail 구성 요소의 데모를 보았고 devexpress 지원 센터에서 검색했지만 아무도 모두 2 개의 그리드를 사용하여 마스터 - 세부 관계를 처리하고 여러 레코드를 한꺼번에 편집하므로 아무 도움도받지 못했습니다.Developer Express의 QuantumGrid (TcxGrid)를 사용하는 문서 사용자 인터페이스

난 그냥 한 번 기록 (문서)를 편집하고 헤더와 세부 사항을 처리하는 그리드 오브젝트 Dataware에 구성 요소 (예 : TDBEdit와)의 쌍을 사용해야합니다. 이 난이 방법으로 이러한 구성 요소를 사용하는 기본 예제를 찾을 수 있습니다

alt text http://i49.tinypic.com/33xj61h.png

같은

무엇인가?

답변

1

QuantumGrid의 마스터/하위 속성은 주로 그리드의 여러 항목을 중첩하도록 설계되었습니다. 데이터 구성 요소에 관계를 설정하면 컨트롤을 올바른 DataSource에 연결하기 만하면 모든 것이 작동합니다.

두 개의 DataSets 고객 및 송장이있는 경우. 송장 마스터 데이터 소스는 고객 데이터 소스입니다. 그런 다음 편집 컨트롤에서 Customer DataSource를 가리키고 Grid를 Invoice DataSource로 지정합니다. 당신이 마스터/디테일 관계를 무엇을하고 있는지에 대해 생각하는 경우

정말 그냥 마스터 데이터 집합의 현재 레코드와 일치하는 상세 데이터 집합에 레코드를 필터링합니다. 개별 편집 컨트롤은 연결되어있는 데이터 세트에 항상 "현재"레코드를 표시합니다. 그리드는 연결되어있는 DataSet의 보이는 모든 레코드를 보여줍니다.

여기에 표시되는 것처럼 편집 양식에서 마스터/세부 정보 관계를 사용하지 않는 경향이 있습니다. 다른 화면에서 편집 할 인보이스를 선택하는 방법이 있다고 가정합니다. 보통이 편집에 필요한 레코드 만있는 필요한 DataSets의 복사본을 만듭니다. 기존 송장을 편집하는 중 현재 레코드를 복사합니다. 새로운 인보이스 인 경우 빈 레코드 세트로 시작할 수 있습니다. 더 많은 작업이 필요합니다. DataSet Structure를 복사 한 다음 하나 이상의 레코드를 해당 데이터 세트로 복사하는 일반 라이브러리 함수가 있습니다. 설정에 따라 관심있는 레코드를 얻기 위해 데이터베이스를 다시 쿼리 할 수도 있습니다. 모든 경우에 그렇게해서는 안됩니다. 이 접근법의 또 다른 문제는이 데이터 (예 : 기본 검색 화면)에있을 수있는 다른 데이터 세트를 업데이트 할 수있는 방법이 필요하다는 것입니다.

그러나 일단 편집 화면이 나타나면 일이 단순 해집니다. 이제 최상위 수준의 마스터 세부 관계에 대해 걱정할 필요가 없습니다. 송장에 내부 마스터/세부 관계가있는 경우이를 처리 할 수는 있지만 데이터 세트에는이 송장에 대한 데이터 만 포함되어 있습니다. 데이터베이스의 모든 데이터가 아닙니다. 방금 직접 모든 것을 연결할 수 및 예상대로 작동해야하는 데이터 집합의 데이터를 제한 할 경우 양식의 경우

. 고객 데이터 세트에는 하나의 레코드 만 있고 송장에는이 송장의 레코드 만 있습니다.

+0

감사합니다. – Salvador

1

ClientDataSource 구성 요소에서 마스터 - 세부 관계를 처리해야한다고 생각합니다. 그런 다음 그리드가이 관계를 따릅니다.

0

[email protected]에서 질문하지 않습니까?

그들이 훌륭한 지원 사이트 및 직원이 할 수 있기 때문에 내가하는 VCL 가입 떨어져 과정의 구성 요소의 품질에서,있다가 이유?

당신은 그 물건을 작성한 사람들에게 직접 물어 보시고, 샘플 프로그램을 제공해 드릴 수 있습니다. 적어도 나는 수년 동안 많은 샘플을 받았습니다.

0

전제 조건은 구성 요소와 관계없이 다른 마스터 - 세부 관계와 동일합니다. 원하는 것을 성취하기 위해 데이터 세트 레벨에서 마스터 디테일을 설정해야합니다.