以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  List函数问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107096)

--  作者:Zhao2006
--  发布时间:2017/9/21 10:56:00
--  List函数问题

图片点击可在新窗口打开查看此主题相关图片如下:list函数.jpg
图片点击可在新窗口打开查看
各位狐老师您们好!因项目一表单出差人需要考核填写,故不得不学习移动开发了,按帮助课程一步一步学习通过Google Chrome浏览器显示一切都正常,但到引用数据章节“分页显示”就有问题了(其问题显示同1),是数据源问题么(ACC外源数据,XP系统)?请老师指教。
课程:1、使用表格/手工编码传递主键:http://www.foxtable.com/mobilehelp/
        2、使用关联表/
图片点击可在新窗口打开查看此主题相关图片如下:手工编码.jpg
图片点击可在新窗口打开查看
List函数:http://www.foxtable.com/mobilehelp/

--  作者:有点甜
--  发布时间:2017/9/21 13:16:00
--  

参考 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=102991&authorid=0&page=0&star=2

 


--  作者:Zhao2006
--  发布时间:2017/9/21 16:46:00
--  
李同学上他的实例列让我看得头都晕,现我把List函数内部分字段修改为(
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:list内.rar

见附件,粘贴系统不给上传的):
但还是显错误:错误所在事件:
详细错误信息:
试图执行的查询中不包含作为合计函数一部分的特定表达式 \'订单编号\' 。
[此贴子已经被作者于2017/9/21 16:46:31编辑过]

--  作者:有点甜
--  发布时间:2017/9/21 18:14:00
--  
cmd.CommandText = "Select top " & pagerows & " [_Identify] As 订单编号,日期,客户,数量 As 数量,(数量*单价) As 金额 From {订单}  where " & iif(page=0,  "1=1" , "[_identify] not In (Select top " & pagerows * page & " [_identify]  from {订单} order by [_identify]) order by [_identify]")
[此贴子已经被作者于2017/9/21 18:14:14编辑过]

--  作者:Zhao2006
--  发布时间:2017/9/22 10:55:00
--  
甜老师好,还是提示原来同样的错误,查看陈同学他List通过是因为他把List内容改了好多东西。另手工编码传递主键这一课程也是相当重要的(但现Acc还是提示错误),毕竟移动应急使用“单一张表单、没有编号列”这类表还是相当普遍的。
--  作者:有点甜
--  发布时间:2017/9/22 12:00:00
--  
4楼代码没有问题。出错的项目,做个例子发上来测试。
--  作者:Zhao2006
--  发布时间:2017/9/23 13:58:00
--  
那在此先谢过甜老师了,我等小白只要是在某一章节一被卡住那下面课程将无法进行了,更不用说换上实际使用表了(夹内还有个“手动传递主键”文本页,看它的语句还是与List有些不同)。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:称动示例.rar


--  作者:有点蓝
--  发布时间:2017/9/23 14:47:00
--  
1、数量和金额是表达式列,sql是无法使用表达式列的
2、尽量保持数据库表的名称,或者干脆把数据库表名称改正确, 不要乱改名,容易出错。因为sql是使用数据库的表名的
3、参考:

Dim cmd As New SQLCommand
cmd.ConnectionName = "移动示例" \'记得设置数据源名称
cmd.CommandText = "Select Count(*) From {订单}"  & iif(Filter > "", " Where "  & Filter, "")
Dim Count As Integer = cmd.ExecuteScalar() \'获取总的行数
Dim Pages As Integer = Math.Ceiling(Count/PageRows) \'计算出总页数
cmd.CommandText = "Select Top " & pagerows & " *,(数量*单价) As 金额 from (Select [_identify]  as 订单编号,日期,客户,(Select sum(数量)  from 订单 where 订单编号={订单}.订单编号) As 数量,单价 From {产品}) A where " 
cmd.CommandText &= iif(page=0,  "1=1" ,  "[订单编号] not In (Select top " & pagerows * page & " [_identify]  from {产品}  order by [_identify]) order by [订单编号]")
Dim dt As DataTable = cmd.ExecuteReader


--  作者:Zhao2006
--  发布时间:2017/9/24 1:22:00
--  
谢蓝老师!我现已把数据库名改同数据源名,运行。。。。没见有什么反应。仔细检查,发现两处from {产品}应该是from {订单}(因为没有产品表嘛),运行。。。还是提示这样的错误信息:至少一个参数没有被指定值。看来还是蓝老师您说的表达式列问题,我试试改成不是表达式列的看看,不行再来打扰您们哦,非常感谢甜老师、色老师、蓝老师等众老师一直以来的热情指导!!
[此贴子已经被作者于2017/9/24 1:24:28编辑过]