如何在 Dynamics CRM 4 上为 CRM 网格着色?
我想在加载视图时自动显示带有背景颜色的实体列表。
我的目标是根据所列实体的状态使用不同的颜色。例如,我想为具有过去日期字段的案例设置一种颜色,而为将来具有此日期的案例设置另一种颜色。
如何在 Dynamics CRM 4 上为 CRM 网格着色?
我想在加载视图时自动显示带有背景颜色的实体列表。
我的目标是根据所列实体的状态使用不同的颜色。例如,我想为具有过去日期字段的案例设置一种颜色,而为将来具有此日期的案例设置另一种颜色。
下面描述的解决方案是Microsoft不支持的更改(也就是说,使用它需要您自担风险)。另外,不能保证在应用 CRM 汇总时它不会被破坏。
在 CRM 服务器上,修改C:\Program Files\Microsoft Dynamics CRM\CRMWeb\_static\_grid\grid.htc
文件:
initializeData()
在函数末尾添加以下代码:
if (window.location.href.toLowerCase() ==
"http://CrmServerName:5555/OrganizationName/cs/home_cases.aspx") {
// We ensure that we are on the organization we want to colorize and that we
// are on the Cases page
var colorizeColumn = InnerGrid.FindColumnIndex("new_date");
if (colorizeColumn > 0) {
// We ensure that the column we'll use to colorize is present
for (var i = 0; i < InnerGrid.AllRecords.length; i++) {
// For each line
// Build the date value from the displayed date
var new_date_displayed = InnerGrid.AllRecords[i][3].
cells[colorizeColumn].innerText;
var new_date_value = new Date(new_date_displayed.substring(6,10),
new_date_displayed.substring(3,5) - 1,
new_date_displayed.substring(0,2),
new_date_displayed.substring(11,13),
new_date_displayed.substring(14,16), 0, 0);
// Get current date
var current_datetime = new Date();
if (new_date_value <= current_datetime) {
InnerGrid.rows[i].style.backgroundColor="ff0066";
} else {
InnerGrid.rows[i].style.backgroundColor="ff6600";
}
}
}
}
这就是你得到的: