转帖:用友 UAP的简单报表制作(U871)
原帖地址:https://www.oyonyou.com/thread-90999-1-1.html
原帖作者:wjhawxr123
一、前提
1.1、要学会用UAP制作一些简单的报表,SQL语句是必须会的条件之一,当然不要求你要多精通,基本的一些语句组合还是需要会一些
1.2、运用的最多的是“select * from [表名] where [条件指定]”
“select * from [表名] left/right/inner/cross join [表名] on [条件]”
“case when [条件] then [结果] end”
“存储过程”
“com口接口”
1.3、用SQL语句写报表,并不是盲目的写,一定要顾全一个运行效率问题,简化语句,最快时间得出要的结果集。举个例子,在几个百万行数据的表中做关联,用“where”指定条件绝对没有用“left join on”执行结果来的快;能用5行代码写出的结果,就绝不用10行代码来执行。
1.4、以上是我在企业做系统维护所应用到的环境,也可能不是很全,但万变不离其宗。掌握好SQL语句,已经能满足大部分报表的制作要求。事实在,我认为ERP最大的功能,就在于各种各样灵活的报表。
1.5、本人第一次发如此长的贴,排版手法很不熟练,各位将就点看
1.6、虽然写的很简略,但贵在免费,比起动辄需要几金币下载的来说,可谓给新手提供一下便利。
1.7、期待与各位共同研究,共同提高。
二、过程
2.1、首先打开UAP【图一】
【图一】
2.2、出现UAP界面
2.2.1、如何新建项目,这里不多做阐述,相信以各位的才智,此等简单操作一看就会
2.2.2、新建报表【图二】![]()
【图二】
2.2.3、出现新建数据源界面【图三】,如果用SQL语句或者存储过程写报表,选择“SQL脚本查询”,“数据源名称”和“数据源描述”一般写报表名称,保持一致也可以,不一致也可以。![]()
【图三】
2.2.4、点击【图三】中的下一步【图四】![]()
【图四】
2.2.4.1、如果是用select语句写报表,类型中选择“SQL脚本” 【图5、红框处】
2.2.4.2、如果是用存储过程写报表,类型中选择“存储过程” 【图5、红框处】
2.2.4.3、SQL语句写报表以及存储过程写报表,下文会分开详细说明![]()
【图五】
2.3、用SQL语句写报表
2.3.1、先在【查询分析器】(注:查询分析器:不作解释,不知道的人请自觉学习SQL)中测试语句的完整性,是否能正确执行出结果【图六】
- select a.cinvcode as '存货编码',b.cinvname as '存货名称',a.cbatch as '批次',a.iquantity as '现存量'
- from CurrentStock a left join inventory b on a.cinvcode = b.cinvcode where a.cwhcode = '0101'
![]()
【图六】
2.3.2、在查询分析器中能够正确执行出结果集,证明语句没有问题,复制进UAP编辑框中【图七】【图八】![]()
【图七】![]()
【图八】
2.3.3、复制语句时需要注意:select 语句归select框内,where语句归where框内,以此类推【图九】![]()
【图九】
2.3.4、复制语句完毕,点击“检验”按钮,检验语句的完整性【图十】
2.3.4.1、返回的结果集如果记录行数不多,会很快跳出“检验完毕”的对话框【图十】
2.3.4.2、返回的结果集如果记录行数很多,检验过程较为漫长,有可能因为超时而跳出报错提示框,这个时候,可以设置在select 后面加上 top 100,减少返回的结果集,让系统快速通过验证过程![]()
【图十】
2.3.5、检验通过之后,进入“查询结果列”,刷新报表列【图十一】![]()
【图十一】
2.3.6、填写列名,填写完毕,点击“完成”按钮【图十二】![]()
【图十二】
2.3.7、在跳出的对话框中,填写“报表名称”,“视图名称”,选择视图类型,这里我们选择“表格报表”,“自由报表”、“交叉报表”使用频繁度不是很高,应用性不是很强,这里不作要求,本文指在说明简单报表的制作,“自由报表”和“交叉报表”留待熟练后自行运用。填写完毕,点击“确定”按钮。【图十三】
【图十三】
2.3.8、进入报表编辑界面,点击“报表向导”按钮【图十四】![]()
【图十四】
2.3.9、在跳出的“电子表格报表定义”界面填写“报表标题名称”,填写完毕,点击“下一步”按钮。【图十五】
【图十五】
2.3.10、报表明细项,选择要显示的列,在选择框中打上√即可,默认是全部打上√,数值列字段默认是汇总求和,可以选择,确定无误,点击“下一步”按钮。【图十六】
【图十六】
2.3.11、报表雏形已经形成,现在所要做的,就是一些微小的调整。【图十七】![]()
【图十七】
2.3.11.1、调整报表标题的字体、大小【图十八】
点击“标题名称”,在属性界面找到“字体”,点击进入,调整字体,大小等【图十八】![]()
【图十八】
2.3.11.2、调整明细列的顺序【图十九】
鼠标点击一直拖曳、排列,直到符合自己满意的顺序即可【图十九】![]()
【图十九】
2.3.12、调整结果如图,是不是比刚刚的漂亮多了。【图二十】![]()
【图二十】
2.3.13、报表格式已经确定,接下来就是要添加过滤条件了。此报表教为简单,3个文本列,1个数值列,可以将3个文本列都作为过滤条件。
选择标准条件。【图二十一】![]()
【图二十一】
2.3.14、添加存货编码过滤条件
2.3.14.1、新增一个过滤条件
2.3.14.2、“中文简体名称”和“标题”保持一致,这里填写“存货编码”【图二十二】
【图二十二】
2.3.14.3、“编辑类型”选择“参照”,参照ID选择存货档案表【图二十三】![]()
【图二十三】
2.3.14.4、“比较符”选择“等于”即可,“小数位数”、“分组”不作要求,“数据源”处填写存货编码的字段名: a.cinvcode 【图二十四】
2.3.14.5、“是否常用条件”打上钩【图二十四】

