unit uViewControlVentaProceso; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewControlBase, ActnList, ImgList, PngImageList, uViewGrid, uViewControlGrid, uViewSumarios, TBXDkPanels, StdCtrls, uViewAgrupaciones, uCustomView, uViewBase, uViewColumnas, ComCtrls, TB2Dock, uViewParametrosControlGrid, uBizControlesBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxTextEdit, uViewControGridlVentaProceso, uViewFiltros; type IViewControlVentaProceso = interface(IViewControlBase) ['{C3433C18-BB61-4046-BC0B-CE783A6F7189}'] end; TfrViewControlVentaProceso = class(TfrViewControlBase, IViewControlVentaProceso) frViewControlGridVentaProceso1: TfrViewControlGridVentaProceso; procedure actRefrescarExecute(Sender: TObject); protected FModificado : Boolean; procedure OnViewControlGridChanged(Sender : TObject); procedure OnFilterChanged(Sender : TObject); public constructor Create(AOwner: TComponent); override; procedure Refresh; override; end; implementation uses uDataModuleVentasProceso, uBizControlVentasProceso, uBizVentasProceso; {$R *.dfm} { TfrViewControlVentaProceso } constructor TfrViewControlVentaProceso.Create(AOwner: TComponent); begin inherited; frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; frViewColumnas1.ViewControlGrid := frViewControlGridVentaProceso1; frViewAgrupaciones1.ViewControlGrid := frViewControlGridVentaProceso1; frViewSumarios1.ViewControlGrid := frViewControlGridVentaProceso1; frViewFiltros1.ViewControlGrid := frViewControlGridVentaProceso1; end; procedure TfrViewControlVentaProceso.Refresh; var AColumns : TStringList; begin inherited; ShowHourglassCursor; actRefrescar.Enabled := False; frViewControlGridVentaProceso1.OnViewChanged := nil; frViewControlGridVentaProceso1.OnFilterChanged := nil; try // Calcular las columnas a pedir al servidor AColumns := frViewColumnas1.GetCheckedColumns; AColumns.Duplicates := dupIgnore; AColumns.AddStrings(frViewAgrupaciones1.GetAgrupaciones); (Control as IBizControlVentasProceso).Items.VisibleColumns := AColumns.CommaText; with (Control as IBizControlVentasProceso).Items.DataTable do begin DisableControls; try Active := False; LoadSchema; Active := True; frViewColumnas1.Execute; frViewAgrupaciones1.Execute; frViewSumarios1.Refresh; frViewFiltros1.Refresh; pnlTareas.Visible := True; if Assigned(FOnViewChanged) then FOnViewChanged(Self); finally EnableControls; frViewControlGridVentaProceso1.Refresh; frViewControlGridVentaProceso1.ExpandirTodo; frViewControlGridVentaProceso1.GotoFirst; end; end; finally FreeAndNil(AColumns); frViewControlGridVentaProceso1.OnViewChanged := OnViewControlGridChanged; frViewControlGridVentaProceso1.OnFilterChanged := OnFilterChanged; actRefrescar.Enabled := True; HideHourglassCursor; end; end; procedure TfrViewControlVentaProceso.actRefrescarExecute(Sender: TObject); begin inherited; Refresh; end; procedure TfrViewControlVentaProceso.OnViewControlGridChanged( Sender: TObject); begin if Assigned(Self.OnViewChanged) then Self.OnViewChanged(Self); end; procedure TfrViewControlVentaProceso.OnFilterChanged(Sender: TObject); begin frViewFiltros1.Refresh; end; end.