其他分享
首页 > 其他分享> > (41)uniGUI for Delphi UniDBGrid 设置可勾选列及存储值和显示值对应关系

(41)uniGUI for Delphi UniDBGrid 设置可勾选列及存储值和显示值对应关系

作者:互联网

(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)

【阅读倡议】

1、有问题请留言;

2、没问题请点赞;

3、看连载请加群;

4、下源码请加群;

【开发工具】

1、C++Builder and Delphi 10.3.3

2、FMSoft_uniGUI_Complete_Professional_1.70.0.1531(正版)

本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943给我(群主)留言。资料简介:

https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
 

    

 

         UniDBGrid有很多“特异功能”,通过简单配置和几行代码就可以实现,本例子基于项目根目录下的SQLITE数据库demo.db的score表讲解uniDBGrid的几个“特异功能”。Score数据表结构如下所示:

1、创建一个项目,如下图所示,添加一个UniDBGrid、一个UniConnection、一个SQLiteUniProvider、一个UniQuery、一个UniDataSource、一个UniDBNavigator;一个UniHiddenPanel,在UniHiddenPanel上添加一个UniEdit、一个UniSpinEdit、一个UniComboBox、两个UniDateTimePicker、四个UniNumberEdit。

2、配置数据库控件的各个属性

控件名称

属性

取值

说明

UniDBGrid1

DataSource

UniDataSource1

数据源

UniDataSource1

DataSet

UniQuery1

数据集

UniQuery1

Connection

UniConnection1

数据库连接

UniConnection1

Database

D:\demo_9_16_d\demo.db

数据库文件

 

ProviderName

SQLite

数据库驱动类型

 

Connected

TRUE

是否连接

UniQuery1

SQL

select * from score

SQL查询语句

 

Active

TRUE

激活查询语句

UniDBNavigator1

DataSource

UniDataSource1

数据源

3、打开屏幕左上角Structure的UniDBGrid1控件,右键点击Columns添加十个数据列,点击0~9每个列,将FieldName属性分别设置为score表各个列的列名,将其Title->Caption属性设置为你需要的中文列头,将stu_score1和stu_score2两个列的Width属性设置为120宽。

 

为UniDBGrid设置可勾选列

         有时候希望把数据表的某个字段设置成可勾选式“正/反”逻辑输入,比如stu_sex表的性别列,如果想显示为“男/女”,勾选后对应的数据值为“1/0”或“true/false”,就可以将stu_sex字段的CheckBoxField属性的BooleanFieldOnly设置为True、DisplayValues设置为“男;女”、FieldValues设置为“1;0”。此时score数据表的stu_sex字段需要是逻辑型字段,如果不需要向数据表输入逻辑型数值就可以将BooleanFieldOnly设置为False,此时FieldValues可设置为你想向数据表输入的字符串值。需要注意的是DisplayValues和FieldValues之间的分号应该是英文小写状态下的分号,运行效果如下:

为了显著区别表格“性别”列选择的不同值,可在UniDBGrid的OnDrawColumnCell事件中添加代码实现:

procedure TMainForm.UniDBGrid1DrawColumnCell(Sender: TObject; ACol,

  ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs);

begin

  if Column.FieldName='stu_sex' then

           begin

             if Column.Field.AsBoolean then

                         begin

                           Attribs.Font.Color:=clGreen;

                    end

             else

                         begin

                      Attribs.Font.Color:=clRed;

                         end;

           end;

end;

标签:begin,uniGUI,数据表,Delphi,选列,stu,UniDBGrid,设置
来源: https://blog.csdn.net/martian6125/article/details/110390024