ABAP SUBMIT命令实战:串联标准报表实现数据自动化整合
1. 从一次紧急的报表需求说起那天下午业务部门的同事急匆匆地跑过来说他们需要一份新的销售分析报表这份报表需要整合三个不同模块的数据销售订单抬头信息、行项目明细以及后续的出货状态。他们希望在一个界面上选择公司代码和日期范围然后一键生成一份整合的Excel文件。听起来是个很常规的需求对吧我一开始也是这么想的脑子里立刻蹦出了几个方案写一个庞大的程序用JOIN把三张表关联起来或者用ALV的REUSE_ALV_GRID_DISPLAY做个复杂的输出。但当我仔细看了他们的要求后发现事情没那么简单。这三个数据源分别对应着SAP里三个不同的标准报表VA05销售订单清单、VL06O外向交货监控和VF05开票凭证清单。业务用户平时就是分别跑这三个报表然后把数据手工粘贴到Excel里做对比。他们需要的本质上是一个“报表的报表”——一个能自动串联起这三个独立查询流程的控制器。这时SUBMIT这个关键字就自然而然地浮现在了我的脑海里。在ABAP的世界里SUBMIT不是一个陌生的命令它就像是一个系统级的“遥控器”允许你的程序去启动另一个完整的报表程序。这不仅仅是调用一个函数那么简单它意味着你的程序可以接管另一个程序的整个生命周期从选择屏幕的参数输入到后台作业的提交再到最终列表结果的获取与处理。对于这种需要串联多个标准事务码或报表的场景SUBMIT几乎是唯一优雅的解决方案。它让你能站在巨人的肩膀上复用SAP系统内经过千锤百炼的标准逻辑和权限检查而不是自己从头去造轮子甚至去破解那些复杂的数据表关联关系。2. SUBMIT的本质程序边界的穿越与掌控在深入代码之前我们有必要先厘清SUBMIT在ABAP体系中的定位。它不是一个简单的函数调用CALL FUNCTION也不是一个模块调用CALL TRANSACTION。你可以把它理解为一种特殊的“程序执行请求”。2.1 与普通调用的核心区别想象一下你的ABAP程序就像一个独立的房间。CALL FUNCTION相当于你打开门请一位专家函数模块进来帮你完成一项特定任务任务结束他就离开你的房间程序上下文基本不变。而SUBMIT则是你构建了一个通往另一个完整房间的传送门你不仅要把自己“传送”过去还要带着一堆行李选择屏幕参数在那个房间里生活执行一段时间最后可能还要把那个房间里的特产输出数据带回来。这个比喻揭示了SUBMIT的几个关键特性独立的程序上下文被SUBMIT调用的程序我们称之为目标程序在一个全新的内部会话中运行。它拥有自己独立的内存空间INTERNAL TABLE 变量与你主程序的内存空间是隔离的。这意味着你不能直接在主程序里访问目标程序里声明的内表IT_VBAK反之亦然。完整的选择屏幕流程目标程序的选择屏幕会被触发。你可以通过SUBMIT语句的参数向这个选择屏幕传递值模拟用户输入。这是复用标准报表逻辑的核心。列表输出的定向捕获目标程序运行后通常会产生列表输出LIST。SUBMIT允许你通过EXPORTING LIST TO MEMORY等选项将这个列表“捕获”到内存中然后主程序可以再将其读出、分析或转换。2.2 核心语法结构与参数解析一个最基本的SUBMIT语句骨架如下SUBMIT program_name [WITH sel_screen_field EQ value] [AND RETURN] [VIA SELECTION-SCREEN] [EXPORTING LIST TO MEMORY] [TO SAP-SPOOL ...] [USER user VIA JOB jobname NUMBER jobcount].我们来拆解其中最常用、也最容易出错的几个部分program_name这是目标报表的程序名。可以是自定义报表Z或Y开头也可以是任何标准SAP报表如RFKKEP00。关键点这里填的是报表的程序名而不是事务码。例如事务码VA05对应的报表程序可能是SAPMV45A但直接SUBMIT ‘VA05’是行不通的。你需要通过SE93事务码查询或者直接查看报表属性来获取正确的程序名。WITH ... EQ ...这是向目标程序的选择屏幕传递参数的灵魂。sel_screen_field必须严格匹配选择屏幕上字段的技术名称Technical Name而不是你在屏幕上看到的标签Label。这个技术名称通常可以在选择屏幕的“字段列表”或通过F1帮助中的“技术信息”找到。例如公司代码字段可能叫S_BUKRS-LOW日期范围可能叫S_ERDAT-LOW和S_ERDAT-HIGH。注意对于选择选项SELECT-OPTIONS和参数PARAMETERS其传递方式有细微差别。选择选项通常有-LOW和-HIGH后缀而参数直接使用其名称。AND RETURN这个选项至关重要。它告诉系统当目标程序执行完毕后控制权应该返回给主调程序即你的程序。如果你省略了AND RETURN那么目标程序执行完后系统会停留在目标程序的上下文或列表界面你的主程序逻辑就中断了。在绝大多数需要继续处理结果的场景下都必须加上AND RETURN。VIA SELECTION-SCREEN如果加上这个选项系统会真的弹出目标程序的选择屏幕等待用户交互。这通常用于调试或需要用户临时调整参数的场景。在完全自动化的后台调用中我们一般不使用它而是通过WITH参数直接传值。EXPORTING LIST TO MEMORY这是将目标程序的列表输出捕获到内存的关键。捕获后你可以使用LIST_FROM_MEMORY函数族来读取这些数据。我们会在后面详细展开。3. 实战串联销售报表并导出Excel让我们回到开头的业务场景。假设我们已经查明报表VA05的程序名是SAPMV45A(这是一个简化示例实际更复杂)。报表VL06O的程序名是RM06EL00。我们需要传递公司代码(S_BUKRS-LOW)和创建日期范围(S_ERDAT-LOW,S_ERDAT-HIGH)。我们的目标是主程序提供一个选择屏幕用户输入条件后程序依次调用这三个报表捕获它们的列表数据整合后通过ALV输出并提供一个“下载Excel”按钮。3.1 主程序框架与选择屏幕首先我们创建主程序Z_SUBMIT_SALES_REPORT。REPORT z_submit_sales_report. * 选择屏幕定义 SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY. SELECT-OPTIONS: s_erdat FOR vbak-erdat OBLIGATORY. SELECTION-SCREEN END OF BLOCK b1. * 用于存储从各个报表捕获的数据 DATA: gt_va05_data TYPE TABLE OF ty_va05_output, 需要自定义类型 gt_vl06o_data TYPE TABLE OF ty_vl06o_output, gt_vf05_data TYPE TABLE OF ty_vf05_output. DATA: gt_final_data TYPE TABLE OF ty_final_structure. DATA: go_alv TYPE REF TO cl_salv_table.3.2 分步调用与内存列表捕获这里以调用RM06EL00(VL06O)为例展示最完整的流程。对于标准报表其列表输出结构是固定的我们需要先知道这个结构。步骤1确定列表结构一个笨但有效的方法是手动运行一次VL06O输出列表然后使用系统功能SYSTEM - LIST - SAVE - LOCAL FILE将其保存或者直接使用LIST_FROM_MEMORY实验性读取。更专业的方法是查阅SAP相关文档或通过SLIN等工具分析该报表的列表输出内表。假设我们通过分析确定其列表对应的一个结构是LIS_VL06O这是一个示例实际需要探查。步骤2调用并捕获列表FORM call_vl06o. DATA: lt_list_data TYPE TABLE OF abaplist WITH HEADER LINE. SUBMIT rm06el00 WITH s_bukrs-low EQ p_bukrs WITH s_erdat-low EQ s_erdat-low WITH s_erdat-high EQ s_erdat-high AND RETURN EXPORTING LIST TO MEMORY AND RETURN. IF sy-subrc 0. 成功提交并返回 CALL FUNCTION LIST_FROM_MEMORY TABLES listobject lt_list_data[] EXCEPTIONS not_found 1 OTHERS 2. IF sy-subrc 0. 成功从内存获取列表原始数据 现在需要解析 lt_list_data 中的行将其转换为我们需要的内表 gt_vl06o_data PERFORM parse_list_to_internal_table USING lt_list_data[] CHANGING gt_vl06o_data[]. ELSE. MESSAGE 无法从内存读取VL06O列表 TYPE E. ENDIF. ELSE. MESSAGE 提交VL06O报表失败 TYPE E. ENDIF. ENDFORM.步骤3解析列表数据这是整个过程中最复杂、最容易踩坑的一步。LIST_FROM_MEMORY返回的是列表的原始行数据ABAPLIST它包含了格式、颜色等信息我们需要从中提取出纯文本数据行并按照已知的列位置进行解析。FORM parse_list_to_internal_table USING it_list TYPE tab_abaplist CHANGING ct_data TYPE table. DATA: lw_list LIKE LINE OF it_list. DATA: lw_data TYPE ty_vl06o_output. 自定义结构 DATA: lv_line TYPE string. DATA: lv_delivery TYPE vbeln_vl, lv_material TYPE matnr, lv_qty TYPE menge_d. LOOP AT it_list INTO lw_list. 跳过表头、分页符等非数据行通常数据行从特定行开始 例如跳过前5行作为表头 IF sy-tabix 5. lv_line lw_list-line. **关键根据列表的固定列宽进行拆分** 假设我们知道列表布局交货单号在1-10列物料号在11-20列数量在21-30列 这是一个简化的例子实际需要非常精确地定位 lv_delivery lv_line0(10). lv_material lv_line10(10). lv_qty lv_line20(10). 清洗数据去除前导零、转换数据类型等 CALL FUNCTION CONVERSION_EXIT_ALPHA_INPUT EXPORTING input lv_delivery IMPORTING output lw_data-vbeln. CALL FUNCTION CONVERSION_EXIT_MATN1_INPUT EXPORTING input lv_material IMPORTING output lw_data-matnr. lw_data-menge lv_qty. APPEND lw_data TO ct_data. CLEAR lw_data. ENDIF. ENDLOOP. ENDFORM.重要提示这种基于列位置的解析极其脆弱。如果目标报表的布局因任何原因用户个性化、SAP版本升级发生变化解析就会失败。因此这通常被视为最后的手段。更优的方案是如果目标程序提供了将数据输出到内表或内存的接口例如通过EXPORT ... TO MEMORY ID应优先使用。3.3 更优方案探寻标准程序的“后门”对于重要的标准报表SAP有时会提供一些未公开的“后门”参数或内存导出点允许你直接获取内表数据而无需解析列表。这需要一些“侦探工作”搜索EXPORT ... TO MEMORY ID在目标报表的源代码SE38中搜索EXPORT或TO MEMORY。你可能会发现类似EXPORT itab TO MEMORY ID Z_MY_DATA的语句。如果找到在你的主程序中就可以用IMPORT itab FROM MEMORY ID Z_MY_DATA直接获取数据。查找隐藏的选择屏幕参数有些标准程序有隐藏参数用于控制输出目的地。例如参数P_MEMORY或P_CALLBACK。这需要查阅SAP注释或相关社区经验。使用SUBMIT ... WITH ...传递特殊参数例如某些报表支持P_DISPLAY ‘X’来抑制屏幕输出或者支持P_CALLBACK ‘X’并配合一个回调子程序来接收数据。以我们搜索到的热词“abap 获取标准程序的内表数据”为例这正是所有ABAP开发者面对SUBMIT时最渴望解决的痛点。遗憾的是并没有通用方法。这需要针对每个目标程序进行个案分析有时甚至需要创建SAP增强或修改标准程序不推荐除非万不得已。3.4 整合数据与ALV展示在分别获取了三个报表的数据后我们需要根据关键字段如销售订单号、交货单号进行关联和整合填充到最终的内表gt_final_data中。这个过程就是常规的ABAP内表操作LOOP,READ TABLE,MODIFY等。之后使用CL_SALV_TABLE来展示最终结果FORM display_alv. TRY. cl_salv_tablefactory( IMPORTING r_salv_table go_alv CHANGING t_table gt_final_data[] ). 启用工具栏功能特别是导出功能 go_alv-get_functions( )-set_all( abap_true ). 创建并添加一个自定义的“下载Excel”按钮 DATA(lo_functions) go_alv-get_functions( ). DATA(lo_toolbar) lo_functions-get_toolbar( ). ... (添加自定义按钮的代码) go_alv-display( ). CATCH cx_salv_msg INTO DATA(lx_msg). MESSAGE lx_msg-get_text( ) TYPE E. ENDTRY. ENDFORM.在自定义按钮的事件处理程序中你可以调用CL_SALV_EXPORT相关类或者更直接地使用GUI_DOWNLOAD函数将gt_final_data下载为Excel文件。4. 避坑指南SUBMIT调用中的“雷区”在实际项目中SUBMIT调用远比示例复杂。下面是我总结的几个关键“雷区”及应对策略。4.1 权限与授权检查的穿透问题当你SUBMIT一个标准报表时目标程序会执行其自身的权限检查AUTHORITY-CHECK。这意味着即使用户有权限执行你的主程序但如果他没有权限执行目标报表SUBMIT就会失败SY-SUBRC 0或者列表为空。应对策略提前模拟检查在SUBMIT之前尝试用相同的参数手动执行一次目标事务码确认当前用户是否有权限看到预期数据。错误处理必须完善地处理SUBMIT的返回码SY-SUBRC并给出明确的错误提示例如“您无权执行报表XXX请联系系统管理员”。使用技术用户对于完全自动化的后台作业可以考虑用一个拥有足够权限的技术用户USER ... VIA JOB来提交作业。但这涉及后台作业配置和密码安全存储问题需谨慎。4.2 选择屏幕的动态性与复杂性很多标准报表的选择屏幕非常复杂包含标签页、动态屏幕元素、互锁字段等。通过WITH参数传递值时可能会遇到字段名不匹配如前所述必须使用精确的技术名称。字段依赖字段B的值依赖于字段A。如果你只传了B没传A或者传的A值无效B可能不会被正确处理。屏幕变式用户通常使用变式Variant来存储常用筛选值。SUBMIT语句支持USING SELECTION-SET variant来直接使用一个变式这比逐个传递参数更可靠。SUBMIT rm06el00 USING SELECTION-SET ZMY_VARIANT 预设的变式名 AND RETURN EXPORTING LIST TO MEMORY.4.3 后台执行与SPOOL管理如果报表执行时间很长或者你希望完全脱离对话进程运行就需要用到后台作业。SUBMIT rm06el00 WITH ... USER sy-uname VIA JOB Z_JOB NUMBER lv_jobcount TO SAP-SPOOL SPOOL PARAMETERS lv_print_params WITHOUT SPOOL DYNPRO AND RETURN.这里涉及作业的创建JOB_OPEN,JOB_SUBMIT,JOB_CLOSE、监控和SPOOL输出假脱机的管理。你需要处理作业号JOBCOUNT的获取、作业状态的查询以及最终如何从SPOOL中获取输出列表使用RSPO_RETURN_ABAP_SPOOLJOB等函数。这是一个更高级的话题一旦涉足就必须考虑作业调度、异常处理和日志记录。4.4 性能陷阱与资源争用连续SUBMIT多个大型报表尤其是在前台对话进程中可能导致长时间等待用户界面会卡住直到所有SUBMIT执行完毕。内存消耗每个SUBMIT都会启动新的内部模式占用内存。如果捕获大型列表到内存消耗更大。数据库负载多个报表可能重复扫描相同的大表造成数据库压力。优化建议异步与后台化将整个串联逻辑放到后台作业中执行完成后通知用户如发站内信或邮件附带结果。数据缓存如果某些基础数据变化不频繁考虑先SUBMIT一次将结果暂存到Z表或集群数据库中后续调用直接读取缓存。精简数据仔细检查传递给每个报表的选择条件确保只获取最小必要数据集。5. 进阶思考SUBMIT的替代方案与架构权衡虽然SUBMIT功能强大但它本质上是一种“黑盒”集成存在耦合度高、稳定性依赖目标程序、解析输出困难等缺点。在现代ABAP开发中我们需要权衡利弊。何时使用SUBMIT需要100%复用标准报表的复杂业务逻辑和选择屏幕。没有其他可用的标准BAPI或函数接口来获取相同数据。需求是“自动化执行现有报表流程”而非创建新的数据视图。何时寻找替代方案直接表访问如果逻辑简单直接读取底层透明表如VBAK,VBAP,LIPS并自己实现关联性能更好控制力更强。这就是热词“abap select”所代表的直接路径。调用标准函数/BAPI许多标准报表背后都有对应的函数模块。例如某些清单报表可能调用了REUSE_ALV_GRID_DISPLAY其数据准备函数可能是可重用的。通过ST05SQL跟踪和运行时分析SE30可以尝试反推报表的数据来源。增强与出口在标准报表的数据准备阶段END-OF-SELECTION之前通常有用户出口USER-EXIT或BADI。你可以通过这些增强点将数据直接导出到你的全局内存或数据库中供主程序读取。这比解析列表更优雅。OData/CDS View对于S/4 HANA等新系统考虑通过CDS View暴露数据再通过Fiori或OData服务消费。这是更面向未来、更解耦的架构。一个折中的架构模式你可以创建一个“报表控制器”程序它使用SUBMIT来执行标准报表但目的不是解析其列表而是利用其完整的业务逻辑将结果数据写入一个自定义的Z结果表。然后另一个纯粹的展示程序从这个Z表中读取数据用ALV或任何其他方式呈现。这样就将不稳定的“数据获取”层和稳定的“数据展示”层分离开了。最后关于热词中提到的“abap中可以循环调用submit rfob5200吗”答案是肯定的。你完全可以在一个循环中针对不同的凭证号码范围多次SUBMIT RFOB5200一个清账凭证报表。但必须非常小心地管理每次调用之间的内存清理使用FREE MEMORY ID释放之前捕获的列表并妥善处理循环中的异常避免一个调用失败导致整个循环中断。这再次印证了SUBMIT是一把强大的双刃剑它赋予你串联系统流程的能力同时也要求你具备精细的资源管理和错误处理意识。

相关新闻

德系乘用车润滑油品牌适配性研究报告——基于原厂认证与赛事验证的双重维度

德系乘用车润滑油品牌适配性研究报告——基于原厂认证与赛事验证的双重维度

2026年4月,参考中国汽车工程学会发布的《2025中国德系乘用车养护白皮书》中关于车用润滑油适配性的调研方法,以及行业智库发布的《2026年度乘用车润滑油适配效能观察报告》显示,国内德系乘用车保有量持续增长,但车主对润滑油“工况…

2026/7/30 8:57:23阅读更多 →
Qt程序崩溃排查指南:内存管理、线程安全与跨平台陷阱

Qt程序崩溃排查指南:内存管理、线程安全与跨平台陷阱

1. 项目缘起:那些“不该”崩溃的Qt程序做Qt开发这些年,最让人头疼的往往不是功能实现不了,而是程序在某个你意想不到的时刻,以一种你完全无法理解的方式崩溃了。你可能会盯着调试器里那一行看似无辜的代码,或者一个来自…

2026/7/30 8:55:23阅读更多 →
Unity无尽跑酷游戏开发:从Low Poly资源包到性能优化全流程

Unity无尽跑酷游戏开发:从Low Poly资源包到性能优化全流程

1. 项目概述与核心价值最近在整理自己的Unity资源库,翻到了这个“Low Poly Runner Pack”,感觉是时候拿出来好好聊聊了。对于想做跑酷类游戏,特别是无尽跑酷(Endless Runner)的独立开发者或者小型团队来说,…

2026/7/30 8:55:22阅读更多 →
AI生成博客质量测试与优化全指南

AI生成博客质量测试与优化全指南

1. 为什么我们需要测试AI生成博客? 最近两年,AI写作工具如雨后春笋般涌现。作为一名从业十余年的内容创作者,我见证了从早期简单的文本补全,到现在能够生成完整文章的AI进化历程。但随之而来的问题是:这些AI生成的博客…

2026/7/30 13:44:47阅读更多 →
网络药理学:中药现代化研究的方法论突破与整合路径

网络药理学:中药现代化研究的方法论突破与整合路径

简述 中药及其方剂以多成分、多靶点、多途径的协同作用为显著特征,与复杂疾病网络的整体调控需求高度契合。然而,传统还原论研究方法难以揭示这种整体性作用规律。网络药理学通过构建"药物-成分-靶点-疾病"多层次交互网络,为中药药…

2026/7/30 13:44:47阅读更多 →
类器官疾病模型:从疾病机制到药效评价的创新平台

类器官疾病模型:从疾病机制到药效评价的创新平台

简述 类器官作为由干细胞在三维微环境中自组织形成的微型组织样结构,能够在体外高度模拟真实器官的细胞组成、空间结构与功能特征。相较于传统二维细胞系缺乏组织构型、动物模型存在物种差异的局限,类器官为疾病机制研究和药物筛选提供了更贴近人体生理的…

2026/7/30 13:44:47阅读更多 →
彻底卸载微软Edge浏览器:3种简单方法解决Windows预装软件难题

彻底卸载微软Edge浏览器:3种简单方法解决Windows预装软件难题

彻底卸载微软Edge浏览器:3种简单方法解决Windows预装软件难题 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …

2026/7/30 13:44:47阅读更多 →
Claude Code 真能提效?我拿团队项目试了三次,发现这四点才是关键

Claude Code 真能提效?我拿团队项目试了三次,发现这四点才是关键

聊《Claude Code看起来很强,为什么一进真实项目就容易失控?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:通过三个真实项目复盘,分析 Claude Code 在…

2026/7/30 13:44:47阅读更多 →
【单片机毕业设计】基于 STM32 传感器数据采集与智能出水控制系统 基于 STM32 的饮水设备安全防护控制系统开发(012101)

【单片机毕业设计】基于 STM32 传感器数据采集与智能出水控制系统 基于 STM32 的饮水设备安全防护控制系统开发(012101)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/30 13:42:47阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →