最近,所做的模块正在进行最后的完善。客户在试用了之后提了一些建议,包括对报表模板格式的修改。这也算是对Cell报表的进一步了解吧,虽说华表cell已木有后期维护人员了,但了解一下如何使用也算是一种经验了。
背景介绍:
先来看一段SQL执行的结果。
说明:在SQL中就将需要按字段求和的小计列已汇总(PS:需要汇总的数据行数不确定,所以在模板中插入公式计算和在这里不适用),这样在前台的话就直接需要绑字段别名就OK了.
这样,问题就出来了.所有的小计都是需要整行加粗显示的,因为SQL只提供数据,不提供对数据样式的修改. 所以,JS就是修改报表数据样式的不二选择了.
接下来,小编就通过实践来说明,JS和Cell之间的千丝万缕。
1. 设置小计行整行加粗显示
代码:
<span style="font-size:14px;">function SetSpecialCells() {
var n = Cell1.GetCurSheet()
var unitname = "";
var chongfushu = 1;
// 为表体部分设置边框
for (var i = 14; i < Cell1.GetRows(n) - 5; i++) {
var sunitname = Cell1.GetCellString(2, i, n);
if (sunitname.indexOf('各炼厂供货数量')!=-1) {
//设置单元格字体风格为 粗体
Cell1.SetCellFontStyle(2, i - chongfushu+1 , 0, 2);
Cell1.SetCellFontStyle(3, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(4, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(5, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(6, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(7, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(8, i - chongfushu + 1, 0, 2);
Cell1.SetCellFontStyle(9, i - chongfushu + 1, 0, 2);
chongfushu = 1;
}
}
}</span>
2. 设置不确定行某列的合并显示
<span style="font-size:18px;">//合并单元格
function MergeCells(irow) {
Cell1.MergeCells(1, 9, 1, Cell1.GetRows(n) - 5);
}</span>
如下图中左侧一列效果,右侧数据行都是不确定的,所以在合并时,不能直接在模板中设置合并。在JS中利用合并方法轻松实现不确定的行合并.
3. 设置某行计算公式
说明:
对于固定几行几列之间的求和,可直接在模板设置公式,就可解决其问题. 但在行数列数不确定的情况下,我们可以在JS中去设置.
代码:
<span style="font-size:14px;">//设置每一行的公式
function SetFormula(irow) {
Cell1.SetFormula(9, irow, Cell1.GetCurSheet(), "Sum(D" + irow + ":H" + irow + ")");
Cell1.SetFormula(15, irow, Cell1.GetCurSheet(), "Sum(J" + irow + ":N" + irow + ")");
Cell1.SetFormula(21, irow, Cell1.GetCurSheet(), "Sum(P" + irow + ":T" + irow + ")");
}</span>
方法简介:
这里将所用到的几个方法函数简单介绍一下,其实最好的资料就是帮助文档,感兴趣的可以看看.
总结:
这篇博文主要总结了,在改bug期间用到的几种简单实用的方法,让设计出来的报表更加直观.
PS:近几天都在忙着改bug,所以这篇文章就先出来了,关于Cell和VS程序之间的交互,下篇博客,敬请期待!