uniGUI試用筆記(十一) ---UNIDBGRID

最近研究了一下UniGUI的TuniDBGrid,記錄一下省得忘記了。前端

TuniDBGrid的重要屬性包括:ide

一、列—TUniDBGridColumns和TUniDBGridColumnidea

每一個列對象(TUniDBGridColumn)的重要屬性包括:spa

  • CheckBoxField : TUniCheckBoxField

列做爲CheckBox操做的相關屬性orm

屬性對象

類型blog

說明排序

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的右側。以下圖:

image

  • DisplayMemo:Boolean

對TMemoField而言,是否顯示(Memo)字樣,缺省爲False

False—不顯示字段內容,顯示(Memo)字樣

True—不顯示(Memo)字樣,而是直接顯示字段內容

  • Filtering : TUniColumnFilter

在列標題下顯示過濾編輯框,自動對列數據進行過濾,以下圖:

image

參考Demos下的GridFilter例子。要實現該功能,必須:

     A.放一個TUniHiddenPanel控件在窗體上,而後將TUniEdit、TUniComboBox 、TUniDBLookupComboBox等控件放置在這個隱藏的Panel上,以下圖:

image

      B.設置每一個列的Filtering,將其Editor屬性設置對應的編輯控件

      C. 對編輯控件進行相關屬性設置,如TUniDBLookupComboBox須要設置ListSource等

屬性

類型

說明

ChangeDelay

Integer

當用戶鍵入字符後,延時進行過濾處理的毫秒數

Editor

TControl

過濾的輸入框,按照輸入框內容進行過濾。TUniDBLookupComboBox按照KeyField的值進行過濾

Enabled

Boolean

是否容許進行過濾

  • GroupHeader和GroupHeaderSeparator

多欄顯示錶頭,如GroupHeader = a;b;c 時的樣式見下圖:

image

  • ShowSummary:Boolean

是否顯示合計值,與Grid的Summary的屬性聯合使用。

  • Sortable:Boolean

是否容許進行排序操做。容許排序操做時,在字段名稱旁顯示排序符號,而且在Menu中的排序菜單是可用的,以下圖:

image

  • Editor : TControl;

對該字段進行編輯時,對應的單元採用怎樣的控件進行處理,這個功能很是強大,如設置TuniComboBox做爲Editor則徹底替代字段Picklist的功能,以下圖:

image

  • Memu(TUniColumnMenu)

對列標題下拉顯示的菜單進行控制

屬性

類型

說明

ColoumnHideable

Boolean

是否容許隱藏字段,缺省True,即容許用戶經過勾選隱藏指定的列,以下圖:

image

MenuEnabled

Boolean

是否容許顯示列的菜單

MenuText

String

該列顯示在菜單上的文字,缺省爲空,表示顯示字段DisplayLabel,不然顯示該文字。以下圖:

image

  • 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;

該方法可讓列顯示某項圖片按鈕,如:

image

相關文章
相關標籤/搜索