• 价值5000元的web报表分享


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

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

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

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

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

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

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

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

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

    下面是获取原单价函数:

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

     如此,大功告成了!

  • 相关阅读:
    【算法18】重排数组元素使得所有的奇数位于所有偶数之前
    php函数ob_start()、ob_end_clean()、ob_get_contents()
    php代码调试
    判断文件存在是用file_exists 还是 is_file
    ubuntu屏幕截图工具:scrot,可截鼠标拖曳的矩形区域图形
    mysql常用的技巧
    用户角色权限设计
    解决ubuntu耳机和音箱同时发音
    SSH免密码登录
    IE, Firefox下,checkbox的钩钩一旦勾上,画面再刷新,钩钩还是勾上的解决方案
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13326194.html
Copyright © 2020-2023  润新知