需要注意的点是:
1 . 要对自由格中对应的 字段框的背景填充方式改为:填充,否则没有效果.
2 . 代码中红色部门代码: Column 为明细网络对象属性中的 列集合 中的 交叉列的 名称, Report.RunningDetailGrid.Columns.Item("Column_2")
3. 蓝色部门 为自由格中 控件的索引位置 ,也可以根据字段框的名称来进行控制如: contentCell.Controls.Item("FieldBox8")
代码如下:
/*** 当多行交叉报表时,对多行交叉报表中自由格中的多个字段控件,进行颜色控制. 取值 判断等实现* @author WUYF 11222337@qq.com*/var contentCell = Report.RunningDetailGrid.Columns.Item("Column_2").ContentCell; //ColumnContent.ContentCells.Item("fieldMajiuhaohao_1");
//contentCell.BackColor = GetColorValue(0, 255, 0);var htypeCell = contentCell.Controls.Item(2);
var htypeFieldBox = htypeCell.AsFieldBox;
var htypeDataField = htypeFieldBox.DataField;
var htypeValue = Report.RunningDetailGrid.Recordset.Fields.Item(htypeDataField );if( htypeValue.AsFloat == 3)
{htypeCell.BackColor = GetColorValue(0,255, 0);contentCell.Controls.Item(5).BackColor = GetColorValue(255,0, 0);
}//根据三原色求出颜色值function GetColorValue(r,g,b)
{return r + g*256 + b*256*256;
}
源码下载