对于表的列/行的只读问题,我还是没有弄明白,再次请教

xilaianzxsc 2016-09-02 09:52:14

现有一个表单,表单上有grid2 ,此表共有6个字段

表单的init
thisform.grid2.column1.readonly= .F. &&第一列,不是只读
thisform.grid2.column2.readonly= .T.
thisform.grid2.column3.readonly= .T.
thisform.grid2.column4.readonly= .T.
thisform.grid2.column5.readonly= .F. &&第五列,不是只读
thisform.grid2.column6.readonly= .T.

通过以上设置,用户可能修改 第1、第5字段的值

此表同时有以下要求

同时,要求:

if !isnull(第六列字段) &&第六列,已经有值
那一行所有字段全部只读
endif


以上红色的,确实写不出来,请多指导。

...全文
111 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2016-09-02
  • 打赏
  • 举报
回复
在表单 Init 中设置列的只读属性,不一定可靠,除非你不会在其它地方再设置 grid 的 ReadOnly 属性
一旦重设了 grid 的 ReadOnly 属性,列的只读属性也会被重置
还是放在 AfterRowColChange 事件里比较可靠,大概这样:
If IsNull(Evaluate(This.Column4.ControlSource))
This.ReadOnly = .t.
Else
This.ReadOnly = .f.
This.column1.ReadOnly = .f.
This.column2.ReadOnly = .t.
This.column3.ReadOnly = .t.
This.column4.ReadOnly = .t.
This.column5.ReadOnly = .f.
This.column6.ReadOnly = .t.
EndIf

xilaianzxsc 2016-09-02
  • 打赏
  • 举报
回复
十分感谢夜猫老师。

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