急!如何设置editmask,使得该字段只能输入大写字母!

水煮蛙 2005-09-05 03:34:16
rt
...全文
332 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtfw 2005-09-08
  • 打赏
  • 举报
回复
在数据窗口中字段的有效性规则中输入:
match(gettext(),"^[A-Z]+$")
lzheng2001 2005-09-07
  • 打赏
  • 举报
回复
不行的话,要在key事件,other 事件,或者editchanged事件中下功夫了.

maerxiao 2005-09-07
  • 打赏
  • 举报
回复
editchanged中:
this.SetValue(String(dwo.name), row, Upper(data))
但愿光标不会跳走^_^
水煮蛙 2005-09-06
  • 打赏
  • 举报
回复
to : lzheng2001(1加1) 有没办法限制用户只能输入字母
lzheng2001 2005-09-06
  • 打赏
  • 举报
回复
具体没试过editmask行不行,
但,不管用户输入大小写,在保存时 用upper()转换一下就行了

水煮蛙 2005-09-06
  • 打赏
  • 举报
回复
水煮蛙 2005-09-06
  • 打赏
  • 举报
回复
to: lzheng2001(1加1)
刚才试了,不行!
感谢各位的热心帮忙!
lzheng2001 2005-09-06
  • 打赏
  • 举报
回复
试试用变通的方法吧, 列的编辑改成一般的edit,case 属性中选上upper

为dw 加一个ue_char事件 pbm_char
CHOOSE CASE Key
CASE "A","B","C", ....
MessageBox("测试","按下了字母键")
CASE ELSE
RETURN 1 //这里拒绝输入非数字字符
END CHOOSE

或者
IF dw_1.getColumnName() = "..." then
CHOOSE CASE asc(Key)
CASE IS >= 65 and IS <= 90 //A - Z
//
CASE IS >= 97 and IS <= 122 //a - z
//

CASE ELSE
RETURN 1 //这里拒绝输入字母字符
END CHOOSE

End if

以上代码适于各种编辑控件,应该也适用于DW的,你自己测试一下
水煮蛙 2005-09-05
  • 打赏
  • 举报
回复
to : li_d_s
me too! 大写(mask:!!!!!!)倒是可以;
如果能通过设置实现“既要大写又只能字母”,可以简化程序开发,实在不行只有像你说的那样事后检查啦!
li_d_s 2005-09-05
  • 打赏
  • 举报
回复
我试了一下,大写(mask:!!!!!!)倒是可以,但是又要大写又只能字母好像不行,干吗不用事后检查呢?
saiche05 2005-09-05
  • 打赏
  • 举报
回复

ing
水煮蛙 2005-09-05
  • 打赏
  • 举报
回复
不好意思我没说清楚,我指的是dw中的列!
hszjx 2005-09-05
  • 打赏
  • 举报
回复
mask设为!XXXXXXXXX
hszjx 2005-09-05
  • 打赏
  • 举报
回复
maskdatatype设为stringmask!,textcase设为upper!

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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