0

SSRS에서 RunningValue 함수를 사용하여 롤링 처리량을 계산할 수 있습니까? 그렇지 않다면 다른 방법이 있습니까? 현재SSRS 2008 RunningValue Multiplication

나는 주황색 선 시리즈 표현 사용하고 있습니다 :

=(RunningValue(((Sum(Fields!StartQty.Value) - Sum(Fields!LossQty.Value))/Sum(Fields!StartQty.Value)), SUM, "DataSet1")) 

을 그리고 있기 때문에 RunningValue에서 SUM 집계의 예상 결과를 얻는 것은 : SSRS Chart Example

나는 0.88을 표시 얻을 필요 , 0.62, 0.62가 한 걸음 더 낮은 첫 패스 수확량에 도달하지 않는 한 모든 단계의 끝까지.

따라서 계산되어야 0.88 * 0.71 = 0.62

는 끝까지, 0.92 * 0.62 = 0.57 단계 다른 나쁜 수율 치면. 내가 찾을 수

가장 가까운 것은 여기 스택 오버플로에 대한 또 다른 질문은 비슷하지만 내 경우에는 그것을 구현하는 방법을 알아낼 수 있습니다 : 당신이 가질 수 없습니다 잊었 1

Function equivalent to SUM() for multiplication in SQL Reporting

편집 SSRS 2008 년 중첩 집계, 그래서 모두 SSRS 2008 2012+

편집 2

에 대한 해결책이 있는지 관심이있을 것 0 코멘트에서 요청으로

, 샘플 데이터 세트 :

=((Sum(Fields!QtyStart.Value) - Sum(Fields!ScrappedQty.Value))/Sum(Fields!QtyStart.Value)) 
+0

사용자 지정 코드를 사용하여 구현할 수 있다고 생각합니다. 문제를 재현하기 위해 샘플 데이터를 추가하십시오. –

+0

@alejandrozuleta - 내가 사용하고있는 데이터 세트의 편집을 추가했습니다. (그래프 그림은 이제 5 단계에 스크랩을 추가했기 때문에 구식입니다. 0.75 % [아직 75.00 %로 포맷되지 않았습니다]) – HuntK24

+0

원하는 샘플에서 0,88, 0.62, 0.62, 0,62 ... 0,62의 행을 표시하려면 곱셈이 0.62 미만의 숫자를 생성 할 때만 변경됩니다. 내가 괜찮 니? –

답변

0

나는 일부 시나리오를 재현했습니다

Sample Data

파란색 막대를 계산하는 간단한 표현은 다음과 같다 더 간단한 데이터. 이 요구 사항에 대해 사용자 지정 코드를 사용하여 각 값을 단계별로 얻을 수 있습니다.

메뉴/Report properties.../Code 탭으로 이동하십시오. 상자에이 VB 코드를 사용하십시오 :

Dim prev As Double = - 1.0 

Public Function GetYield(ByVal current As Double) As Double 

    if prev = -1.0 then 
     prev=current 
     return prev 
    End if  
    if (current*prev) <= prev then 
     prev = current*prev 
    End if 
    return prev 

End Function 

이제 차트 값에 추가 표현식을 추가하십시오. 이하기 위해

=Code.GetYield(
    (Sum(Fields!QtyStart.Value) - Sum(Fields!ScrappedQty.Value))/Sum(Fields!QtyStart.Value) 
) 

는 호출 당 변수 prev을 변경하고 그 값은 런타임에 보고서에서 공유되기 때문에 만, 보고서 당 한 번 GetYield 함수를 호출 할 수 있습니다 작동합니다.

또한 함수가 호출 된 첫 번째 시간을 결정하기 위해 prev 변수는 -1으로 초기화되므로 함수에 전달하는식이 -1을 생성하면 예기치 않은 값이 반환됩니다. 초기 값을 생산하지 않을 것으로 알고있는 값으로 설정하십시오.

이 발생한다 :

enter image description here

이 도움이되는지 알려주세요.

+0

와우! 필자는 커스텀 코드가 서술 된 함수 밖에서 필드/속성을 사용할 수 있다는 것을 알지 못했다. 나는 그것을 시도하지 않으면 바보가된다. 이것은 정확하게 내가 요청한 것입니다, 감사합니다 alejandro! 그들이 말하는대로 당신은 매일 것을 배웁니다. – HuntK24