حساب الإجماليات الكلية مجموعة من المجاميع في "خدمات التقارير"

StackOverflow https://stackoverflow.com/questions/213002

سؤال

لدي بعض البيانات مجمعة في الجدول حسب معايير معينة, و لكل مجموعة يتم احتساب متوسط —حسنا, هذا هو الحال الحقيقي هو أكثر قليلا صعبة— من القيم من كل التفاصيل الصفوف التي تنتمي إلى هذه المجموعة.هذا المتوسط هو مبين في كل مجموعة تذييل الصفوف.دعونا نرى هذا المثال البسيط:

Report table

ما أريده الآن هو إظهار المجموع الكلي على الجدول تذييل الصفحة.المجموع الكلي يجب أن يكون محسوب من قبل إضافة كل فريق متوسط (فعلى سبيل المثال, في هذا المثال المجموع الكلي يجب أن يكون 20 + 15 = 35).ومع ذلك, لا يمكن عش وظائف الكلي.كيف يمكن أن أفعل ؟

هل كانت مفيدة؟

المحلول

"خدمات التقارير" (2005 ربما 2008 أيضا) لا تدعم مجاميع من المجاميع مباشرة.

استخدام تقرير مخصص الجمعية رمز مراجع الكائنات اسمه (تقرير خصائص الإشارات) التي تسمح لك أن إجمالي قيم نفسك.

التعليمات البرمجية الخاصة بك يمكن أن تبدو مثل هذا:

Public Sub New()

    m_valueTable = New DataTable(tableName:="DoubleValueList")

    'Type reference to System.Double
    Dim doubleType = Type.GetType(typeName:="System.Double")

    ' Add a single Double column to hold values
    m_valueTable.Columns.Add(columnName:="Value", type:=doubleType)

    ' Add aggregation column
    m_sumColumn = m_valueTable.Columns.Add(columnName:="Sum", type:=doubleType, expression:="Sum(Value)")
End Sub
Public Function Aggregate(ByVal value As Double) As Double

    ' Appends a row using a 1-element object array. 
    ' If there will be more than 1 column, more values need to be supplied respectively.
    m_valueTable.Rows.Add(value)

    Aggregate = value
End Function
Public ReadOnly Property Sum() As Double
    Get

        If 0 = m_valueTable.Rows.Count Then
            Sum = 0
        Else
            Sum = CDbl(m_valueTable.Rows(0)(m_sumColumn))
        End If
    End Get
End Property

اسم الإشارة على سبيل المثال DoubleAggregator.ثم استبدال التعبير المجموعة مع "رمز.DoubleAggregator.الكلي(Avg(الحقول!Column2.قيمة))" والتعبير عن المجموع مع "رمز.DoubleAggregator.مبلغ()".

نصائح أخرى

تحتاج فقط إلى إضافة مبلغ() وظيفة في الجدول تذييل وهو نطاق الخارجي من كلا الفريقين و سوف مبلغ لهم جميعا معا.إذا كنت التلخيص على شرط ، قد تحتاج إلى وضع هذا في هناك أيضا.

للأسف أنا من تقارير التنمية مربع في هذه اللحظة لكنه إما:
=(مبلغ(الحقول!Column1 + مبلغ(الحقول!Column2))
أو
=SUM(sum(الحقول!Column1) + مجموع(الحقول!Column2))

أنا متأكد إنه أول من 2.

لا يمكنك حقا ، ولكن يمكنك خداع ذلك.أنا blooged حل هذا هنا:http://dataqueen.unlimitedviz.com/2011/05/ssrs-aggregate-last-ytd-or-last-child-value-in-an-ssas-query/

يمكنك أن تفعل ببساطة على النحو التالي:مبلغ(CInt(الحقول!مدخلة.قيمة)) أو مبلغ(CInt(الحقول!DollarAmountOfCheck.قيمة) ، "DataSet1") في وقت ما عندما تكون البيانات القادمة من خلال صندوق رأس المال العامل ، فإنه لا يقبل مبلغ() وظيفة.ولكن هذا يعمل بشكل جيد في هذه الحالة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top