שלום לכם...מזמן לא כתבתי פה והסיבה העיקרית היא שאני עסוק בעבודה מעל הראש...המון פרוייקטים...המון לחץ והחשוב מכל המון SharePoint ו BI.
לאחרונה יצא לי לעבוד המון ב SSRS שהוא כלי נפלא להפקה ויצירת דוחות. כמובן שהוא מתממשק עם SharePoint כך שאנחנו יכולים להפיק דוחות מנתונים השמורים ברשימות.
עם כל הסימפטייה שלי לכלי הזה, כשרוצים לסנן פרמטרים שנישלפים מרשימת SharePoint לא ניתן לעשות זאת בקלות.
ויותר מזה ב MSDN כתוב שלא ניתן לעשות זאת:
"You cannot change the sort order or specify groups in the graphical query designer"
קבלו דרך לבצע זאת בעזרת WorkAround נחמד ומעט קוד.
בדוגמה אציג דוח פשוט שמציג ערים מתוך רשימה, כמובן שניתן יהיה לבחור את הערים שיוצגו בעזרת פרמטר.
הנה מיון ברירת המחדל לפני התהליך:
כדי לבצע מיון נבצע את השלבים הבאים:
בשלב הראשון נכניס את הקוד הבא ל Report Properties:
Public Shared Function sortObject(ByVal spstr As Object(), _
ByVal lblStr As Object(), ByVal iCol As Integer) As Object()
ByVal lblStr As Object(), ByVal iCol As Integer) As Object()
Dim tempLbl(UBound(lblStr)) As Object
Dim tempVal(UBound(spstr)) As Object
Dim tempVal(UBound(spstr)) As Object
tempLbl = lblStr
Array.Sort(lblStr)
For i As Integer = 0 To UBound(lblStr)
For j As Integer = 0 To UBound(tempLbl)
If lblStr(i) = tempLbl(j) Then
tempVal(i) = spstr(j)
Exit For
End If
Next
Next
Array.Sort(lblStr)
For i As Integer = 0 To UBound(lblStr)
For j As Integer = 0 To UBound(tempLbl)
If lblStr(i) = tempLbl(j) Then
tempVal(i) = spstr(j)
Exit For
End If
Next
Next
If iCol = 1 Then
Return tempVal
Else
Return lblStr
End If
Return tempVal
Else
Return lblStr
End If
End Function
וכך זה ניראה:
בשלב השני נגדיר Dataset נוסף לשדה ממנו אנחנו יוצרים פרמטר (בדוגמה שמו Dataset1).
לאחר מכן נגדיר את הפרמטר הראשון מתוך שניים הנה ההגדרות שלו:
לאחר מכן נגדיר את הפרמטר השני לפי ההגדרות הבאות:
בשורת ה Label וה Value נזין את הערך הבא:
=Code.sortObject(Parameters!Parameter1.Value, Parameters!Parameter1.Label, 2)
שימו לב שהטקסט המודגש הוא שם הפרמטר הראשון, על כן עליכם להתאים את שורת הקוד לשם הפרמטר שלכם.
ולבסוף התוצאה הממויינת:
להתראות בפעם הבאה,
חיים.
אין תגובות:
הוסף רשומת תגובה