起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 112|回复: 8

【结帖】巡检人不可以修改以前的巡检记录,如何做呢?**

[复制链接]
发表于 2008-4-1 11:22:25 | 显示全部楼层 |阅读模式
我有巡检功能,巡检人登录后填写记录,因为有dataNavigatebar故让他可以看以前的记录,但不准他修改以前的巡检记录,如何做呢?
thanks.
回复

使用道具 举报

发表于 2008-4-1 11:44:39 | 显示全部楼层
功能上的数据集策略的[数据操作权限]可以实现你的需求
回复 支持 反对

使用道具 举报

发表于 2008-4-1 11:49:14 | 显示全部楼层
请问你是怎么区分原先的和现在的,即有啥标识哪些可以修改,哪些不能修改。
这个知道,应该可以通过数据集的是否可编辑属性上设置就可以了,参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=4847
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-1 12:23:57 | 显示全部楼层

我想让他只能修改当天本人的记录。

谢谢,我是想让巡检人可看,但是只能修改当天的巡检记录。
我的巡检记录有两个数据集,主数据集有值班人和日期。我在主数据集设可编辑表达式:巡检人=OperatorID() And 日期=Dateof(ServerTime())
这样主数据集就满足要求了,但是从数据集的数据还是以前的记录可改。
有什么好方法?我把值班人从主数据集选 出放在从数据集中就也可以巡检人=OperatorID() And 日期=Dateof(ServerTime())
,但是insert时我出错了,mutitable insert.
回复 支持 反对

使用道具 举报

发表于 2008-4-1 13:12:05 | 显示全部楼层
这样主数据集就满足要求了,但是从数据集的数据还是以前的记录可改。
有什么好方法?
从数据集上没有这些字段?那用代码来实现吧,在主记录滚动的时候,去代码设置从数据集只读就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 16:05:12 | 显示全部楼层

不准数据集修改是语句是什么呢?

现在闲一些,便又想到解决这个问题了,听了楼上的建议
我写了如下代码。但是我不清楚不准数据集修改是语句是什么呢?因为DataSetGJFEJWXTMXSJJ.Edit:=false;是错误的,编译错不可赋值。
procedure TZXJXX.DataSetGJFEJWXTZSJJAfterScroll(DataSet: TDataSet);
var
    tDutyDate,tSysToday:TDateTime;//值班日期,当前日期
    flag:ShortInt;
begin
     tSysToday:=DateUtils.Dateof(SysUtils.Now());
     tDutyDate:=DateUtils.Dateof(DataSetGJFEJWXTZSJJ.FieldByName('F_Date').AsDateTime);
     flag:=DateUtils.CompareDate(tDutyDate,tSysToday);
     if flag<>0 then
          DataSetGJFEJWXTMXSJJ.Edit:=false;//从数据集不可修改
       end;
end;
请问如何使从数据集不可改呢?
回复 支持 反对

使用道具 举报

发表于 2008-4-3 16:09:05 | 显示全部楼层
DataSetGJFEJWXTMXSJJ.readonly := True;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 16:36:42 | 显示全部楼层

谢谢了,结贴吧

呵呵,对TSQLDataSet一点也不熟悉,我找了半天也没有找到这个ReadOnly,太粗心了^_^
现在一切都ok,谢谢了。
回复 支持 反对

使用道具 举报

发表于 2008-4-3 16:39:44 | 显示全部楼层
好。谢谢反馈,结贴!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 18:43 , Processed in 0.042708 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表