【图二十四】
2.3.14.6、“式样”选择“弹出式”,点击“确定”按钮即可完成存货编码过滤条件的设定【图二十五】
【图二十五】
2.3.14.7、“存货名称”过滤条件也可如此设定。
2.3.14.8、过滤条件设定完之后,在过滤设计器中会显示出设定了几个过滤条件【图二十六】![]()
【图二十六】
2.3.15、接下来就是发布做好的报表,在发布报表前,要注意
2.3.15.1、保存之前的操作
2.3.15.2、关闭报表的制作界面(发布报表时,不允许报表处于编辑界面)
2.3.16、点击“发布”按钮【图二十七】
2.3.16.1、在跳出的对话框中,选择类状态为“未发布”的,且名称是需发布报表的名称的报表
2.3.16.2、在选择列中打上钩
2.3.16.3、点击“发布”按钮即可发布报表
2.3.16.4、发布成功后,此报表会从“业务对象发布”列表中消失。![]()
【图二十七】
2.3.17、验证报表的可使用性
2.3.17.1、进入U871,选择对应的帐套
2.3.17.2、打开“我的报表”
2.3.17.3、进入“库存管理”,果然看见了“库存查询报表”【图二十八】
【图二十八】
2.3.17.4、双击“库存查询报表”,跳出过滤界面框,显示的就是之前设定的过滤条件。
2.3.17.5、选择一个存货编码【图二十九】![]()
【图二十九】
2.3.17.6、点击“过滤”按钮,很快便显示该存货的库存情况【图三十】![]()
【图三十】
2.3.18、至此,一张简单的报表就做完了
2.3.18.1、因为我使用的是demo用户,系统不校验权限,当时发布,当时就能看到。
2.3.18.2、其他用户如果需要查看,需进入“系统管理”分配相应的权限。
2.3.19、用存储过程写报表的制作过程稍显复杂,可能因为U871的UAP平台不是很成熟的原因,存储过程的在【查询分析器】中明明能通过,但是在UAP中就通不过,经常需要转换参数的格式。这几天就不写了,待以后有空,会完善此贴。

浙公网安备 33010602011771号