Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
cz_012273
WZGL
提交
9a47164c
W
WZGL
项目概览
cz_012273
/
WZGL
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
WZGL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9a47164c
编写于
6月 04, 2022
作者:
C
cz_012273
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
DBGrid标题栏点击排序加入升降序标志(上下箭头)(带参数过程实现)
上级
927b99bd
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
37 addition
and
18 deletion
+37
-18
ChaXun.pas
ChaXun.pas
+1
-1
ChuKu.pas
ChuKu.pas
+1
-1
DataUnit.dfm
DataUnit.dfm
+1
-1
DataUnit.pas
DataUnit.pas
+29
-10
RuKu.pas
RuKu.pas
+1
-1
TiShi.pas
TiShi.pas
+2
-2
WZGL.dproj
WZGL.dproj
+2
-2
WZGL.res
WZGL.res
+0
-0
未找到文件。
ChaXun.pas
浏览文件 @
9a47164c
...
...
@@ -66,7 +66,7 @@ end;
procedure
TForm4
.
DBGrid1TitleClick
(
Column
:
TColumn
);
begin
DM1
.
DBGridSort
(
Column
);
DM1
.
DBGridSort
(
DBGrid1
,
Column
);
end
;
procedure
TForm4
.
FormShow
(
Sender
:
TObject
);
...
...
ChuKu.pas
浏览文件 @
9a47164c
...
...
@@ -158,7 +158,7 @@ end;
procedure
TForm3
.
DBGrid1TitleClick
(
Column
:
TColumn
);
begin
DM1
.
DBGridSort
(
Column
);
DM1
.
DBGridSort
(
DBGrid1
,
Column
);
end
;
procedure
TForm3
.
DBLookupComboBox1CloseUp
(
Sender
:
TObject
);
...
...
DataUnit.dfm
浏览文件 @
9a47164c
...
...
@@ -6,8 +6,8 @@ object DM1: TDM1
object FDConnection1: TFDConnection
Params.Strings = (
'Database=E:\WZGL\WZGLK.db'
'LockingMode=Normal'
'DriverID=SQLite')
Connected = True
Left = 40
Top = 24
end
...
...
DataUnit.pas
浏览文件 @
9a47164c
...
...
@@ -37,7 +37,7 @@ type
DataSource8
:
TDataSource
;
SaveDialog1
:
TSaveDialog
;
procedure
DataModuleCreate
(
Sender
:
TObject
);
procedure
DBGridSort
(
Column
:
TColumn
);
procedure
DBGridSort
(
DBGrid
:
TDBGrid
;
Column
:
TColumn
);
private
{ Private declarations }
...
...
@@ -112,14 +112,15 @@ begin
end
;
end
;
procedure
TDM1
.
DBGridSort
(
Column
:
TColumn
);
//DBgrid点击标题栏排序
procedure
TDM1
.
DBGridSort
(
DBGrid
:
TDBGrid
;
Column
:
TColumn
);
//DBgrid点击标题栏排序
var
SqlStr
,
myFieldName
,
TempStr
:
string
;
i
,
OrderPos
:
integer
;
SqlStr
,
myFieldName
,
TempStr
,
TitleStr
:
string
;
i
,
OrderPos
,
colnum
:
integer
;
SavedParams
:
TParams
;
const
colwidth
:
array
[
0..8
]
of
integer
=
(
4
,
20
,
6
,
10
,
10
,
6
,
16
,
4
,
14
);
//设定各列显示宽度
begin
if
not
(
Column
.
Field
.
FieldKind
in
[
fkData
,
fkLookup
])
then
exit
;
//如果字段类型不属于物理字段或查询字段则退出
if
Column
.
Field
.
FieldKind
=
fkData
then
...
...
@@ -130,9 +131,15 @@ begin
while
Pos
(
myFieldName
,
';'
)<>
0
do
//如果名称中包含分号
myFieldName
:=
copy
(
myFieldName
,
1
,
Pos
(
myFieldName
,
';'
)-
1
)
+
','
+
copy
(
myFieldName
,
Pos
(
myFieldName
,
';'
)+
1
,
100
);
//把分号变逗号
with
TFDQuery
(
TDBGrid
(
Column
.
Grid
)
.
DataSource
.
DataSet
)
do
with
TFDQuery
(
DBGrid
.
DataSource
.
DataSet
)
do
begin
close
;
colnum
:=
column
.
index
;
if
(
Pos
(
'↑'
,
column
.
Title
.
Caption
)
>
0
)
or
(
Pos
(
'↓'
,
column
.
Title
.
Caption
)
>
0
)
then
column
.
Title
.
Caption
:=
Copy
(
column
.
Title
.
Caption
,
3
,
Length
(
column
.
Title
.
Caption
)
-
2
);
//如果字段名中包含上下箭头,去掉字段名前两个字符
TitleStr
:=
Column
.
Title
.
Caption
;
//取字段标题
SqlStr
:=
UpperCase
(
Sql
.
Text
);
//SQL语句字符串大写
// if pos(myFieldName,SqlStr)=0 then exit; //如果SQL语句中不存在所选字段名,则退出
if
ParamCount
>
0
then
//如果运行过程时包含参数
...
...
@@ -146,23 +153,35 @@ begin
OrderPos
:=
pos
(
'ORDER'
,
SqlStr
);
//获取'ORDER'串在SQL语句中的起始位置
if
(
OrderPos
=
0
)
or
(
pos
(
myFieldName
,
copy
(
SqlStr
,
OrderPos
,
100
))=
0
)
then
//如不存在ORDER或ORDER子句中不包含所选字段
TempStr
:=
' Order By '
+
myFieldName
+
' Asc'
//生成按照所选字段升序排列的ORDER子句
begin
TempStr
:=
' Order By '
+
myFieldName
+
' Asc'
;
//生成按照所选字段升序排列的ORDER子句
TitleStr
:=
'↑ '
+
TitleStr
;
end
else
if
pos
(
'ASC'
,
SqlStr
)=
0
then
//如果ORDER子句中有所选字段但不包含升序标志
TempStr
:=
' Order By '
+
myFieldName
+
' Asc'
//生成按所选字段升序排列的ORDER子句
begin
TempStr
:=
' Order By '
+
myFieldName
+
' Asc'
;
//生成按照所选字段升序排列的ORDER子句
TitleStr
:=
'↑ '
+
TitleStr
;
end
else
//如果ORDER子句中有所选字段且包含升序标志
TempStr
:=
' Order By '
+
myFieldName
+
' Desc'
;
//生成按所选字段降序排列的ORDER子句
begin
TempStr
:=
' Order By '
+
myFieldName
+
' Desc'
;
//生成按所选字段降序排列的ORDER子句
TitleStr
:=
'↓ '
+
TitleStr
;
end
;
if
OrderPos
<>
0
then
SqlStr
:=
Copy
(
SqlStr
,
1
,
OrderPos
-
1
);
//如果存在ORDER子句,提取ORDER子句之前的SQL语句内容
SqlStr
:=
SqlStr
+
TempStr
;
//将其与新生成的ORDER子句连接
Active
:=
False
;
//锁定QUERY状态
Sql
.
Clear
;
//清除SQL内容
Sql
.
Text
:=
SqlStr
;
//更新SQL内容
if
ParamCount
>
0
then
//如果运行过程时包含参数
begin
Params
.
Assign
(
SavedParams
);
//提取保存的参数变量
SavedParams
.
Free
;
//释放参数变量
end
;
Prepare
;
//将带参数的SQL语句传给数据库引擎
Open
;
//打开查询
if
Not
Active
then
Open
;
//打开查询
DBGrid
.
Columns
[
colnum
].
Title
.
Caption
:=
TitleStr
;
for
i
:=
0
to
Fields
.
Count
-
1
do
//循环读取常量数组,设定各列显示宽度
begin
...
...
RuKu.pas
浏览文件 @
9a47164c
...
...
@@ -143,7 +143,7 @@ end;
procedure
TForm2
.
DBGrid1TitleClick
(
Column
:
TColumn
);
begin
DM1
.
DBGridSort
(
Column
);
DM1
.
DBGridSort
(
DBGrid1
,
Column
);
end
;
procedure
TForm2
.
DBLookupComboBox1CloseUp
(
Sender
:
TObject
);
...
...
TiShi.pas
浏览文件 @
9a47164c
...
...
@@ -117,7 +117,7 @@ end;
procedure
TForm6
.
DBGrid1TitleClick
(
Column
:
TColumn
);
begin
DM1
.
DBGridSort
(
Column
);
DM1
.
DBGridSort
(
DBGrid1
,
Column
);
end
;
procedure
TForm6
.
DBGrid2DrawDataCell
(
Sender
:
TObject
;
const
Rect
:
TRect
;
...
...
@@ -138,7 +138,7 @@ end;
procedure
TForm6
.
DBGrid2TitleClick
(
Column
:
TColumn
);
begin
DM1
.
DBGridSort
(
Column
);
DM1
.
DBGridSort
(
DBGrid2
,
Column
);
end
;
end
.
WZGL.dproj
浏览文件 @
9a47164c
...
...
@@ -88,9 +88,9 @@
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_AutoIncVersion>true</VerInfo_AutoIncVersion>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.9.
2
;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.9.
3
;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
<VerInfo_Release>9</VerInfo_Release>
<VerInfo_Build>
2
</VerInfo_Build>
<VerInfo_Build>
3
</VerInfo_Build>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_2)'!=''">
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
...
...
WZGL.res
浏览文件 @
9a47164c
无法预览此类型文件
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录