| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 721 人关注过本帖, 1 人收藏
标题:在表单中控件里取得动态序号
只看楼主 加入收藏
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
结帖率:90.14%
收藏(1)
已结贴  问题点数:20 回复次数:8 
在表单中控件里取得动态序号
在查询表单GRID控件中如何在左边得到一个记录号,有N条记录就有序号1到N,一目了然查到了N条记录.
搜索更多相关主题的帖子: 记录 动态 如何 
2013-07-21 21:28
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
程序代码:
sele recn() xh,* frominto curs a1
thisform.grid1.RecordSource="a1"
thisform.grid1.RecordSourcetype=1

2013-07-21 21:39
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 2楼 tlliqi
我刚试了一下:按你的方法得到的序号是原表的序号,我想得到的是根据查询后得到结果重新写序号.
2013-07-21 22:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26987
注 册:2012-2-5
收藏
得分:5 
程序代码:
*VFP9代码
*GRID1.INIT事件代码
CREATE CURSOR T (名称 C(30),分类 C(10))
FOR I=1 TO 4
    FOR J=1 TO ALANGUAGE(AB,I)
        INSERT INTO T VALUES (IIF(I!=2,AB(J),AB(J,1)+'('+')'),ICASE(I=1,[命令],I=2,[函数],I=3,[基本类],[DBC事件]))
    ENDFOR   
ENDFOR
GO TOP
WITH THISFORM.GRID1
   .COLUMNCOUNT=FCOUNT([T])
   .RECORDSOURCE=[T]
   FOR I=1 TO .COLUMNCOUNT
       .COLUMNS(I).HEADER1.CAPTION=FIELD(I,[T])
       .COLUMNS(I).HEADER1.ALIGNMENT=2
   ENDFOR
   .ADDCOLUMN(1)
   WITH .COLUMNS(.COLUMNCOUNT)
      .CONTROLSOURCE="PADL(RECNO([T]),LEN(TRANSFORM(RECCOUNT([T]))),[0])"
      .NAME = "NEWCOLUMN"
      .HEADER1.CAPTION=[序号]
      .HEADER1.ALIGNMENT=2
   ENDWITH
   .AUTOFIT
ENDWITH

坚守VFP最后的阵地
2013-07-21 22:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26987
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

4楼的代码可以放在合适的事件中,稍加修改就可以用了

坚守VFP最后的阵地
2013-07-21 22:41
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:15 
以下是引用tjdeming在2013-7-21 22:00:00的发言:

我刚试了一下:按你的方法得到的序号是原表的序号,我想得到的是根据查询后得到结果重新写序号.
你可以试试这条命令:

SELECT RECNO() 序号, T1.* ;
   FROM (SELECT * FROM 原表 WHERE 条件 ...) T1 ;
   INTO CURSOR T2

思路是:内层的子查询查出结果后,由它担任临时表T1,于是T1就有了记录号,而且这个记录号就是结果记录的记录号,而非原表中的。再用外层的父查询把这些记录号作为一个字段弄出来就可以了。
收到的鲜花
  • hu9jj2013-07-23 07:08 送鲜花  50朵   附言:我很赞同
2013-07-22 22:35
tjdeming
Rank: 2
等 级:论坛游民
帖 子:429
专家分:54
注 册:2013-3-4
收藏
得分:0 
回复 6楼 taifu945
谢谢,我用VFP6.0 分成二条命令,达到了目的.

谢谢SDTA版主,很幸苦,写了程序命令,我用不了9.0

[ 本帖最后由 tjdeming 于 2013-7-23 05:02 编辑 ]
2013-07-23 04:59
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11785
专家分:43421
注 册:2006-5-13
收藏
得分:0 
6楼的思路不错

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-07-23 07:07
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用tjdeming在2013-7-23 04:59:47的发言:

谢谢,我用VFP6.0 分成二条命令,达到了目的.

谢谢SDTA版主,很幸苦,写了程序命令,我用不了9.0
6.0应该也能用我6楼的SELECT命令吧?貌似6.0支持子查询的。不过你这个任务比较简单,分两条命令一样的,就是可能会多出来一个临时表。
2013-07-23 12:03
快速回复:在表单中控件里取得动态序号
数据加载中...
 
   



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

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