線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1215
推到 Plurk!
推到 Facebook!

請問一下關於calculated資料消失的問題

答題得分者是:P.D.
kndd
一般會員


發表:4
回覆:8
積分:2
註冊:2004-05-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-05-19 08:50:04 IP:60.248.xxx.xxx 未訂閱
想請問一下 為什麼執行下列程式後
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 重新編輯於 2011-05-18 19:00:20, 註解 無‧
kndd 重新編輯於 2011-05-18 19:01:04, 註解 無‧
kndd 重新編輯於 2011-05-18 19:05:48, 註解 無‧
kndd 重新編輯於 2011-05-18 19:23:31, 註解 無‧
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-05-19 23:50:30 IP:118.169.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-05-20 08:23:43 IP:60.248.xxx.xxx 未訂閱
謝謝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這事件暫時停止不被觸發嗎?
謝謝
系統時間:2024-11-25 19:46:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!