如何修改[!--show.listpage--]在列表页中的展示?

本文介绍如何在帝国CMS中定制列表页分页显示,通过修改e/class/t_functions.php文件中的sys_ShowListMorePage函数,可以灵活控制分页信息的展示内容。

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

[!--show.listpage--]在帝国模板中地位重要,基本上每个模板都会有对列表页显示的调用,

一般的格式是:$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;

解释就是:第一字符串(一般是记录条数).首页. 前页.当前.后页.最后页

实话说,信息还是比较全面的,但是有些条件下,这么全面的信息可能并不是我们想要的,

因此必须能对这个信息完成定制。

首先必须找到这个模块定义在    e/class/t_functions.php 文件中,

找到 sys_ShowListMorePage 函数,在最后返回部分:

$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;

去掉你不想显示的字符串即可,比如我不想要前面的记录总条数,那么只需要把 $firststr. 去掉即可,

修改后如下:

$returnstr=$toppage.$prepage.$returnstr.$nextpage.$lastpage;

更新列表页,这样在最终的展现,就不会出现记录数。

 

修改前:

 

 

修改后:

<think>嗯,用户给了一段ABAP代码,看起来是SAP报表程序的结构。他们希望优化这段代码并加上注释。首先,我需要仔细阅读这段代码,理解各个部分的功能。 用户提供的代码以REPORT ZQT开头,然后包含了几个INCLUDE文件,比如YPPR074_TOP、SCREEN、FROM、CLASS。这些INCLUDE通常用来分割程序的不同部分,比如数据定义、屏幕元素、表单逻辑和类定义。接下来是DATA语句声明了functxt变量,类型为smp_dyntxt。然后是INITIALIZATION、AT SELECTION-SCREEN等事件块,以及一些PERFORM语句调用子例程。 用户可能希望优化代码结构,添加注释,使代码更易读和符合ABAP最佳实践。首先,检查代码是否有冗余部分,比如不必要的空行或重复的注释。然后,考虑将INCLUDE文件名改为更清晰的名称,例如将YPPR074_TOP改为ZINCLUDE_TOP,这样更符合命名规范。 另外,代码中的事件块如INITIALIZATION、AT SELECTION-SCREEN等,虽然已有部分注释,但可以进一步用中文详细说明每个事件的作用和执行时机。例如,INITIALIZATION在程序启动时初始化数据,AT SELECTION-SCREEN在屏幕显示前处理输入验证等。 PERFORM调用的子例程名称如frm_ready_report_cx、frm_pre_fieldcat等,可能需要更明确的命名,例如使用动词开头,如prepare_report_data、build_field_catalog等,这样更直观。同时,在注释中解释每个子例程的具体功能,帮助其他开发者理解。 在代码结构上,确保每个事件块之间有适当的空行分隔,注释对齐,增加可读性。此外,检查是否有可以合并或优化的步骤,例如在START-OF-SELECTION中处理数据准备,END-OF-SELECTION处理ALV显示的设置,这些部分是否逻辑清晰。 还需要注意ABAP的编码规范,比如变量命名使用有意义的前缀,避免缩写,使用英文或一致的命名方式。虽然用户要求用中文注释,但变量和子例程名最好保持英文,符合SAP标准。 最后,添加文件头的注释,说明程序名称、作者、创建日期、功能描述等,方便后续维护。同时,在每个INCLUDE文件前加上注释,说明其包含的内容,如全局变量定义、屏幕元素、子例程、类定义等。 可能用户没有提到但需要注意的点包括:检查INCLUDE文件是否存在,确保程序没有语法错误;确认所有子例程在对应的INCLUDE中有实现;ALV显示部分是否符合最新的SAP UI标准;是否有权限检查或异常处理机制需要补充。 总结下来,优化方向包括代码结构整理、命名规范、注释补充、符合ABAP最佳实践,以及确保程序功能正确性和可维护性。</think>以下是对代码的优化及详细注释建议: ```abap *&---------------------------------------------------------------------* *& 程序名称 : ZQT * *& 作者 : [您的姓名] * *& 创建日期 : [日期] * *& 描述 : 自定义报表程序,用于展示ALV网格数据 * *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& 包含文件(建议按功能拆分) * *&---------------------------------------------------------------------* INCLUDE ZINCLUDE_TOP. " 全局变量、结构、表定义 INCLUDE ZINCLUDE_SCREEN. " 选择屏幕定义 INCLUDE ZINCLUDE_FORM. " 子例程(Form)定义 INCLUDE ZINCLUDE_CLASS. " 类和方法定义 *&---------------------------------------------------------------------* *& 全局数据定义 * *&---------------------------------------------------------------------* DATA: functxt TYPE smp_dyntxt. " 用于功能代码文本的存储 *&---------------------------------------------------------------------* *& 初始化事件(程序启动时执行) * *&---------------------------------------------------------------------* INITIALIZATION. PERFORM init_default_values. " 初始化默认值 *&---------------------------------------------------------------------* *& 选择屏幕处理事件(屏幕显示前执行) * *&---------------------------------------------------------------------* AT SELECTION-SCREEN. PERFORM validate_input. " 输入参数校验 *&---------------------------------------------------------------------* *& 主数据处理事件(选择屏幕确认后执行) * *&---------------------------------------------------------------------* START-OF-SELECTION. PERFORM get_data_from_db; " 从数据库获取数据 PERFORM process_business_logic; " 执行业务逻辑处理 *&---------------------------------------------------------------------* *& 数据展示准备事件(数据处理完成后执行) * *&---------------------------------------------------------------------* END-OF-SELECTION. PERFORM build_header USING gt_list_top_of_page[]; " 构建报表抬头 PERFORM prepare_fieldcat CHANGING gt_fieldcat[]; " 准备字段目录 PERFORM setup_alv_layout CHANGING gs_layout; " 设置ALV布局 PERFORM register_events CHANGING gt_events[]; " 注册事件处理 PERFORM display_alv_report; " 展示ALV报表 *&---------------------------------------------------------------------* *& 页面抬头输出事件(每页顶部显示) * *&---------------------------------------------------------------------* TOP-OF-PAGE. PERFORM print_page_header; " 输出页眉信息 *&---------------------------------------------------------------------* *& 页面结尾输出事件(每页底部显示) * *&---------------------------------------------------------------------* END-OF-PAGE. PERFORM print_page_footer; " 输出页脚信息 ``` 优化建议说明: 1. 命名规范优化: - 将 `YPPR074_*` 系列包含文件重命名为更有意义的名称(如示例中的`ZINCLUDE_*`) - 子例程命名采用动词+名词结构(如`get_data_from_db`) 2. 事件处理优化: - 每个事件块添加中文注释说明执行时机 - 拆分数据处理逻辑到独立子例程 - 增加输入参数校验环节 3. ALV显示优化: - 明确分离布局设置、字段目录、事件注册等步骤 - 使用更语义化的子例程名称 4. 注释规范: - 添加程序头文件说明 - 关键步骤添加功能注释 - 子例程参数添加USING/CHANGING说明 5. 代码结构优化: - 使用分号分隔同一行的多个PERFORM调用 - 保持一致的缩进格式 - 移除冗余空行 建议补充的增强功能: 1. 异常处理机制(TRY/CATCH) 2. 权限检查(AUTHORITY-CHECK) 3. 后台作业支持(JOB SUBMIT) 4. 导出功能(Excel/PDF导出) 5. 动态选择屏幕字段控制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值