cxFilterControlDialog; procedure TForm.GridView1FilterContr

时间:2022-01-01 04:57:50

列  
解决:
      <aColumn>.GroupIndex   :=   -1;  
      <aColumn>.Visible   :=   True;
****************************************************************************
39 生存改削到数据库
解决:
procedure   <aForm>.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
begin  
if   (<aGrid>.FocusedView <> nil)
and   (<aGrid>.FocusedView.DataController.EditState <> []) then  
          <aGrid>.FocusedView.DataController.Post;  
end;
****************************************************************************
40 设置内置右键菜单
解决:
内置右键菜单包孕二个菜单:cxGridStdHeaderMenu,   TcxGridStdFooterMenu  

[delphi] 

 

uses cxGridStdPopupMenu; procedure TForm1.cxGridPopupMenu1Popup(ASenderMenu: TComponent; AHitTest: TcxCustomGridHitTest; X, Y: Integer; var AllowPopup: Boolean); begin if ASenderMenu is TcxGridStdHeaderMenu then TcxGridStdHeaderMenu(ASenderMenu).OnPopup := StdHeaderMenuPopup; end; procedure TForm1.StdHeaderMenuPopup(Sender: TObject); var I: Integer; begin with TcxGridStdHeaderMenu(Sender).Items do for I := 0 to Count - 1 do if Items[I].Caption = Group By Box then begin Items[I].Enabled := False; System.Break; end end;

****************************************************************************
41 得到选中记录的值
解决:

[delphi] 

 

1) View.DataController.DataModeController.GridMode = False时 RecIdx := View.Controller.SelectedRecords[i].RecordIndex; ColIdx := View.DataController.GetItemByFieldName(AFieldName).Index; OutputVal := View.DataController.Values[RecIdx, ColIdx]; //RecID := View.DataController.GetRecordId(RecIdx); //OutputVal := ADataSet.Lookup(View.DataController.KeyFieldNames, RecID, AFieldName); 2) View.DataController.DataModeController.GridMode = True时 Bkm := View.DataController.GetSelectedBookmark(ASelectedRecordIndex); if ADataSet.BookmarkValid(TBookmark(Bkm)) then begin ADataSet.Bookmark := TBookmark(Bkm); OutputVal := ADataSet.FieldByName(AFieldName).Value; end; View.BeginUpdate; View.DataController.BeginLocate; try // make changes here… finally View.DataController.EndLocate; View.EndUpdate; end; **********************************************

******************************

42 在GridMode禁用内置的右键Footer菜单
解决:
uses   cxGridStdPopupMenu;  
   
procedure   cxGridPopupMenuOnPopup(...)  
begin  
      if   (ASenderMenu   is   TcxGridStdFooterMenu)   and  
              <GridView>.DataController.DataModeController.GridMode   then  
          AllowPopup   :=   False;  
end;
****************************************************************************
43 主从表任何时候只能展开一个组
解决:

[delphi] 

 

procedure TForm1.ADetailDataControllerCollapsin( ADataController: TcxCustomDataController; ARecordIndex: Integer; var AAllow: Boolean); var I: Integer; C: Integer; begin AAllow := False; C := 0; for I := 0 to ADataController.RecordCount - 1 do begin if ADataController.GetDetailExpanding(I) then Inc(C); if C > 1 then AAllow := True; end; end; procedure TForm1.ADetailDataControllerExpanding( ADataController: TcxCustomDataController; ARecordIndex: Integer; var AAllow: Boolean); begin ADataController.CollapseDetails; end; procedure TForm1.FormCreate(Sender: TObject); begin cxGrid1DBTableView1.DataController.OnDetailExpanding:=ADetailDataControllerExpanding; cxGrid1DBTableView1.DataController.OnDetailCollapsing:=ADetailDataControllerCollapsing; end; **************************************************************************** 44 动态创建条理(Level)和视图(View) 解决: var Grid: TcxGrid; Level: TcxGridLevel; View: TcxGridDBTableView; begin // Creates a Grid instance Grid := TcxGrid.Create(SomeOwner); Grid.Parent := SomeParent; // Creates a Level Level := Grid.Levels.Add; Level.Name := SomeLevelName; // Creates a View View := Grid.CreateView(TcxGridDBTableView) as TcxGridDBTableView; View.Name := SomeViewName; // … and binds it to the Level Level.GridView := View; // Hooks up the View to the data View.DataController.DataSource := SomeDataSource; // … and creates all columns View.DataController.CreateAllItems; end;

****************************************************************************
45 获得Group   Footer合计行对应的记录
解决:

[delphi]