unit uEditorElegirComerciales; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorComerciales, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid, uViewContactos, uViewComerciales, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorElegirComerciales, uViewBarraSeleccion, StdCtrls, uBizContactos, TBXStatusBars, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces, dxGDIPlusClasses; type TfEditorElegirComerciales = class(TfEditorComerciales, IEditorElegirComerciales) frViewBarraSeleccion1: TfrViewBarraSeleccion; JsClienteBloqueadoDialog: TJSDialog; EditorSeleccionActionList: TActionList; actBuscar2: TAction; actQuitarFiltro2: TAction; actAnchoAuto2: TAction; pnlHeader: TPanel; lblTitle: TLabel; lblComments: TLabel; procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); procedure FormShow(Sender: TObject); procedure actQuitarFiltro2Execute(Sender: TObject); procedure actAnchoAuto2Execute(Sender: TObject); protected procedure SetMultiSelect (AValue : Boolean); function GetMultiSelect : Boolean; function GetContactosSeleccionados: IBizContacto; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; public property Mensaje : String read GetMensaje write SetMensaje; property ContactosSeleccionados: IBizContacto read GetContactosSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uEditorContactos, uGridUtils, uEditorBase, cxControls, uDBSelectionListUtils, uDialogUtils; {$R *.dfm} { TfEditorElegirComerciales } procedure TfEditorElegirComerciales.actAnchoAuto2Execute(Sender: TObject); begin inherited; actAnchoAuto.Execute; end; procedure TfEditorElegirComerciales.actQuitarFiltro2Execute(Sender: TObject); begin inherited; actQuitarFiltro.Execute; end; procedure TfEditorElegirComerciales.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; frViewComerciales1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; end; procedure TfEditorElegirComerciales.frViewBarraSeleccion1actCancelarExecute(Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirComerciales.frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); var Respuesta : Integer; begin inherited; // ¿El cliente seleccionado está bloqueado? { if (FContactos as IBizComercial).BLOQUEADO = 1 then begin JsClienteBloqueadoDialog.Content.Text := 'Motivo: ' + (FContactos as IBizCliente).MOTIVO_BLOQUEO; Respuesta := JsClienteBloqueadoDialog.Execute; if Respuesta <> IDCANCEL then begin case JsClienteBloqueadoDialog.CustomButtonResult of 200 : begin // Utilizarlo aunque esté bloqueado ModalResult := mrOk; Exit; end; 100 : begin // Elegir otro Exit; end; end; end; end else // El cliente no está bloqueado. Puedo continuar. } ModalResult := mrOk; end; procedure TfEditorElegirComerciales.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirComerciales.GetContactosSeleccionados: IBizContacto; begin ShowHourglassCursor; try SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Contactos as ISeleccionable).SelectedRecords); // En Contactos.SelectedRecords tengo los ID de las filas seleccionadas del grid Result := Controller.ExtraerSeleccionados(Contactos); finally HideHourglassCursor; end; end; function TfEditorElegirComerciales.GetMensaje: String; begin Result := lblComments.Caption; end; function TfEditorElegirComerciales.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirComerciales.SetMensaje(const AValue: String); begin lblComments.Caption := AValue; end; procedure TfEditorElegirComerciales.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirComerciales.SetViewGrid(const Value: IViewGridBase); begin inherited; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; end.