[英]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
屬性ColorScheme
為RGB
然后,重寫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.