Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
NS100
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bad93f23
由
LN
编写于
2026-03-04 14:58:02 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
支持匹配多行功能可配置
1 个父辈
d5ce2572
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
64 行增加
和
62 行删除
BLL/Config.cs
BLL/ExtraFileData.cs
BLL/Config.cs
查看文件 @
bad93f2
...
@@ -345,6 +345,8 @@ namespace BLL
...
@@ -345,6 +345,8 @@ namespace BLL
[
MyConfigComment
(
"数据源匹配Key_其他项_关键字=标题"
)]
[
MyConfigComment
(
"数据源匹配Key_其他项_关键字=标题"
)]
public
static
MyConfig
<
string
[
]>
DataSource_DataKey_Others
=
new
string
[]
{
};
public
static
MyConfig
<
string
[
]>
DataSource_DataKey_Others
=
new
string
[]
{
};
[
MyConfigComment
(
"数据源匹配_是否支持匹配多行,true=支持多行弹框选择。false=多行认为匹配失败"
)]
public
static
MyConfig
<
bool
>
DataSource_MultilineMode
=
false
;
[
MyConfigComment
(
"数据源匹配_是否可以修改内容重新匹配"
)]
[
MyConfigComment
(
"数据源匹配_是否可以修改内容重新匹配"
)]
public
static
MyConfig
<
bool
>
DataSource_CanReMatch
=
false
;
public
static
MyConfig
<
bool
>
DataSource_CanReMatch
=
false
;
...
...
BLL/ExtraFileData.cs
查看文件 @
bad93f2
...
@@ -293,10 +293,11 @@ namespace BLL
...
@@ -293,10 +293,11 @@ namespace BLL
return
aExtraData
[
0
];
return
aExtraData
[
0
];
}
}
else
else
if
(
Config
.
DataSource_MultilineMode
.
Val
==
true
)
{
{
if
(
DataSelectingEvent
==
null
)
if
(
DataSelectingEvent
==
null
)
{
{
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
dataKey
+
" 共有 "
+
aExtraData
.
Count
+
"条数据,默认使用第一条数据"
);
return
aExtraData
[
0
];
return
aExtraData
[
0
];
}
}
...
@@ -304,6 +305,10 @@ namespace BLL
...
@@ -304,6 +305,10 @@ namespace BLL
Dictionary
<
string
,
string
>
selecValue
=
DataSelectingEvent
?.
Invoke
(
dataKey
,
aExtraData
);
Dictionary
<
string
,
string
>
selecValue
=
DataSelectingEvent
?.
Invoke
(
dataKey
,
aExtraData
);
return
selecValue
;
return
selecValue
;
}
}
else
{
return
null
;
}
}
}
public
static
bool
hasFileData
()
public
static
bool
hasFileData
()
{
{
...
@@ -366,18 +371,14 @@ namespace BLL
...
@@ -366,18 +371,14 @@ namespace BLL
if
(
key
.
ContainsKey
(
Config
.
DataSource_DataKey
)
&&
ExtraFileData
.
AllData
.
ContainsKey
(
CleanData
))
if
(
key
.
ContainsKey
(
Config
.
DataSource_DataKey
)
&&
ExtraFileData
.
AllData
.
ContainsKey
(
CleanData
))
{
{
var
extraData
=
ExtraFileData
.
GetSelectDataSource
(
CleanData
);
var
extraData
=
ExtraFileData
.
GetSelectDataSource
(
CleanData
);
findOk
=
true
;
if
(
extraData
!=
null
)
{
Dictionary
<
string
,
string
>
otherKeys
=
GetOtherKeys
();
findOk
=
true
;
//foreach (var d in extraData)
Dictionary
<
string
,
string
>
otherKeys
=
GetOtherKeys
();
//{
key
=
UpdateData
(
key
,
extraData
,
otherKeys
);
// if (!string.IsNullOrEmpty(d.Value))
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
Config
.
DataSource_DataKey
+
"="
+
CleanData
+
" 数据: "
+
JsonConvert
.
SerializeObject
(
extraData
));
// key[d.Key] = d.Value;
return
key
;
//}
}
key
=
UpdateData
(
key
,
extraData
,
otherKeys
);
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
Config
.
DataSource_DataKey
+
"="
+
CleanData
+
" 数据: "
+
JsonConvert
.
SerializeObject
(
extraData
));
return
key
;
}
}
}
}
if
(!
findOk
&&
Config
.
DataSource_DataKey_Others
.
Val
!=
null
&&
Config
.
DataSource_DataKey_Others
.
Val
.
Length
>
0
)
if
(!
findOk
&&
Config
.
DataSource_DataKey_Others
.
Val
!=
null
&&
Config
.
DataSource_DataKey_Others
.
Val
.
Length
>
0
)
...
@@ -385,81 +386,80 @@ namespace BLL
...
@@ -385,81 +386,80 @@ namespace BLL
Dictionary
<
string
,
string
>
otherKeys
=
GetOtherKeys
();
Dictionary
<
string
,
string
>
otherKeys
=
GetOtherKeys
();
foreach
(
string
oKey
in
otherKeys
.
Keys
)
foreach
(
string
oKey
in
otherKeys
.
Keys
)
{
{
if
(
key
.
ContainsKey
(
oKey
))
if
(
!
key
.
ContainsKey
(
oKey
))
{
{
continue
;
}
string
CleanData
=
key
[
oKey
].
Replace
(
"<OCR>"
,
""
);
if
(
String
.
IsNullOrEmpty
(
CleanData
))
{
continue
;
}
string
titleValue
=
otherKeys
[
oKey
];
string
CleanData
=
key
[
oKey
].
Replace
(
"<OCR>"
,
""
);
//循环所有数据
if
(
String
.
IsNullOrEmpty
(
CleanData
))
if
(
titleValue
==
Config
.
DataSource_DataTitle
&&
ExtraFileData
.
AllData
.
ContainsKey
(
CleanData
))
{
{
continue
;
var
extraData
=
ExtraFileData
.
GetSelectDataSource
(
CleanData
);
}
if
(
extraData
!=
null
)
string
titleValue
=
otherKeys
[
oKey
];
//循环所有数据
if
(
titleValue
==
Config
.
DataSource_DataTitle
&&
ExtraFileData
.
AllData
.
ContainsKey
(
CleanData
))
{
{
var
extraData
=
ExtraFileData
.
GetSelectDataSource
(
CleanData
);
findOk
=
true
;
findOk
=
true
;
//foreach (var d in extraData)
//{
// if (!string.IsNullOrEmpty(d.Value))
// key[d.Key] = d.Value;
//}
key
=
UpdateData
(
key
,
extraData
,
otherKeys
);
key
=
UpdateData
(
key
,
extraData
,
otherKeys
);
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 数据: "
+
JsonConvert
.
SerializeObject
(
extraData
));
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 数据: "
+
JsonConvert
.
SerializeObject
(
extraData
));
break
;
break
;
}
}
else
}
else
{
List
<
Dictionary
<
string
,
string
>>
findData
=
new
List
<
Dictionary
<
string
,
string
>>();
//查找其他列
foreach
(
List
<
Dictionary
<
string
,
string
>>
sourceData
in
AllData
.
Values
)
{
{
List
<
Dictionary
<
string
,
string
>>
findData
=
new
List
<
Dictionary
<
string
,
string
>>();
//查找其他列
foreach
(
List
<
Dictionary
<
string
,
string
>>
sourceData
in
AllData
.
Values
)
{
foreach
(
Dictionary
<
string
,
string
>
data
in
sourceData
)
foreach
(
Dictionary
<
string
,
string
>
data
in
sourceData
)
{
if
(
data
.
ContainsKey
(
titleValue
))
{
{
if
(
data
.
ContainsKey
(
titleValue
)
)
string
vstring
=
data
[
titleValue
];
if
(
vstring
.
Trim
().
Equals
(
CleanData
.
Trim
()))
{
{
string
vstring
=
data
[
titleValue
];
findData
.
Add
(
data
);
if
(
vstring
.
Trim
().
Equals
(
CleanData
.
Trim
()))
{
findData
.
Add
(
data
);
}
}
}
}
}
}
}
if
(
findData
.
Count
>
0
)
}
if
(
findData
.
Count
>
0
)
{
var
findDataMap
=
new
Dictionary
<
string
,
string
>();
if
(
findData
.
Count
==
1
)
{
findDataMap
=
findData
[
0
];
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 共有 "
+
1
+
"条数据: "
+
JsonConvert
.
SerializeObject
(
findData
[
0
]));
}
else
if
(
Config
.
DataSource_MultilineMode
.
Val
==
true
)
{
{
var
findDataMap
=
new
Dictionary
<
string
,
string
>();
if
(
DataSelectingEvent
==
null
)
if
(
findData
.
Count
==
1
||
DataSelectingEvent
==
null
)
{
{
findOk
=
true
;
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 共有 "
+
findData
.
Count
+
"条数据,默认使用第一条数据"
);
findDataMap
=
findData
[
0
];
findDataMap
=
findData
[
0
];
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 共有 "
+
1
+
"条数据: "
+
JsonConvert
.
SerializeObject
(
findData
[
0
]));
}
}
else
else
{
{
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 共有 "
+
findData
.
Count
+
"条数据,弹框让用户选择"
);
LogNet
.
log
.
Info
(
"匹配到数据源:"
+
titleValue
+
"="
+
CleanData
+
" 共有 "
+
findData
.
Count
+
"条数据,弹框让用户选择"
);
findDataMap
=
DataSelectingEvent
?.
Invoke
(
titleValue
+
"="
+
CleanData
,
findData
);
findDataMap
=
DataSelectingEvent
?.
Invoke
(
titleValue
+
"="
+
CleanData
,
findData
);
if
(
findDataMap
!=
null
&&
findDataMap
.
Count
>
0
)
{
findOk
=
true
;
}
}
if
(
findOk
)
{
key
=
UpdateData
(
key
,
findDataMap
,
otherKeys
);
}
}
}
}
if
(
findDataMap
!=
null
&&
findDataMap
.
Count
>
0
)
{
findOk
=
true
;
key
=
UpdateData
(
key
,
findDataMap
,
otherKeys
);
break
;
}
}
}
}
}
}
}
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论