請問一下關於calculated資料消失的問題 |
答題得分者是:P.D.
|
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
想請問一下 為什麼執行下列程式後
calculated欄位在infoDBgrid1的資料就會消失呢? 下面是針對infoDBGrid1做record全選的程式 [code delphi] if checkbox1.Checked=true then begin checkbox2.Checked:=false; select.First; while not select.Eof do begin InfoDBGrid1.RecordChecked[select.Bookmark]:=false; select.Next; end; end; select.First; [/code] 下面是onCalcFields的程式 [code delphi] if CheckBox3.Checked=true then begin chk.close; chk.sql.clear; chk.sql.add('select chk_no from chk'); chk.sql.add('where chk_no = ''' select.fieldbyname('p_no').asstring ''''); chk.open; if chk.fieldbyname('chk_no').asstring <>'' then select.fieldbyname('chk').value :='有資料'; //select中的chk為calculated欄位 end;[/code] 有辦法讓calculated的資料固定住而不會清空或是讓onCalcFields這事件暫時停止不被觸發嗎? 謝謝 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1.由po上來的碼來看, 實在看不出整體的關鍵性, 眼拙, 抱歉!
2.就calculated的定義理論來, 這組功能其實是一個虛擬及時欄位, 會因各種移動導致結果不一樣, 就程式碼看, 沒有錯, 應該是流程上的問題, 如果想要保存值的話, 那最好創建一個實際欄位來保存! ===================引 用 kndd 文 章=================== 想請問一下 為什麼執行下列程式後 calculated欄位在infoDBgrid1的資料就會消失呢? 下面是針對infoDBGrid1做record全選的程式 [code delphi] if checkbox1.Checked=true then begin checkbox2.Checked:=false; select.First; while not select.Eof do begin InfoDBGrid1.RecordChecked[select.Bookmark]:=false; select.Next; end; end; select.First; [/code] 下面是onCalcFields的程式 [code delphi] if CheckBox3.Checked=true then begin chk.close; chk.sql.clear; chk.sql.add('select chk_no from chk'); chk.sql.add('where chk_no = ''' select.fieldbyname('p_no').asstring ''''); chk.open; if chk.fieldbyname('chk_no').asstring <>'' then select.fieldbyname('chk').value :='有資料'; //select中的chk為calculated欄位 end;[/code] 有辦法讓calculated的資料固定住而不會清空或是讓onCalcFields這事件暫時停止不被觸發嗎? 謝謝 |
kndd
一般會員 發表:4 回覆:8 積分:2 註冊:2004-05-05 發送簡訊給我 |
謝謝P.D.板主的回答
我想應該是流程有那個步驟出問題 我再找找好了~感謝~ ===================引 用 P.D. 文 章=================== 1.由po上來的碼來看, 實在看不出整體的關鍵性, 眼拙, 抱歉! 2.就calculated的定義理論來, 這組功能其實是一個虛擬及時欄位, 會因各種移動導致結果不一樣, 就程式碼看, 沒有錯, 應該是流程上的問題, 如果想要保存值的話, 那最好創建一個實際欄位來保存! ===================引 用 kndd 文 章=================== 想請問一下 為什麼執行下列程式後 calculated欄位在infoDBgrid1的資料就會消失呢? 下面是針對infoDBGrid1做record全選的程式 [code delphi] if checkbox1.Checked=true then begin checkbox2.Checked:=false; select.First; while not select.Eof do begin InfoDBGrid1.RecordChecked[select.Bookmark]:=false; select.Next; end; end; select.First; [/code] 下面是onCalcFields的程式 [code delphi] if CheckBox3.Checked=true then begin chk.close; chk.sql.clear; chk.sql.add('select chk_no from chk'); chk.sql.add('where chk_no = ''' select.fieldbyname('p_no').asstring ''''); chk.open; if chk.fieldbyname('chk_no').asstring <>'' then select.fieldbyname('chk').value :='有資料'; //select中的chk為calculated欄位 end;[/code] 有辦法讓calculated的資料固定住而不會清空或是讓onCalcFields這事件暫時停止不被觸發嗎? 謝謝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |