常见问题
遇到问题请先升级至最新版，仍未解决可向团队反馈 点击反馈问题

1. 积木报表是免费吗？
回答： 积木报表代码不开源，但是功能可以免费使用。

大屏支持离线安装，积木BI的推出，可以永久免费使用。
针对公司用户我们提供企业版，免费版本也会持续发布。
2. 功能操作提示 没有权限，请联系管理员分配权限！
回答：这是因为报表针对敏感接口加了角色和权限控制，需要进行内置角色权限集成，具体见文档权限集成配置(重要)

3. 积木报表怎么独立运行？
Docker方式启动
集成Demo启动
4. 启动报mongo错误
启动报错：
org.mongodb.driver.cluster : Exception in monitor thread while connecting to 
server localhost:27017 while accessing MongoDB with Java

解决方案： 排除mongo启动默认加载 MongoAutoConfiguration
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})

5. 报表配置JeecgBoot菜单
{{ window._CONFIG['domianURL'] }}/jmreport/list?token=${token}

参数说明

{{ window._CONFIG['domianURL'] }} ：后台项目访问地址
${token} ：登录token用于权限控制
前端组件：layouts/IframePageView 菜单配置截图


6. 积木报表数据源支持哪些数据库？
数据库 支持
MySQL √
Oracle、Oracle9i  √
SqlServer、SqlServer2012  √
PostgreSQL √
DB2、Informix √
MariaDB  √
SQLite、Hsqldb、Derby、H2 √
达梦、人大金仓、神通 √
华为高斯、虚谷、瀚高数据库、 TDengine 涛思数据 √
阿里云PolarDB、PPAS、HerdDB √
Hive、HBase、CouchBase √
导入Excel、csv、json文件数据集  √
sqllite、TiDB、Doris、clickhouse、 MongoDB-BI  √
elasticsearch、mogodb √
积木平台暂时只提供mysql脚本，其他数据库请自转 Navicat工具mysql转库oracle步骤
7. API数据源怎样实现条件查询？
具体请看查询条件设置

8.报表集成到自己的springboot项目
请求参数如果后台接收的实体属性里没有，后台报错：not marked as ignorable



解决方法：增加application.yml的配置jackson.fail_on_unknown_properties: false



9.积木报表SQL数据集中sql语句加上limit在数据预览中报错?
sql语句写法:

 报错截图：



原因是sql语句末尾加上了limit，我们在后台已经默认分页，故不用在末尾加上limit，否则会报错

10.如何去掉打印页面的页眉、页脚？
在打印弹窗页面，点击“更多设置 ->选项”，去掉“页眉和页脚”前边的对勾，打印界面就不显示页眉和页脚了；



11.报表能否集成到vue项目中?
不能集成到前端项目，因为积木报表提供的JAVA依赖，只能集成到JAVA项目中。

12.sql或者api解析失败的问题
sql或者api必须有查询结果才行，不然无法解析字段 相关issue #2305

13.怎样自定义打印页面设置？
打印区域除了可以手动选择“A4、A3...”，还可以根据自己需求，自定义大小。

操作参考打印区域设置

14.预览时，列表数组在预览界面怎么只显示一条数据？
（1）检查在数据集解析的时候 ，是否勾选“是否列表”；



（2）设计界面拖过来的数据字段，是否为#开头；



15.横向动态列分组怎么设计？
操作参考文档

16.预览页面多内容，但设计界面没有，怎么处理？
错误样式图：



解决方案： 选中多出来的地方（可多选一些地方），右键点击：删除数据，就没有了；



17.积木报表SQL数据集中数据预览为什么只显示10条数据?
为了避免大数据问题，故只取前10条数据进行展示



18. 积木报表数据源怎么配置？
添加数据源文档

19. 怎样把报表集成到JeecgBoot的菜单中？
备注：大屏和报表的操作是一样的；

（1）复制报表访问链接 （2）在系统管理菜单管理进行配置 （3）点击新增按钮填写信息

注意：
a) 前端组件必须按照格式填写 layouts/IframePageView *用window._CONFIG['domianURL']代替IP地址、端口号和项目名称,并用{{}}包起来;
b）末尾必须携带参数，如（?sex）；
c) 是否为路由菜单：是；




（4）角色授权 路径：在系统管理->角色授权找到自己对应的角色,鼠标放到更多->授权；

勾选刚才创建的菜单
刷新页面即可看见点击菜单


20. 数据集配置点击确认会报错
https://github.com/jeecgboot/JimuReport/issues/439
SQL state \[null\]; error code \[0\]; Error; nested exception is java.sql.SQLException: Error

那么就查看mysql数据库连接驱动是版本是5.1.47,如果是那么请将驱动升级版本或降低版本，如：

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.46</version>
    <optional>true</optional>
    <scope>runtime</scope>
</dependency>

22.如何把SQL数据集拼接的查询条件加到数据源语法的group by前面
参考报表参数设置

23.预览页面与设计页面不一致，在预览时出现空白行
检查数据集是多条数据的集合，还是单条数据的对象；如果是集合使用#，如果是对象则需要使用$ 如果页面多行使用#，则会被当做多个集合，中间自动填充空白行。



24.为什么配置参数后勾选查询后，下拉单选变成输入框
参数不是字段，无法进行配置后就可以下拉单选；可配置字典code实现下拉

25.一页展示一条数据，进行循环打印
可将整页作为循环块，设置为循环块 参考文档：点击查看

26.mysql数据库类型tyint被转换成了true和false
需要在维护界面，数据源地址出拼接上

tinyInt1isBit=false



27.数据库里图片字段为图片链接，如何展示在报表中
添加数据源取出图片字段，将单元格类型设置为图片即可，如下图：



28. 达梦数据库提示表名不存在
 因为达梦数据库如果不是当前用户名登录的(如SYSDBA)，访问不同名的（除了SYSDBA）外，均需要模式名.表名，那么需要你如下图操作，在同名下新建表



29. 积木官网添加数据源
积木官网添加数据源需使用远程地址，不可使用localhost。

32.字典code中直接输入sql语句，下拉框单选项乱序
解决方案：可以填写 order by 进行自定义排序，如

select dict_code as value,dict_name as name from jimu_dict order by create_time

注意：如果在sqlserver下需要加上top 10（10代表多少条），不然会报错，如

select top 10 dict_code as value,dict_name as name from jimu_dict order by create_time

33.导出excel报错版本不匹配，java.lang.NoSuchMethodError
将poi版本升级到4.1.2即可解决

34. 如何增加列数
列索引数量可根据需要修改 参考文档：点击查看



35.sql数据集下拉选择数据源，下方列表显示空白，但是有数据
目前为了统一规则后台返回的数据的对象均为小写(name)，如果规则不匹配，请改成小写



38.预览界面查询栏如何设置默认展开？
解决方案：设置JS增强



function init(){
  this.queryPanel = '1';
}

39.sqlServer存储过程中有临时表获取不到数据
可以通过set nocount on来解决

 相关issue: https://github.com/jeecgboot/JimuReport/issues/726

40.若依集成积木报表1.4.4+ 新建报表报错
freemarker.core.InvalidReferenceException

升级fastjson到1.2.78

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.78</version>
</dependency>

相关issue：issue

41.模板示例中条件查询预览失败
没有对应的表

42.打印的时候，字体加粗效果丢失
宋体打印不支持加粗，换成默认的字体

43.sqlserver提示驱动不存在
在pom文件中添加sqlserver依赖

   <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
        <optional>true</optional>
        <scope>runtime</scope>
    </dependency>     

44.sqlserver下使用CONVERT函数注意事项
不可与order by一起使用
CONVERT函数需指定别名 如：CONVERT(varchar(7),CREATE_TIME) as CREATE_TIME
45.能否设置隐藏的查询条件
问题描述： 同一报表，希望不同的人看到不同的数据，目前可以通过JS增强设置初始值，但又不想让用户修改，能否提供设置查询条件隐藏的功能，这样便于数据权限的控制。 分析说明：此问题目的在于不同的人看不同的数据，提问人想设置查询条件默认值且不允许修改

