2011-11-28 12 views
8

私は高低に見えましたが、かなり簡単な問題のように見えます(私は思うでしょう)。SSRS折れ線グラフがデータポイントに接続していません

私は、シリーズのいくつかのポイントにデータがあるが、ポイントのセットが1つだけリンクアップする折れ線グラフがあります。

これはなぜですか?それは私のデータと関係がありますか?もしそうなら、私はこの行動を説明するかもしれないデータの関係を見るのに苦労しています。ここで

は私が何を意味するかです:

Messed up data points

あなたが見ることができるように、赤いダイヤモンドが接続されなければならない - 同じは青の正方形とダークブルーの三角形について語ったことができました。何かご意見は?

私の色が間違っているとお詫び - 私は色盲です。

答えて

16

さて、私はこれを解決しました。

まず、ラインを連結するには、シリーズのカラーをEmptyPointに設定する必要があります。

  1. EmptyPointプロパティにドリルダウンし、これは彼らがアップ入社れます黒

なるように色を設定したプロパティ]タブ(ないダイアログ)で

  • チャートであなたの系列を選択 - わーい!しかし、線の一部は色で、他の部分は黒です。これはちょっとばかげています。特に、透明になるようにEmptyPointの色をAutomaticにしておくと考えてください。

    だから、シリーズとEmptyPointの色を同期させる必要があります。 hereのコードを使用しています。私は、レポートのコードにいくつかのコードを追加しました。

    1)。レポートの空白部分を右クリックし、「レポートのプロパティ」を選択します。
    2)。コード]タブでは、次のように貼り付けます。

    Private colorPalette As String() = {"#418CF0", "#FCB441", "#E0400A", "#05642E", "#1A3B69", "#BFBFBF", "#E0400A", "#FCB441", "DarkBlue", "Tomato", "Orange", "CornflowerBlue", "Gold", "Red", "Green", "LightBlue", "Lime", "Maroon", "LightSteelBlue", "Tan", "Silver"} 
    Private count As Integer = 0 
    Private mapping As New System.Collections.Hashtable() 
    
        Public Function GetColor(ByVal groupingValue As String) As String 
    
         If mapping.ContainsKey(groupingValue) Then 
           Return mapping(groupingValue) 
         End If 
    
         Dim c As String = colorPalette(count Mod colorPalette.Length) 
          count = count + 1 
          mapping.Add(groupingValue, c) 
          Return c 
        End Function 
    

    その後、我々は、一連のとEmptyPointの色を設定する際に、このコードを呼び出す必要があります。

    1. プロパティ]タブのペーストでは、以下の何か(お使いのシリーズグループ名でWhateverTheGroupIsForYourSeriesを置き換える)あなたのシリーズ
    2. を選択:EmptyPointシリーズプロパティの色要素
    3. にドリルダウン=Code.GetColor(Fields!*WhateverTheGroupIsForYourSeries*.Value)
    4. をポイント2と同じテキストを貼り付けます。 =Code.GetColor(Fields!*WhateverTheGroupIsForYourSeries*.Value)]

    そしてvoila!あなたは終わった! これはどれほど難しくないのでしょうか?D

  • +0

    手順2と4を試してみるまで、すべてうまくいきました。問題は、GetColor関数にアクセスすることです。 GetColor関数を定義するレポートプロパティに記述されたコードは、ここでは色要素でアクセスできないようです。どのようにこれを解決するか考えています。私はRDLCを使用しており、レポートサービスにあるRDLは使用していません。 – learner

    +0

    私の間違いを見つけました!私が提供したシリーズ名にはタイプミスがありました。あなたは解決策を働いた。ありがとう。私が今見ている唯一の問題は、伝説の色が台無しになっていることです。同じ色の外観が複数あります。 – learner

    +0

    私はY値にCountRows()を使用していましたが、これはEmpty Pointsの錯覚をもたらしましたが、値ゼロの実際の点でした。それを回避するために、私はY値を に変更しました = IIF(CountRows()、0、CountRows()、Nothing) – Towler

    1

    マーカーは表示されていても線は表示されませんでした。私はそれを整数に変換するCInt()で式をラップすることによって解決しました。

    +0

    これをコード例でもう少し説明できますか?私はこの解決策を試すことに興味があります。 –

    +0

    このソリューションは私にとって完璧に機能しました。グラフの値のフィールドを選択し、矢印をクリックして式を選択し、CINT([your expression])でそこにあるものをラップします。ありがとうSteveCav – MrsTapp

    0

    これを処理するもう1つの方法は、再帰的な選択を行うことです(非常に大きなデータセットではこれを行わないと、パフォーマンスが低下します)。今、あなたは(それがRNによってRNおよびソートしてグループをすべきである)あなたのカテゴリグループをrnをすることができ

    SELECT *, ROW_NUMBER() over(partition by Store order by Date desc) as rn 
    FROM StorePerformance 
    

    が、そのラベルの選択日付:だからあなたはあなたのデータセットを作ることができます。これでもx軸に日付が表示されますが、rnでグループ化しているので、データは引き続き連続しており、すべての行が接続されます。また、伝説も一致します。

    行番号を表示して日付を表示しているので、データポイントがどのくらいシフトしているのかまだ深くは考えていませんが、主に行の傾向を視覚化することに関心があり、彼らはお互いに関連して時間のある特定の時点にあります、それはあなたにうまく役立ちます。さもなければ私はチャートをそのままにして、有効なデータであるプロットポイントを読みます。

    関連する問題