以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询表分页及查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148458)

--  作者:qaz17909
--  发布时间:2020/4/8 12:50:00
--  查询表分页及查询
由三个表关联生成查询表,想进行分页及查询,但发现没法引用ID列及任何一个独立不重复的列作为分页列,有没有比较好的办法。
--  作者:有点蓝
--  发布时间:2020/4/8 14:07:00
--  
我测试没有问题,上传实例说明
--  作者:qaz17909
--  发布时间:2020/4/8 15:29:00
--  
实例已上传,麻烦帮我看下如何分页,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询表分页.rar


--  作者:有点蓝
--  发布时间:2020/4/8 16:54:00
--  
内部表没有办法,如果是外部表比如access,在数据库里添加一个查询(视图),sql:
Select  任务单号,单位名称,合同表.合同编号,合同内容,到款日期,金额,任务单号 + format(到款日期,\'yyyymmdd\') As [ID] From (到款表 Right JOIN 合同表 ON 合同表.[合同编号] = 到款表.[合同编号]) Right JOIN 任务表 ON 任务表.[合同编号] = 合同表.[合同编号]

假设数据库里查询(视图)的名称为“收费查询”,添加sql语句查询表:http://www.foxtable.com/webhelp/topics/2329.htm,sql为:
select * from 收费查询

然后分页这样
DataTables("收费查询").LoadOver = "id"
DataTables("收费查询").LoadTop = 5
DataTables("收费查询").LoadPage = 1
DataTables("收费查询").Load

--  作者:qaz17909
--  发布时间:2020/4/8 21:56:00
--  
我是在窗口设计生成sql查询表的。我已经按照你的思路,用表达式合成一个“ID”列,但是当我用“ID”列作为分页列时(Datatables("收费查询").LoadOver = "ID"),提示出错:列名“ID”无效”。我试了下,只能用到款表的真实存在列作为分页列。
--  作者:有点蓝
--  发布时间:2020/4/9 9:12:00
--  
必须到数据库里添加查询,如果是SqlServer,添加视图。然后早foxtable里使用这个查询或者视图,才能使用分页
--  作者:qaz17909
--  发布时间:2020/4/9 10:54:00
--  
你说的是到服务器sqlserve里去添加视图是吗?
--  作者:有点蓝
--  发布时间:2020/4/9 10:59:00
--  

--  作者:qaz17909
--  发布时间:2020/4/9 12:00:00
--  
sqlserve视图里,我想添加一列表达式列即合并任务单号及到款编号作为ID列,但当到款编号为空时用“1”替代,代码如下但提示出错,应该怎么写?
dbo.任务表.任务单号 + ISNULL([dbo.到款表.到款编号], 1) AS ID
--  作者:有点蓝
--  发布时间:2020/4/9 12:11:00
--  
dbo.任务表.任务单号 + ISNULL([dbo.到款表.到款编号], \'1\') AS ID