1.不同的人看不同的数据：可以使用系统变量 参考文档 如：

sql数据集：select * from demo where create_by = '#{sysUserCode}'
api数据集： http://xxx.xxx.xxx/query?create_by=#{sysUserCode}

注意：此处的`sysUserCode`,是系统默认设置的登录人的账号，如果重写getUserInfo方法则需要重新设置，文档中的代码，只适用于jeecg-boot不可照搬，仅供参考【推荐此方案】。


2.想设置查询条件默认值且不允许修改: js增强可以设置查询条件的默认值，也可以往查询参数对象里设置一个自定义的参数值，这个是支持的。但是，在配置数据集的时候，下方tab报表字段明细和报表参数中，会配置一些字段的信息，如果js增强定义的参数名不在这两个tab下，那么无效！所以做法如下：
定义数据集（不需要将参数name设置为查询条件）：
sql数据集：select * from demo where create_by = '${name}'
api数据集： http://xxx.xxx.xxx/query?create_by=${name}

定义js增强,设置name的值：
function init(){
    this.queryInfo['name'] = 'scott'
}

46. 日期默认查询，无法设置默认值为上月
问题描述： 使用dateStr 默认取上月实现不了，用=concat(dateStr('yyyy'),'-', dateStr('MM', -1))返回2021-9，不是2021-09，少了一位。 建议实现=dateStr('yyyy-MM'，-1) 返回 2021-09，而不是使用天数计算偏移量。
解决方案： 参考文档 中的升级功能

47. 打印多出一页空白纸张
解决方案： 打印导出，空白行和没有行是有区别的，界面上都是空白没区别，但是实际数据存储，空白行会占位的。
查看控制台打印的数据：你的rows都多达90多行了，说明是之前你设计的很多历史数据没有删除行，导致多出很多空白页。



48. mongodb用法
1). 以授权的方式启动Mongo,给使用的数据库添加用户

切换数据库 use test

创建用户 db.createUser({user: "root", pwd: "123456", roles: \[{ role: "dbOwner", db: "test" }\]})

参考博客：https://www.cnblogs.com/jacksoft/p/6916137.html

2). mongodb-driver-sync 驱动集成用法 参考博客： https://blog.csdn.net/nyzzht123/article/details/107936552 https://www.jianshu.com/p/5186fb5a1292

49、出现jsqlparser不兼容问题
如果出现jsqlparser不兼容问题，请这么引用
<dependency>
  <groupId>org.jeecgframework.jimureport</groupId>
  <artifactId>jimureport-spring-boot-starter</artifactId>
  <version>{版本号}</version>
  <exclusions>
    <exclusion>
      <artifactId>minidao-spring-boot-starter</artifactId>
      <groupId>org.jeecgframework</groupId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.jeecgframework</groupId>
  <artifactId>minidao-spring-boot-starter</artifactId>
  <version>1.8.8</version>
</dependency>

50、关于积木报表在开发、生产环境增量同步https://github.com/jeecgboot/JimuReport/issues/1928
51、数据库字段为关键词，字段作为查询条件报错
报错信息：发现mysql下关键词字段"year_month"缺少"`"

SELECT COUNT(1) total FROM ( select * from (select `year_month`,name,age from `demo`) jeecg_rp_temp  where year_month=? ) temp_count


解决方案：关键词字段请用as重命名一下



52、依赖redisson后编辑字典、查询字典报错：
报错信息：

java.lang.IllegalArgumentException: Cannot find cache named 'jmreport:cache:dict' for Builder

解决方法：配置文件增加：

spring:
  cache:
    type: redis

53、未登录的情况下导出excel和pdf报错
解决方案：在SpringSecurityConfig页面排除导出excel和导出pdf的请求地址，其他同理



 .antMatchers("/jmreport/exportPdfStream", "/jmreport/exportAllExcelStream")