-gMIS 吉密斯持续更新优化升级,最近一段时间的功能改进包括如下几项,备忘如下。
- 数据透视Pivot模块: +分组项区段AddGroupBySeg
这个功能面临的场景是,当我们在使用数据”透视“功能时,分组group by统计时,总是将整个字段的值参与计算,此前已经提供了 addGroupByDateYmd —— Ymd的功能是格式化时间相关的字段,以Ymd的形式参与计算。
addGroupBySeg 则在此基础上更进一步,可以提供了截取字段值的给定区间部分参与计算。例如 iname字段的值是 abc123efg456, 如果需求希望截取iname的前三个字符参与计算,则可以调用 addGroupBySeg功能,同样地,也可以截取中间的 “efg” 出来。
“数据透视Pivot“模块功能源自 Microsoft Excel,这一刻起,差不多要超乎 Excel的数据透视功能了。 - 数据操作: +复制AddByCopy
在管理信息系统(MIS)中,录入数据是一件繁琐的事,有先后相邻两条记录差别不多时,可以通过复制前一条并做少量修改来满足实现快速录入数据的需求。AddByCopy 即是在此背景下创建的,当我们要输入相似、相邻的记录时,可以使用复制功能,快速使用此前刚刚录入的数据,极大地加快数据录入,提升工作效率。 - 页面Tititle修改为三级递进改进
改进后:模块名称 – 目录名称 – 吉密斯(默认)。 - List模式: +字段在title hint时最长限制
此前有字段限制在列表中显示的字段值最大长度,
list_disp_limit = 38
新增加在title hint时的字段长度限制,
list_disp_title_max_length = 300
如果不加 title hint时的长度限制,当遇到有字段类型为 text 的超长文本时,会憋坏整个浏览器进程/线程。 - 注册动作registerAct: 改进增加 Base62x.class.js
计划了很久的事情,registerAct 本身由于 JavaScript的 escape有bug,当 Base62x.class.js 创制完成之后就想着替换,现在终于找到合适的时机,在服务器端使用PHP版本的 Base62x.class.php 对待注册的动作进行编码,然后在浏览器终端,使用JavaScript版本的 Base62x.class.js 对待注册的动作进行解码,进而进行动作注册,一气呵成。
注册动作registerAct 是 -gMIS 发现的一个JavaScript进行透传待执行动作的方法。通常使用 Ajax 或者 iFrame 等方式进行服务器端/浏览器端进行数据交互时,无法将制定的 JavaScript方法释放到指定的执行域进行执行,registerAct 就是为解决这个问题而设计的。同时得益于 Base62x.class.js 的引入, switchEdit 等函数也将获得更好的兼容性,inline模式的双击即编辑也将得到改善。
- 核心模块:db连接增加长连接
得益于 -GWA2 的升级改进,-gMIS 在读取数据库数据时,如果探测或者根据设置,当PHP运行时环境支持数据库长连接时,则启动数据库长连接。
至此在这方面的速度优化,又提升一点点。
PHP + MySQL的数据库长连接是基于进程的,也即长连接在进程范围内共享,其MySQL并发的连接数大致相当于:
Nginx/Apache所触发的PHP进程数 * Request并发数 * 每个Request实例化的数据库连接数. - 安全模块Sid:+&db=
改进 comm/ido.js , 针对 appendSid,增加了 &db= 为进一步的多数据库的支持提供保证. - 安全模块移除 eval
改进 comm/header.inc.php 中对 eval 的应用,降低外部输入带来恶意代码执行的风险。 PHP eval 类似 JavaScript eval 一样,具有不严谨的反射(Reflection), 对待执行的脚本如果检测不够严格,可能会有预留后门的隐患,已消除。
eval 函数在 -PHP 官网( -R/P2ST )上也被明显提示是“危险”的。Caution
The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to pass any user provided data into it without properly validating it beforehand.
-
更新getUrlByTime
增加针对字段名称中含有 ”time“的,启用”00:00:00″ — “23:59:59” 的支持。 -
改进站内搜索InSiteSearch 初始化的逻辑
使之能够兼容不同的数据库的情况.
改进判定是否可检索字段的判断系数。 -
改进错误输出Error Print
当有数据库数据读取异常时,显示更为友善的提示信息,并提供“反馈给管理员”的邮件链接,使异常处理更人性化一些。
对于写重复等信息,提供了更直白的显示和解释。-gMIS 是一种基于 -GWA2 的通用管理信息系统(Management Information System)应用软件,具有可配置的输入和输出接口、开箱即用等特征。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS), 客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统(BOSS)等等。
实现零代码开发、快速搭建各种管理信息系统(MIS).-gMIS is a -GWA2 based Management Information System (MIS) software with characteristics like configurable input and output interfaces, open-box-to-use.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems (BOSS), etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a minute.Lower Costs,
Better Productivity.
降低成本,
提高效率.
-R/G2SW