帆软报表01

本文介绍了如何在帆软报表中进行分页设置,使用公式实现A4纸每10行后自动分页。接着展示了动态查询条件参数的配置方法,包括数据集SQL拼接和查询条件控件的设置。最后,提供了报表居中、冻结标题时去除黑框的解决步骤,通过模板Web属性设置和JS事件代码实现样式优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、分页设置

选中A4单元格,右键–条件属性

这里写图片描述

选择+,新建分页,行后分页,类型选择公式:
公式:&A4 % 10 = 0

这里写图片描述

2、动态查询条件参数:

效果展示:

这里写图片描述

配置步骤:
1)数据集sql拼接

查询条件参数(分公司、开始年份、截止年份、开始月份、截止月份)

select   T.分公司,
         T.年份,
         T.月份,
         t.PJ01_0001  AS  净资产报酬率,
         t.PJ01_0002  AS  收入利润率,
         t.PJ01_0003  AS  总资产周转率,
         t.PJ01_0004  AS    风险杠杆
         
<think>我们正在讨论帆软报表中制作万年历功能的步骤。帆软报表(FineReport)是一款企业级Web报表工具,万年历功能通常用于在报表中展示日期选择器或日期导航。 根据帆软报表的设计模式,万年历功能可以通过以下几种方式实现: 1. 使用参数面板的日期控件:这是最简单的方式,直接使用内置的日期控件。 2. 自定义万年历:通过编自定义HTML或JavaScript,或者使用帆软的插件来实现更复杂的万年历。 然而,用户询问的是“制作万年历功能”的步骤,我理解用户可能需要一个完整的日历展示(类似日历表格),而不仅仅是日期选择器。在帆软报表中,我们可以通过以下步骤实现: 步骤1:准备数据 万年历需要展示一个的日期,通常包括星期几、是否为节假日等。因此,我们需要一个数据源来提供这些信息。我们可以通过数据库生成日期表,或者使用帆软的内置函数来生成。 步骤2:设计模板 在帆软报表设计器中,我们可以通过设置一个类似于网格的报表来展示日历。每个单元格代表一个日期。 步骤3:绑定数据 将生成的日期数据绑定到单元格中。 步骤4:设置样式 根据日期是周末还是工作日,设置不同的背景色、字体颜色等。 步骤5:添加交互(可选) 例如,点击某个日期可以跳转到该日期对应的报表,或者弹出详细信息。 具体步骤: 1. 创建数据集: 如果数据库中有日期表,可以直接使用。如果没有,我们可以使用SQL语句生成(不同数据库语法不同,以MySQL为例): ```sql -- 假设我们需要生成2023年的所有日期 SELECT date AS calendar_date, DAY(date) AS day_of_month, MONTH(date) AS month, YEAR(date) AS year, DAYOFWEEK(date) AS day_of_week -- 注意:在MySQL中,周日是1,周一是2,...周六是7 FROM ( SELECT DATE('2023-01-01') + INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS date FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) AS c ) AS dates WHERE YEAR(date) = 2023 ``` 2. 在帆软设计器中,新建一个决策报表(frm)或者普通报表(cpt)。这里建议使用决策报表,因为日历的布局更灵活。 3. 在决策报表中,我们可以使用表格组件或者面板组件来布局。通常,我们可以用7列(一周7天)和5-6行(一个最多可能有6周)的表格来展示。 4. 将数据集中的日期数据按照份过滤,然后按照星期几分配到对应的单元格中。 例如:我们可以设置一个参数(比如month_param)来选择份,然后在数据集中过滤出该的日期。 5. 在单元格中,我们可以显示日期,同时设置条件属性来改变样式。比如,周末的日期显示为红色,工作日的日期显示为黑色。 6. 如果需要,我们可以为每个日期单元格添加点击事件,例如点击后跳转或者传递参数。 7. 另外,我们还可以添加上个、下个的按钮,用于切换份。 注意:帆软报表内置了一些日期函数,例如:TODAY()获取当前日期,DATESUBDATE()计算日期差等,这些函数可以在公式中使用。 如果用户希望使用更复杂的万年历(包括农历、节假日等),则需要准备包含这些信息的数据集,然后在对应的日期单元格中显示农历和节假日标记。 参考文档:帆软官方文档中关于参数控件、决策报表设计以及条件属性的部分。 由于万年历功能相对复杂,这里给出一个简化的步骤概述。 相关问题: 1. 帆软报表中如何动态生成日期表? 2. 如何在帆软报表中实现上下切换功能? 3. 帆软报表中如何根据日期动态设置单元格样式? 4. 帆软报表中如何为日期单元格添加点击事件?</think>在帆软报表中设计万年历功能,可通过以下步骤实现: --- ### **步骤1:创建日期数据集** 在数据库或帆软内置数据集中生成日期数据源: ```sql -- 示例:MySQL生成2023年日期表(含年//日/星期) SELECT date AS full_date, YEAR(date) AS year, MONTH(date) AS month, DAY(date) AS day, DAYOFWEEK(date) AS week_day -- 周日=1, 周一=2,...,周六=7 FROM ( SELECT DATE_ADD('2023-01-01', INTERVAL t4*10000 + t3*1000 + t2*100 + t1*10 + t0 DAY) AS date FROM (SELECT 0 t0 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0, (SELECT 0 t1 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1, (SELECT 0 t2 UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t2 -- 最多生成365天 ) dates WHERE date BETWEEN '2023-01-01' AND '2023-12-31' ``` --- ### **步骤2:设计报表模板** 1. **新建决策报表**(`.frm`文件) 2. **拖入报表块**: - 设置7列(周一至周日)和6行(每最多6周) 3. **绑定字段**: - 单元格中插入公式:`${full_date}` 显示日期 - 添加文本组件显示星期:`${week_day}` --- ### **步骤3:动态过滤数据** 1. **添加份参数**: - 创建参数 `month_param`(默认值=当前份) 2. **数据集过滤**: ```sql WHERE month = ${month_param} -- 动态筛选指定份 ``` --- ### **步骤4:样式优化** 1. **条件属性**: - 周末高亮(周六/周日): ```plaintext 条件:week_day = 1 OR week_day = 7 → 背景色设为浅红色 ``` - 当前日期标记: ```plaintext 条件:full_date = TODAY() → 字体加粗+边框 ``` 2. **农历显示**(需扩展): - 使用JavaScript插件或自定义函数转换公历为农历[^1]。 --- ### **步骤5:添加交互控件** 1. **份切换**: - 添加「下拉框」控件,数据字典:`1,2,...,12` - 绑定参数 `month_param` 2. **日期点击事件**: - 选中单元格 → 添加「超级链接」→ 传递日期参数到其他报表 --- ### **效果示例** | 周一 | 周二 | 周三 | 周四 | 周五 | <span style="color:red">周六</span> | <span style="color:red">周日</span> | |------|------|------|------|------|---------|---------| | | | 1 | 2 | 3 | **4** | **5** | | 6 | 7 | 8 | 9 | 10 | **11** | **12** | --- ### **注意事项** 1. 跨日期处理:通过SQL生成数据时包含上末/下初的日期,用CSS灰显非当日期。 2. 性能优化:大数据量时启用分页或按需加载。 3. 扩展功能:集成节假日库(如调用API或本地存储节假日数据)[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值