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

DbGrid可以做到這樣嗎?

答題得分者是:P.D.
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-06 13:51:37 IP:60.248.xxx.xxx 訂閱
我在DbGrid下一各SQL
撈出的資料中...
能不能說...在一筆資料序號上點兩下..
可以叫出另一各視窗撈出該筆序號的更多資料內容

如果可以....那該如何去撰寫...那段呼叫的指令??


[code delphi]
procedure TForm1.Button6Click(Sender: TObject);
var
s : string;
begin
with csTemp6 do
begin
Close;
Params.Clear;
Params.CreateParam(ftString ,'WO', ptInput);
Params.CreateParam(ftString ,'ID', ptInput);
Params.CreateParam(ftString ,'SN', ptInput);
Params.CreateParam(ftString ,'EMP', ptInput);
Params.CreateParam(ftString ,'EDATE1', ptInput);
Params.CreateParam(ftString ,'EDATE2', ptInput);
s := 'SELECT A.RMA_NO "工單",A.SERIAL_NUMBER "產品序號",A.PRODUCT_LINE "產品名稱",A.ARRIVAL_DATE "送修日期", '
'B.REPAIR_TIME "維修時間",ROUND(B.REPAIR_TIME - A.ARRIVAL_DATE) "維修天數",C.EMP_NAME "維修人員" '
'FROM SAJET.G_RMA_DETAIL A,SAJET.G_SN_REPAIR B,SAJET.SYS_EMP C ';

s := s 'WHERE A.RMA_NO = B.WORK_ORDER ';
s := s 'AND A.SERIAL_NUMBER = B.SERIAL_NUMBER ';
s := s 'AND B.REPAIR_EMP_ID = C.EMP_ID ';
s := s 'AND TO_CHAR(B.REPAIR_TIME,''YYYYMMDD'') BETWEEN :EDATE1 AND :EDATE2 ';
s := s 'AND A.RMA_NO LIKE :WO ';
s := s 'AND A.PRODUCT_LINE LIKE :ID ';
s := s 'AND A.SERIAL_NUMBER LIKE :SN ';
s := s 'AND C.EMP_NAME LIKE :EMP ';
s := s 'GROUP BY A.RMA_NO,A.SERIAL_NUMBER,A.PRODUCT_LINE,A.ARRIVAL_DATE,B.REPAIR_TIME,C.EMP_NAME ';
s := s 'ORDER BY B.REPAIR_TIME ';

Params.ParamByName('WO').AsString := Trim(edit14.Text) '%';
Params.ParamByName('ID').AsString := Trim(edit13.Text) '%';
Params.ParamByName('SN').AsString := Trim(edit15.Text) '%';
Params.ParamByName('EMP').AsString := ComboBox6.Items.Strings[ComboBOX6.Itemindex] '%';
Params.ParamByName('EDATE1').AsString := FormatDateTime('yyyymmdd',DateTimePicker11.DateTime);
Params.ParamByName('EDATE2').AsString := FormatDateTime('yyyymmdd',DateTimePicker12.DateTime);

CommandText := s;
Open;
Label48.Caption := 'Total : ' IntToStr(RecordCount);
IF RecordCount=0 then
IF EOF THEN
Begin
ShowMessage('NO Data');
Close;
Exit;
END;
end;
end;
[/code]

------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-06 15:14:10 IP:61.67.xxx.xxx 未訂閱
如果你要在序號那欄做當然是可以, 做法很多, 本站討論也很多, "dbgrid" 關鍵字
另外給你一個參考
利用 dbgrid 的 ondblclick上來寫你的 sql 就可以, 一般會使用你原來的想法的目的是, 要以該指定欄位做為key來調閱其他 sql 記錄, 其實你既然已經確定了key值, 無須拘泥於 dbgrid 在那一個欄位上, 不是碼?
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-06 16:43:39 IP:60.248.xxx.xxx 訂閱
版主你好

要以該指定欄位做為key來調閱其他 sql 記錄,
其實你既然已經確定了key值, 無須拘泥於 dbgrid 在那一個欄位上
只要那一行 就可以當做KEY
YES ^^
那我就是在ondblclick 寫好我要下的SQL 就可以帶出我要的值

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