データテーブルに複数の行があります。以下のサンプルを参照してください。
既存のテーブル
Name Date Value Type
ABC(I) 11/11/2013 12.36 I
DEF(I) 11/11/2013 1 I
GHI(I) -do- -do- I
JKL(P) P
MNO(P) P
PQR(D) D
STU(D) -d0- -do- D
必要なテーブル
Name Date Value Type
JKL(P) P
MNO(P) P
PQR(D) D
STU(D) -d0- -do- D
ABC(I) 11/11/2013 12.36 I
DEF(I) 11/11/2013 1 I
GHI(I) -do- -do- I
使用条件
並べ替えは、列の種類に従って行う必要があります。ここで、グリッドビューに表示される行の順序を少し変更する必要があります。つまり、Payment の行が最初に表示され、次にすべての Dues が表示され、最後にすべての Interests タイプが表示されます。
私が試したこと:
- 列の並べ替えですが、必要なものではありませんでした。
- ここでTim Schmelterが提案したカスタムグループ化
コードは次のとおりです。
public DataTable GroupBy(string i_sGroupByColumn, string i_sAggregateColumn, DataTable i_dSourceTable)
{
DataView dv = new DataView(i_dSourceTable);
//getting distinct values for group column
DataTable dtGroup = dv.ToTable(true, new string[] { i_sGroupByColumn });
//adding column for the row count
dtGroup.Columns.Add("Count", typeof(int));
//looping thru distinct values for the group, counting
foreach (DataRow dr in dtGroup.Rows) {
dr["Count"] = i_dSourceTable.Compute("Count(" + i_sAggregateColumn + ")", i_sGroupByColumn + " = '" + dr[i_sGroupByColumn] + "'");
}
//returning grouped/counted result
return dtGroup;
}
どこに何が欠けている/欠けているのかわかりません。親切に助けてください。