uniGUI试用笔记(十一)
最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了。
TuniDBGrid的重要属性包括:
1、列—TUniDBGridColumns和TUniDBGridColumn
每个列对象(TUniDBGridColumn)的重要属性包括:
- CheckBoxField : TUniCheckBoxField
列作为CheckBox操作的相关属性
属性 |
类型 |
说明 |
AutoPost |
Boolean |
当用户点选CheckBox后,改变前端显示并根据该属性决定: True—立即自动提交到数据集中并刷新前端显示 False—只改变前端显示,当记录滚动时再提交数据集 |
BooleanFieldOnly |
Boolean |
是否只针对Boolean字段, True—只能识别Boolean字段,非Boolean字段将不能显示CheckBox False—DisplayValues和FieldValues可以针对非Boolean字段进行处理 |
Enabled |
Boolean |
是否允许显示CheckBox |
DisplayValues/ FieldValues |
string |
联合决定了CheckBox不同状态下对应的值,FieldValues存储字段值,DisplayValues存储显示文字,如果空白就表示不显示文字,只显示CheckBox,每个值通过分号(;)区分,文字显示CheckBox的右侧。如下图: |
- DisplayMemo:Boolean
对TMemoField而言,是否显示(Memo)字样,缺省为False
False—不显示字段内容,显示(Memo)字样
True—不显示(Memo)字样,而是直接显示字段内容
- Filtering : TUniColumnFilter
在列标题下显示过滤编辑框,自动对列数据进行过滤,如下图:
参考Demos下的GridFilter例子。要实现该功能,必须:
A.放一个TUniHiddenPanel控件在窗体上,然后将TUniEdit、TUniComboBox 、TUniDBLookupComboBox等控件放置在这个隐藏的Panel上,如下图:
B.设置每个列的Filtering,将其Editor属性设置对应的编辑控件
C. 对编辑控件进行相关属性设置,如TUniDBLookupComboBox需要设置ListSource等
属性 |
类型 |
说明 |
ChangeDelay |
Integer |
当用户键入字符后,延时进行过滤处理的毫秒数 |
Editor |
TControl |
过滤的输入框,按照输入框内容进行过滤。TUniDBLookupComboBox按照KeyField的值进行过滤 |
Enabled |
Boolean |
是否允许进行过滤 |
- GroupHeader和GroupHeaderSeparator
多栏显示表头,如GroupHeader = a;b;c 时的样式见下图:
- ShowSummary:Boolean
是否显示合计值,与Grid的Summary的属性联合使用。
- Sortable:Boolean
是否允许进行排序操作。允许排序操作时,在字段名称旁显示排序符号,并且在Menu中的排序菜单是可用的,如下图:
- Editor : TControl;
对该字段进行编辑时,对应的单元采用怎样的控件进行处理,这个功能非常强大,如设置TuniComboBox作为Editor则完全替代字段Picklist的功能,如下图:
- Memu(TUniColumnMenu)
对列标题下拉显示的菜单进行控制
属性 |
类型 |
说明 |
ColoumnHideable |
Boolean |
是否允许隐藏字段,缺省True,即允许用户通过勾选隐藏指定的列,如下图: |
MenuEnabled |
Boolean |
是否允许显示列的菜单 |
MenuText |
String |
该列显示在菜单上的文字,缺省为空,表示显示字段DisplayLabel,否则显示该文字。如下图: |
- ImageOptions
当该字段需要显示图片时,联合使用ImageOptions属性和OnFieldImage事件,其中:
属性 |
类型 |
说明 |
Height/Width |
Integer |
显示图片的大小 |
Visible |
Boolean |
是否显示图片,True则触发OnFieldImage事件进行图片处理,如: procedure TMainForm.UniDBGrid1FieldImage(const Column: TUniDBGridColumn; const AField: TField; var OutImage: TGraphic; var DoNotDispose: Boolean; var ATransparent: TUniTransparentOption); begin if SameText(AField.FieldName, 'gender') then begin // 代码处理图片 DoNotDispose := True; // 根据字段值返回图片 if AField.AsString = 'male' then OutImage := UniImage1.Picture.Graphic else if AField.AsString = 'female' then OutImage := UniImage2.Picture.Graphic; end; end; |
该方法可以让列显示某项图片按钮,如:
uniGUI试用笔记(十一)的更多相关文章
- uniGUI试用笔记(十三)调用WebService
今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘. 1.对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长, ...
- uniGUI试用笔记(十)
今天用LoadRunner对uniGUI的Standalone模式的程序进行了一次压力测试,程序采用三层模式,将应用服务器与Web服务器分离,由于条件限制,数据库.应用服务和Web服务都部署在同一条云 ...
- uniGUI试用笔记(九)
uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了 ...
- uniGUI试用笔记(八)
在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置: 其中Next和Prior决定了焦点向下一 ...
- uniGUI试用笔记(七)
uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...
- uniGUI试用笔记(六)
uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易.首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件 ...
- uniGUI试用笔记(五)
uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继 ...
- uniGUI试用笔记(四)
uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为: function frmWebLogin: TfrmWebLogin; begin Result : ...
- uniGUI试用笔记(三)
uniGUI下的MessageDlg使用发生了变化,最大的特点是: 1.成为了uniGUIForm的成员函数: 2.变成过程(procedure)了,也就是没有返回值了,使得程序不再具有线程阻塞性. ...
随机推荐
- 北京时间转为时间搓 标准时间转为UTC
int standard_to_stamp(char *str_time) { struct tm stm; int iY, iM, iD, iH, iMin, ...
- WebApi关于配置全局返回Json数据格式时间以及命名小写
1.直接在Global文件中配置: 1 var formatters = GlobalConfiguration.Configuration.Formatters; 2 var jsonFormatt ...
- caffe中通过prototxt文件查看神经网络模型结构的方法
在修改propotxt之前我们可以对之前的网络结构进行一个直观的认识: 可以使用http://ethereon.github.io/netscope/#/editor 这个网址. 将propotxt文 ...
- 清华操作系统实验--80x86汇编基础
前言 80x86架构里,因为历史原因字是16位的,因此在汇编指令中用后缀-b,-w,-l来表示操作数是字节 字 或是双字 C声明 Intel数据类型 汇编代码后缀 大小(字节) char 字节 b 1 ...
- C#深入研究ArrayList动态数组自动扩容原理
1 void Test1() { ArrayList arrayList = new ArrayList(); ; ; i < length; i++) { arrayList.Add(&quo ...
- html5常用数学 公式的用法
<script> // alert(Math.PI); // alert(Math.floor(3.16)); // var a=Math.ceil(3. ...
- Block 循环引用(中)
不会造成循环引用的block 大部分GCD方法 dispatch_async(dispatch_get_main_queue(), ^{ [self doSomething]; }); 因为self并 ...
- C++笔试题2(基础题)
温馨提醒:此文续<C++笔试题(基础题)> (112)请写出下列程序的输出内容 代码如下: #include <iostream> using namespace std; c ...
- Redis入门——Java接口
1. maven配置 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis&l ...
- 【转】SQLyog SSH 密钥登陆认证提示: No supported authentication methods available 解决方法
问题背景: 问题原因: SQLyog不支持非标准的的私钥格式 解决方案: 使用puttyGen重新导入原来的私钥,然后重新保存成PPK证书文件,最后用SQLyog加载该PPK文件即可. 效果截图: 原 ...