| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:设置文本框日期格式为年月的问题
只看楼主 加入收藏
zjj1974
Rank: 2
等 级:论坛游民
威 望:1
帖 子:58
专家分:38
注 册:2014-8-10
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:7 
设置文本框日期格式为年月的问题
在一个文本框中,只需要输入年月,我设置 InputMask 为9999-99
但要防止输入月份大于13,除了在 LostFocus 中判断输入是否正确外,能否在设置时,让用户只有输入正确的月份??
搜索更多相关主题的帖子: 用户 文本框 
2014-09-20 15:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:3 
在文本框的VALID事件中,用代码判断月份是否大于12

坚守VFP最后的阵地
2014-09-20 17:12
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
月份大于12不可输入
2014-09-20 17:24
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9820
专家分:27081
注 册:2012-2-5
收藏
得分:3 
还可以在InteractiveChange 事件中判断

坚守VFP最后的阵地
2014-09-20 17:39
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:3 
把一个日期型字段直接拖到表单上。把‘日’忽略掉。
2014-09-21 20:22
zjj1974
Rank: 2
等 级:论坛游民
威 望:1
帖 子:58
专家分:38
注 册:2014-8-10
收藏
得分:0 
在lostfocus中的代码如下:

IF "    -  " # this.Value   &&如果内容为空,则跳过
   IF VAL(SUBSTR(this.Value,1,4)) <1000  &&年份少于1000,要求重新输入年份
      this.selstart=1
      this.SelLength=4
      this.SetFocus
   ENDIF
   IF VAL(SUBSTR(this.Value,6,2))>12   &&年份大于12,要求重新输入月份
      this.SelStart=6
      this.SelLength=2
      this.SetFocus      
   ENDIF
ENDIF

这样的代码,不知道怎么在执行的时候没有反应啊
2014-09-22 09:19
zjj1974
Rank: 2
等 级:论坛游民
威 望:1
帖 子:58
专家分:38
注 册:2014-8-10
收藏
得分:0 
干脆把失去焦点的 lostfocus中改成如下了:
LOCAL tmp_1
IF "    -  " # this.Value
   tmp_1 = INT(VAL(SUBSTR(this.Value,1,4)))
   IF  tmp_1<1000
      DO CASE
         CASE tmp_1 < 50
              tmp_1=tmp_1+2000
         CASE tmp_1 >=50 AND tmp_1 < 100
              tmp_1=tmp_1+1900
         CASE tmp_1>=100
              tmp_1=tmp_1+2000         
      ENDCASE
      this.Value=STUFF(this.Value,1,4,ALLTRIM(STR(tmp_1)))   
      this.selstart=0
      this.SelLength=4
      this.SetFocus
   ENDIF
   tmp_1 = INT(VAL(SUBSTR(this.Value,6,2)))
   IF VAL(SUBSTR(this.Value,6,2))>12
      tmp_1=12
      this.Value=STUFF(this.Value,6,2,ALLTRIM(STR(tmp_1)))
      this.SelStart=5
      this.SelLength=2
      this.SetFocus
   ELSE
      IF tmp_1<=0
         tmp_1=1
      ENDIF   
      this.Value=STUFF(this.Value,6,2,PADL(tmp_1,2,"0"))   
   ENDIF   
ENDIF
2014-09-22 11:37
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11795
专家分:43421
注 册:2006-5-13
收藏
得分:0 
我通常是用两个文本框或微调框来解决,一个输入年份,另一个输入月份,简便明了。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-09-23 07:41
快速回复:设置文本框日期格式为年月的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014353 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved