一部のレポートを復元する処理中です。これを行うには、ここでメソッドRDLファイルを取得して再作成する必要がありました:Where does a published RDL file sitSSRS 2016「関数がすべてのコードパスで値を返しません」
私は他のスレッドのクエリからの出力を取って、結果を保存します(1人のコメント作成者が別の方法でデータをすべて取得しない可能性があると指摘していました)、テキストエディタで開き、 2つの二重引用符を連続して1つの二重引用符に置き換えてから、RDLファイルをレポートサーバーにアップロードします。
これは、任意のカスタム関数なしでレポートのために、これまで取り組んできた - 私はSumLookupとAvgLookup機能とレポートに着いたらしかし、私は次のエラーを取得する:
An error has occurred.
An unexpected error occurred while compiling expressions. Native compiler return value: '[BC42353] Function 'AvgLookup' doesn't return a value on all code paths. Are you missing a 'Return' statement?'.
IオリジナルAvgLookup機能
:私は単に1を返す単純な関数でこれを交換しようとしたFunction AvgLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = 0
Dim avga As Decimal = 0
Dim counta As Integer = 0
For Each item As Object In items
If Not item Is Nothing Then
counta += 1
suma += Convert.ToDecimal(item)
End If
Next
If counta > 0 Then
avga = suma/counta
Else
avga = 0
End If
Return avga
End Function
:ある前にGoogleで検索して、今まで罰金取り組んできました
しかし、これは私に同じエラーを与えます。
これまでに検索したものは、実際には必ずしも返り値がないわけではないので、単純な "返り値1"関数が同じエラーを返すという損失があります。
私が考えることができることは、RDLファイルとそれらの関数への参照からすべてのカスタムコードを削除し、アップロード後にそれらを置き換えることだと思います。別の解決策がありますか?
これは機能しますか? 機能AvgLookup()As 10進数 返信1 最終機能 –
私は応答を感謝します - ちょうどそれを試み、同じエラーが発生しました。私がやったこと:.rdlから関数を削除し、 "Code.AvgLookup"を "AVg"(大文字を書き留めてください)に置き換え、このファイルをアップロードし、レポートビルダーでAvgLookup関数を追加し、.rdlをダウンロードし、検索します"AVg"(大文字と小文字を区別)を "Code.AvgLookup"に置き換え、再アップロードします。私はこの機能を使ったレポートがあまりにも多くなかったので、それほど大きな問題ではありませんでした。しかし、私はこのことが起こるのを知りたいのは興味があります。 –
hmmm、私が試してみる最後のもの。 uiロジックに奇妙なエッジケース変換があるかどうかを確認してください。結果としてAs Stringを使用し、 "1"を返します。それがより重要なものが得られない場合は、ssrsから既存の.rdlを削除し、新しく再デプロイします。 –