tmak 发表于 2010-6-3 20:15:40

请问如何在报表的计算列进行统计后的计算?

请问在UAP的报表中,如何在简单计算列或复杂计算列里面将“max统计后的安全库存”减去“SUM统计后的现存量”?
我就是想将统计后的数值进行安全库存的管理。

tmak 发表于 2010-6-3 21:35:36

是使用currentgroup与groups变量来进行统计,但如何使用这两个函数。

naojin 发表于 2010-6-4 11:29:18

没有看懂你的意思

tmak 发表于 2010-6-4 12:33:09

本帖最后由 tmak 于 2010-6-4 12:34 编辑

回复 3# naojin

你好,这样的,我的目的就是将存货进行按存货分类来统计,并且将统计后的数值减去安全库存,就知道此分类是否低于安全库存。
将库存现存量查询的表加上安全库存的连接,之后按存货分类进行分组,并且想在UAP中,将通过存货分类后的现存量进行SUM的统计,再将安全库存进行MAX的统计,并且新增加一个复杂计算列,代码为:统计后的现存量减去统计后的安全库存,得到一个或正或负的数值。

之后设置一个输出时的事件:如果统计后的现存量减去统计后的安全库存<0,就将那一列进行变色。   

看了一下UAP的复杂计算列说明:说是类C++的语言代表方式,并且里面的:
currentgroup 分组函数,获取当前组信息
groups 分组函数,获取报表的分组情况及指定分组
可能与统计有关,就是不明白如何使用这两个函数。

猜的代码为:
复杂计算列的代码:
分组统计后的现存量-分组统计后的安全库存

输出时的事件代码:
if 分组统计后的现存量-分组统计后的安全库存<0
{
将列进行变色
}


就是不明白如何写,完全完全不会C++的表达。

tmak 发表于 2010-6-4 13:33:31

补充一下说明:

  这样的,我的目的就是将存货进行按存货分类的统计,并且将统计后的现量数量减去安全库存,就知道此分类是否低于安全库存,如果低于安全库存,使用不同的颜色来进行报警。

  将库存《现存量查询》表加上《存货档案》的安全库存,以存货编码进行关联,之后在《现存量查询》中按存货分类进行分组统计,并且想在UAP中,将通过存货分类统计后的现存量进行SUM的统计,再将安全库存进行MAX的统计,并且新增加一个复杂计算列(数值型),代码为:统计后的现存量减去统计后的安全库存,得到一个或正或负的数值。

  之后设置一个输出时的事件:如果统计后的现存量减去统计后的安全库存<0,就将那一列进行变色。   

  看了一下UAP的复杂计算列说明:说是类C++的语言代表方式,并且里面的:
currentgroup 分组函数,获取当前组信息
groups 分组函数,获取报表的分组情况及指定分组
可能与统计有关,就是不明白如何使用这两个函数。

猜的代码为:
复杂计算列的代码:
分组统计后的现存量-分组统计后的安全库存

输出时的事件代码:
if 分组统计后的现存量-分组统计后的安全库存<0
{
将列进行变色
}


就是不明白如何写,完全完全不会C++的表达。

  这是将用友不支持按存货分类或者货位分类等等进行安全库存的报警,进行报表的开发令他支持的一种方式,看不能不进行报警,现在使用的是人眼看的方式,实在非常这不方便。

naojin 发表于 2010-6-4 13:54:44

可以的,可以直接在某列的输出时事件里操作。

但是你要把你的正或负值显示出来,然后再通过输出时事件加背景色。

这一列为:
现量数量减去安全库存

naojin 发表于 2010-6-4 13:54:57

补充一下说明:

  这样的,我的目的就是将存货进行按存货分类的统计,并且将统计后的现量数量减去安全 ...
tmak 发表于 2010-6-4 13:33 https://www.oyonyou.com/images/common/back.gif


    可以的,可以直接在某列的输出时事件里操作。

但是你要把你的正或负值显示出来,然后再通过输出时事件加背景色。

这一列为:
现量数量减去安全库存

tmak 发表于 2010-6-4 14:09:43

回复 6# naojin


    需要的是统计后的现存数量减去未统计的安全库存,如果直接用现存数量减安全库存是不行的,因为我需要的是分组之后的统计,我需要的不是一个编码产品的现存数量减去安全库存,而是一个存货分类的所有存货的现存数量减去该存货分类下,最大的安全库存。

如果直接是现存量current.iQtty - current.iSafeNum安全库存,那么只是一个产品现存量减安全库存,而不是一个分类。

高手,请问如何在输出时的事件中,如何编写代码:当一个分类超过多少列便变颜色。

之前找到的代码:
string s=cell.caption.ToString();
if(s!="")
{
if (Convert.ToDouble(s)>100)
{
cell.BackColor=Coler.red;
cell.ForeColor=Color.blue;
}
}

我试过了,出错,也不知道是那里出错,要不将当前的列数减去安全库存,如果低就报警也行。

tmak 发表于 2010-6-5 15:56:56

有没有知道如何解决以上问题的朋友,如果有的话,麻烦帮助写一下代码,酬谢。

yejia1222 发表于 2011-6-1 13:53:22

看不懂

qtz214 发表于 2012-2-18 16:07:20

学习一下。。。

wozengcong 发表于 2012-2-19 13:19:30

学习一下。。。

comeinq 发表于 2012-2-20 11:51:47

学习,最好截个图吧!

waban 发表于 2014-12-15 11:44:57

帮顶一下,缺金币

liuhuaiqiang 发表于 2021-12-14 13:08:26

学习一下
页: [1]
查看完整版本: 请问如何在报表的计算列进行统计后的计算?