2、然后在记录滚动前询问客户是否提交,询问代码省略,简化成只要修改了就不让滚动了:
procedure TMainForm.dsbMainBeforeScroll(DataSet: TDataSet);
begin
if DataSet.FieldByName('HTZT').AsString = '3' then
SysUtils.Abort;
end;
3、然后打算在用户提交数据后刷新数据集,以便他不能再看到其他数据:
procedure TMainForm.dsbMainAfterApplyUpdates(DataSet: TDataSet);
begin
dsbMain.DataSet.Close;
dsbMain.DataSet.Open;
end;
但是发现Close+Open无效,现在不清楚为什么AfterApplyUpdates后不能这么做,而换成一个单独的按钮写如下代码就可以了:
procedure TMainForm.Button1Click(Sender: TObject);
begin
//dsbMain.DataSet.Post;
dsbMain.DataSet.ApplyUpdates;
dsbMain.DataSet.Close;
dsbMain.DataSet.Open;
end;
至于不用Refresh是因为那样不会感知流程的数据集过滤。
1楼问题就在我们处理
procedure TMainForm.dsbMainBeforeScroll(DataSet: TDataSet);
begin
if DataSet.FieldByName('HTZT').AsString = '3' then
SysUtils.Abort;
end;
时候导致,等上面需求说清楚了再看我们那2个问题吧
呵呵,我已经把我能想到的说清楚这个问题的话都写了,斑竹哪里不清楚跟贴询问我吧,谢谢。