ONCHANGE執行二次 |
尚未結案
|
richardleetwn
一般會員 發表:3 回覆:0 積分:0 註冊:2009-12-11 發送簡訊給我 |
請問各位專家:
我用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時不會發生,希望各專家協助解決. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |