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

ONCHANGE執行二次

尚未結案
richardleetwn
一般會員


發表:3
回覆:0
積分:0
註冊:2009-12-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-11 11:50:49 IP:59.126.xxx.xxx 訂閱
請問各位專家:
我用DELPHI 2007, qy: TADOQuery; pd: TDataSetProvider; cds: TClientDataSet; ds: TDataSource; dg: TDBGrid;
dg 'USEPRDNO' field buttonstyle:cbsEllipsis; 當輸入 'USEPRDNO' field change時會帶入'PRDNM'
(在cdsUsePrdNoChange事件 輸入 品號時帶入品號名稱);
另有一個品號輔助查詢輸入FORM;
情況是: 若 dg 'USEPRDNO' field 輸入 'AAA'值再 EditButtonClick,最後選擇了'CCC'值,結果cds.FieldByName('USEPrdNo').AsString
值仍是 'AAA',而且在cdsUsePrdNoChange事件會執行兩次.
[code delphi]
procedure TForm1.cdsUsePrdNoChange(Sender: TField);
begin
fmDM.qyTemp.Close;
fmDM.qyTemp.SQL.Clear;
fmDM.qyTemp.SQL.Text :=
'select Name from PRDT where Prd_No = :Prd_No ';
fmDM.qyTemp.Parameters.ParamByName('Prd_No').Value :=
cds.Fieldbyname('UsePrdNo').Value;
fmDM.qyTemp.Open;
cds.Fieldbyname('PrdNm').AsString :=
fmDM.qyTemp.Fieldbyname('Name').AsString;
end;
[/code]

[code delphi]
procedure TForm1.dgEditButtonClick(Sender: TObject);
begin
if not (dg.SelectedField= cds.FieldByName('USEPrdNo')) then
exit;
if cds.State = dsBrowse then
cds.Edit;
cds.FieldByName('USEPrdNo').AsString := SelectPRD_NO
((dg.Controls[0] as TInPlaceEdit).Text);
end;
[/code]

這問題我在DELPHI 6時不會發生,希望各專家協助解決.



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