mm-software 发表于 2023-3-24 11:10:53

ActiveReports16 取值问题

您好,如上图所示,1日后面的第二个空格,正常应该显示的是(1日的值-底码的值)*(任意值)后的结果,即对应图上的数据为(1.58-3.95)*210000,但是现在没有显示出来。3.95的数据是绑定一个数据集取到的,而1日,2日往后的值是绑定另一个数据集取到的,因为一个矩表不是只能绑一个数据集嘛,现在的问题就是我怎么在绑定了一个数据集的情况下,通过表达式取得另一个数据集的某个值呢,这样就能得到正确的值了。请您解答一下

Bella.Yuan 发表于 2023-3-24 11:10:54

您好,矩表确实只可以绑定一个数据集,如果您需要取其他数据集的数据,可以通过“LookUp”函数去进行获取,具体函数的使用您可以参考这个链接:
Lookup函数示例-同一表格中显示不同数据集的数据 - Wyn V6.0 帮助文档 - 葡萄城产品文档中心 (grapecity.com.cn)



mm-software 发表于 2023-3-24 14:16:26

Bella.Yuan 发表于 2023-3-24 11:41
您好,矩表确实只可以绑定一个数据集,如果您需要取其他数据集的数据,可以通过“LookUp”函数去进行获取, ...

您好,我没太看懂这个函数是咋用的,我写了一个表达式,{IIF(Day(Time) = 1, ToSingle((value - First(Value, "测试1月末")) * 210000), ToSingle((value - Previous(value)) * 210000))},ToSingle((value - Previous(value)) * 210000)这个是能得到2日包括之后的一个计算的结果,因为是绑定同一个数据集得到的值,而1日的特殊,因为要减去上个月最后一天的值,是两个数据集,如果用LookUp函数,First(Value, "测试1月末")这个位置怎么替换,才能得到正确的数据呢

Felix.Li 发表于 2023-3-24 14:36:01

mm-software 发表于 2023-3-24 14:16
您好,我没太看懂这个函数是咋用的,我写了一个表达式,{IIF(Day(Time) = 1, ToSingle((value - First(Va ...

他主要就是通过表a的某一个字段和表b的一个字段做关联,然后进行拿值,比如如下两个表

a表:
col1    col2         col3
1         类型1       10
2         类型2       20
3         类型3       30

b表:

b_col1b_col2    b_col3
1         样式1       数值1
2         样式2       数值2
3         样式3       数值3


我用的表a,想要获取b表的col2

那就是如下写法:
{lookup(col1,b_col1,b_col2,"b表")}
就可以通过表1的col1字段获取到表b的b_col2字段
他们通过第一个字段做关联。方法类似
如果还有疑问,您可以上传一个您的Demo数据,我们看一下怎么写

mm-software 发表于 2023-3-24 14:55:46

Felix.Li 发表于 2023-3-24 14:36
他主要就是通过表a的某一个字段和表b的一个字段做关联,然后进行拿值,比如如下两个表

a表:


您好,我上传了数据集,报表模板还有数据的截图,您看一下怎么能够得到1日后空格处的值

Felix.Li 发表于 2023-3-24 15:34:34

mm-software 发表于 2023-3-24 14:55
您好,我上传了数据集,报表模板还有数据的截图,您看一下怎么能够得到1日后空格处的值

根据您的数据我这边做了一个Demo:
用    测试1月末 的获取    测试2月的Timestamp

mm-software 发表于 2023-3-24 15:39:48

Felix.Li 发表于 2023-3-24 15:34
根据您的数据我这边做了一个Demo:
用    测试1月末 的获取    测试2月的Timestamp

您给的文件怎么用呢,我没弄过

Felix.Li 发表于 2023-3-24 15:57:56

mm-software 发表于 2023-3-24 15:39
您给的文件怎么用呢,我没弄过

桌面设计器可以直接打开,web设计器的话,您让集成人员把报表文件放置在项目的报表资源目录下:
默认是在   resources目录下

mm-software 发表于 2023-3-24 16:38:41

Felix.Li 发表于 2023-3-24 15:57
桌面设计器可以直接打开,web设计器的话,您让集成人员把报表文件放置在项目的报表资源目录下:
默认是在 ...

您好,感谢您给写的Demo,怎么用还是没整明白。可不可以直接在表达式中用lookup函数得到1月31日的值呢(看看怎么写),不是要获取这个值显示出来,而是要用这个值做个计算

mm-software 发表于 2023-3-24 16:45:05

mm-software 发表于 2023-3-24 16:38
您好,感谢您给写的Demo,怎么用还是没整明白。可不可以直接在表达式中用lookup函数得到1月31日的值呢( ...

您好,问题解决了,我试着用lookup函数取到值,并通过计算得到了要显示的正确的值,{IIF(Day(Time) = 1, ToSingle((value - lookup(path, path, value, "测试1月末")) * 210000), ToSingle((value - Previous(value)) * 210000))},这样写的,谢谢您
页: [1] 2
查看完整版本: ActiveReports16 取值问题