自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

转载 一句话计算出 TopN 的增长情况

比如,一年中污染最严重三天的 PM2.5 涨幅,了解这个涨幅,就能观察出严重污染是突然出现的,还是逐渐积累起来的。用 SQL 语句找出污染最严重的三天,不算难:select top 3 * from T order by pm25 desc但后面的步骤比较麻烦,要找到这三天的前一天,还要和前一天的数值做计算,如果不是 SQL 高手,还真不能随手把这个 SQL 写正确。如果用集算器 SPL 语言描述这个计算过程,就比较清晰,从数据库得到原始数据:>T=connect(”mysqlD.

2020-05-27 15:05:58 123

转载 业务人员怎么做数据采集分析?

数据采集的技术很多也很方便(例如最简单的上传 excel),但是为啥大部分采集的实际工作还是技术人员来做的,这是因为采集的数据需要能做自动化的分析处理,这就要求数据是结构化的,比如需要采集某个城市下超市的具体产品信息,业务人员绘制出来的表格如下图所示:实际数据应该存成如下图所示结构化的数据(数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的):这个过程如果没有程序员参与的话就很难了。当然业务人员不需要了解要存成什么样,但是程序 / 工具必须得替业务人员处理好这一个过程,否则

2020-05-27 14:56:07 530

转载 BIRT 中如何根据参数动态拼接 SQL

BIRT可以使用sql query来创建数据集,通过在报表中设置参数(Parameter)来传递客户端的用户输入,同时可以设置Dataset参数并且与报表参数关联(这两个参数是不同的),这样可以将客户端的用户输入传递给Dataset的参数供sql query的where语句使用,这是通常的创建sql语句的做法,但是这种方法只适合固定的sql语句,对于拼接动态的sql就不适用了。比如要处理这么个场景:根据传入的用户名、起止日期,分级别查询出不同的订单信息。author存储用户部门信息,account存储账

2020-05-27 14:49:00 404

转载 怎样快速做个 BI 系统

自己从头零开始开发必定是最慢的。要快,更好的方式是直接买 BI 软件。这就涉及选什么样的产品,不能随便买,得根据自己的需求想清楚。1、BI 系统需独立部署。(1)独立部署独立使用使用 BI 离不开用户权限,所以当前 BI 产品的存在形式基本都是整套 BI 系统,有完善的组织组织架构管理、登录验证、权限管理及 BI 功能模块,部署后直接可以使用。(2)独立部署,跨系统调用成套 BI 系统部署后,通过搞单点登录、权限同步可做到与其他系统间的跨系统调用。所以,针对独立部署的情况最快的方式是

2020-05-27 14:45:39 608

转载 web 端可填写报表怎么控制某些人能填某些格,而另一些人不可以

1. 填报表权限控制即控制哪些用户可以看到哪些填报表,哪些用户看不到。处理方式:做不同的表格给不同的人用,简单粗暴,但是如果用户及报表较多,那工作量就很大了。除此之外,还有一种情况,就是同一个报表对不同的用户可见。具体可参考润乾报表权限管理机制 之 资源树权限控制。后者相较前者,大大减少了报表开发的工作量,只需对用户做报表可见控制即可。2. 填报编辑控件权限控制指对同一个报表,不同的用户可编辑的数据格或可做的操作不同,多用于流程填报审核。比如:报表 A, 用户甲登录后不可

2020-05-26 20:24:44 236

转载 web 填写大量数据怎么做到像 excel 一样定时保存

实现包含两步: 利用 js 中定时执行某个动作的 setInterval() 方法。 调用数据处理接口。 这里的关键点在于报表工具是否提供了可被用户调用的接口,如果没有那基本就搞不了了。大多数有填报功能的商用报表工具都有这种接口,只要写类似这样的代码就可以了。<script>setInterval(_inputSubmit("<%=sgid%>"),3000);</script><script&g...

2020-05-26 20:20:54 249

转载 web 填报如何保证录入数据的合法性

举例:验证密码复杂度(必须包含数字字母)核心代码如下:function validateStr(str){ var reg1 = /^((\[0-9\]{1,})(\[a-z\]{1,}))|((\[a-z\]{1,})(\[0-9\]{1,}))$/; var reg2 = /^((\[0-9\]{1,})(\[A-Z\]{1,}))|((\[A-Z\]{1,})(\[0-9\]{1,}))$/; str = valueTrim(str);if(reg1.test(str)){

2020-05-26 20:17:37 234

转载 怎样制作出美观酷炫的可视化大屏报表?

1、 如果有提供 DBD 功能的报表工具,那么可以直接使用该功能, 大屏布局及其组件都能支持页面自适应,同时也能支持一个面板内多个组件的联动效果,具体实现可以参 大屏联动竟如此简单??? ;某个组件的数据过滤实现也很简单,具体可以参考 局部区块多个报表 TAB 页切换及局部区块的参数查询DBD 功能虽然可以让开发人员快速完成大屏报表的制作,但是报表工具只能管一些类似布局自适应、联动等技术问题。而对于每个组件的美观酷炫性还是需要美工和开发人员共同参与完成的,这一点和报表工具本身关系不大。2、 如果采用

2020-05-26 18:06:24 414

转载 web 端展现报表数据时如何实现折叠展开效果?

1、 如果有报表工具,且报表工具内置了折叠属性设置,那么可以直接通过简单配置实现表格数据的折叠展开效果,具体操作配置可以参考 如何实现伸缩 (折叠) 报表?这种实现方式对开发人员技术要求比较低,操作方式也简单;web 端折叠打开的操作不需要刷新计算,性能相对比较高。2、 如果报表工具没有折叠功能,那么可以通过 jQuery 的 show()、hide() 方法对报表进行 tr 的显示、隐藏操作。这种实现方式需要开发人员学习 jQuery,对 js 的要求比较高,初次展现大数据量时会相对慢些。.

2020-05-26 18:02:01 937

转载 SQL 如何实现动态的行列转置

Oracle 和新版 Mysql 里有 pivot 实现行列转置,但实际处理数据时,会碰到一些更复杂的转置情况,pivot 也搞不定,比如:想转置成:这个难点在于事先不知道有多少种收入来源,而且每个人的收入来源种类各不相同。先得计算出种类个数,根据个数动态生成表结构,然后按照顺序填充每个人的多个收入数据。SQL 的计算过程不提倡分步,对集合操作支持的也不彻底,很难应付这种多步骤复杂计算。如果用集算器的 SPL 语言来处理,就能轻松实现: A B 1 =co.

2020-05-26 15:40:36 1690

转载 如何去除 EXCEL 文件中的重复行

在EXCEL数据文件中,如果按某几个列值比较,值都相等的几行称为重复行,那么怎么删除多余的重复行,只留下一行?如果数据少,只有几十行数据,那么手工删除也是可以的。而如果数据量很大,手工处理就会是很麻烦的事了,用 Excel 自带的 VBA 来处理也会经常卡死。自己编写程序来实现?也是可行的,不过首先要读取EXCEL文件内容读成数据集对象,再用两重循环逐行比较是否是重复行,删除重复行后再输出为新的EXCEL文件,编写代码的工作量可不少。而且因为EXCEL文件的格式不相同,要比较的字段不同,编写的程序并

2020-05-26 15:33:42 315

转载 BIRT 如何处理横向分栏

比如要处理这么个场景:将数据记录横向排布为三列显示。效果图如下:BIRT可以对数据纵向分栏,很难实现记录横向摆放并分栏的布局,有网友提出:把数据集绑定到List元素上,在网格中排列一个或多个数据字段,采用嵌入子网格等手段来实现,但都属于理论性阶段,并没有给出完整的示例,可想而知,即便能实现,也是需要写复杂的脚本和杂乱的网格拼接。工作量巨大。源数据格式如下:一些特殊的布局版面,很难通过报表工具本身提供的功能直接实现,但如果准备出合适的数据源,就能大大降低报表设计的难度,...

2020-05-26 15:13:45 269

转载 多个 EXCEL 文件如何合并成一个文件

同一文件夹里有多个格式相同的EXCEL文件,需要把它们合并到一个EXCEL文件中,应该怎么做呢?自己编写程序来实现?尽管好些程序语言都提供了读取EXCEL文件的API,但还是需要写程序去打开每一个文件,循环读取所需的每个单元格数据,在内存中把各文件数据保存到同一个数据集对象,最后再写出一个新的EXCEL文件,编写代码的工作量往往比较大。而且因为每批EXCEL文件的格式不相同,编写的程序并不能通用,下次还需重新编写程序。使用集算器SPL来进行合并,那就很简单了,只需要几行代码。编写SPL脚本如下:

2020-05-26 15:09:04 1164

转载 如何将 EXCEL 数据写入数据库

如何把格式复杂的EXCEL文件中的数据转变成结构化的数据集,然后存入数据库?要在程序语言中编程解决这个问题,工作量是非常大的。尽管有些API可以用来读取EXCEL文件的Sheet和单元格信息,但还是需要写程序去循环读取到所需的每个单元格的信息,再存入到数据集对象中,最后编写 SQL 运行后存入数据库。而且因为许多EXCEL文件的格式都不规整,编写的程序并不能通用,每次都要重新编写程序。如果使用集算器SPL来解决这个问题,那就很简单了,只需要 3 行代码。请看例子:有文件item.xlsx内容如下

2020-05-26 15:04:54 2053

转载 多个异构数据库如何关联查询

DBlink 只适合同种数据库关联,难以关联异构库。其他方式不是改变部署架构,就是增加开发工作量,实施起来困难很多。开发难度小的方式貌似是 ETL,把异构库变成同构库,就可以用熟悉的方式写关联 SQL。但这种方式需要改变原来的部署架构,硬加一个 ETL 层和一个数据集市层,一般还得加个管理员去维护定时调度,或者额外写代码判断“数据是否 ETL 完毕”。更大的问题是,这种方式需要把实时计算变成延迟计算,甲方爸爸知道了恐怕会拍桌子。彻底的解决方案貌似是微服务,把高耦合的 ODBC/JDBC 接口变成低耦

2020-05-25 17:16:24 680

转载 BIRT 中根据参数实现动态日期分组

BIRT一般擅长处理规则一致的数据,若条件不一致的动态运算在报表中是很难实现的。常规办法是创建scripted data sources, 在该脚本源上自行处理业务逻辑把数据准备好,然后直接传给BIRT展现。但SQL或scripted data sources的方式,代码写起来非常麻烦,而且工作量很大。比如要处理这么个场景:按照开始日期、结束日期统计一段时间内订单,但要根据起止日期的跨度长短实现按天、按周、按月、按年动态分组显示结果。查询流程如下图所示:建议使用集算器,其丰富的集合运..

2020-05-25 17:03:18 147

转载 有没有在 WEB 端可以对文件做多维分析的 BI 软件

现在的数据类型多种多样,除了常见的关系型数据库外,各种 nosql 数据库,webservices 数据源或者一些特定的业务系统,他们导出的数据多半是文件格式,比如 txt、csv 等,那么如果要对这些文件做常规的数据分析的话就要采用一些工具来做了。数据文件以常用的 excel 为例,Excel 中有数据透视表的功能可以对 excel 做简单的多维分析功能,但用户现在更多的希望在 web 端做相应的操作,虽然浏览器现在提供了一些插件来支持 excel,但是通常只是查看数据,功能并不完善,而且其他数据格式文

2020-05-25 16:55:56 173

转载 BI 怎么制作中国式复杂报表

现在市面上常见的国外的和国内的一些 BI 工具是很难处理中国式复杂报表需求的,主要是中国式报表格式太复杂,这些 BI 工具通常是用来做数据分析,所以展示格式都相对简单,稍微复杂点的格式是无法制作的,中国式复杂报表复杂在哪可以看下:复杂报表复杂在哪?原来比较常用的方式是 BI+ 专业报表工具来实现,由 BI 工具专门做页面端的数据分析,然后复杂报表由专业的报表工具制作,这样能够弥补 BI 中无法处理复杂报表的弱点,比如:为敏捷 BI 补上关键两环现在随着报表工具功能的增加,大多数报表工具都提供

2020-05-25 16:48:17 600

转载 MongoDB 如何实现嵌套子文档分组

MongoDB 嵌套结构的数据非常常见, 它通过嵌套子文档,达到一对多的关联关系。但嵌套结构中按分类分组求子文档的数据计算,不能直接通过 $group 聚集运算来实现,需要将嵌套结构解开,由多层嵌套结构变成多条单层结构来计算,由于中间过程的处理,且还要借且其它函数辅助实现输出。下面以集合 order 为例说明,按 category 分组获取 term 的数量并按由大到小的顺序输出。[{ category: "movies", terms: [{ term: "movie 1", total: ...

2020-05-25 15:41:54 629

转载 一句话查询出指定节点的叶子记录

数据库中经常用外键到本表的结构存储树状数据。比如多级的行政区划表中,【ParentID】外键到本表的【ID】,要找到纽约州下所有的最基层行政区划,早期的 SQL 没有提供递归能力,这类查询很难写,尤其叶子记录还可能处于不同的深度。这种情况如果用集算器 SPL 语言就比较容易,从数据库得到原始数据:>T=connect(”mysqlDB”).query(“select * from T”)然后用递归函数 nodes 的 @d 选项直接就得到了叶子记录:>T.switch(Pa.

2020-05-25 14:54:27 253

转载 报表怎么动态选择数据源

假定一业务量较大的企业,把每年的数据都分库存放在独立服务器。当一张报表按年度查询数据的时候,就要动态的去连对应库(即动态数据源)了。报表工具有开源和商业两大类,实际上都能实现动态数据源的功能。但不论哪款,操作起来都很麻烦。如常用的开源报表 Birt,需要在数据源配置的“beforeopen”中硬编码的方式实现,过程很复杂,在birt 如何配合动态数据源中有示例说明。商业报表工具做的也不好,几乎都是通过 api,根据条件值动态改变报表模板的数据源后再计算报表,比如报表如何动态切换数据源的介绍。

2020-05-25 14:30:58 291

转载 Web 页面怎么加货币符号和大写转换

Web 页面数据显示常会涉及到各种各样的数据格式化处理,其中,将金额加货币符号和大写转换就很常见。1. 代码开发版实现方法定义数据转换函数,页面进行调用。1). 添加货币符号函数:a. 获取待处理的值,判断是否为有效数值;b. 将数值转换为字符串类型,定位在第一个数字前添加货币符号。核心代码:function currency (money){ let val = money; if(val){ val = '$'+val;return val; }}

2020-05-25 14:25:53 543

转载 web 页面如何实现 echarts 统计图的打印导出?

实现 echarts 的打印导出功能是需要前端和后端一起来完成的,也就是需要 echarts 在页面呈现之后,由浏览器截图并把图片传递给后端,后端最后实现打印导出。例如单页 echarts 导出打印的实现可以用 getDataURL() 方法获得图片后进行后续处理。而当数据是分页展现的时候,页面中是没有将所有的 echarts 统计图进行展现的(比如第 2 页也有 echarts,但是没翻页之前第 2 页是不展现的),浏览器也就无法截图给后端程序;而后端程序在执行打印导出过程中也不能调用 js 进行截图

2020-05-25 14:12:23 518

转载 如何轻松搞定报表中的大段文本?

现在报表工具被广泛应用在各行业中实现 web 端的数据展现,其中有很多行业都会涉及文档的数据展现形式,大多文档中都会存在大段的文字,比较常见的如保险公司的保单,医疗行业里的药检证明等。而在报表中数据展现的基本单位是单元格,如果一个字段的内容是大段文本,内容非常多,要如何换行显示并且根据内容扩大格子高度?当内容多到一页放不下的时候,要如何设置才能自动将没显示完的内容分到下一页显示呢?下面我会对常见文档报表中出现的大文本需求实现具体说明下。内容超过格子宽度自动换行显示报表单元格的尺寸调整方式默认为按

2020-05-22 18:47:56 148

转载 SQL 如何计算每个分组的中位数

中位数是指一组数据排序以后,位于中间位置的数据值。如果数据个数是奇数,中位数就是最中间位置那个值;如果是偶数,则是中间位置那两个数的平均值。怎么查询出数据分组以后每个组的中位数呢?用SQL来解决这个问题是很有难度的!SQL的集合是无序的,没有数据位置的概念,需要人为地造出行号,但是要对各分组独立编行号也困难。后来在SQL2003标准中加入了窗口函数,可以对分组编行号了,但是求各组中位数依然繁琐。举个例子:现有成绩表SCORES数据如下,要求查出每科成绩的中位数。COURSE SCO

2020-05-22 18:35:28 2077

转载 SQL 如何拆分字符串中的数值后排序

通常情形下,一列数据都是整体参与排序,但如果当字段是由字母跟序号组合在一起的复合列,比如现有表TData中列名为NameSerial的一组数据:Mike105Rose11Rose1Rose5Mike6现在需要先按名字排序,再按序号排序。比如Mike6要排在Mike105前面,期望的结果如下:Mike6Mike105Rose1Rose5Rose11由于SQL不支持对字段的单词拆分,所以只能写存储过程拆分数据,然后使用SQL查询来排序。以SQL Server.

2020-05-22 18:31:02 633

转载 Web 页面如何添加水印?

1、 代码开发版实现方法常规代码实现思路是:1)web 页面加载后,通过 javascript 创建页面元素 div,并在 div 元素中创建文本节点,展示水印内容2)设置 div 元素样式,将其 zIndex 设置一个较高的值,并设置透明度,实现浮在页面的水印效果代码开发时需要考虑页面自适应时宽高改变的情况,同时还需要保证不能影响页面的原有事件功能,需要综合考虑的细节比较多。2、 懒人版实现方法使用内置水印功能的报表工具,通过简单属性配置完成水印效果。1)文字水印实现可以通过配

2020-05-22 18:22:35 2139

转载 一句话得到中间值的多条记录

这个计算步骤比较多,首先需要用 distinct 去重得到值的集合,还要根据它的个数算出中间位置在哪,得到中间位置的值,再查询所有等于中间值的记录。SQL 里比较难保持这些中间状态的变量,得用多层嵌套的子查询实现,写出来有难度,之后了再读懂也不容易。这种情况如果用集算器 SPL 语言就比较容易,从数据库得到原始数据:>T=connect(”mysqlDB”).query(“select * from T”)然后很短的一句话就能把多个计算步骤都囊括了:>s=T.id(f),m.

2020-05-22 14:24:56 120

转载 web 端展现报表时查询表单如何实现参数联动

web 端查询表单中多个参数级联查询是查询控件之间一种常见的互动方式,前面主参数发生改变时,联动参数也随之改变。比如:查询表单中的城市根据地区联动,如地区选择华北,后面的城市只能选择华北地区下的城市。1:如果有报表工具,一般都支持参数级联查询功能,那么可以直接对联动参数设置关联过滤表达式,简单快捷,例如:如何实现参数级联查询2:如果没有采用报表工具,可将数据报表采用 iframe 嵌入发布页面,通过 JavaScript 的 onChange() 事件来触发自动修改 iframe 的 src 属

2020-05-22 14:19:07 167

转载 MongoDB 中有什么简单办法做多字段 join?

JOIN 在 SQL 是中很基本的运算,但 MongoDB 却没有直接提供,要用 $lookup 对付,但对多个字段关联时就很麻烦。比如这一段:db.getCollection(‘c1’).aggregate([{ $lookup: { from: “c2”, localField: “user1”, foreignField: “user1”, as: “R” }},{...

2020-05-21 15:35:01 621

转载 怎么制作动态列报表(非常规交叉表)

最常见的动态列报表是交叉表,这种报表很容易做,一般报表工具都支持。用固定的 SQL 作为数据源,动态列的问题由报表工具搞定。但有时候我们要面对不是常规交叉表的动态列报表,比如:其所用数据表及显示的每一列都是根据用户选择来动态加载的,也就是说,要根据报表的参数来决定选出的列。相较交叉表,其难点在于1.数据来源需要动态拼出 SQL 语句去执行;2.无法事先确定列数,也就无法在报表中使用固定列的表达式。注:表达式的主要作用是为了可以控制页面单元格的取数,这部分无法确定报表也就没有办法再

2020-05-21 15:16:23 261

转载 JAVA 如何实现大文本去除重复行

去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上没法直接用SQL了,想用SQL还得找个数据库先建表,也很麻烦。如果是小文件,那用java对付一下也不太费劲,大概这样: String file ="d:/urls.txt"; ArrayList<String> result = new ArrayList<String>(); BufferedReader br=null; try...

2020-05-21 15:12:39 622

转载 多维分析前端页面卡顿不流畅怎么办

界面操作尽管属前端,但卡顿大部分并不是前端的问题,找前端开发商也是没有用的。后台负责计算任务,当出现压力过重的时候,前端表现响应时间长,实际就是后台响应速度变慢了。这个是造成界面操作卡顿的原因,解决方案则需要后台采用高性能数据库。目前多维分析产品的后台数据源通常是常规数据库、专业数据仓库及 BI 产品自带的数据源,整个系统性能基本都是靠它们自身的计算能力。但实际都有各自的缺点,普通库一般是行存,数据量小还可以,一旦数据量大就很难提供给多维分析高性能;专业数仓多数采用列存,性能问题不大,但是价格太贵,建设

2020-05-21 14:27:45 468

转载 页面上怎么从不同数据库取数并关联计算?

可以通过 java 代码实现从不同数据库取数,做好关联计算后返回给前台页面展现,具体思路是:1)分别从各个数据库中读取表数据,存入 CachedRowSet 对象中2)关联计算可以使用 JoinRowSet 完成两个表的内连接3)涉及数据过滤时,可以使用 FilteredRowSet 完成条件过滤4)把结果集返回给前台展现在数据量比较小的时候,这种方式是完全可以的,但是随着数据量的增加,性能会变的不可控(开发者能力差异)。另外,如果数据不仅来自数据库,而且需要从文件、分布式系统等其他数据

2020-05-21 14:08:45 313

转载 如何在 web 页面中实现类似 excel 固定表头 / 标题行的效果?

1、 如果没有报表工具或者使用的开源报表工具中没有固定表头功能时,可以使用代码开发方式实现,例如可以通过 jQuery 方式实现固定表头效果,实现思路如下:用 div 替换 table,将要冻结的表头放入 thead 中,用 thead 绝对定位达到固定的目的,使用 overflow-y:hidden 属性达到滚动效果。但是这种方式或者其他插件方式都存在一些问题:对于左表头的固定支持性比较弱;容易出现单元格错位现象;对于动态表头的支持性比较弱。2、 有报表工具的话,可以直接使用报表工

2020-05-21 13:57:30 323

转载 按条件查出两条记录后求其位置间隔

关键词导读:有序集合 记录位置 记录间隔数据排序以后,按照查询条件找到需要的两条记录,然后算出这两条记录之间间隔了多少条记录。用SQL来求这个解比较麻烦!SQL的集合中没有记录顺序,不能提供记录的位置信息。SQL2003标准中加入了窗口函数,能够给记录添加行号了,解决这个问题就需要先添加行号,然后再用多次子查询定位计算。举个例子:现有股票收盘价数据表STOCK数据如下,要求查出股票000062最后的最低收盘价和最后的最高收盘价之间相隔多少个交易日:CODE STOCKDATE

2020-05-21 11:42:59 245

转载 如何从文本文件读入 SQL 参数

有时我们希望把参数列表分行存储在文本文件里,执行SQL时再拼到in函数里,从而查询出符合条件的记录。但SQL不能解析文本文件,直接拼到in函数里有困难,所以很多人先把文件导入数据库临时表,再用join语句做关联,从而间接实现in函数的功能。但这样一来每当文件变化的时候,都要手工做一遍删表导库的动作,过程还是挺麻烦的。一劳永逸的做法是用Python、C#等编程语言开发程序,但这类语言技术门槛很高,想学会有点儿难,虽然理论上啥功能都能实现。如果用esProc,实现这个算法就简单多了,只需短短几行代码

2020-05-21 11:38:40 190

转载 哪个报表工具支持 Excel 那样锁定行列头的呈现?

在查看报表的时候,当列很宽或者记录的行数很多,在一屏中不能完全显示所有的数据,如果表头信息不能固定显示在最上方或左侧,当我们在上下或者左右拖动滚动条来查看数据时,数据记录无法和数据项对应上,不方便查看数据,为了解决这个问题,可以让表头信息固定显示在页面的最上方或最左侧,自己实现这样的功能需要写大量的 HTML 和 CSS,为了保证在不同浏览器的兼容性还需要耗费些精力,有时还会出现滚动过程中表头错位,格子边框不对齐的情况。其实现在大多报表工具都提供了这个锁定表头的功能,以我们熟悉的润乾报表为例,实现这样的

2020-05-21 11:30:41 141

转载 如何把大 Excel 文件拆成多个小文件

出于各种原因,有时我们要将一个大Excel拆成一些小文件。这种算法可以用VBA实现,但代码很非常难写,还容易发生内存溢出。用esProc就简单多了,比如把大文件拆成每1500行一个的小文件,只有这么几行: A B D 1 =file("dt.xlsx").xlsimport@t() /打开Excel,假定第一行是标题 2 for A1.group((#-1)\1500) /循环取数,每次1500行 3 =file(#A...

2020-05-19 17:38:42 388 1

转载 有啥能做水印的报表工具

商业报表工具大都直接提供了水印设置的功能,通过简单配置就可以做出水印,但灵活性或完善度上区别较大。对于单报表模板的静态水印一般都支持得较好,但如果遇到动态水印、全局水印等的时候,很多报表工具就显得很麻烦了,需要借助平台或 js 来实现。润乾报表提供了完整的水印功能,全面支持动态水印。只需一个标签属性或一个表达式就可以解决,显然要简单的多。具体用法可以参考:动态水印怎么做。另外,像 Logo 水印在润乾报表中也可以简单实现,可参考Logo(图片)作为报表水印的解决方法。总之,现在常用的报表工具都比较

2020-05-19 17:34:37 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除