我想在cxgrid中禁用UserRights = 3的行。禁用cxgrid中的一行
我想這個建議,但它似乎不工作:
// MAKING A ROW READ ONLY
procedure TForm1.cxGrid1DBTableView1InitEdit(
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit);
var
AKeyValue : Variant;
begin
AKeyValue := Sender.DataController.GetRecordId(Sender.Controller.FocusedRecordIndex);
if (AKeyValue = '3') then
AEdit.ActiveProperties.ReadOnly := True;
end;
我希望用戶能夠編輯數據,但不是哪裏UserRights = 3。
我也試過直接阻斷:
procedure TData_Module.USERSBeforePost(DataSet: TDataSet);
begin
if main_form.dxStatusBar1.Panels[0].Text = '3' then
Users.Post
else
showmessage('Access denied.');
abort;
end;
這隻要main_form.dxStatusBar1.Panels [3]。文本是不 3. 如果是3工作確定,我嘗試和修改任何記錄我崩潰的程序。 我認爲阻止行被編輯是一個更好的主意,但它似乎並沒有工作。有任何想法嗎 ?
我對數據庫知之甚少,但在第一次嘗試時,您似乎要求記錄ID,而不是名爲「UserRights」的字段的值。 –
在第二次嘗試中,如果'... Panels [0] .Text'確實反映了UserRights,那麼您的邏輯錯誤,也許應該使用'<>'3'。另外,我想你在'else'之後的兩行附近錯過了一個'begin end'對。 –