簡體   English   中英

Dynamics AX-用不同的顏色為多個網格單元着色

[英]Dynamics AX - Color multiple grid cells in different colors

在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());

在上面列出的代碼中,兩種單元格背景色都是紅色。

有什么建議么?

謝謝

我有類似的任務要完成,但是我找不到在Ax中執行此操作的方法(從技術上講,您可以嘗試使用表控件,但我強烈建議您不要這樣做-您最終會大聲咒罵)。

我所做的是實現了WPF用戶控件,並將本文作為模板使用 這是一個小教程(可在答案#7中找到),它顯示了如何在內置WPF數據網格控件中實現單元背景轉換器,以完成任務。

實現它之后,您可以使用LINQ(如果使用AX 2012 R2),Web服務或傳遞臨時表來填充數據網格-有許多方法可以訪問AX數據。

它可能不是最終的解決方案,但它可以工作。

我使用表控件來做到這一點(盡管Maciej建議您不要這樣做)。 它的工作沒有問題

您需要添加一個獲取數據的table控件,並將ColorScheme屬性ColorSchemeRGB

然后,重寫FormControl editControl(int column, int row)您可以通過value = data.cell(column, row).data();訪問每個值value = data.cell(column, row).data(); 其中data是表控件的名稱。 注意,您必須將具有正確數據類型的控件添加到表控件並為其命名。 ColorScheme屬性設置為RGB

如果獲得所需背景色的RGB值,則可以通過以下方式設置此顏色:

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

RealEdit是添加的控件的名稱。

我這樣做是為了顯示一個填充有0到1之間的值的矩陣,並顯示一個從綠色到紅色范圍的顏色漸變疊加層。 如果您需要有關顏色轉換的更多信息,請參見此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM