# Uft30ChangeCode(UFT30 代码转换工具) 一款基于 **Qt 6 + MinGW** 开发的桌面工具,用于将 UF20 业务代码转换为 UFT3 格式,并提供功能查询、代码检索、元数据更新、数据映射等配套能力。UI 采用 [ElaWidgetTools](3rd/ElaWidgetTools) 组件库。 - 当前版本:**v1.4.0** - 运行平台:Windows - 界面框架:Qt Widgets + ElaWidgetTools ## 功能特性 | 模块 | 说明 | | --- | --- | | 业务转码 | 将 UF20 函数批量转换为 UFT3 函数格式,支持进度显示与中止 | | 功能查询 | UF20 / UFT3 功能(函数)查找,支持 2.0 账户功能查询 | | 代码检索 | "转码业务" / "非转码业务" 调用链路分析,支持涉及文件与调用链导出 | | 元数据更新 | 更新 UF20 / UFT3 标准字段、数据类型、接口数据等,支持增量更新与强制全量更新 | | 数据映射 | 表映射、函数映射 | | 设置 | 配置 UFT30 / UF20 项目路径、账户环境路径、转码生成路径等 | | 其它 | 在线帮助文档、关于页、版本更新提示;全局文字可选中复制、表格 Ctrl+C 导出 | ## 目录结构 ``` Uft30ChangeCode/ ├─ main.cpp # 程序入口,安装全局文字可复制过滤器 ├─ Uft30ChangeCode.pro # qmake 工程文件 ├─ build.bat # 一键构建脚本(Release) ├─ build_advanced.bat # 进阶构建脚本 ├─ config/ │ └─ change_code.ini # 默认配置模板(构建时按需部署到 bin/uf2touft3/) ├─ src/ │ ├─ mainwindow/ # 主窗口 │ ├─ pages/ # 各功能页面(batchconvert / codesearch / functionsearch / metadatupdate / datamapping / settings / about) │ ├─ metadataupdate/ # 元数据扫描与处理(UF2 / UFT3 接口、数据类型、字段等) │ ├─ pythonrunner/ # 调用外部转码工具(uf2touft3.exe) │ ├─ components/ # 自定义控件 │ └─ utils/ # 公共工具(日志、配置读取、调用链分析、版本检查、常量等) ├─ 3rd/ # 第三方库(ElaWidgetTools 等) ├─ resources/ resources.qrc # 图标等资源 ├─ help/ # 帮助文档(Writerside) └─ update_info.json # 版本发布说明 ``` ## 构建 ### 环境要求 - Qt 6.6.2(mingw_64) - MinGW 11.2.0(Qt Tools 自带) `build.bat` 中默认路径如下,如与本机不一致请自行修改: ```bat set QT_PATH=D:\01.InstallInfo\InstallPath\QT\6.6.2\mingw_64 set MINGW_PATH=D:\01.InstallInfo\InstallPath\QT\Tools\mingw1120_64 ``` ### 一键构建 ```bat build.bat ``` 脚本会依次执行:关闭正在运行的程序 → 清理旧构建产物 → `qmake` → `mingw32-make release` → `windeployqt` 部署 Qt 运行库 → 按需部署默认 `change_code.ini`。 构建产物:`bin\Uft30ChangeCode.exe` > 注意:外部转码工具 `bin\uf2touft3\uf2touft3.exe` 需自行放置,程序运行时依赖它完成实际转码。 ### 手动构建 ```bat qmake Uft30ChangeCode.pro -spec win32-g++ mingw32-make release ``` ## 配置说明(`config/change_code.ini`) 构建时若 `bin/uf2touft3/change_code.ini` 不存在,会从 `config/change_code.ini` 拷贝一份默认模板;已存在则保留用户配置不覆盖。 ### `[codeSearch]` 代码检索路径 | 键 | 说明 | | --- | --- | | `convertPath` | 转码业务代码检索路径 | | `searchPath` | 非转码业务代码检索路径 | ### `[log]` 日志配置 | 键 | 默认值 | 说明 | | --- | --- | --- | | `level` | `INFO` | 日志等级:`DEBUG` < `INFO` < `WARNING` < `ERROR`,等级越高输出越少 | | `path` | `./logs` | 日志输出目录(相对路径基于 exe 目录,绝对路径直接生效) | | `file` | `change_code.log` | 日志文件名 | | `fileEnabled` | `true` | 是否写入日志文件 | | `maxSize` | `10MB` | 单个日志文件最大大小(支持 `B`/`KB`/`MB`/`GB`,`0` 表示不限制) | | `maxFiles` | `100` | 日志文件轮转保留数量 | | `maxAge` | `30` | 日志文件保留天数(`0` 表示不限制) | | `console` | `true` | 是否在控制台打印日志 | | `caller` | `false` | 是否在日志中附加调用堆栈(仅 Windows 生效) | | `format` | `text` | 日志格式:`text` / `json` | | `timeFormat` | `2006-01-02 15:04:05.000` | 时间格式(支持 Go 风格布局或 Qt 格式) | ## 帮助文档 更多使用说明见 `help/` 目录(Writerside 工程),涵盖业务转码、功能查询、代码检索、元数据更新、数据映射、设置等模块的图文操作指引。 ## 版本记录 | 版本 | 主要更新 | | --- | --- | | v1.4.0 | 提升业务转码性能;元数据更新支持增量/强制全量;新增代码检索与函数调用链路分析;支持全局文字选中复制及表格 Ctrl+C 导出 | | v1.3.0 | 修复设置路径不生效;修复元数据更新后转码函数检查状态异常 | | v1.2.0 | 新增数据映射(表映射、函数映射);新增版本更新提示 | | v1.1.0 | 支持 2.0 账户功能查询及业务转码 | | v1.0.0 | 首个版本:业务转码、UF20/UFT3 功能查找、帮助文档、接口元数据更新、设置 |