【Cell报表】Cell模板绑定数据
来源:互联网 发布:linux mount命令使用 编辑:程序博客网 时间:2024/05/17 23:23
上篇博客,主要简单说了cell报表模板的设计,这次主要来说一下如何给模板上各个单元格赋值,这里主要是分两部分,一部分的值,我们只需要从数据库中取出来显示就OK的;还有一部分呢,需要计算某几行几列值等等的。
首先和大家说明几点小细节:
表头:就是最上边一行大标题及最后一行中的单位领导,制表人,日期等等信息
表体:就是具体的数据信息,对于数据的合计等等也包含在表体中;当然如果你设计的报表内容比较多,可以将一部分只是用来显示的数据放在表头中,这个可根据实际情况来做决定。
表头和表体没有具体的区分界限,有需要也可以将表体中的部分作为表头数据绑定.
1.先来看看如何绑定数据?
用华表模板设计器打开模板,选中单元格,选择【数据】→【名称定义】,进入到如下界面,根据你sql中设定的字段名来绑定(不区分大小写),这里需要说明的一点就是[0]代表表头,[1]代表表体。选择单元格位置,【确定】.就OK了。
2.合计列绑定
合计,大家都懂的,计算某行或某列的和,那来看看如何绑定合计让它正确计算呢?这和Excel中的是一样的,给那个单元格绑定计算公式就OK..
Sum(Range(4,GetRow(CurCell()),8,GetRow(CurCell()),1))
提醒:重要事情要记得,关于一些函数的使用,看帮助文档!看帮助文档!看帮助文档!
3.列小计单元格绑定
这部分都是在sql中直接用sum函数计算,再直接绑定别名.
代码:
sum(dt.n_value_5) n_value_5, sum(dt.n_value_0) n_value_0, sum(dt.n_value_n10) n_value_n10, sum(dt.n_value_n20) n_value_n20, sum(dt.n_value_n35) n_value_n35,
4.上锁
当数据绑定完成之后,我们将模板上锁,这样在系统中使用时,报表是只读的,不可修改.如下图,选中要锁的单元格,选择工具栏中的图标,即可.
5.效果图:
说明:图中两行小计是在sql中拼出来的,将整个查询的数据和计算的小计当成一个整体放到模板中间的空行中.cell模板展示完了,来看看后台的SQl是怎么写的?
D层代码:
#region 年度需求计划汇总(精简)--贺彩妍 public DataTable GetSimpleYearTitle(string id) { string strSql = @" select distinct ( mt.s_unit_name|| mt.s_year || '年柴油需求计划') reptitle, ('填报单位:' || mt.s_write_unit_name) s_write_unit_name, ('计量单位:' || mt.S_METRIC_UNIT) S_METRIC_UNIT, ('单位领导:' || mt.s_principal_name) s_principal_name, ('制表:' || mt.s_write_user_name) s_write_user_name, mt.s_write_date s_write_date from rmrpt_plan_rpt_mt mt where mt.n_prm_id='" + id + "'"; SQLParameter sqlParams = new SQLParameter(0); Pager pager = new Pager(); pager.IsPaginate = false; pager = DataAccess.GetDataTableBySQL(strSql, sqlParams, null, pager); return (DataTable)pager.Data; } public DataTable GetSimpleYearPlan(string id) { string sbSQL = @" select rownum, t.* from (select td.* from (select dt.s_recieve_unit_name, dt.s_refine_factory_name, dt.N_VALUE_5, dt.n_value_0, dt.N_VALUE_N10, dt.N_VALUE_N20, dt.N_VALUE_N35, nvl(dt.N_VALUE_5, 0) + nvl(dt.N_VALUE_0, 0) + nvl(dt.N_VALUE_N10, 0) + nvl(dt.N_VALUE_N20, 0) + nvl(dt.N_VALUE_N35, 0) xiaoji from rmrpt_plan_rpt_oil_ydt dt where dt.n_prm_id = '"+id+@"' union all select dt.s_recieve_unit_name, '小计' s_refine_factory_name, sum(dt.n_value_5) n_value_5, sum(dt.n_value_0) n_value_0, sum(dt.n_value_n10) n_value_n10, sum(dt.n_value_n20) n_value_n20, sum(dt.n_value_n35) n_value_n35, nvl(n_value_5, 0) + nvl(n_value_0, 0) + nvl(n_value_n10, 0) + nvl(n_value_n20, 0) + nvl(n_value_n35, 0) xiaoji from rmrpt_plan_rpt_oil_ydt dt where dt.n_prm_id = '"+id+@"' group by s_recieve_unit_name, dt.N_VALUE_5, dt.N_VALUE_0, dt.N_VALUE_N10, dt.N_VALUE_N20, dt.N_VALUE_N35) td order by s_recieve_unit_name, s_refine_factory_name, n_value_5, n_value_0, n_value_n10, n_value_n20, n_value_n35 desc) t "; SQLParameter sqlParams = new SQLParameter(0); Pager pager = new Pager(); pager.IsPaginate = false; pager = DataAccess.GetDataTableBySQL(sbSQL, sqlParams, null, pager); return (DataTable)pager.Data; } #endregion总结:这次主要讲解了,如何给Cell模板中的单元格赋值,以及合并列、小计列的绑定.下篇博客小编会总结一下Cell模板和程序的结合,敬请期待~~
- 【Cell报表】Cell模板绑定数据
- 【Cell报表】设计模板
- Cell报表 自定义公式
- cell
- cell
- cell
- cell
- Cell
- 华表Cell应用 - 使用XML自动读入数据 | #报表 #华表Cell
- WebCom.Net 和 Cell报表
- matlab cell数据用法
- UITableView 数据展示 cell
- iOS cell刷新数据
- ios-关于cell的模板
- 华表Cell应用 - 在IE中使用华表Cell插件 | #华表Cell #报表
- 转:用友华表Cell报表面面观
- JS对报表的读写操作【cell】
- 【Cell报表】与JS的千丝万缕
- java中函数的参数传递详解
- css html布局的一些基本原理
- bootstrap btn-group-justified 不起作用
- 黑马程序员-C语言回顾-循环
- 视频学习方法点滴体会——源自软工视频
- 【Cell报表】Cell模板绑定数据
- leetcode之Search for a Range
- 关于List,Set和Map三个接口的特点
- 深入理解LinkedHashMap实现LRU缓存
- 杭电acm--1005
- JPA & Hibernate 注解
- JVM判断对象是否存活的方法
- 什么叫NAND闪存?什么叫NOR闪存? 这两者有什么区别?
- git 个人手册(持续更新)