2

在 Dynamics AX 2012 中,有没有办法将多个单元格的背景颜色更改为不同的颜色?

Order Status     Ship Status     Order ID
[green]          [red]           SO-1234
[green]          [green]         SO-1235
[red]            [red]           SO-1236

我编写了一个 displayOption 覆盖,可以更改一个单元格的颜色,但它似乎在最后应用了所有更改,所以无论您指定的最后一种颜色是应用于所有单元格的颜色。

_options.backColor(46080); //green
_options.affectedElementsByControl(OrderStatus.id());

//is there anyway to apply the first change, so I can make a second one?

_options.backColor(255); //red
_options.affectedElementsByControl(ShipStatus.id());

在上面列出的代码中,两种单元格背景颜色都是红色。

有什么建议么?

谢谢

4

2 回答 2

1

我有一个类似的任务要完成,但我没有找到在 Ax 中完成它的方法(好吧,从技术上讲,你可以尝试 Table control,但我强烈建议你不要这样做 - 你最终会大声咒骂)。

我所做的是实现了一个 WPF 用户控件并将这篇文章用作模板。这是一个小教程(在答案 #7 中找到),它展示了如何在内置 WPF 数据网格控件中实现单元格背景转换器,以完成任务。

实现后,您可以使用 LINQ(如果使用 AX 2012 R2)、Web 服务或传递临时表来填充数据网格 - 有很多方法可以访问 AX 数据。

它可能不是最终的解决方案,但它确实有效。

于 2013-01-29T11:48:38.827 回答
0

我是使用表格控件完成的(尽管 Maciej 建议您不要这样做)。 它没有问题

您需要添加一个table控件来获取您的数据并将属性设置 ColorSchemeRGB

然后,覆盖您可以通过表控件的名称访问FormControl editControl(int column, int row) 每个值。请注意,您必须将具有正确数据类型的控件添加到表控件并为其命名。还将属性设置为。value = data.cell(column, row).data();dataColorSchemeRGB

如果您获得了所需背景颜色的 RGB 值,则可以通过以下方式设置此颜色

RealEdit.backgroundColor(WinAPI::RGB2int(real2int(R),real2int(G),real2int(B)));

RealEdit是添加的控件的名称。

我这样做是为了显示一个填充了 0 到 1 之间值的矩阵,并显示一个颜色渐变叠加层,范围从绿色到红色。如果您想了解有关颜色转换的更多信息,请参阅此链接。

于 2014-03-11T08:57:44.663 回答