public static RelatedListBrowser[] GetChildBrowsers(ReportDataContext dataContext, object dataSource, string parentDataMember, string childDataMember) { if (childDataMember.Length <= parentDataMember.Length) { return(new RelatedListBrowser[0]); } var r = new List <RelatedListBrowser>(); RelatedListBrowser relatedListBrowser; var i = parentDataMember.Length; while (true) { i = childDataMember.IndexOf('.', i + 1); if (i == -1) { break; } relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember.Substring(0, i), false) as RelatedListBrowser; if (relatedListBrowser != null) { r.Add(relatedListBrowser); } } relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember, false) as RelatedListBrowser; if (relatedListBrowser != null) { r.Add(relatedListBrowser); } return(r.ToArray()); }
public static RelatedListBrowser[] GetChildBrowsers(ReportDataContext dataContext, object dataSource, string parentDataMember, string childDataMember) { if (string.IsNullOrEmpty(parentDataMember)) throw new ArgumentException("Parent data member must not be null or empty.", nameof(parentDataMember)); if (childDataMember.Length <= parentDataMember.Length) return new RelatedListBrowser[0]; var r = new List<RelatedListBrowser>(); RelatedListBrowser relatedListBrowser; var i = parentDataMember.Length; while (true) { i = childDataMember.IndexOf('.', i + 1); if (i == -1) break; relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember.Substring(0, i), false) as RelatedListBrowser; if (relatedListBrowser != null) r.Add(relatedListBrowser); } relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember, false) as RelatedListBrowser; if (relatedListBrowser != null) r.Add(relatedListBrowser); return r.ToArray(); }
public static RelatedListBrowser[] GetChildBrowsers(ReportDataContext dataContext, object dataSource, string parentDataMember, string childDataMember) { if (string.IsNullOrEmpty(parentDataMember)) { throw new ArgumentException("Parent data member must not be null or empty.", nameof(parentDataMember)); } if (childDataMember.Length <= parentDataMember.Length) { return(new RelatedListBrowser[0]); } var r = new List <RelatedListBrowser>(); RelatedListBrowser relatedListBrowser; var i = parentDataMember.Length; while (true) { i = childDataMember.IndexOf('.', i + 1); if (i == -1) { break; } relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember.Substring(0, i), false) as RelatedListBrowser; if (relatedListBrowser != null) { r.Add(relatedListBrowser); } } relatedListBrowser = dataContext.GetDataBrowser(dataSource, childDataMember, false) as RelatedListBrowser; if (relatedListBrowser != null) { r.Add(relatedListBrowser); } return(r.ToArray()); }
private DataGroupInfo?GetCurrentDataGroup(ReportDataContext dataContext, Band runningBand) { if (dataContext == null) { throw new ArgumentNullException(nameof(dataContext)); } if (runningBand == null) { throw new ArgumentNullException(nameof(runningBand)); } var closestMember = runningBand as XtraReportBase ?? runningBand.GetParentBoundReportBand(); var browser = (ListBrowser)dataContext.GetDataBrowser(closestMember.DataSource, closestMember.DataMember, true); if (browser == null) { return(null); } var groupBand = runningBand as GroupBand; if (groupBand != null) { var groupRowLevel = DataGroupingUtils.GetGroupRowLevel((SortedListController)browser.ListController, groupBand.Level); if (groupRowLevel != null) { return(new DataGroupInfo( closestMember.DataSource, closestMember.DataMember, browser, browser.List, DataGroupingUtils.GetGroupInfo(browser, groupRowLevel.Value, browser.Position))); } runningBand = closestMember; } var detailBand = runningBand as XtraReportBase; if (detailBand != null) { return(new DataGroupInfo(closestMember.DataSource, closestMember.DataMember, browser, browser.List, null)); } throw new InvalidOperationException($"Running band '{runningBand.Name}' cannot be used for immediate mode grouping. Calculated field {Name} must choose a {nameof(GroupBand)} or a {nameof(DetailReportBand)}."); }