現在需要實作如下操作:
資料表table1如下:

程式如圖:

程式點擊“讀取資料庫”后面板動態生成多選框,將表1的第二列作為多選框的caption,多選操作后,點擊“寫入新表”將選中的整條資料寫入一個新表,該如何實作,各位有何高見?
uj5u.com熱心網友回復:
讀出的資料應放到DBGRID類控制元件中,在GRID中可以多選,或設定可以選擇的列,然后將選中資料插入新表。如果按你的思路,假如有1000條記錄,那你不要放1000個CheckBox控制元件,如1萬條呢?uj5u.com熱心網友回復:
資料大約有120左右,DBGRID類控制元件好像不可以分列顯示,需要下拉不是很方便uj5u.com熱心網友回復:
1、第一種方法用CheckBoxList,這個可以分列,一列顯示幾個都可以!2、第二種方法你提到的動態生成CheckBox控制元件。這個代碼比較多。但是沒有什么難度,比較麻煩的是計算控制元件位置。
uj5u.com熱心網友回復:
兩種模式,listview 和 stringgrid 都可以實作。
uj5u.com熱心網友回復:
能否附上代碼及寫入新 資料表 的代碼uj5u.com熱心網友回復:
部分LISTVIEW的操作代碼。procedure TForm1.Button1Click(Sender: TObject);
VAR
I,L,K:INTEGER;
begin
for I := 0 to 6 do
begin
ListView1.Columns.Add.Caption:=inttostr(i) ; // 欄位名
end;
ListView1.Checkboxes:=TRUE;
ListView1.ViewStyle := vsReport ;
//這里增加下原表資料的讀取查詢。
//把表指標指向FIRST
for i:=1 to 5 do //I是你原表里面的資料條數
begin
ListView1.Items.BeginUpdate;
l := ListView1.Items.Count;
with ListView1.items.add do
begin
for k := 0 to 6 do
begin
subitems.add(''); //增加列數
end;
caption:= 'X' + IntToStr(l+1);
END;
ListView1.Items.EndUpdate;
with ListView1.items[i-1] do
begin
ListView1.Items[i-1].SubItems[0]:='A'; //每列賦值 表指標 所指向的這條
ListView1.Items[i-1].SubItems[1]:='B';
ListView1.Items[i-1].SubItems[2]:='C';
ListView1.Items[i-1].SubItems[3]:='D';
ListView1.Items[i-1].SubItems[4]:='E';
ListView1.Items[i-1].SubItems[5]:='F';
ListView1.Items[i-1].SubItems[6]:='G';
end;
// 這里 指標 NEXT 下
END;
效果:

選擇好之后 再寫個按鈕 確定checkbox狀態,然后for回圈往新表里面POST一下就OK啦。
uj5u.com熱心網友回復:
還有沒有哪位有高見?uj5u.com熱心網友回復:
期待高見!
uj5u.com熱心網友回復:
使用第三方控制元件之 EhLib 裡的 TDBGridEh
uj5u.com熱心網友回復:
用樓上的簡單些
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124522.html
標籤:數據庫相關
上一篇:流媒體協議轉換服務
