전체적인 요점은 프로그래밍 방식으로 서식 규칙을 추가하는 것입니다.
필자의 경우 10 개의 섹션이 있으며 각 섹션의 상태 값은 '승인 됨', '대기 중', '비 승인 됨', '시작되지 않음'입니다.
스타일 설정에서 사용할 수있는 문이 IIF
인 경우 손으로 직접 처리 할 수 있습니다. 그러나 여기에 DevExpress XtraReport에는이를 수행 할 수있는 방법이 없습니다. 규칙을 [조건 : 승인, 그 다음 스타일 : 녹색 배경]으로 만 작성할 수 있으면 각 섹션에 4 개의 규칙이 추가되어 총 40 개의 규칙이 작성됩니다. 아무도 손으로 그것을하는 것을 좋아하지 않을 것입니다.
좋아요, 여기 내 해결책이 있습니다.
보고서의 코드 숨김으로 이동하여 InitializeComponent();
바로 뒤에 보고서를 조작하는 코드를 추가 할 수 있습니다. 여기 AddColorCodingFormattingRules(sections, statusColors);
private void AddColorCodingFormattingRules(IEnumerable sections, Dictionary<string, Color> statusColors)
{
foreach (var s in sections)
{
var cellName = string.Format("xrTableCell{0}", s);
var cell = FindControl(cellName, false) as XRTableCell;
if (cell == null) continue;
foreach (var pair in statusColors)
{
var rule = new FormattingRule
{
Condition = string.Format("[{1}] == \'{0}\'", pair.Key, s),
Name = string.Format("_formatStatus{1}{0}", pair.Key, s)
};
rule.Formatting.BackColor = pair.Value;
FormattingRuleSheet.Add(rule);
cell.FormattingRules.Add(rule);
}
}
}
이 솔루션은 미래에 필요로하는 사람을 도울 수 있기를 바랍니다 내 방법입니다. 그리고 XtraReport가 향후 버전에서 개선 될 수 있기를 바랍니다. 그래서 우리는 그 창조적 일 필요가 없습니다.