lyz880524 发表于 2020-9-8 17:56:01

AR11传参问题

1:报表添加了参数,分别为: pognids ,start , end
2:数据集dsBussiness分别添加了三个绑定了以上三个参数
3:数据源用的ODBC, sql中拼接参数
select * from a where paydate '@startDate' and '@endDate' and fdi_ognidin (@pognids) 预览提示
”索引超出范围。必须为非负值并小于集合大小。“
另外,我看到这个帖子
https://help.grapecity.com.cn/pages/viewpage.action?pageId=50016955

动态拼装sql
="select * from 销售明细 where 1=1 " & IIF(Parameters!报表参数1.Value="", "", " and 销售大区='" & Parameters!报表参数1.Value & "'")
我也没实验成功,odbc 可以这样动态拼装sql吗?

KearneyKang 发表于 2020-9-8 18:11:43

本帖最后由 KearneyKang 于 2020-9-9 09:34 编辑

你好这个的话,你参考值这张报表看看,你是想参数为空的时候,然执行where 1=1 的操作。然后有值的时候进行筛选,这个是可以的但是我需要研究下,我明天研究完给你答复
="SELECT * FROM BB_FW_YDSS ()where1=1 " & IIF(Parameters!年度.Value=""," "," and ND='" & Parameters!年度.Value &"'")

lyz880524 发表于 2020-9-9 09:38:15

这个
select * from a where paydate '@startDate' and '@endDate' and fdi_ognidin (@pognids) 预览提示
”索引超出范围。必须为非负值并小于集合大小。“报错是啥问题啊?

KearneyKang 发表于 2020-9-9 09:51:06

这个我 看了下应该是你的查询语句的写法存在问题。这个具体的需要你自己去进行下调整

lyz880524 发表于 2020-9-9 09:59:19

{:3_41:} 语句没问题啊

KearneyKang 发表于 2020-9-9 10:01:15

如果查询没有问题,你直接拖入一个表格进行绑定看看。不需要做什么特别的设置,超过索引一般都是报表设计哪里存在问题,然后预览的时候 报这个问题

lyz880524 发表于 2020-9-9 10:19:56

报表添加参数start,string类型
然后,数据集里边添加的参数
   名称 : Parameter1
         值:=Parameters!start.Value
执行sql : select @Parameter1 as val;
table输出val 没有值;

lyz880524 发表于 2020-9-9 10:38:51

另外,经验证
="select '" & Parameters!end.Value & "' as val,'ssssssss' as val2, '" & Parameters!start.Value & "' as val3" 这种语法是可以的

lyz880524 发表于 2020-9-9 10:39:30

那,数据集里边设置的参数是干啥用的啊?

KearneyKang 发表于 2020-9-9 10:54:32

你好参数的是有方法是这样使用的。你可以看看规范的使用:https://help.grapecity.com.cn/pages/viewpage.action?pageId=5972465
页: [1] 2
查看完整版本: AR11传参问题