DBGrid的應用 |
尚未結案
|
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#1
發表時間:2003-05-07 10:54:06
IP:210.202.xxx.xxx 未訂閱
請問各位高手有這樣的範例或方向可參考嗎? 謝謝!! 在DBGrid中的某一欄位(身分證字號),按下"F1"鍵時,再跳出一個小視窗,讓使用者以姓名來查詢身分證字號,之後再將值帶入到DBGrid中的身分證字號欄位內。
|
delphiwww
資深會員 發表:145 回覆:363 積分:368 註冊:2002-03-13 發送簡訊給我 |
#2
發表時間:2003-05-07 11:35:07
IP:202.145.xxx.xxx
未訂閱
或許可以寫在dbgrid的onkeypress
(請查一下F1 key的ascii值)
if (key=F1) and DBGrid2.SelectedField=身分證字號欄位
(or DBGrid2.SelectedIndex=身分證字號在dbgrid中的index) then
begin
查詢身分證字號的form
assign(身分證字號欄位)
end;
引言: 請問各位高手有這樣的範例或方向可參考嗎? 謝謝!! 在DBGrid中的某一欄位(身分證字號),按下"F1"鍵時,再跳出一個小視窗,讓使用者以姓名來查詢身分證字號,之後再將值帶入到DBGrid中的身分證字號欄位內。 |
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#3
發表時間:2003-05-07 13:56:07
IP:210.202.xxx.xxx
未訂閱
在你的方式中,有以下幾個方式
1.假設Form4 create後,並沒有free,其選擇完畢後,將身分證資料,
放在edit1上面,如此程式可以改成
If (DBGrid1.SelectedIndex =7) and (key=VK_F1) then
begin
IF APPLICATION.FindComponent('Form4')=NIL THEN Application.CreateForm(TForm4, Form4);
Form4.ShowModal;
query.fieldbyname('idno').asstring:=form4.edit1.text;
end; 2.假如你會將form4 free,則需要再form4 free前(寫在form4)將值存回query中
(假設query存在form1上面)
form1.query.fieldbyname('idno').asstring:=edit1.text;
free 3.將create form4設定成為一個function,寫在form4(unit4)上面
var form4:Tform4
function crform4:string; function crform4:string;
begin
with form4.create(application) do
begin
showmodal;
result:=edit1.text;(假設選擇的值存在edit1.text
free;
end;
end;
//原來程式改成
If (DBGrid1.SelectedIndex =7) and (key=VK_F1) then
begin
query.fieldbyname('idno').asstring:=unit4.crform4;
end; 發表人 - delphiwww 於 2003/05/07 15:31:15
|
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#4
發表時間:2003-05-08 14:27:53
IP:210.202.xxx.xxx
未訂閱
謝謝Delphiwww的熱心回應,我採用的方式如下 step1:在Form3中的"DBNavigator" 按下新增或修改按鈕
step2:Form3中的DBGrid中身分證字號欄中按下F1 鍵
procedure TForm3.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (DBGrid1.SelectedIndex =7) and (key=VK_F1) then
begin
IF APPLICATION.FindComponent('Form4')=NIL THEN Application.CreateForm(TForm4, Form4);
Form4.ShowModal;
end;
step3 在 Form4查詢到後即可以下列程式碼傳回值
unit3.Form3.DBGrid1.DataSource.DataSet.FieldByName('id_no').Value :=DBGrid1.DataSource.DataSet.FieldByName('IDNO').AsString ;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |