cgft 发表于 2019-6-17 22:32:39

二开札记


把二开过程中遇到的难题,在这里与网友讨论求解;
把二开过程中得到的体验,在这里与网友分享求实;

先开个头,以后慢慢添加。

当初做业务引擎需要在flow_hook表中添加一条记录,SQL语句是这样的:

$query= "INSERT INTO flow_hook (hname,hdesc,hmodule,plugin,status,map,condition,condition_set,system) VALUES(…………);"

运行结果,就是报错,查了错误日志:
错误#1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near……

还是语焉不详,是语法错误,但错在哪呢?多次折腾,发现只要不写condition字段,就不出错。当时因为急着用,就绕道走啦,不写就不写。
先告诉用户一个权宜之计,使用业务引擎的时候,把触发条件手工添加上,一样用。回过头来,慢慢找。
反复打量着这条语句,忽然灵光一现——condition是SQL语句的关键字呀!怪不得系统犯傻呢!
找到原因就好办。
一是构建数据库表时,应尽量避免使用SQL的关键字做字段名。二是像这样既成的表,你不用也得用,无法去避免,那就把关键字用“`”号括起来。
正确的写法,就是:

$query= "INSERT INTO flow_hook (hname,hdesc,hmodule,plugin,status,map,`condition`,condition_set,system) VALUES(…………);"

cgft 发表于 2020-5-2 09:32:45

在通达OA的V11版服务器上,做过一次“服务卸载”和“服务注册”操作后,发现原来配置的数据库管理软件phpMyAdmin无法连接MySQL了。原因是root的密码在“服务注册”操作后被修改,在config.inc.php里同步修改相关参数即恢复正常。

cgft 发表于 2020-5-23 14:27:08

本帖最后由 cgft 于 2020-5-23 14:29 编辑

列表行数自适应页面高度

二开页面中有一个TABLE。现在,我们就让TABLE自动选取合适的行数$PAGE_SIZE,以占满页面,充分利用有效空间。
JS代码范例如下:<script type="text/javascript">
      changePageSize();
      $(window).resize(function(){changePageSize();});
      function changePageSize(){
         var PAGE_SIZE= parseInt(($(window).height()-108)/37);
         if(PAGE_SIZE!=<?=$PAGE_SIZE?>)
                      window.location= "search.php?PAGE_SIZE="+PAGE_SIZE;
      }        }
</script>
以上范例应用于坛子里《自定义公告通知模块 for V11》的《自定义公告模块 forTDOA2016 2017 V11 安装及升级 By BlueSword.rar》附件里的\webroot\general\mis_module\show\search.php文件。

减数108,页面的其他元素占用的高度;除数37,TABLE每一行占据的高度。单位均是px。在JS代码前,$PAGE_SIZE已被赋初始值。



bsxl_5 发表于 2020-5-24 10:13:08

谢谢楼主的分享

cgft 发表于 2020-7-7 15:22:06

通达OA V11版CRM组件的源码,在安装文件webroot\attachment\update\4.php的82行前,建议自行插入一条语句:
mysql_set_charset(MYOA_DB_CHARSET, TD::conn());

有了这条语句,就能阅读 CRM 数据库表各字段的汉字注释了。还可以用修改后的\4.php替换通达OA V11版CRM组件安装包里的同名文件。


页: [1]
查看完整版本: 二开札记