以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]请教验证公式、登陆预处理公式问题  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=28051)

--  作者:小米架步枪
--  发布时间:2015/8/26 18:13:00
--  [求助]请教验证公式、登陆预处理公式问题
本人刚开始接触易表,还希望请教诸位高手如下问题,测试的文件在附件中:
1,订单表的行验证公式现可进行必填项验证  If([书号]="" Or[书名]="" ,MsgBox("未输入必填项",0),true)   若希望加入如下验证标准提示,该如何更改?: 
[书号]列只能从书目信息提取信息(在“来源于某一列”中已设置但无效),若不符则提示"请先录入书目信息"
[发订号]列禁止输入重复内容,若不符则提示“发订号重复”

2,系统设置了admin,sale,manager三个用户、密码及对应菜单,文件预处理公式If(username="admin",OpenMenu(),if(username="sale",OpenMenu("销售人员") And OpenGrid("订单表") ,if(username="manager",OpenMenu("经理") And OpenGrid("书目信息") ,MsgBox("用户名错误",0))))
但假如输入大写用户名如SALE,MANAGER及密码,会提示用户名错误,但最终会进入默认系统菜单。若输入大写用户名后禁止进入系统,该如何更改公式?
 
谢谢!
[此贴子已经被作者于2015/8/26 22:13:08编辑过]

--  作者:小米架步枪
--  发布时间:2015/8/26 18:13:00
--  
换个浏览器补传附件 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:试验文件.egd

[此贴子已经被作者于2015/8/26 19:33:17编辑过]

--  作者:dancedy
--  发布时间:2015/8/27 9:17:00
--  

1.书号列设置来源于某一列,所以只能从书目信息表中获取书号,不能自行输入内容,我测试有效喔

   发订号列,可以在菜单—列—编辑设置,去掉“允许输入重复内容”前面的打勾

 

2.系统默认的用户名不区分大小写,可以考虑对用户分组,这样大小写同时可以登录,如:

管理员的分组码固定是1的,sale设置分组码为2,manager的分组码为3

 

 If(usertype=1,OpenMenu(),if(usertype=2,OpenMenu("销售人员") And OpenGrid("订单表") ,if(usertype=3,OpenMenu("经理") And OpenGrid("书目信息") ,"")))

 

如果确实需要按大小写严格区分,要自己自定义登录窗口


--  作者:小米架步枪
--  发布时间:2015/8/27 17:25:00
--  
以下是引用dancedy在2015/8/27 9:17:00的发言:

1.书号列设置来源于某一列,所以只能从书目信息表中获取书号,不能自行输入内容,我测试有效喔

   发订号列,可以在菜单—列—编辑设置,去掉“允许输入重复内容”前面的打勾

 

2.系统默认的用户名不区分大小写,可以考虑对用户分组,这样大小写同时可以登录,如:

管理员的分组码固定是1的,sale设置分组码为2,manager的分组码为3

 

 If(usertype=1,OpenMenu(),if(usertype=2,OpenMenu("销售人员") And OpenGrid("订单表") ,if(usertype=3,OpenMenu("经理") And OpenGrid("书目信息") ,"")))

 

如果确实需要按大小写严格区分,要自己自定义登录窗口

 

 

 

多谢版主的解答,系统登录问题已经解决了,关于不允许自行输入内容,我发现在录入窗口退格或移动光标还是能够输入其它内容的,见新上传的附件

此外在列设置中禁止输入重复内容后,提示窗选项中若选第三项可以跳过,我想能否实现完全禁止,试验  if(countfor("发订号"," = ",[发订号]) > 1,MsgBox("发订号重复",0),true)

 这个行验证公式,似乎不正确,请问该如何更改? 多谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:试验文件.egd


--  作者:dancedy
--  发布时间:2015/8/27 21:18:00
--  

书号列设置操作公式试试:

if([书号] > "" And FindRow("书目信息","书号"," = ",[书号]) = 0,MsgBox("书号不正确!",0) And SetCellText(GridName,Row,"书号",""), True )

 

发订号是通过公式进行刷新的,应该考虑书号和订购批号的重复


--  作者:小米架步枪
--  发布时间:2015/8/29 4:04:00
--  
以下是引用dancedy在2015/8/27 21:18:00的发言:

书号列设置操作公式试试:

if([书号] > "" And FindRow("书目信息","书号"," = ",[书号]) = 0,MsgBox("书号不正确!",0) And SetCellText(GridName,Row,"书号",""), True )

 

发订号是通过公式进行刷新的,应该考虑书号和订购批号的重复



是的,使用操作公式就好了,多谢版主!