2011-08-04 1 views
1

저는 고객이 만든 사용자 지정 보고서를 업데이트하여 다른 모든 고객이보다 일반적으로 사용할 수 있도록했습니다. 이 보고서는 지불 방법에 따라 총 판매액을 보여 주며 다른 신용 카드 (소프트웨어에 내부적으로 별도의 지불 방법으로 저장되어있는)를 모두 하나의 "신용 카드"그룹으로 결합합니다. 유감스럽게도이 값은 보고서에 하드 코딩되어 있습니다. 그런 다음Crystal Reports의 그룹 수식에서 공유 변수를 사용하는 방법은 무엇입니까?

//Init 
Shared StringVar Array CreditCards; 
ReDim CreditCards[1]; 

//Calc (in the details section) 
Shared StringVar Array CreditCards; 
CreditCards[ubound(CreditCards)] := {CreditCard.crCard}; 
ReDim Preserve CreditCards[ubound(CreditCards)+1]; 

//Display (suppressed, used to check if I got all the cards) 
Shared StringVar Array CreditCards; 
Join(CreditCards, chr(10)); 

가, 난 그냥 내 그룹 수식에이 작업을 수행 할 거라고 생각 : 나는 그렇게 모든 고객이 사용할 수있는 데이터베이스에서 가져온 유효한 신용 카드 이름의 배열을 생성하는 하위 보고서에 다음과 같은 공식을 만들어 , Sales_ByPayMethod은 당신이 분명히 그룹화 수식에서 공유 변수를 사용할 수 없기 때문에이 작동하지 않는 것을 알 수 ... ...

Shared StringVar Array CreditCards; 
If {Sales_ByPayMethod;1.finPayMethod} In CreditCards Then 'Credit Card' 

저장 프로 시저입니다. 이 문제를 해결할 수있는 방법이 있습니까? 아니면 (가급적이면) 올바른 방법이 있을까요? 나는 대답이 업그레이드되지 않기를 바라고 Crystal 8.5 (필자는 알고있다.)를 사용하도록 강요 받았다. ...

답변

1

메인 보고서에서 왼쪽 외부 조인을 CreditCard.crCard로 할 수 있습니까? 그런 다음 CreditCard 테이블의 행에 null이 아닌 값이 있는지 확인하는 수식을 만들 수 있습니다. if not null {CreditCard.crCard} then "Credit Card" else {Sales_ByPayMethod;1.finPayMethod}

데이터 모델이 잘못되거나 저장 프로 시저를 사용하면 SQL 식에서 동일한 논리가 대신 작동 할 수 있습니다.