Search the Community
Showing results for tags 'index'.
-
Save and restore the order and width of columns in UnidbGrid These functions can be used in forms If the form contains a grid, just pass the grid and leave the second parameter empty If the form contains multiple grids, you can also pass a second word in the second parameter in addition to the grid Virtual table (kind of memory tables) tables are used for saving and retrieving, but you can use JSON or XML Procedure TDMT.SaveGrids_SaveGridLayout(Grid: TUniDBGrid; Const KeyAlt: String = ''); Var i: Integer; vt: TVirtualTable; Begin If Not Assigned(Grid) Then Exit; Grid.Refresh; vt := VTGridLayouts; // حذف قبلی Try SaveGrids_DeleteGridLayout(Grid, KeyAlt); // ذخیره جدید For i := 0 To Grid.Columns.Count - 1 Do Begin vt.Insert; vt.FieldByName('GridKey') .AsString := Grid.Parent.Name + '_' + Grid.Name; vt.FieldByName('GridKeyAlt') .AsString := KeyAlt; vt.FieldByName('FieldName') .AsString := Grid.Columns[i].FieldName; vt.FieldByName('ColIndex') .AsInteger := Grid.Columns[i].Index; vt.FieldByName('ColWidth') .AsInteger := IfThen(Grid.Columns[i].Width>150,Grid.Columns[i].Width,150); vt.Post; End; Finally SaveGrids_SaveToFile; End; End; Procedure TDMT.SaveGrids_LoadGridLayout(Grid: TUniDBGrid; Const KeyAlt: String = ''); Var i: Integer; vt: TVirtualTable; EffectiveKey, FieldName: String; Begin If Not Assigned(Grid) Then Exit; vt := VTGridLayouts; EffectiveKey := IfThen(KeyAlt <> '', KeyAlt, Grid.Parent.Name + '_' + Grid.Name); vt.Filtered:=False; Vt.Filter:='(GridKeyAlt='+ QuotedStr(KeyAlt)+') Or (GridKey='+QuotedStr(Grid.Parent.Name + '_' + Grid.Name)+' And GridKeyAlt ='+ QuotedStr('')+')'; vt.Filtered:=True; For i := 0 To Grid.Columns.Count - 1 Do Begin FieldName := Grid.Columns[i].FieldName; vt.First; If Vt.Locate('FieldName',FieldName,[]) Then Begin Grid.Columns[i].Flex := 0; Grid.Columns[i].Index := vt.FieldByName('ColIndex').AsInteger; Grid.Columns[i].MinWidth := 100; Grid.Columns[i].Width := vt.FieldByName('ColWidth').AsInteger; End; End; End; Procedure TDMT.SaveGrids_DeleteGridLayout(Grid: TUniDBGrid; Const KeyAlt: String = ''); Var vt: TVirtualTable; Begin If Not Assigned(Grid) Then Exit; vt := VTGridLayouts; vt.Filtered := False; vt.Filter := '(GridKeyAlt=' + QuotedStr(KeyAlt) + ') Or (GridKey=' + QuotedStr(Grid.Parent.Name + '_' + Grid.Name) + ' And GridKeyAlt =' + QuotedStr('') + ')'; vt.Filtered := True; vt.First; While Not vt.IsEmpty Do vt.Delete; vt.Filtered := False; End; procedure TDMT.SaveGrids_SaveToFile; begin VTGridLayouts.SaveToFile(CurrentPath + '\GridLayouts.xml'); end; procedure TDMT.SaveGrids_LoadFromFile; begin if FileExists(CurrentPath + '\GridLayouts.xml') then VTGridLayouts.LoadFromFile(CurrentPath + '\GridLayouts.xml'); VTGridLayouts.Open; end;
- 3 replies
-
- 2
-
-
- unidbgrid
- virtualtable
- (and 4 more)
-
Hi all, Is it possible to change column index in the UniGrid runtime? Or How to change order of columns in the grid? example: grid.Columns[1].index:=5; br,mk.
-
Merhaba, HTML ile yapılan sayfalarda google indexleme işlemleri için yapılacaklar belli iken unigui tarafında bu işlemler nasıl yapılabilir. Örneğin; Unigui ile bir haber sitesi yaptığımızı düşünürsek her haberin google tarafından indexlenmesi aramalarda ilgili linke tıklandığında unigui tarafında ilgili haberin gelmesini sağlayabilir miyiz? Bununla birlikte google ve yandex metrica gibi site analizi gibi işlemler unigui tarafında her sayfa için nasıl kullanılabilir. Forumda daha önce konuşulan konularda; Bunun çok mümkün olmadığı yazılmıştı tabi zamanla değişim olmuş olabilir. Teşekkürler.