NB5牛论坛

 找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 4100|回复: 4

二开札记

[复制链接]

257

主题

1154

回帖

1万

牛毛

游客

积分
18851
QQ
发表于 2019-6-17 22:32:39 | 显示全部楼层 |阅读模式

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


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

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

  1. $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的关键字做字段名。二是像这样既成的表,你不用也得用,无法去避免,那就把关键字用“`”号括起来。
正确的写法,就是:

  1. $query= "INSERT INTO flow_hook (hname,hdesc,hmodule,plugin,status,map,`condition`,condition_set,system) VALUES(…………);"
复制代码


257

主题

1154

回帖

1万

牛毛

游客

积分
18851
QQ
 楼主| 发表于 2020-5-2 09:32:45 | 显示全部楼层
在通达OA的V11版服务器上,做过一次“服务卸载”和“服务注册”操作后,发现原来配置的数据库管理软件phpMyAdmin无法连接MySQL了。原因是root的密码在“服务注册”操作后被修改,在config.inc.php里同步修改相关参数即恢复正常。

257

主题

1154

回帖

1万

牛毛

游客

积分
18851
QQ
 楼主| 发表于 2020-5-23 14:27:08 | 显示全部楼层
本帖最后由 cgft 于 2020-5-23 14:29 编辑

列表行数自适应页面高度

二开页面中有一个TABLE。现在,我们就让TABLE自动选取合适的行数$PAGE_SIZE,以占满页面,充分利用有效空间。
JS代码范例如下:
  1. <script type="text/javascript">
  2.       changePageSize();
  3.       $(window).resize(function(){changePageSize();});
  4.       function changePageSize(){
  5.            var PAGE_SIZE= parseInt(($(window).height()-108)/37);
  6.            if(PAGE_SIZE!=<?=$PAGE_SIZE?>)
  7.                       window.location= "search.php?PAGE_SIZE="+PAGE_SIZE;
  8.       }        }
  9. </script>
复制代码

以上范例应用于坛子里《自定义公告通知模块 for V11》的《自定义公告模块 forTDOA2016 2017 V11 安装及升级 By BlueSword.rar》附件里的\webroot\general\mis_module\show\search.php文件。

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



3

主题

51

回帖

420

牛毛

游客

积分
474
发表于 2020-5-24 10:13:08 | 显示全部楼层
谢谢楼主的分享

257

主题

1154

回帖

1万

牛毛

游客

积分
18851
QQ
 楼主| 发表于 2020-7-7 15:22:06 | 显示全部楼层
通达OA V11版CRM组件的源码,在安装文件webroot\attachment\update\4.php的82行前,建议自行插入一条语句:
  1. mysql_set_charset(MYOA_DB_CHARSET, TD::conn());
复制代码


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


QQ图片20200707152047.png
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

咨询电话:400 818 0505 通达OA,国内协同管理软件行业内唯一的央企单位,中国协同OA软件的领跑者,优秀协同办公解决方案供应商

论坛帮助中心|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|由NB5牛论坛提供技术支持用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2024-10-4 03:23 , Processed in 1.257133 second(s), 40 queries .

Powered by Discuz

Copyright © 2001-2024, 北京通达信科科技有限公司.

快速回复 返回顶部 返回列表