更新使用手册;修复滚动条问题;新增表映射关系查询
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
#ifndef TABLESEARCHPAGE_H
|
||||
#define TABLESEARCHPAGE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QStandardItemModel>
|
||||
#include "components/elasearchedit.h"
|
||||
#include "ElaTableView.h"
|
||||
|
||||
class QLabel;
|
||||
|
||||
// UF20 & 内存表映射查询页(原"表查询"): 检索 UF20(2.0) 表与内存表(UFT3)之间的映射关系。
|
||||
// 结果四列: UF20表名 / UF20表中文名(uf20_cache.db 按 key 取) /
|
||||
// 内存表名(table_mapping.json 映射的 value) / 内存表中文名(uft3_cache.db 按 value 取)。
|
||||
// 输入 UF20 表名或内存表名均可检索, 支持精确/模糊(ElaSearchEdit 内置开关)两种模式;
|
||||
// 无映射命中的表仅展示数据库侧字段, 映射相关列置空。
|
||||
// 双击有完整映射的记录行可添加到「数据映射 → 表替换」页(经 MainWindow 接线, 追加后自动落盘)。
|
||||
// 不继承 FunctionSearchPageBase: 结果结构为 4 列表信息, 与 FunctionInfo(3 列函数信息)
|
||||
// 结构不同, 数据源与交互(无批量加入)亦不同, 强行复用基类不值
|
||||
class TableSearchPage : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit TableSearchPage(QWidget *parent = nullptr);
|
||||
// 双击添加的回调结果(经 MainWindow 接线后回传): error 为空即添加成功, 非空为原因
|
||||
void onMappingAddResult(const QString& error);
|
||||
|
||||
signals:
|
||||
// 双击有完整映射的记录行 → 请求把 (UF20表名, 内存表名) 添加到表替换页
|
||||
void requestAddMapping(const QString& uf20Name, const QString& memName);
|
||||
|
||||
private slots:
|
||||
void onSearch();
|
||||
void onExactMatchToggled(bool checked);
|
||||
// 双击记录行: 有完整映射发出 requestAddMapping, 单侧行仅 tip 提示
|
||||
void onDoubleClicked(const QModelIndex& index);
|
||||
// tip 标签主题感知(Ela 原生控件颜色不随主题切换, 需手动跟随)
|
||||
void updateTipStyle();
|
||||
|
||||
private:
|
||||
void initUI();
|
||||
// 读取表映射文件(Constants::tableMappingJson(), 即 bin/uf2touft3/config/table_mapping.json,
|
||||
// 顶层键 tableCompareUf2_Uf3: key=UF20表名, value=内存表名; value 可为字符串(一对一)
|
||||
// 或字符串数组(一对多, 拆为多条映射对))。
|
||||
// readOk 出参: 文件读取/解析成功为 true(映射本身可为空), 失败为 false;
|
||||
// errorOut 出参: 失败时带回可展示的错误原因(含行号, 常见手误如末项尾随逗号)
|
||||
QList<QPair<QString, QString>> loadTableMapping(bool* readOk,
|
||||
QString* errorOut = nullptr) const;
|
||||
|
||||
ElaSearchEdit *m_searchEdit;
|
||||
ElaTableView *m_resultTable;
|
||||
QStandardItemModel *m_tableModel;
|
||||
QLabel *m_tipLabel;
|
||||
bool m_exactMatch;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user