2009-02-27 4 views
8

보고서 및 데이터 원본의 열 중 하나가 TimeSpan 유형입니다. Fields!TheTime.Value을 사용할 때 TimeSpan 값이 보고서에 올바르게 표시되는데 문제가 없습니다. SSRS : 보고서의 TimeSpan 값 합계

  • 5시 41분 0초
  • 7시 2분 0초
    • 하지만 그룹의 총 시간을 얻기 위해 그 가치에 합계을하고 싶습니다. C#에서는 물론 TimeSpan + 다른 TimeSpan을 할 수 있으므로 추가 할 수 있습니다. 나는
      =Sum(Fields!TheTime.Value) 
      

      을 시도하지만 어떤 종류의 긴 숫자로 밖으로 인쇄 끝납니다. 위의 출력 된 시간 예를 들어, 나는 합계로 457800000000을 얻을 것이다. 그게 뭐라 할지라도?

      어쨌든 보고서의 시간 간격 값을 어떻게 합할 수 있습니까? 위 timespans 들어, 나는 합계로 12:43:00로 끝내고 싶습니다. 내 머리가 다시 한 번 수학에 실망하지 않는다면 ...

    +1

    아래에서 올바르게 추론하면 합계 값은 "틱"값입니다. 또한 위의 시간 (초)을 계산하면 07:02:00 = 25320 초와 05:41:00 = 20460 초가됩니다. 25320 + 20460 = 45780. – Dan

    답변

    14

    한숨 성가 시게 간단한 솔루션 ... 왜 난 그냥 처음부터 것을 시도하지 못했습니다? 나는 나 자신이 장님 생각했다 아마도 때문에 ... TimeSpan 클래스에 대한 액세스를했다 ...하지만 인식하지 않았기 때문에 아 글쎄 ... 아마 어쨌든, 여기있다 :

    =TimeSpan.FromTicks(Sum(Fields!TheTime.Value)) 
    

    D' 오!

    +1

    '시스템'과 같이 접두어를 붙일 필요가있었습니다. = System.TimeSpan.FromTicks (Sum (Fields! Hours.Value)) –

    +0

    @David : 그러면 코드 파일에'using System; '이 없었을 것입니다 – Svish

    0

    Fields! TheTime.Value를 표시 할 때 SSRS는 그 정보를 DateTime 유형 필드

    당신이 거기에 합계를 추가 할 때 그것은 숫자 형 필드로 생각하고 특별히 포맷하려고

    (즉, 그것은 각각의 시간 범위 필드에 "틱"의 수를 합산한다) 등으로 표시합니다 필드 속성에서 datetime으로 합계 된 값은 올바르게 표시됩니다.

    1

    @Svish - 삭제 된 이전 버전 내 대답에 대한 불확실성이 있었기 때문에 게시했지만 나는 @pfunk와 동의한다.

    마침내 SSRS를 백업하고 재생 해 보았습니다. 귀하의 큰 숫자가 틱 수이기 때문에 결과 형식을 약간 닮은 것처럼 보입니다.

    흥미롭게도 필자의 이전 회선 응답은 DATETIME을 계산할 수 없기 때문에 SSRS (및 SQL)에서 수행 할 수없는 DateTime 값 (SQL Server DATETIME 데이터 형식 사용)을 처리하는 방법이었습니다. 나중에 참조 할 수 있도록 여기에 다시 포함 시키겠다. :

    아래 코드는 DateTime 필드를 double로 변환하고 결과를 합친 다음 다시 DateTime 및 형식으로 변환합니다. 그것은 HH에 대한 : MM : SS

    =Date.FromOADate(Sum(Fields!TheTime.Value.ToOADate())).ToString("hh:mm:ss") 
    
    +0

    어디에서 Date.FromOADate 및 ToOADate() 함수를 찾을 수 있습니까? 코드가 작동하지 않습니다. Visual Studio에서 빨간색 밑줄을 긋지 만 컴파일 할 수 있습니다.그러나 내가 그것을 실행할 때, 나는 단지 그 분야에서 # 오류를 얻는다. – Svish

    +0

    FromOADate 및 ToOADate는 TimeSpan 클래스가 아닌 DateTime 클래스의 메서드이며 귀하의 시간은 TimeSpan입니다. 귀하의 솔루션에 대한 좋은 소식 - 간단한 대답 일 때는 사랑하지 마세요 :) –