指定されたソート方法は、 GroupByプロパティのコンテンツに適用されます。たとえば、 GroupByに「FirstName」という式が含まれており、 Sortが Ascending に設定されている場合、そのグループは、データソース内の FirstName 列のコンテンツに基づいて昇順にソートされます。
ソートは、C1FlexReport ではなく、データソース自体で実行されることに注意してください。このため、ソートは、常に計算式ではなく列名に基づいて実行されます。 GroupByプロパティに 計算式が含まれる場合は、その式から最初の列名が抽出され、その値に基づいてソートが 実行されます。たとえば、 GroupByが「Left(FirstName, 3)」に設定されている場合は、FirstName の最初の 3 文字ではなく、FirstName 列に基づいてソートが実行されます。
これが問題になる場合もあります。たとえば、日付の一部(年、月、四半期など)に基づいてソートする必要がある場合です。このような場合は、データソースに計算列を追加し(データの取得に使用する SQL を変更する)、 GroupByプロパティをその計算列の名前に設定する方法をお勧めします。
string sql = "SELECT *, DATEPART('q', HireDate) AS HireQuarter " + "FROM Employees"; c1r.DataSource.RecordSource = sql; c1r.Groups[0].GroupBy = "HireQuarter"; c1r.Groups[0].Sort = SortEnum.Ascending;