unit uEditorElegirContratosClienteParaCompra; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, uViewContratosClienteParaCompra, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uViewBarraSeleccion, JvgWizardHeader, StdCtrls, uEditorContratosCliente, uBizContratosCliente, uIEditorElegirContratosCliente, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; type TfEditorElegirContratosClienteParaCompra = class(TfEditorContratosCliente, IEditorElegirContratosCliente) frViewBarraSeleccion1: TfrViewBarraSeleccion; JvgWizardHeader1: TJvgWizardHeader; EditorSeleccionActionList: TActionList; actBuscar2: TAction; actQuitarFiltro2: TAction; actAnchoAuto2: TAction; procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); procedure FormShow(Sender: TObject); procedure actAnchoAuto2Execute(Sender: TObject); procedure actQuitarFiltro2Execute(Sender: TObject); protected procedure SetMultiSelect (AValue : Boolean); function GetMultiSelect : Boolean; function GetContratosClienteSeleccionados: IBizContratoCliente; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; //Si queremos crear otra vista para el editor heredado solo tendriamos que //sobreescribir este metodo procedure AsignarVista; override; public property Mensaje : String read GetMensaje write SetMensaje; property ContratosClienteSeleccionados: IBizContratoCliente read GetContratosClienteSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, uGridUtils, uEditorBase, uContratosClienteController, cxGridLevel; {$R *.dfm} { TfEditorElegirContratosCliente } procedure TfEditorElegirContratosClienteParaCompra.actAnchoAuto2Execute(Sender: TObject); begin inherited; actAnchoAuto.Execute; end; procedure TfEditorElegirContratosClienteParaCompra.actQuitarFiltro2Execute(Sender: TObject); begin inherited; actQuitarFiltro.Execute; end; procedure TfEditorElegirContratosClienteParaCompra.AsignarVista; begin ViewGrid := CreateView(TfrViewContratosClienteParaCompra) as IViewContratosCliente; end; procedure TfEditorElegirContratosClienteParaCompra.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; end; procedure TfEditorElegirContratosClienteParaCompra.frViewBarraSeleccion1actCancelarExecute( Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirContratosClienteParaCompra.frViewBarraSeleccion1actSeleccionarExecute( Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirContratosClienteParaCompra.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirContratosClienteParaCompra.GetContratosClienteSeleccionados: IBizContratoCliente; begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contratos as ISeleccionable).SelectedRecords); // En SelectedRecords tengo los ID de las filas seleccionadas del grid Result := (Controller as IContratosClienteController).ExtraerSeleccionados(Contratos) as IBizContratoCliente; end; function TfEditorElegirContratosClienteParaCompra.GetMensaje: String; begin Result := JvgWizardHeader1.Comments.Text; end; function TfEditorElegirContratosClienteParaCompra.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirContratosClienteParaCompra.SetMensaje(const AValue: String); begin JvgWizardHeader1.Comments.Text := AValue; end; procedure TfEditorElegirContratosClienteParaCompra.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirContratosClienteParaCompra.SetViewGrid(const Value: IViewGridBase); begin inherited; //Para que no salgan las pestaņas de filtrado ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; end.