請問一下關於Calculated欄位的問題 |
答題得分者是:cancer
|
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
小弟是delphi新手
在clientdataset 中 設立一個Calculated欄位 想透過判斷來對它作操作 但dbgrid對應的欄位都不會顯示出值來 用的是delphi5 語法如下 if chk.fieldbyname('chk').value = chk2.fieldbyname('chk2').value then chk2.fieldbyname('calcu').asstring :='有'; chk這個calculated欄位不用寫回資料庫~只要正確的秀到dbgrid上就行了 謝謝 小弟也有想過在clientdataset chk這欄位中的ongettext中直接做text:='有' 不過因為還要做sql語法的篩選所以會造成效能低落且一直重覆執行 如果用變數判斷觸發執行的話,則chk這欄位中的資料只有會顯示一次 只要滑鼠去點到dbgrid裡的cell後就會消失不見(dbgrid有開dgrowselect做其他功能) |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
Hi
試試在ClientDataSet.OnCalcFields事件中的處理 ===================引 用 kndd 文 章=================== 在clientdataset 中 設立一個Calculated欄位 但dbgrid對應的欄位都不會顯示出值來 用的是delphi5 語法如下 if chk.fieldbyname('chk').value = chk2.fieldbyname('chk2').value then chk2.fieldbyname('calcu').asstring :='有'; |
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
謝謝pedro的回答
不過我在這事件中加入程式碼後 整個程式就關掉了,還在找原因 謝謝~ ===================引 用 pedro 文 章=================== Hi 試試在ClientDataSet.OnCalcFields事件中的處理 ===================引 用 kndd 文 章=================== 在clientdataset 中 設立一個Calculated欄位 但dbgrid對應的欄位都不會顯示出值來 用的是delphi5 語法如下 if chk.fieldbyname('chk').value = chk2.fieldbyname('chk2').value then chk2.fieldbyname('calcu').asstring :='有'; |
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
|
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
謝謝cancer的回覆
想請教一下如果要在該計算欄位直接寫入資料的話要怎麼寫呢? 目前是用一變數來判斷是否要寫入,事前的查詢寫在另外的地方 不過不曉得能不能觸發OnCalcField事件 ===================引 用 cancer 文 章=================== Hi, 也只能在 OnCalcFields 修改計算欄位的值。不建議直接用 Variant 來比較,之前我同事這樣寫,常會出錯,都被我改掉,要先判斷是不是 null, if (Value1 <>null) and (Value2 <>null) then begin // 再來比較兩個值 end; |
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
謝謝大大給分,要填入計算欄位,一定要在 OnCalcField 裡面寫,在其他事件寫,會出錯,包含 BeforePost,這我有試過。
OnCalcField 引發時間很多,查一下 Delphi 說明檔,包括資料有改變、切換資料列。 ===================引 用 kndd 文 章=================== 謝謝cancer的回覆 想請教一下如果要在該計算欄位直接寫入資料的話要怎麼寫呢? 目前是用一變數來判斷是否要寫入,事前的查詢寫在另外的地方 不過不曉得能不能觸發OnCalcField事件 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |