| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2406 人关注过本帖, 1 人收藏
标题:如何使表格的最后一列里输入 2 个数字后自动换行
只看楼主 加入收藏
dodolau
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-12-4
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:18 
如何使表格的最后一列里输入 2 个数字后自动换行
问题描述:

                在录入成绩的时候,输入两个数字,字符串长度为2,光标自动移到同一列的下一行,如下图
图片附件: 游客没有浏览图片的权限,请 登录注册

例如 输入 94,自动跳到下一行,
假设表格名为 grid1,grid1的来源是一张本地表,表名及字段  tblxsxxb(zc,xh,xm,zgcjlr1dm,zgcjlr2dm)

我在 column5的text1的afterrowcolchange中代码:
myrecno=RECNO()  &&当前行号
myrecc=RECCOUNT()  &&总记录数

keypress事件中代码:
IF LEN(ALLTRIM(thisform.grid1.column5.text1.value))=2 OR  nKeyCode =13
   IF myrecno>=myrecc
      messagebox("最后一行")
   ELSE
      thisform.grid1.column1.text1.Enabled = .F.
      thisform.grid1.column1.text1.ReadOnly = .T.
      thisform.grid1.column2.text1.Enabled = .F.
      thisform.grid1.column2.text1.ReadOnly = .T.
      thisform.grid1.column3.text1.Enabled = .F.
      thisform.grid1.column3.text1.ReadOnly = .T.
      thisform.grid1.column4.text1.Enabled = .F.
      thisform.grid1.column4.text1.ReadOnly = .T.
      &&thisform.grid1.column5.text1.SetFocus
      SKIP &&Keyboard '{DNARROW}'
   ENDIF
ENDIF

输入2个数字后,仍然不会下移光标,
弄了一个晚上,脑壳里都是无力感,上来求助,请大家帮忙看看吧,

拜谢!!

ps,最后一个模块了,卡死在这个环节,下周就要用,哭。。。。。。
搜索更多相关主题的帖子: 字符串 如何 
2014-12-04 23:04
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
这样录入成绩就象excel差不多
2014-12-04 23:06
dodolau
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-12-4
收藏
得分:0 
回复 2 楼 tlliqi
Excel 没有办法那么灵活地进行 一录,二录 校验吧,总是有用处,Excel链接数据库太麻烦

还是回到正题,,,是不是 vfp的grid控件无法实现呢,
2014-12-04 23:09
dodolau
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-12-4
收藏
得分:0 
以下是引用tlliqi在2014-12-4 23:06:52的发言:

这样录入成绩就象excel差不多



学生,考场信息等等都在远程数据库上,本地表只是最为临时表用,比较完 还是要把数据回传到数据库去,这个 比Excel差的不是一点点好用吧。
2014-12-04 23:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
爱用现成的,就必然会在微小变动上卡壳。要做到你所想的,并不难,哪有vfp编程不比excel好用之理。

[ 本帖最后由 TonyDeng 于 2014-12-5 00:02 编辑 ]

授人以渔,不授人以鱼。
2014-12-04 23:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
成绩录入.rar (2.22 KB)

坚守VFP最后的阵地
2014-12-05 00:48
dodolau
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-12-4
收藏
得分:0 
回复 5 楼 TonyDeng
啥叫爱用现成的,说话这么难听,谁学习的过程不是模仿的过程呢,

问题已经解决了,只会说风凉话有啥意思。


解决思路。。。
在text1的 interracativechange
中 调用api。。。模拟回车。。。。搞定。
IF LEN(ALLTRIM(this.value))=2
Declare keybd_event In Win32API Short bVk,Short bScan,Integer dwFlags, Integer deExtraInfo
keybd_event(13, 0, 0, 0)
keybd_event(13, 0, 2, 0)
ENDIF

keypress中
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nkeycode=13
   KeyBoard "{DnArrow}"
ENDIF
2014-12-05 01:33
dodolau
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2014-12-4
收藏
得分:0 
以下是引用sdta在2014-12-5 00:48:01的发言:

感谢 sdta 热心帮忙,又学习了一种控制表格的方法,

If Between(This.Value,10,99)
    With ThisForm.Grid1
        If .ActiveRow<Reccount()
            Keyboard '{DNARROW}'
            Go .ActiveRow+1
           .Refresh
        Endif
    EndWith   
EndIf
2014-12-05 01:38
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用dodolau在2014-12-5 01:33:36的发言:

啥叫爱用现成的,说话这么难听,谁学习的过程不是模仿的过程呢,

问题已经解决了,只会说风凉话有啥意思。


解决思路。。。
在text1的 interracativechange
中 调用api。。。模拟回车。。。。搞定。
IF LEN(ALLTRIM(this.value))=2
Declare keybd_event In Win32API Short bVk,Short bScan,Integer dwFlags, Integer deExtraInfo
keybd_event(13, 0, 0, 0)
keybd_event(13, 0, 2, 0)
ENDIF

keypress中
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nkeycode=13
   KeyBoard "{DnArrow}"
ENDIF

良药苦口,忠言逆耳。话虽然不中听,但道出关键所在:用现成的控件必定会受到某些限制的,因为控件制作时很难做到满足所有人的需求。解决的办法通常有:一是绕道而走,如楼主的解决办法;二是重起炉灶,但需要一定的功底。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-12-05 07:51
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
年轻气盛,在所难免,忠言逆耳利于行,苦口良药利于病。^o^

坚守VFP最后的阵地
2014-12-05 08:22
快速回复:如何使表格的最后一列里输入 2 个数字后自动换行
数据加载中...
 
   



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

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