在DBGrid 下,想選取多行後,複製一份至同樣的DBGrid.. |
答題得分者是:Fishman
|
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
各位大大..
小弟目前是要把一個DOS下的程式,轉成WINDOWS的介面..
而老闆要求原有的功能都要有..
而,有一個功能我一直想不出來怎麼寫比較好..
在DOS下,是按下F1,對該資料行做標記,然後可以按F6 複製..
我現在碰到的問題有兩個
1.怎麼樣才能按下按鍵做標記..我看過前面的文章但是好像沒有可行的方案..
2.如果使用滑鼠標記多行,那麼,要從原DBGRID,複製一份到這個DBGRID,
該怎麼做比較好?我指的是同一個DBGRID..不是兩個不相同的DBGRID,資料
庫用的是MDB,有設定一個欄位為自動流水號,並且設定為KEY 值。 努力學習中....
------
努力學習中.... |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi iann, 複製資料方法,請參考
http://delphi.ktop.com.tw/topic.php?topic_id=47510 至於多筆複製
1.將 DBGrid1 的 Options --> dgMultiSelect 設為 True,如此即可用滑鼠配合鍵盤進行多筆選取
2.資料複製程式如下(原程式碼出自上述連結)
procedure TForm1.Button3Click(Sender: TObject); var I,J : Integer; S : String; V : Variant; sRecFields: String; begin FOR I := 0 TO DBGrid1.SelectedRows.Count - 1 DO BEGIN DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[I])); S := ''; FOR J := 0 TO DBGrid1.DataSource.DataSet.FieldCount - 1 DO S := S DBGrid1.DataSource.DataSet.Fields[J].FieldName ';'; IF S <> '' THEN Delete(S,Length(S),1); sRecFields := S; V := DBGrid1.DataSource.DataSet[sRecFields]; DBGrid1.DataSource.DataSet.Append; DBGrid1.DataSource.DataSet[sRecFields] := v; END; end;希望對你有幫助! ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |