1

ASPx 円グラフを作成しましたが、色を正しくするのに少し苦労しています。私はバックエンド コード (サード パーティ) をまったく制御できないため、XML の変更のみ (Microsoft Dynamics CRM) に限定されることに注意してください。

問題は、返されたレコードの特定のステータスを示す色を使用したいことです (たとえば、図書館で本が期限切れになっている日数)。私はこのようなシチュエーションを持ちたいです:

0-5 日遅れ (= コード 0) ----> 緑

5-10 日遅れ (= コード 1) ----> 黄色

10-15 日遅れ (= コード 2) ----> オレンジ

>15 days late (= code 3) ----> red

サーバーから受信しているデータは、たとえば次のとおりです。

コード (遅延日数) カウント (本) 0 4 2 5 3 14

これは、PaletteCustomColors属性を使用して次のように色を指定すると機能します。

<Chart Palette="None" PaletteCustomColors="149,189,66; 255,255,0; 255,136,35; 197,56,52; 117,82,160; 55,118,193; 168,203,104; 142,116,178; 93,186,215; 255,155,83">
  <Series>
    <Series ShadowOffset="0" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PieLabelStyle=Inside, PieDrawingStyle=Default" ChartType="pie">
      <SmartLabelStyle Enabled="True" />
    </Series>
  </Series>
  <ChartAreas>
    <ChartArea>
      <Area3DStyle Enable3D="true" />
    </ChartArea>
  </ChartAreas>
  <Legends>
    <Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" />
  </Legends>
  <Titles>
    <Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="0, 0, 0"></Title>
  </Titles>
</Chart>

ただし、特定のコードが存在しない場合、これは機能しません。この場合、色は次のようになります。

Code 0 -> 緑、Code 2 -> 黄、Code 3 -> オルガン

したがって、コード 1 の結果が返されなかったため (このコードのカウントが 0 であるため、アプリから結果が返されないため)、コード 2 は最初の残りの色を取得し、コード 3 はその後の色を取得します...色を Code プロパティにバインドしたい。

私はこれに DataPoints を使用しようとしましたが (以下のコードを参照)、役に立ちませんでした...誰かまともな解決策がありますか?

    <Chart>
  <Series>
    <Series ShadowOffset="0" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PieLabelStyle=Inside, PieDrawingStyle=Default" ChartType="pie">
      <SmartLabelStyle Enabled="True" />
      <Points>
        <DataPoint XValue="0" Color="Green" />
        <DataPoint XValue="1" Color="Yellow" />
        <DataPoint XValue="2" Color="Orange" />
        <DataPoint XValue="3" Color="Red" />
        <DataPoint XValue="4" Color="Purple" />
    </Points>
    </Series>
  </Series>
  <ChartAreas>
    <ChartArea>
      <Area3DStyle Enable3D="true" />
    </ChartArea>
  </ChartAreas>
  <Legends>
    <Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" />
  </Legends>
  <Titles>
    <Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="0, 0, 0"></Title>
  </Titles>
</Chart>

ありがとう!

4

2 に答える 2

0

途中でプロキシ サービスを作成できますか。

これの代わりに: Code (days late) Count (books) 0 4 2 5 3 14

あなたのサービスはゼロ値のアイテムを挿入します: Code (days late) Count (books) 0 4 1 0 2 5 3 14

于 2012-06-28T23:11:06.913 に答える