(七)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系统使用
菜单:报表统计-----报表模板
新增
查看报表
菜单:统计报表---报表展示。
可查看报表需要 权限 菜单 去授权。
报表结果: