ITPub博客

首页 > 应用开发 > IT综合 > 价值5000元的web报表分享

价值5000元的web报表分享

IT综合 作者:杰华园 时间:2015-03-10 20:19:00 0 删除 编辑

与一个朋友聊天,发现他最近做了一个很棒的报表,用他的话来讲,起码值5000RMB,我拿来与大家分享下,共同进步。

用朋友A的话,就是他最近接到公司财务部长大人的需求,需要通过采购和研发部门的降本计划,统计出各部门的降本信息,然后如果让财务部的小妹手工统计的话,那简直是太困难了,如是求助IT人员用报表软件FineReport。

朋友A通过仔细分析得出降本计划数据来源哪里,思索一番得出如下逻辑:

①核价单单头表包含信息:核价日期、供应商、主导部门

②核价单单身表包含信息:品号、核价单价、原单价、生效日期、失效日期

③采购进货单单头信息:单别、单据号、供应商、单据日期

④采购进货单单身信息:品号、名称、规格、进货单价、税率

于是乎,朋友A想到办法难点是如何取到原单价,最终报表如下:

原单价取价逻辑为当进货单单据日期在核价单生效日期和失效日期之间时抓取对应的核价单原单价信息。

下面是获取原单价函数:


  1. ALTER Function [dbo].[UF_GetLastPrice](  
  2. @TL004 AS nvarchar(10),  
  3. @date as nvarchar(8),  
  4. @item as nvarchar(30)  
  5. )returns decimal(18,6)  
  6. as  
  7. begin  
  8. --set @TL004='09001'  
  9. --set @date='20150116'  
  10. --set @item='10102069620001';  
  11. declare @price as decimal(18,6);  
  12. declare @zdbm as nvarchar(20);  
  13. with b as(  
  14. select TM004,TM014,TM018,TL004,PURTL.UDF01 from PURTL inner join PURTM ON TL001=TM001 AND TL002=TM002  
  15. where TM011='Y' AND TL004=@TL004  and   TM014<=@date and TM004=@item)  
  16.   
  17. select @price=isnull(t.TM018,0),@zdbm=t.UDF01 from (  
  18. select b.UDF01,b.TM004,b.TM018,ROW_NUMBER() over(partition by b.TM004 order by b.TM014 desc )rn  
  19. from  b ) t  
  20. where rn=1  
  21. return  @price  
  22. end  

如此,大功告成!



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21472864/viewspace-1455276/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-03-03

  • 博文量
    584
  • 访问量
    815017