private void CreateSummaries(IEnumerable<ReportWizardColumn> columns, Band band, SummaryRunning running, Font summaryFont) { foreach (ReportWizardColumn column in columns) if (!string.IsNullOrEmpty(column.Expression) && column.Summary.HasValue && column.Tag is XRControl) { XRControl control = (XRControl)column.Tag; if (control.DataBindings.Count() == 0) continue; XRLabel label = CreateLabel(); band.Controls.Add(label); AddDataBinding(label, control.DataBindings[0].DataMember); label.Summary.Running = running; label.Summary.Func = column.Summary.Value; label.Summary.IgnoreNullValues = true; label.Left = control.Left; label.Width = control.Width; label.Font = summaryFont; } }
static void BuildSummaryTemplate(SnapDocument template, TableCell box, GridSummaryItem source, SummaryRunning running) { MatchCollection formatFields = formatFinder.Matches(source.DisplayFormat); int k = 0; template.InsertText(box.ContentRange.End, " "); foreach (System.Text.RegularExpressions.Match match in formatFields) { template.InsertText(box.ContentRange.End, source.DisplayFormat.Substring(k, match.Groups[1].Index - k)); k = match.Groups[1].Index + match.Groups[1].Length; SnapText snText = template.CreateSnText(box.ContentRange.End, source.FieldName); snText.BeginUpdate(); snText.SummaryRunning = running; snText.SummaryFunc = source.SummaryType; string format = match.Groups[2].Value; if (!String.IsNullOrEmpty(format)) { if (format.EndsWith("C", StringComparison.InvariantCultureIgnoreCase)) { snText.FormatString = @"$0.00"; } } snText.EndUpdate(); } template.InsertText(box.ContentRange.End, source.DisplayFormat.Substring(k)); }