AX2009 Grid行显示不同颜色
根据不同的条件,分别用不同的颜色来标记行。
1,创建一个表来维护不同条件对应的颜色,如图:
通过下拉对照颜色来选择需要的颜色
实现代码

//init refresh datasource public void init() { super(); IWS_ColourSetup_ds.research(); } //override grid displayOption method public void displayOption(IWS_ColourSetup _table, FormRowDisplayOption _options) { _options.backColor(_table.SelectColour); super(_table, _options); } //override grid active method public int active() { int ret; ret = super(); grid.activeBackColor(IWS_ColourSetup.SelectColour); return ret; } //override lookup public void lookup() { super(); element.setColor(SysFormRun::colorLookup(element,IWS_ColourSetup.SelectColour)); } //handle method void setColor(OLE_Color _color) { IWS_ColourSetup colourSetup; ; IWS_ColourSetup.SelectColour = _color; IWS_ColourSetup_ds.write(); for (colourSetup = IWS_ColourSetup_ds.getFirst(); colourSetup; colourSetup = IWS_ColourSetup_ds.getNext()) if (colourSetup.RecId == IWS_ColourSetup.RecId) IWS_ColourSetup_ds.clearDisplayOption(colourSetup); IWS_ColourSetup_ds.refreshEx(-1); IWS_ColourSetup_ds.active(); }
note:1,对照颜色字段最好继承标准的GanttColorId数据类型,2,在grid下对该字段的属性有如下设置,ColorScheme属性设置为RGB,LookButton属性设置为always
如果我们只需要对某一列的单元格来标记颜色而不是整行标记,系统有一个方法能帮我们实现
_options.affectedElementsByControl(IWS_stockHolderProfit.id());该方法表示只对该列产生影响(通过字段对应的控件控制)
_options.affectedElementsByField(FidldNum(...............));该方法表示只对该列产生影响(通过字段控制)
note:要得到效果,前提条件是将该控件的ColorScheme属性设置为RGB。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?