2012-05-15 2 views
0

데이터베이스 테이블을 사용하여 사용자가 (응용 프로그램 내에서) 필드를 생성하여 사용자가 만든 테이블을 볼 수있는 타사 프로그램이 있습니다. User_Created_Fields라는 테이블이 있습니다. 같은 응용 프로그램이이 앱이 User_Created_Fields 테이블에 지정된 테이블과 필드 이름이 필드에 대한 데이터를 저장두 번째 선택 문장에 따라 선택에 포함 할 열 선택

Group 1 
First Charge *text area for input* 
Begin Date  *text area for input* 
End Date  *text area for input* 

---------- 

Group 2 
First Charge *text area for input* 
Begin Date  *text area for input* 
End Date  *text area for input* 

응용 프로그램에 다음을 표시하는 테이블에이를보고

TABLE   FIELD_NAME   GROUP  LABEL 
products  charge1    1   First Charge 
products  begin_date1   1   Begin Date 
products  end_date1   1   End Date 
products  charge2    2   First Charge 
products  begin_date2   2   Begin Date 
products  end_date2   2   End Date 

그래서 PRODUCTS.charge1 및 PRODUCTS.charge2 필드 s (해당 날짜 필드에 대해서도 동일).

이제 Products 테이블에 저장된 값을 선택하는 보고서를 작성해야하지만 사용자가 필드를 추가하기 때문에 필자는 User_Created_Fields의 Table 및 field_name 열에서 선택한 열이 필요합니다. 표.

때문에 출력은 쿼리가

select (select Table ||'.'||field_name from User_Created_Fields where Label='First Charge' and Group= (select Group from User_created_fields where label ='First Charge')) from Products 

이 그래서 난 그냥 SQL을 사용할 수 없습니다 크리스탈 보고서에가는 것처럼 (매우 약) 보일 것이다

PRODUCTS.Begin_date, PRODUCTS.End_date, PRODUCTS.Charge1, User_Created_Fields.Group

과 같을 것이다 내가 일반적으로하는 것처럼 SQL을 생성합니다. 이것도 할 수있는 더 많은 결정 esq 방법이 있을지 모르지만 나는 그것이 무엇인지를 모르고 있습니다. 이 정보는 분명히 판매 세부 사항과 결합 될 것입니다. 그러나이 부분은 경건하지 않게 충분히 복잡하기 때문에 simplicitiy에 대한 부분을 남겼습니다. 나는 크리스탈 11과 오라클 10을 사용하고 있습니다.

이 모든 것을 읽었다면 보상을받을 자격이 있습니다 .... 감사합니다.

+0

select를 실행할 수는 있지만 ... 항상 테이블 이름과 필드 이름을 텍스트로 반환합니다 ... 실제로 선택 항목의 일부로 테이블과 필드 이름을 실행하지 않습니다 – user1023993

+0

동적 SQL, 저장 프로 시저 및 전역 임시 테이블의 조합을 사용하여이를 확인할 수 있습니다. 일부 참조는 아래에서 확인할 수 있습니다. http://www.dbforums.com/crystal-reports/1634385-using-oracle-package-data-source-report .html – psaraj12

답변

0

필자가 아는 한 Crystal Reports는 SQL 문장 대신 저장 프로 시저에 액세스 할 수 있습니다. 따라서 저장 프로 시저에 sql 문을 작성하는 코드를 작성하여 보고서의 데이터 소스로 사용하십시오.

크리스탈을 행복하게 만들려면 지원할 최대 개수의 열을 결정하고 해당 개수의 열을 항상 반환해야 할 수도 있습니다.

+0

최종 사용자가 열 수를 변경할 수 있습니다. 내가 높은 숫자를 추가 할 수 있다고 생각하면 보고서는 잠시 동안 설정되지만, 필요하지 않으면 더 좋을 것입니다. – user1023993

관련 문제