全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1924
推到 Plurk!
推到 Facebook!

關於DBGrid多筆選取與複製簡化問題

尚未結案
allenpower
一般會員


發表:13
回覆:13
積分:5
註冊:2007-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-06 18:16:29 IP:59.124.xxx.xxx 訂閱
目前小弟我真對查詢出來的資料 對DBGrid做多筆選取與複製到剪貼簿的功能  
但寫完之後發現程式又臭又長 想請教如何修改才能將程式簡化
#include "Clipbrd.hpp"
int rec_bof,rec_now;
void __fastcall TipselectForm::DBGrid1CellClick(TColumn *Column)
{
if(DBGrid1->SelectedRows->Count==2)//若選取筆數為第二筆 將rec_now值丟給rec_bof
{
rec_bof=rec_now;
}
rec_now=ADOQuery1->RecNo;//移動資料時將該筆編號記錄到rec_now
}
//---------------------------------------------------------------------------
void __fastcall TipselectForm::shiftF1Click(TObject *Sender)//Shift F1動作
{
if(DBGrid1->SelectedRows->Count==2)
{
if(rec_now>rec_bof)//比較rec_now與rec_bof大小
{
for(int i=rec_bof;i {
ADOQuery1->First();//移動到第一筆
ADOQuery1->MoveBy(i);//移動到該筆資料
DBGrid1->SelectedRows->CurrentRowSelected=true;//將該筆資料選取
}
}
else
{
for(int i=rec_now;i {
ADOQuery1->First();
ADOQuery1->MoveBy(i);
DBGrid1->SelectedRows->CurrentRowSelected=true;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TipselectForm::N1Click(TColumn *Column)
{
int RowCount,rSQL,cSQL;
Clipboard()->Clear();
TRichEdit *retTemp=NULL;
retTemp=new TRichEdit(this);
retTemp->Parent=this;
retTemp->Hide();
RowCount=DBGrid1->SelectedRows->Count;//總筆數
//丟值到retTemp
for(rSQL=0;rSQL {
//將該行丟到Bookmark
DBGrid1->DataSource->DataSet->GotoBookmark(DBGrid1->SelectedRows->Items[rSQL].c_str());
for(cSQL=0;cSQL<10;cSQL )//丟欄位加跳格
{
retTemp->Text=retTemp->Text DBGrid1->DataSource->DataSet->Fields->Fields[cSQL]->Value "\t";
}
retTemp->Text=retTemp->Text "\n";//跳行
ADOQuery1->Next();
}
retTemp->SelectAll();//選取全部
retTemp->CopyToClipboard();//將retTemp複製到系統剪貼簿
}

問題1 選取1要先選第一筆後2接著按ctrl選第二筆 3再按shift F1 才能選取的第一筆與第二筆中間的紀錄 如何能簡化呢
問題2 複製在其他語言中(c#) 只要將資料選取好 用一行指令就可以將選取好的儲存格丟到剪貼簿中
System.Windows.Forms.DataGridView.GetClipboardContent
我找了很久 不知道是我太笨還是真的沒辦法像其他語言一樣一行就搞定
我爬文後試著用到 richEdit元件將選取的資料丟進來後 再丟到系統剪貼簿
但貼到Excel時我最後面會多一筆空值 請問這些要如何改善呢 ?

謝謝各位大大抽空看完
如能解決 感激不盡!!

------
P
系統時間:2024-11-26 3:23:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!