2011-02-14 1 views
1

나는 3 개의 그룹을 포함하는 보고서를 쓰고있다 : 년, 달 및 공급자.Crystal Report에서 전년 동기의 계산을 위해 이전 그룹을 참조하는 방법은 무엇입니까?

각 페이지는 최상위에서 연도로 시작한 다음 12 개월마다 각각에 대한 판매 요약으로 시작됩니다. 그런 다음 해당 달의 각 회사에 대한 개별 판매 수치를 보려면 드릴 다운 할 수 있습니다.

내 보고서의 최상위 레벨은 다음과 같습니다

2010 
    January £20,000 
    February £30,000 
    March  £15,000 
    etc. 

2011 
    January £16,000 
    February £14,000 

를 자, 내가 (이 경우 : 16,000 20,000 대) 전년 같은 기간에 2011년 1월의 값을 비교하고자 그래서 몇 가지를 수행 할 수 있습니다 추가 계산.

현재 저는 JanGlobal, FebGlobal 등의 전역 변수를 사용하여 저장하고 필요에 따라 검색하여이 작업을 수행하고 있습니다. 이것은 12 개월 밖에 걸리지 않을 것이기 때문에 효과가 있습니다. 따라서 변수 이름을 미리 지정할 수 있습니다.

그러나 공급자 수준에서 나는 얼마나 많은 공급 업체가 있을지 또는 전혀 존재하지 않을 수도 있습니다 (공급 업체는 신규 일 수 있으므로 전년도 정보가 없을 것입니다. 또는 그들은 흉상에 빠졌을지도 모릅니다. 그래서 새해에는 존재하지 않습니다.)

내 공급 업체는 다음과 같다 드릴 다운 : 존재하는 경우

2010 
    January 
     Company 1 £5,000 
     Company 2 £7,000 
     Company 3 £8,000 

그래서 나는 12 개월 이전에서 자신의 대응과 공급 업체의 변수 수를 비교해야합니다. 어떤 아이디어?

+0

Crystal Reports의 버전은 무엇입니까? – MartW

+0

@Code Version XI. 확인할 태그를 추가했습니다. –

+0

어떤 방식 으로든 데이터 소스를 편집 할 수있는 권한이 있습니까? 일부 멋진 SQL을 사용하여 데이터를 링크 된 테이블로 추가 할 수 있습니다. – PowerUser

답변

0

여기 해결책은 상당한 정도의 문자열 조작을 필요로합니다. 본질적으로, 회사의 그룹 바닥 글 (연도가 2010 년 일 때)에서는 회사 이름과 판매 수치를 구성합니다. 연도가 2011 인 경우 2011 년과 관련된 데이터 (해당 회사 및 월의 데이터)를 추출하여 비교를 위해 문자열을 처리합니다.

그래서, ProcessJan라는 문자열 식을 위해, 당신은의 (a 분리 문자로 파이프를 사용)이있을 수 있습니다

Global StringVar JanGlobal; 
Local NumberVar NumberToCompare := 0; 
If Year(Sales) = 2010 Then 
    JanGlobal := '||' + {CompanyName} + '|' + ToText({SalesFigure}); //append current value to Jan's formula 
Else 
(
    If UBound(SalesSearch) > 0 
    (
     Local NumberVar Searching := 1; 
     For Searching = 1 to UBound(SalesSearch) 
      If SalesSearch[Searching] StartsWith ({CompanyName} + '|') Then 
      (
       Local StringVar Array Matched := Split(SalesSearch[Searching], '|') 
       NumberToCompare := ToNumber(Matched[2]); 
      )   
     Next 
    ) 
    //do whatever you want with the 2011 sales figure and the value of NumberToCompare 
    //(which should be either zero or Jan 2010's sales figure for the company) here 
) 

을 작업의 비트와 함께 하나의 수식 및 글로벌 변수를 관리하려면이 방법을 적용 할 수 모든 달 및 회사.

+0

그게 꽤 강렬한 .. 커피가 필요해 .. – aMazing

관련 문제