Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
Ftt_Common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Ftt_Common
Commits
dbf01564
Commit
dbf01564
authored
May 12, 2021
by
tr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、添加工具:清空表
parent
fbd0f14f
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
543 additions
and
0 deletions
+543
-0
Tools.csproj
Tools/Tools.csproj
+9
-0
wEmptyTable.Designer.cs
Tools/UI/wEmptyTable.Designer.cs
+159
-0
wEmptyTable.cs
Tools/UI/wEmptyTable.cs
+205
-0
wEmptyTable.resx
Tools/UI/wEmptyTable.resx
+169
-0
wExtend.cs
Tools/wExtend.cs
+1
-0
No files found.
Tools/Tools.csproj
View file @
dbf01564
...
@@ -90,6 +90,12 @@
...
@@ -90,6 +90,12 @@
<Compile
Include=
"MyData\DBHelper.cs"
/>
<Compile
Include=
"MyData\DBHelper.cs"
/>
<Compile
Include=
"MyData\SqlHelper.cs"
/>
<Compile
Include=
"MyData\SqlHelper.cs"
/>
<Compile
Include=
"MyUtils\DrawHelper.cs"
/>
<Compile
Include=
"MyUtils\DrawHelper.cs"
/>
<Compile
Include=
"UI\wEmptyTable.cs"
>
<SubType>
Form
</SubType>
</Compile>
<Compile
Include=
"UI\wEmptyTable.Designer.cs"
>
<DependentUpon>
wEmptyTable.cs
</DependentUpon>
</Compile>
<Compile
Include=
"UI\wEvaluationOfEmployee.cs"
>
<Compile
Include=
"UI\wEvaluationOfEmployee.cs"
>
<SubType>
Form
</SubType>
<SubType>
Form
</SubType>
</Compile>
</Compile>
...
@@ -244,6 +250,9 @@
...
@@ -244,6 +250,9 @@
<DependentUpon>
Resources.resx
</DependentUpon>
<DependentUpon>
Resources.resx
</DependentUpon>
<DesignTime>
True
</DesignTime>
<DesignTime>
True
</DesignTime>
</Compile>
</Compile>
<EmbeddedResource
Include=
"UI\wEmptyTable.resx"
>
<DependentUpon>
wEmptyTable.cs
</DependentUpon>
</EmbeddedResource>
<EmbeddedResource
Include=
"UI\wEvaluationOfEmployee.resx"
>
<EmbeddedResource
Include=
"UI\wEvaluationOfEmployee.resx"
>
<DependentUpon>
wEvaluationOfEmployee.cs
</DependentUpon>
<DependentUpon>
wEvaluationOfEmployee.cs
</DependentUpon>
</EmbeddedResource>
</EmbeddedResource>
...
...
Tools/UI/wEmptyTable.Designer.cs
0 → 100644
View file @
dbf01564
namespace
Tools.UI
{
partial
class
wEmptyTable
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
wEmptyTable
));
this
.
toolStrip1
=
new
System
.
Windows
.
Forms
.
ToolStrip
();
this
.
toolStripLabel1
=
new
System
.
Windows
.
Forms
.
ToolStripLabel
();
this
.
tstbMainTable
=
new
System
.
Windows
.
Forms
.
ToolStripTextBox
();
this
.
tsbSearchFK
=
new
System
.
Windows
.
Forms
.
ToolStripButton
();
this
.
tsbEmpty
=
new
System
.
Windows
.
Forms
.
ToolStripButton
();
this
.
tsbSelectDb
=
new
System
.
Windows
.
Forms
.
ToolStripButton
();
this
.
tslbLinkString
=
new
System
.
Windows
.
Forms
.
ToolStripLabel
();
this
.
View
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
toolStrip1
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// toolStrip1
//
this
.
toolStrip1
.
Items
.
AddRange
(
new
System
.
Windows
.
Forms
.
ToolStripItem
[]
{
this
.
toolStripLabel1
,
this
.
tstbMainTable
,
this
.
tsbSearchFK
,
this
.
tsbEmpty
,
this
.
tsbSelectDb
,
this
.
tslbLinkString
});
this
.
toolStrip1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
toolStrip1
.
Name
=
"toolStrip1"
;
this
.
toolStrip1
.
Size
=
new
System
.
Drawing
.
Size
(
695
,
25
);
this
.
toolStrip1
.
TabIndex
=
0
;
this
.
toolStrip1
.
Text
=
"toolStrip1"
;
//
// toolStripLabel1
//
this
.
toolStripLabel1
.
Name
=
"toolStripLabel1"
;
this
.
toolStripLabel1
.
Size
=
new
System
.
Drawing
.
Size
(
32
,
22
);
this
.
toolStripLabel1
.
Text
=
"主表"
;
//
// tstbMainTable
//
this
.
tstbMainTable
.
BorderStyle
=
System
.
Windows
.
Forms
.
BorderStyle
.
FixedSingle
;
this
.
tstbMainTable
.
Font
=
new
System
.
Drawing
.
Font
(
"Microsoft YaHei UI"
,
9F
);
this
.
tstbMainTable
.
Name
=
"tstbMainTable"
;
this
.
tstbMainTable
.
Size
=
new
System
.
Drawing
.
Size
(
200
,
25
);
//
// tsbSearchFK
//
this
.
tsbSearchFK
.
Image
=
((
System
.
Drawing
.
Image
)(
resources
.
GetObject
(
"tsbSearchFK.Image"
)));
this
.
tsbSearchFK
.
ImageTransparentColor
=
System
.
Drawing
.
Color
.
Magenta
;
this
.
tsbSearchFK
.
Name
=
"tsbSearchFK"
;
this
.
tsbSearchFK
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
22
);
this
.
tsbSearchFK
.
Text
=
"查询外键引用"
;
this
.
tsbSearchFK
.
Click
+=
new
System
.
EventHandler
(
this
.
tsbSearchFK_Click
);
//
// tsbEmpty
//
this
.
tsbEmpty
.
Image
=
((
System
.
Drawing
.
Image
)(
resources
.
GetObject
(
"tsbEmpty.Image"
)));
this
.
tsbEmpty
.
ImageTransparentColor
=
System
.
Drawing
.
Color
.
Magenta
;
this
.
tsbEmpty
.
Name
=
"tsbEmpty"
;
this
.
tsbEmpty
.
Size
=
new
System
.
Drawing
.
Size
(
52
,
22
);
this
.
tsbEmpty
.
Text
=
"清空"
;
this
.
tsbEmpty
.
Click
+=
new
System
.
EventHandler
(
this
.
tsbEmpty_Click
);
//
// tsbSelectDb
//
this
.
tsbSelectDb
.
Image
=
((
System
.
Drawing
.
Image
)(
resources
.
GetObject
(
"tsbSelectDb.Image"
)));
this
.
tsbSelectDb
.
ImageTransparentColor
=
System
.
Drawing
.
Color
.
Magenta
;
this
.
tsbSelectDb
.
Name
=
"tsbSelectDb"
;
this
.
tsbSelectDb
.
Size
=
new
System
.
Drawing
.
Size
(
88
,
22
);
this
.
tsbSelectDb
.
Text
=
"选择数据库"
;
this
.
tsbSelectDb
.
Click
+=
new
System
.
EventHandler
(
this
.
tsbSelectDb_Click
);
//
// tslbLinkString
//
this
.
tslbLinkString
.
Font
=
new
System
.
Drawing
.
Font
(
"Microsoft YaHei UI"
,
7.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
tslbLinkString
.
ForeColor
=
System
.
Drawing
.
Color
.
Green
;
this
.
tslbLinkString
.
Name
=
"tslbLinkString"
;
this
.
tslbLinkString
.
Size
=
new
System
.
Drawing
.
Size
(
94
,
22
);
this
.
tslbLinkString
.
Text
=
"--请先选择数据库--"
;
//
// View
//
this
.
View
.
AutoScroll
=
true
;
this
.
View
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Window
;
this
.
View
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Top
;
this
.
View
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
View
.
Name
=
"View"
;
this
.
View
.
Size
=
new
System
.
Drawing
.
Size
(
695
,
41
);
this
.
View
.
TabIndex
=
1
;
//
// panel1
//
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Window
;
this
.
panel1
.
Controls
.
Add
(
this
.
View
);
this
.
panel1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
25
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
695
,
432
);
this
.
panel1
.
TabIndex
=
2
;
//
// wEmptyTable
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
AutoScroll
=
true
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
695
,
457
);
this
.
Controls
.
Add
(
this
.
panel1
);
this
.
Controls
.
Add
(
this
.
toolStrip1
);
this
.
Name
=
"wEmptyTable"
;
this
.
Text
=
"清空表"
;
this
.
toolStrip1
.
ResumeLayout
(
false
);
this
.
toolStrip1
.
PerformLayout
();
this
.
panel1
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
this
.
PerformLayout
();
}
#
endregion
private
System
.
Windows
.
Forms
.
ToolStrip
toolStrip1
;
private
System
.
Windows
.
Forms
.
ToolStripButton
tsbSearchFK
;
private
System
.
Windows
.
Forms
.
ToolStripButton
tsbEmpty
;
private
System
.
Windows
.
Forms
.
ToolStripLabel
toolStripLabel1
;
private
System
.
Windows
.
Forms
.
ToolStripTextBox
tstbMainTable
;
private
System
.
Windows
.
Forms
.
Panel
View
;
private
System
.
Windows
.
Forms
.
Panel
panel1
;
private
System
.
Windows
.
Forms
.
ToolStripButton
tsbSelectDb
;
private
System
.
Windows
.
Forms
.
ToolStripLabel
tslbLinkString
;
}
}
\ No newline at end of file
Tools/UI/wEmptyTable.cs
0 → 100644
View file @
dbf01564
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
//
using
Tools.MyCommon
;
using
Tools.MyData
;
using
Tools.MyUtils
;
namespace
Tools.UI
{
public
partial
class
wEmptyTable
:
wEditBasic
{
readonly
string
SimilarTag
=
"_like"
;
readonly
string
ForeignTag
=
"_foreignKey"
;
List
<
string
>
ExistList
;
List
<
string
>
EmptyLog
;
public
wEmptyTable
()
{
InitializeComponent
();
//this.InitDBHelper(new DbItemModel() { DbName = "PDM_LN", Link = ".", UserId = "sa", Pwd = "sa" });
this
.
tsbEmpty
.
Enabled
=
false
;
}
private
void
tsbSearchFK_Click
(
object
sender
,
EventArgs
e
)
{
if
(
this
.
_db
==
null
)
{
Utils
.
Tip
(
$"请先选择数据库!"
);
return
;
}
var
table
=
this
.
tstbMainTable
.
Text
.
Trim
();
if
(
string
.
IsNullOrEmpty
(
table
))
{
Utils
.
Tip
(
"请先录入主表!"
);
return
;
}
//界面只读
this
.
SetEnabled
(
false
);
//初始化数据集
this
.
_ds
=
new
DataSet
();
//初始化相似表
this
.
InitSimilarTable
(
table
);
//创建引用界面:这里的顺序挂载,会产生一个倒序的视图
this
.
_ds
.
Tables
.
Cast
<
DataTable
>().
ToList
()
.
ForEach
(
t
=>
this
.
CreateTableView
(
t
));
//界面激活
this
.
SetEnabled
(
true
);
}
private
void
tsbEmpty_Click
(
object
sender
,
EventArgs
e
)
{
this
.
SetEnabled
(
false
);
this
.
ExistList
=
new
List
<
string
>();
this
.
EmptyLog
=
new
List
<
string
>();
//倒序处理依赖关系
for
(
int
m
=
this
.
_ds
.
Tables
.
Count
-
1
;
m
>=
0
;
m
--)
{
var
dt
=
this
.
_ds
.
Tables
[
m
];
var
isforeignKey
=
dt
.
TableName
.
EndsWith
(
this
.
ForeignTag
);
for
(
int
n
=
dt
.
DefaultView
.
Count
-
1
;
n
>=
0
;
n
--)
{
var
drv
=
dt
.
DefaultView
[
n
];
var
table
=
isforeignKey
?
drv
[
"外键表"
].
ToString
()
:
drv
[
"表名"
].
ToString
();
//去重
if
(
this
.
ExistList
.
Contains
(
table
))
continue
;
this
.
ExistList
.
Add
(
table
);
//清空表
try
{
//非外键表,直接TRUNCATE TABLE
var
empty_sql
=
$@"TRUNCATE TABLE
{
table
}
"
;
this
.
_db
.
ExecNonSql
(
empty_sql
);
this
.
EmptyLog
.
Add
(
empty_sql
);
}
catch
(
Exception
)
{
//外键表,需要删除数据,然后重置自增主键
var
foreign_sql
=
$@"
DELETE FROM
{
table
}
DBCC CHECKIDENT('
{
table
}
',RESEED,0)"
;
this
.
_db
.
ExecNonSql
(
foreign_sql
);
this
.
EmptyLog
.
Add
(
foreign_sql
.
Trim
());
}
}
}
//记录日志
string
path
=
$@"
{
Utils
.
TempPath
}
\EmptyTable_
{
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmss"
)}
.txt"
;
File
.
WriteAllText
(
path
,
string
.
Join
(
"\r\n"
,
this
.
EmptyLog
));
//完成提示
Utils
.
Tip
(
$"已清空
{
this
.
tstbMainTable
.
Text
}
的关联表!"
);
//
this
.
SetEnabled
(
true
);
}
private
void
tsbSelectDb_Click
(
object
sender
,
EventArgs
e
)
{
var
w
=
new
wDbSetting
(
this
.
tslbLinkString
);
if
(
w
.
ShowDialog
()
==
DialogResult
.
OK
)
{
//初始化数据库访问对象
this
.
InitDBHelper
(
w
.
LinkModel
);
}
}
/// <summary>
/// 查找相似表
/// </summary>
/// <param name="table"></param>
private
void
InitSimilarTable
(
string
table
)
{
var
sql
=
$@"SELECT name AS 表名 FROM sys.tables WHERE type_desc='USER_TABLE' and name LIKE '%
{
table
}
%'"
;
var
dt
=
this
.
_db
.
GetDataTable
(
sql
,
$"
{
table
}{
this
.
SimilarTag
}
"
,
false
);
this
.
_ds
.
Tables
.
Add
(
dt
);
foreach
(
DataRowView
r
in
dt
.
DefaultView
)
{
this
.
InitForeignkeyUsed
(
r
[
"表名"
].
ToString
());
}
}
/// <summary>
/// 初始化表相关的外键链,保存到_ds
/// </summary>
/// <param name="table"></param>
private
void
InitForeignkeyUsed
(
string
table
)
{
//去重
var
foreignName
=
$"
{
table
}{
this
.
ForeignTag
}
"
;
if
(
this
.
_ds
.
Tables
.
Contains
(
foreignName
))
return
;
//查询外键引用
var
sql
=
$@"
SELECT
fk.name AS 外键名称,
t1.name AS 外键表,
c1.name AS 外键列,
t2.name AS 被引用表,
c2.name AS 被引用列
FROM sys.foreign_keys fk
INNER JOIN sys.tables t1 ON t1.object_id = fk.parent_object_id
INNER JOIN sys.tables t2 ON t2.object_id = fk.referenced_object_id
INNER JOIN sys.foreign_key_columns fk_col ON fk_col.constraint_object_id = fk.object_id
INNER JOIN sys.columns c1 ON c1.object_id = t1.object_id AND c1.column_id = fk_col.parent_column_id
INNER JOIN sys.columns c2 ON c2.object_id = t2.object_id AND c2.column_id = fk_col.referenced_column_id
WHERE t2.name = '
{
table
}
'"
;
DataTable
dt
=
this
.
_db
.
GetDataTable
(
sql
,
$"
{
foreignName
}
"
,
false
);
if
(
dt
.
DefaultView
.
Count
>
0
)
{
//有外键的添加到数据集
this
.
_ds
.
Tables
.
Add
(
dt
);
//递归外键表,是否被引用
foreach
(
DataRowView
r
in
dt
.
DefaultView
)
{
this
.
InitForeignkeyUsed
(
r
[
"外键表"
].
ToString
());
}
}
}
/// <summary>
/// 创建视图
/// </summary>
/// <param name="dt"></param>
private
void
CreateTableView
(
DataTable
dt
)
{
//创建视图
var
grid
=
new
DataGridView
()
{
AllowUserToAddRows
=
false
,
ReadOnly
=
true
,
BackgroundColor
=
Color
.
White
,
Margin
=
new
Padding
(
5
),
Height
=
(
dt
.
DefaultView
.
Count
+
1
)
*
27
,
DataSource
=
dt
.
DefaultView
,
Dock
=
DockStyle
.
Top
,
Parent
=
this
.
View
,
};
//视图高度
this
.
View
.
Height
+=
grid
.
Height
;
}
/// <summary>
/// 界面有效性控制
/// </summary>
/// <param name="isEnabled"></param>
private
void
SetEnabled
(
bool
isEnabled
)
{
this
.
tsbSearchFK
.
Enabled
=
isEnabled
;
this
.
tsbEmpty
.
Enabled
=
isEnabled
;
this
.
tstbMainTable
.
ReadOnly
=
!
isEnabled
;
}
}
}
Tools/UI/wEmptyTable.resx
0 → 100644
View file @
dbf01564
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<metadata
name=
"toolStrip1.TrayLocation"
type=
"System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
>
<value>
17, 17
</value>
</metadata>
<assembly
alias=
"System.Drawing"
name=
"System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>
<data
name=
"tsbSearchFK.Image"
type=
"System.Drawing.Bitmap, System.Drawing"
mimetype=
"application/x-microsoft.net.object.bytearray.base64"
>
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data
name=
"tsbEmpty.Image"
type=
"System.Drawing.Bitmap, System.Drawing"
mimetype=
"application/x-microsoft.net.object.bytearray.base64"
>
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
<data
name=
"tsbSelectDb.Image"
type=
"System.Drawing.Bitmap, System.Drawing"
mimetype=
"application/x-microsoft.net.object.bytearray.base64"
>
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value>
</data>
</root>
\ No newline at end of file
Tools/wExtend.cs
View file @
dbf01564
...
@@ -35,6 +35,7 @@ namespace Tools
...
@@ -35,6 +35,7 @@ namespace Tools
this
.
CreateModule
(
typeof
(
UI
.
wModuleManager
),
"模块管理"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wModuleManager
),
"模块管理"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wLoginPwd
),
"登录密码"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wLoginPwd
),
"登录密码"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wEvaluationOfEmployee
),
"员工考核"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wEvaluationOfEmployee
),
"员工考核"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wEmptyTable
),
"清空表"
,
"tr"
),
};
};
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment