2014-05-12 3 views
6

Ich habe ein Projekt mit diesem kundenspezifischen Code:Identifier erwartete Fehler versucht SSRS Projekt mit benutzerdefinierten Code zu implementieren

Public Function GetStdDev(ByVal Sum1 as Integer, ByVal Sum2 as Integer, 
              ByVal Sum3 as Integer, ByVal Sum4 as Integer, 
              ByVal Sum5 as Integer, ByVal WAvg as double) as Double 
    Dim aleph = 5/60 
    Dim w1 = (Sum1 - WAvg)^2 
    Dim w2 = 2 * ((Sum2 - WAvg)^2) 
    Dim w3 = 3 * ((Sum3 - WAvg)^2) 
    Dim w4 = 4 * ((Sum4 - WAvg)^2) 
    Dim w5 = 5 * ((Sum5 - WAvg)^2) 
    Dim alpha = (w1 + w2 + w3 + w4 + w5)/5 
    Dim beta = sqrt(alpha * aleph) 
    Return beta 
End Function 

Der Bericht ganz gut betrachtet werden kann, aber wenn ich es einsetzen, bekomme ich diesen Fehler:

There is an error on line 0 of custom code: [BC30203] Identifier expected. 

Ich habe keine Ahnung, was SSRS-Problem ist. Kann mich jemand aufklären?

Danke!

Antwort

10

Dies ist ein klassischer Fall von Regel # 1 der Programmierung: „Ich bin ein Idiot“. Das Problem ist, ich habe nicht in die Unterstreichungen auf der Funktionserklärung, wie ich vergessen habe, musste dies in VB tun. Warum sich die Vorschau nicht beklagte, werde ich nie erfahren. Der korrigierte Code lautet:

Public Shared Function GetStdDev(ByVal Sum1 as Integer, ByVal Sum2 as Integer, _ 
              ByVal Sum3 as Integer, ByVal Sum4 as Integer, _ 
              ByVal Sum5 as Integer, ByVal WAvg as double)  as Double 
    Dim aleph as double = 5/60 
    Dim w1 as double = (Sum1 - WAvg)^2 
    Dim w2 as double = 2 * ((Sum2 - WAvg)^2) 
    Dim w3 as double = 3 * ((Sum3 - WAvg)^2) 
    Dim w4 as double = 4 * ((Sum4 - WAvg)^2) 
    Dim w5 as double = 5 * ((Sum5 - WAvg)^2) 
    Dim alpha as double = (w1 + w2 + w3 + w4 + w5)/5 
    Dim beta as double = sqrt(alpha * aleph) 
    Return beta 
End Function 
+2

Unterstriche waren das Problem. Seltsam, wie der benutzerdefinierte Code ohne Vorschau in der Vorschau funktioniert, bis der Bericht auf dem RS-Server bereitgestellt wird. – dhirschl

0

Sie müssen die Funktionen markieren wie:

Public Shared Function GetStdDev`(ByVal Sum1 as Integer, ByVal Sum2 as Integer, 
              ByVal Sum3 as Integer, ByVal Sum4 as Integer, 
              ByVal Sum5 as Integer, ByVal WAvg as double) as Double 
+0

Nein, immer noch das Bereitstellungsproblem. –