• (七)FAP平台--报表篇


    FAP报表直接使用Excel来设置报表模板,不需要安装其他三方报表工具。下面是报表模板说明书

    全局参数:

    以p:开头,系统默认

    {p: ReportName} –报表名称,

    {p: EmployeeName}—登陆员工名称

    系统变量:  

    以sv:开头,系统默认

    {sv: ReportDate} –报表日期

    {sv: ReportTime}—报表日期+时间

    系统函数:

    以sf:开头

    {sf: Format()},例如:{sf:Format(sv:RenderDate, "g")}

    GetDictVal(Object dictionary, Object key) 为空会抛异常
    
    Object TryGetDictVal(Object dictionary, Object key)不会抛异常
    
    Object GetByIndex(Object list, Int32 index)
    
    Object TryGetByIndex(Object list, Int32 index)
    
    String Format(Object input, String format, Object formatProvider = default(Object))

      

    方法

    以m:开头,例如:m:GetEntity("Employee")。

    获取数据源使用

    public IEnumerable<IDictionary<string, object>> GetEntity(string entityName)
    
    public IEnumerable<IDictionary<string, object>> GetEntityWhere(string entityName, string fieldName, string fieldValue)
    
    public IEnumerable<IDictionary<string, object>> GetEntitySql(string sql, object p0 = null,
                object p1 = null, object p2 = null, object p3 = null, object p4 = null, object p5 = null, object p6 = null, object p7 = null, object p8 = null, object p9 = null, object p10 = null)

    其他类中的方法表示:m: ImageService: GetBitmap(),表示ImageService中的方法GetBitmap().

    横向分页符模板

    标记如下{HorizPageBreak}

    使用此模板可在包含模板的单元格所在的行之后插入分页符。 将数据面板相互嵌套时,这很有用。 在这种情况下,每个数据块都打印在单独的页面上。

    竖直分页符模板

    标记如下:{VertPageBreak}

    使用此模板可将分页符插入包含带有模板的单元格的列之后。

    数据面板

    鼠标拖动范围,Excel中右键“定义名称”。

    以d_开头,例如:d_Employee

    备注必填,在此设置数据源和父面板, 

    如果要设置分组,用groupby=1,1表示第一列

     

    如果是嵌套子模板 一定要设置父模板

    DataSource=m:GetEntityWhere("Employee","DeptUid",di:Fid);ParentPanel=d_Department

    切记用分号分割。

     

    数据源函数:系统默认:

    根据entityName获取数据集

    public IEnumerable<IDictionary<string, object>> GetEntity(string entityName)

    根据字段名和字段值过滤数据集

    public IEnumerable<IDictionary<string, object>> GetEntityWhere(string entityName, string fieldName,string fieldValue)

    自定义sql,sql语句用()包围,参数以@数字标记  必须从0开始最多11个,例如@0  @1….  P0为 @0的值

    DataSource=m:GetEntitySql((select * from Employee where DeptUid=@0 and Dr=0),di:Fid);ParentPanel=d_Department

    数据项

    在数据面板下设置数据项

    以di:开头,例如{di:EmpName}

    //字典值转化函数

    {m:Dictionary(EmpGender,di:Gender)}

    ”EmpGender“为FapDic字典表分类。

    合计面板

    同数据面板,名称以t_开头,例如:t_subtotals。

    合计数据项,此处包含合计函数:Sum,

            Count,

            Avg,

            Max,

            Min,

            Custom,

            NoAggregation,等

    例如:{Max(di:DateOfBirth)}

     

    父子面板嵌套

    嵌套分组推荐使用

     

    动态面板

    不需要具体设置每一个数据项

    只需要设置 Headers,Data,Totals

    totals会根据字段类型 自动 执行合计函数。

    FAP系统使用

    菜单:报表统计-----报表模板

    新增

    查看报表

    菜单:统计报表---报表展示。

    可查看报表需要 权限 菜单 去授权。

    报表结果:

  • 相关阅读:
    分享一个利用HTML5制作的海浪效果代码
    3人从小公寓创业,到世界最大引擎公司,Unity创始人谈14年...
    决策树--从原理到实现
    使用行为树(Behavior Tree)实现游戏AI
    FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别
    相遇3000亿美金之巅,阿里腾讯战力与血值几何?
    深入浅出聊Unity3D项目优化:从Draw Calls到GC
    Unity性能优化专题---腾讯牛人分享经验
    高通创始人复盘30年发展历程
    Gym
  • 原文地址:https://www.cnblogs.com/wangyfb/p/12456477.html
Copyright © 2020-2023  润新知