更新使用手册;修复滚动条问题;新增表映射关系查询

This commit is contained in:
taocong
2026-10-05 10:49:50 +08:00
committed by taocong45644
parent e7030a6dbf
commit 84009be804
26 changed files with 2089 additions and 37 deletions
+52 -4
View File
@@ -4,7 +4,7 @@
| --- | --- |
| 软件名称 | Uft30ChangeCode(UF20 → UFT3 转码工具) |
| 手册版本 | V1.6.0 |
| 更新日期 | 2026-09-14 |
| 更新日期 | 2026-10-02 |
| 适用对象 | 使用本工具进行代码转码的开发/维护人员 |
---
@@ -51,10 +51,14 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
| 设置(底部) | 项目环境路径与主题配置 |
| 帮助 / 关于(底部) | 在线帮助、版本信息 |
![主界面总览(功能转码 → 业务转码)](images/01_main_overview.png)
## 5. 功能操作详解
### 5.1 元数据更新(首次使用必做)
![元数据更新页面](images/11_metadata_update.png)
**前提**:元数据更新按"设置"页配置的项目环境路径扫描源码,请先完成 §5.5 的路径配置。
**操作步骤:**
@@ -84,6 +88,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
##### 5.2.1.1 全量转码
![全量转码工作台](images/01_main_overview.png)
**说明**:全量转码仅支持 **LS_ 开头**的功能("内存交易"改造范围),按清单对功能进行整体转码。清单保存在 `cust.json` 的 `convert.dir` 节点(见 §6.1)。
**表格列**:`UF20函数名` | `是否存在` | `核心` | `是否柜面接口`(**双击函数名所在行**可在弹窗中修改函数名)。
@@ -105,6 +111,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
##### 5.2.1.2 按需转码
![按需转码工作台](images/03_ondemand_convert.png)
**说明**:按需转码针对**非 LS 功能**转码,支持**单文件转码**与**递归转码**两种模式,转码范围不包含核心文件、module 模块文件。
- **非递归模式**:仅对目标文件本身执行转码,不会处理该文件内调用的函数;
@@ -132,6 +140,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
#### 5.2.2 代码检索
![代码检索页面(转码业务模式)](images/04_code_search.png)
**说明**:代码检索用于查看功能的**调用链路**——该功能调用了哪些下游函数、被哪些上游功能调用,用于转码前评估影响范围、转码后核对结果。
页面顶部 Tab 切换 **转码业务** / **非转码业务** 两种模式,两种模式各自维护检索路径与索引,互不干扰。
@@ -168,6 +178,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
#### 5.3.1 UF20 功能查询
![UF20 功能查询页面(批量关键词:证券)](images/05_uf20_function_search.png)
**操作步骤:**
1. 进入 **UF20功能查询** 页;
@@ -184,16 +196,42 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
#### 5.3.2 UFT3 功能查询
![UFT3 功能查询页面(关键词:fund)](images/06_uft3_function_search.png)
- 界面与 UF20 功能查询一致(函数名 / 功能号检索、**批量关键词**、精确匹配),结果列为 `函数名`、`英文名`、`功能号`,查询提示同样在页面底部提示栏反馈;
- 仅用于查询核对 UFT3 功能元数据,**双击/右键不加入转码清单**;
- 代码检索中"原代码已支持"行前的功能号即来自 UFT3 元数据。
#### 5.3.3 UF20 & 内存表映射查询
![UF20 & 内存表映射查询页面(模糊查询:acct)](images/07_table_mapping_search.png)
检索 UF20(2.0)表与内存表之间的映射关系,结果四列:`UF20表名`、`UF20表中文名`、`内存表名`、`内存表中文名`;**双击结果行可添加映射到「数据映射 → 表替换」**。
**操作步骤:**
1. 进入 **功能查询 → UF20 & 内存表映射查询**;
2. 输入 **UF20 表名或内存表名**(二者均可检索),回车或点搜索图标;
- **批量查询**:多个表名用**逗号、分号或空格**分隔(中英文均可),各关键词命中结果取并集展示;
- 搜索框内可切换**精确匹配**(默认模糊匹配,不区分大小写);
3. 查看结果列表:
- 映射关系命中(表名在映射文件 `bin/uf2touft3/config/table_mapping.json` 中配置过)→ 四列完整展示,中文名分别取自 `uf20_cache.db` / `uft3_cache.db`;一个 UF20 表映射到多个内存表(value 为数组)时展示为多条记录;
- 无映射关系 → 仅展示数据库中能取到的一侧字段,映射相关列置空,底部提示注明无映射数量;
4. **双击结果行**将该映射关系添加到「数据映射 → 表替换」:
- 仅当该行 UF20 表名与内存表名均非空(有完整映射关系)才可添加;
- 表替换中已存在该 UF20 表名时自动跳过,并在提示栏注明当前映射值(不覆盖);
- 添加成功后**自动保存**到 `cust.json`(提示栏回执"已添加并自动保存",无需再到表替换页手动保存),同时同步追加到映射文件 `table_mapping.json` 中缺失的条目,**再次查询立即可见**。
**查询提示**(页面底部提示栏,不弹窗):默认提示"💡 输入 UF20 表名或内存表名进行查询,支持精确/模糊匹配;双击记录行可添加到「数据映射 → 表替换」";无命中提示"⚠️ 未找到匹配的表";缓存库无表数据提示"请先在「元数据更新」页面执行更新";**映射文件解析失败**(手工编辑 `table_mapping.json` 留下尾随逗号、缺引号等)提示"⚠️ 映射文件 table_mapping.json 解析失败(第 N 行附近)…"并停止查询(不再单侧展示,避免误判为映射丢失),按行号修正文件后重新查询即可;成功显示"已查询 X 条记录(其中 Y 个无映射关系,N 个表中文名缺失,M 个关键词无匹配)"——一对多映射按多条记录计;中文名缺失表示映射关系里有该表、但本地缓存库未收录(元数据更新未覆盖该表来源工程),需扩大元数据更新的工程范围。
### 5.4 数据映射
**说明**:数据映射维护 UF20 → UFT3 的**替换对照表**与**不转码清单**,转码引擎按映射替换代码中的表名 / 函数名,清单内的功能函数名则跳过替换。各页数据均保存在 `cust.json`(见 §6.1);界面修改后点 **保存** 写盘生效,外部编辑 `cust.json` 保存后界面自动刷新(程序自身保存后的 2 秒内暂停文件监控,此间的外部修改需再次保存文件才会被检测到)。
#### 5.4.1 表替换
![表替换页面](images/08_table_replace.png)
维护 UF20 表名 → UFT3 表名的映射。
**操作步骤:**
@@ -203,14 +241,22 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
3. **双击单元格**直接修改;
4. 点 **添加** 弹窗输入 UF20 / UFT3 表名(UF20 表名必填且不可重复);
5. **删除选中** 需二次确认(支持多选);
6. 修改后点 **保存** 生效。
6. 修改后点 **保存** 生效;保存成功后自动与映射文件 `bin/uf2touft3/config/table_mapping.json` 对账同步,「UF20 & 内存表映射查询」中**立即可查**:
- **新增**的映射自动追加到该文件;
- **修改一对一映射的内存表名**后,文件中同名条目的值同步更新;
- 该文件中配置为**一对多数组**的条目(一个 UF20 表对应多个内存表)保持不变,不会被表替换中的单值覆盖;
- 在表替换中**删除**条目暂不同步到该文件(映射文件是全量参考库,删除仅表示转码时不再使用该替换)。
#### 5.4.2 函数替换
维护 UF20 函数名 → UFT3 函数名的映射,操作方式与表替换完全相同。
![函数替换页面](images/09_function_replace.png)
维护 UF20 函数名 → UFT3 函数名的映射,操作方式与表替换相同,但**不涉及** `table_mapping.json` 自动同步(该同步为表替换独有)。
#### 5.4.3 不转码功能函数
![不转码功能函数页面](images/10_nochange_fullname.png)
维护**不参与函数名替换**的功能函数清单,对应 `cust.json` 顶层键 `noChangeFullNameCode`(字符串数组)。转码时,清单内的功能函数名保持原样,不做 UF20 → UFT3 全名替换。
**操作步骤:**
@@ -226,6 +272,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
### 5.5 系统设置(底部"设置")
![系统设置页面](images/12_settings.png)
**环境配置**:
| 配置项 | 说明 |
@@ -264,7 +312,7 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
| `functionReplace` | 对象 `{UF20函数名: UFT3函数名}` | 函数替换映射 |
| `noChangeFullNameCode` | 字符串数组 | 不转码功能函数清单,转码时跳过这些函数名的替换 |
`convert.dir` 元素字段说明(详见 `docs/转码配置格式契约.md`):
`convert.dir` 元素字段说明(详见 `docs/详细设计文档.md` §7.5):
| 字段 | 说明 |
| --- | --- |