문제

이것은 단순해야하지만 아직 아무것도 찾을 수 없습니다. 보고 서비스에는 값과 동적 가시성을 계산 한 최대 6 행의 테이블이 있습니다. 이 행을 합산하고 싶습니다. 기본적으로 여러 송장 항목이 있으며 총계를 만들고 싶습니다. 저장된 절차가 시스템의 다른 곳에서 사용되므로 DB 측에서 아무것도 변경할 수 없습니다. 각 행은 다른 데이터 세트에서 데이터를 가져 오므로 데이터 세트의 합을 수행 할 수 없습니다. 모든 행을 테이블 바닥 글로 합을 수 있습니까? Excel의 총 수의 총계와 마찬가지로? 합계를 계산하기 위해 각 행에서 가시성 표현식을 각 행에서 바닥 글 로우에 넣는 것이 매우 중복되는 것 같습니다.

도움이 되었습니까?

해결책

이를 달성 할 수있는 몇 가지 방법 :

1. SQL에서 계산을 수행하고 해당 필드를 합산하십시오.

SELECT Quantity, Amount, Quantity * Amount As TotalAmount FROM MyTable

그런 다음 세부 사항 행에서 TotalAmount 필드를 사용하여 바닥 글에 합산하십시오.

2. 총계를 계산하는 두 번째 데이터 세트를 만들고 합이 아닌 바닥 글에 사용하십시오.

=Sum(Fields!TotalAmount.Value, "MyTotalingDataset")

3. 사용자 정의 코드를 사용하여 수행하십시오. 레이아웃 공간을 마우스 오른쪽 버튼으로 클릭하면 속성을 선택하고 코드 탭을 클릭하십시오. 다음 코드를 넣으십시오.

Public Dim TotalAmount As Double = 0

Public Function CalculateRowTotal(ThisValue As Double, ThatValue As Double) As Double
    TotalAmount = TotalAmount + (ThisValue * ThatValue)
    Return ThisValue * ThatValue
End Function

디테일 밴드에서 필드를 합산하는 열을이 표현식으로 만듭니다.

=Code.CalculateRowTotal(Fields!Quantity.Value, Fields!Amount.Value)

이것은 위의 코드를 실행하고 계산을 수행하고 프로세스의 총 합계를 계산합니다.

바닥 글 밴드는 총 합을 표시하여 열에 표현식을 갖습니다.

=Code.TotalAmount

그리고 당신은 끝났습니다. 코드가 실행되는 순서가 보장되지 않기 때문에 조심하십시오. 일부 보고서의 경우 먼저 바닥 글을 실행합니다 (예 : 세부 사항 대역에서 행의 합을 사용하는 경우). 세부 대역 계산은 아직 발생하지 않았지만 일반적인 경우에는 작동해야합니다.

다른 팁

다음과 같이 DB를 변경할 수 있습니다.

SQL에서 집계 된 결과를 얻을 수 있다는 것을 알고 있습니까? 없이 데이터를 집계합니까?

다음과 같이 데이터 세트에 추가 열을 추가합니다.

위의 샘플에서 : OrderQty는 SaleroRderID를 합산하려는 값입니다.

Count, Avg 등과 함께 동일한 기술을 사용할 수 있습니다.

자세한 내용은 여기에 있습니다http://msdn.microsoft.com/en-us/library/ms189461(sql.90).aspx

실행 순서에 문제가있는 경우 테이블 아래에 텍스트 상자를 추가 하고이 상자에 TotalAmount를 표시하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top