uj5u.com熱心網友回復:
同時有個全選反選的按鈕的腳本如下,也不能做到更改procedure TForm3.btn4Click(Sender: TObject);
begin
with qryvoucher do
begin
try
DisableControls;
if (not isempty) then
begin
first;
while not eof do
begin
edit;
FieldByname('IsSelect').AsBoolean := not FieldByname('IsSelect').AsBoolean;
next;
end;
end;
finally
EnableControls;
end
end;
end;
uj5u.com熱心網友回復:
你是直接連接資料庫,還是C/S。我在使用DBGridEh時,未遇到這種情況。
是否設定該字符“isSelect”為只讀?
uj5u.com熱心網友回復:
C/S, 設定了 IsSelect.readonly:=falseuj5u.com熱心網友回復:
確定單擊可以去掉勾,但是焦點一切換至下行,更改就無效,同時用按鈕 來處理勾上或不勾上 也是無法變更dataset中實際內容uj5u.com熱心網友回復:
仔細的檢查一下資料表格DBGridEh的各種事件,很有可能是相互影響了,或者查看ADO的各種事件。還有就是呼叫的函式程序什么的,里面有可能有影響點擊生效的操作。
實在不行設定一下KeyPreview試一試,但這個似乎沒什么道理。
uj5u.com熱心網友回復:
另外,嘗試一下將DisableControls去掉,我在應用中發現,有時候這個會影響里面的操作。uj5u.com熱心網友回復:
DATASource 還是 DataSet中有一個屬性是AutoEdit你應該沒有設定為TRUE
不過這種編輯方式還是很危險的
uj5u.com熱心網友回復:
也可以自已處理BeforeScroll事件,添加相應的判斷及Post操作自己來處理雖然不那么省心省事,但好處是一切自己掌握
uj5u.com熱心網友回復:
1、檢查一下DBGridEh的相關事件,是否有沖突。2、 這種情況一般是DBGridEh的資料集未牌編輯狀態,適當的事件中加入Edit,試試。
uj5u.com熱心網友回復:
樓主應該是使用了非真實的資料庫欄位吧,比如計算欄位或isSelect=a.Select這樣的欄位吧uj5u.com熱心網友回復:
procedure TForm3.btn4Click(Sender: TObject);begin
with qryvoucher do
begin
try
DisableControls;
if (not isempty) then
begin
first;
while not eof do
begin
edit;
FieldByname('IsSelect').AsBoolean := not FieldByname('IsSelect').AsBoolean;
post;//====================
next;
end;
end;
finally
EnableControls;
end
end;
end;
uj5u.com熱心網友回復:
是不是少了個POST???uj5u.com熱心網友回復:
有沒有高手,繼續呀uj5u.com熱心網友回復:
我有一個很實用的解決方案,給你參考一下https://mp.csdn.net/postedit/86216084
uj5u.com熱心網友回復:
先看你的欄位是不是int或bit型, 另外要看picklist設定對應的值,一般是0和1吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/32569.html
標籤:數據庫相關
