请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
sdueducn998(uid:58841)
职业资格认证:FCA-FineReport | FCA-FineBI
原创-批量进行决策平台用户授权管理解决方案
本帖最后由 sdueducn998 于 2016-5-23 22:53 编辑 批量管理决策平台用户授权 决策平台的用户授权缺少批量导入和管理功能,要是用户数量少的话还可以,如果用户数量多,几百甚至上千近万的话,光点鼠标也点到手抽筋。其实这个问题也容易解决,不从决策平台或者插件入手,而是利用数据库来管理。例如管理多公司,多部门,4-5千用户,就很坑爹了。372491. Finedb数据库用户相关表解释(针对于未使用用户同步数据集功能)1) fr_t_user 这个表存储的是用户表,注意,仅仅是用户,相当于一个基础的用户数据,至于这个用户是不是有登陆平台的权限,并不是由这个表决定的,但是登陆平台的用户必须是这个表内存在的。如果fr_t_user 内没有,那对不起,即使授权里面有也没法登陆,因为密码没设定。2) fr_t_loginuser这个表才是真正的平台登陆权限管理表。先看下这个表的结构id:自动生成,也可以转换成非自动。建议还是转成非自动的好。Username:对应fr_t_user表中的username,必须是唯一不重复。建议用编码或者编号,类似于工号之类的比较合适。Logintype:这里需要特别注意。Logintype只有三个值:1,2,3 其他值一概是错误的。1:代表有登陆网页管理平台的权限;2:代表有登陆移动端(app)的权限;3:代表两个平台均具有登陆权限。3) 经过上面的解释,相信大家也都清楚了,权限批量设置的方式就是批量管理fr_t_loginuser这个表。对于开启了用户同步数据集功能,那fr_t_user这个表就用不到了,只有fr_t_loginuser有用。37250372512. 下面开始讲如何来批量管理fr_t_loginuser。1) 直接用数据库管理软件来管理。适用于启用了内置hsql转mysql,即软件直接管理mysql而并非是内置的HSQL。推荐软件navicat,不二之选。A. 直接从excel导入。设计一张授权管理的excel表,只要包含username和logintype就可以。如图。根据需要批量设置好logintype的值,然后打开navicat,导入到fr_t_loginuser表即可。B. 直接从数据库导入,同样需要设置好logintype。这样不管多少用户,可以一次搞定,有时候excel还是比较方便。372532) 利用设计器制作模板来管理,适用于所有情况。尤其适用于做小批量调整的情况。ds1是你存放user信息的数据集,不需要全部数据都取,只要有username或者是userid也就是loginname就可以了。logintype可以用下拉,或者其他。如果部门分层很清晰可以加上控件做筛选,具体不多介绍,自己看教程和帮助文档。写入数据库就是fr_t_loginuser,需要注意的是,如果你的fr_t_loginuser设置了id未自动生成,那就不要再选择id填报了。否则出错。37255372543) 直接管理HSQL,不推荐这种方式,很难操作。如果要尝试的话,推荐用DBeaver试试。适用于对于未将内置HSQL转为MYSQL,且未开启用户同步数据集功能,即决策平台使用的是FR内置的HSQL数据库中的数据。连接方式不多做解释,直接连数据库,或者是启动hsql的server模式,连接server,如图所示是直接连接数据库。建议采用这种方式,简单。注意:驱动要选择FR自带的fr-third-8.0.jar,否则出错。37252模板就不放了。太简单了。大家可以根据自己的实际情况作出适合于自己的模板。下一次发一个角色管理。
解决因内置hsql锁死出现的各种诸如暂存错误的解决方法
本帖最后由 sdueducn998 于 2016-5-19 13:54 编辑 剥离HSQL服务,设置为独立Server模式(以下为文字说明,附件包里面有图文版说明和相关文件)FineReport集成的HSQL服务会莫名其妙的出现各种问题,例如当前线程锁死,无法使用暂存等等。原因在于自带HSQL服务启动模式并非server,所以会出现多线程使用时锁死,无法访问。解决这一问题的方法是运行系统时不使用Finereport自带服务启动和管理finedb下的数据库,而使用其他方式。目前使用mysql作为服务管理的插件已经上线,虽然可以替代大部分的原HSQL管理下的功能,但是部分功能无法实现,例如填报暂存功能。在FR不进行大的变动前,比较合适的方法是将HSQL单独提取做成独立服务,并采用server多线程模式。具体方法如下:1. 下载HSQLDB(可以直接从官网下载)提取hsqldb.JAR,或者直接下载该hsqldb.JAR。2. 下载完成后,将FineReport \WebReport\WEB-INF目录下的finedb文件夹,整体拷贝到你需要的目录,作为以后独立HQSL服务器要访问的数据库。例如放到C盘根目录下。名称可以任意,尽量不要用中文和特殊符号。该目录下的文件,也可以重新命名,但要注意的是,所有文件的名称必须相同,后缀不可以更改。建议还是不要修改,用默认的db做文件名即可。注意:拷贝后需要删除db.lck文件(如有)!3. 将下载完成的hsqldb.jar或者HSQLDB解压后lib目录内的hsqldb.jar拷贝至刚才路径的finedb文件夹中。例如我这里是c:\finedb4. 测试hsql服务器是否可以正常使用(该步骤可以跳过,直接进入下一步)1) 以管理员模式启动CMD模式,进入到存放hsqldb.jar这个文件的文件夹,录入我这里是C:\FINEDB2) 输入以下命令(直接拷贝粘贴即可): java -classpath hsqldb.jar org.hsqldb.Server -database.0../finedb/db -dbname.0 xdb 注释:这是启动hsql服务的命令,Server代表启动的是服务器模式,可以多线程访问,”-database.0 ../finedb/db”是指定数据库存放路径及数据库名称,../finedb/是路径,db是数据库名,这里应用的是相对路径,当然也可以使用绝对路径。-dbname.0 xdb 是数据库别名,xdb可以任意设定,这个别名下面会用到。整个命令的含义是,打开相对路径finedb下的db数据库,并命名别名为xdb。如果该目录下没有该数据库,则新建。注意命令行内是有空格的!!!成功界面如下:3) 测试数据库是否可以连接。一定不要关闭刚才打开的CMD窗口,关闭以后服务就中止了。新开一个CMD窗口,依旧进入C:\FINEDB,输入以下命令: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager 这是调取hsql图形化数据库管理器的命令。成功后如下图:按照如下设置:Type这里我们启动的是Server模式,所以要选择Server,URL这里,将我们刚才命名的别名xdb添加上,然后点击OK,出现下列画面就代表Server启动和连接正常。左侧就是finedb下db.data里面的所有表了。如果设置了非9001端口,请加上端口号。如出现下列界面,证明服务器启动正常,可以顺利连接。左侧出现的就是db数据库里面的数据了。5. 如果第四步执行的没有问题,那我们就可以将单独的HSQL服务设置为随系统启动了。1) 建立两个bat批运行文件。名称自定义即可,我的是runServer.bat和runManager.bat。runServer.bat是启动HSQL服务的,是必须;runManager.bat是启动管理界面的,可选用。建议也一起创建。2) 打开runServer.bat,用文本打开或者用notepad++,建议用notepad++,里面写入如下内容:cd C:\finedb@Java -classpath hsqldb.jar org.hsqldb.Server-database.0 ../finedb/db -dbname.0 xdb注释:cd后面是你存放数据库文件和hsqldb的路径,可以根据实际情况进行修改,这一句的作用就是转至该目录下;下一句就是在该目录下执行什么命令,与前面进行测试的命令行是一致的,不再解释。3) 修改完毕后,保存。4) 然后直接运行该bat文件,可以看到服务已经启动。注意在运行时,不能关闭cmd窗口,关闭窗口服务会一同关闭。6. 将hsql服务设置成随系统自动启动如果要成为随系统启动的服务,可以将runServer.bat设置成自动启动,不过这样每次都有个cmd窗口,不小心关了就麻烦。所以我们用vbs做一个隐藏cmd窗口的功能。1) 新建一个文本文档,输入以下内容: DIM objShellsetobjShell=wscript.createObject("wscript.shell")WScript.Sleep(1000)iReturn=objShell.Run("cmd.exe /Cc:\finedb\runserver.bat", 0, TRUE) 这里c:\finedb\runserver.bat可以根据你的批处理文件位置和名称进行更改。其他保持不变。或者根据情况修改。然后另存为vbs文档。2) 将该vbs文件拖到启动文件夹内即可。7. 将我们剥离出来的HSQL服务设置成默认的finedb服务,打开设计器,定义数据连接,定义为剥离出的服务器,然后打开datascource.xml文件,将JDBCDatabaseAttr部分的复制出来,放在config.xml文件的底部,保存重启服务即可。详情请参考:http://bbs.fanruan.com/thread-64463-1-1.html经过以上步骤,将原集成的HSQL,剥离出来,并设置为自动启动的server模式,基本上可以解决所有因为多线程锁死导致的问题。欢迎大家一起交流。 所用软件,已经打包。本人测试环境为win7 x64 SP1. 具体操作步骤和相关文件请下载附件 这个说明也是在参考了论坛和其他高手的文档基础之上制作,所以免费。也希望FR可以做的更好,如果有可能,是否可以考虑将HSQL更换为通用型更好的mysql或者sqlserver数据库。
个人成就
内容被浏览26,394
加入社区8年358天
返回顶部