指定されたソート方法は、GroupBy プロパティのコンテンツに適用されます。たとえば、GroupBy に「FirstName」という式が含まれており、Sort が Ascending に設定されている場合、そのグループは、データソース内の FirstName 列のコンテンツに基づいて昇順にソートされます。
ソートは、C1Report ではなく、データソース自体で実行されることに注意してください。このため、ソートは、常に計算式ではなく列名に基づいて実行されます。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;