1. 写入数据
CppSQLite3DB db;
db.open("test.db");
CppSQLite3Query q = db.execQuery("select * from db.tablename");
ListView1->Items->BeginUpdate();
while(! q.eof()){
TListItem *li = ListView1->Items->Add();
li->Caption = q.getIntField(0,0);
for(int i = 1; i < q.numFields(); i++){
li->SubItems->Add(q.fieldValue(i));
}
q.nextRow();
}
ListView1->Items->EndUpdate();
2. 排序
点击报表头,重新排序的操作
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
TListColumn *Column)
{
Edit1->Text = Column->Index; //列序号,从0开始
Edit2->Text = Column->Tag; //自定义数据,与列绑定
Column->Tag = (Column->Tag == 0 ? 1 : 0); //这里用于记忆排序状态
((TCustomListView *)Sender)->CustomSort(NULL, 0); //首项参数为NULL时,调用ListView1Compare,否则调用自定义过程(例如下面的CustomSortProc)。
}
void __fastcall TForm1::ListView1Compare(TObject *Sender, TListItem *Item1,
TListItem *Item2, int Data, int &Compare)
{
Compare = StrToInt(Item1->Caption) > StrToInt(Item2->Caption) ? 0 : 1;
}
int __stdcall CustomSortProc(long Item1, long Item2, long ParamSort)
{
return -CompareText(((TListItem *)Item1)->Caption,
((TListItem *)Item2)->Caption);
}