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>
ありがとう!