尝试在 Active Reports 的 ChartControl 中为某些特殊情况显示标签而不是数据
Trying to show a label instead of data for some special cases in Active Reports' ChartControl
我有一个 Active Reports 的图表控件,其中包含一个非常简单的图表,如下所示:
图表使用数据源来显示值。到目前为止,一切都很好。
问题是,在某些情况下,我需要显示而不是其中一个值,例如,在上面的示例“3.20”中,另一个标签,例如,由于某些业务规则,两个星号 * *。所以我需要而不是“3.20”来显示 * * 只有在那种特殊情况下。
所以我的第一个问题是:
- Is it possible to modify the data label only for one element of the graph to show another text instead the data value? (so in the above example will show * * instead of 3.20)
我认为答案是否定的,(如果这可能会挽救我的一天!)这导致了我正在尝试的解决方案,例如在下面的下一个示例中,我想显示 * * 而不是82.80(仅适用于值 82.80):
所以我创建了一个 Active Reports 的标签,并试图将它准确地放在图形对象的数据标签上。但是出现了一个新问题:我不知道我想隐藏的标签的确切位置 (x,y),82.80,所以我可以准确地将 * * 标签放在它上面以隐藏值并显示我的星号。所以问题是:
- If question (1) is not possible, then how can I do to show exactly over the tag of the value a label or box with my alternative tag? Is it possible to know the position using some data provided by the Chart Control object? Thank you!
这是针对您的主要问题的解决方案示例:
private void detail_Format(object sender, EventArgs e)
{
foreach (DataPoint p in MyChart.Series[0].Points)
{
if (p.YValues[0] == 3.20)
{
p.Marker = new Marker();
p.Marker.Label = new LabelInfo() { Format = "**" };
}
}
}
我有一个 Active Reports 的图表控件,其中包含一个非常简单的图表,如下所示:
图表使用数据源来显示值。到目前为止,一切都很好。
问题是,在某些情况下,我需要显示而不是其中一个值,例如,在上面的示例“3.20”中,另一个标签,例如,由于某些业务规则,两个星号 * *。所以我需要而不是“3.20”来显示 * * 只有在那种特殊情况下。
所以我的第一个问题是:
- Is it possible to modify the data label only for one element of the graph to show another text instead the data value? (so in the above example will show * * instead of 3.20)
我认为答案是否定的,(如果这可能会挽救我的一天!)这导致了我正在尝试的解决方案,例如在下面的下一个示例中,我想显示 * * 而不是82.80(仅适用于值 82.80):
所以我创建了一个 Active Reports 的标签,并试图将它准确地放在图形对象的数据标签上。但是出现了一个新问题:我不知道我想隐藏的标签的确切位置 (x,y),82.80,所以我可以准确地将 * * 标签放在它上面以隐藏值并显示我的星号。所以问题是:
- If question (1) is not possible, then how can I do to show exactly over the tag of the value a label or box with my alternative tag? Is it possible to know the position using some data provided by the Chart Control object? Thank you!
这是针对您的主要问题的解决方案示例:
private void detail_Format(object sender, EventArgs e)
{
foreach (DataPoint p in MyChart.Series[0].Points)
{
if (p.YValues[0] == 3.20)
{
p.Marker = new Marker();
p.Marker.Label = new LabelInfo() { Format = "**" };
}
}
}