{ =============================================================================== Copyright (©) 2007. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: Versión actual: 1.0.0 Fecha versión actual: =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit uEditorElegirRecibosCliente; 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, JvExComCtrls, JvStatusBar, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uViewBarraSeleccion, StdCtrls, uViewRecibosCliente, uEditorRecibosCliente, uBizRecibosCliente, uIEditorElegirRecibosCliente, Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog, uDAInterfaces; type TfEditorElegirRecibosCliente = class(TfEditorRecibosCliente, IEditorElegirRecibosCliente) frViewBarraSeleccion1: TfrViewBarraSeleccion; lblTitle: TLabel; lblComments: TLabel; EditorSeleccionActionList: TActionList; actBuscar2: TAction; actQuitarFiltro2: TAction; actAnchoAuto2: TAction; pnlFiltrar: TTBXDockablePanel; Label1: TLabel; txtFiltroTodo: TcxTextEdit; edtFechaFiltro1: TcxDateEdit; edtFechaFiltro2: TcxDateEdit; rbTodo: TcxRadioButton; rbFechas: TcxRadioButton; Button1: TBitBtn; procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject); procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject); procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject); procedure FormShow(Sender: TObject); procedure actAnchoAuto2Execute(Sender: TObject); procedure actQuitarFiltro2Execute(Sender: TObject); procedure txtFiltroTodoPropertiesChange(Sender: TObject); procedure edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); procedure rbTodoClick(Sender: TObject); protected procedure SetMultiSelect (AValue : Boolean); function GetMultiSelect : Boolean; function GetRecibosClienteSeleccionados: IBizRecibosCliente; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; public property Mensaje : String read GetMensaje write SetMensaje; property RecibosClienteSeleccionados: IBizRecibosCliente read GetRecibosClienteSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, uGridStatusUtils, uDialogUtils, uEditorBase, uRecibosClienteController; {$R *.dfm} { TfEditorElegirRecibosCliente } procedure TfEditorElegirRecibosCliente.actAnchoAuto2Execute(Sender: TObject); begin inherited; actAnchoAuto.Execute; end; procedure TfEditorElegirRecibosCliente.actQuitarFiltro2Execute(Sender: TObject); begin // inherited; if Assigned(ViewGrid) then begin txtFiltroTodo.Clear; edtFechaFiltro1.Clear; edtFechaFiltro2.Clear; (ViewGrid as IViewRecibosCliente).FiltrarPorFechas(null, null); inherited; end; // actQuitarFiltro.Execute; end; procedure TfEditorElegirRecibosCliente.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); begin if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then begin if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then begin ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); edtFechaFiltro1.SetFocus; end else (ViewGrid as IViewRecibosCliente).FiltrarPorFechas(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue); end; end; procedure TfEditorElegirRecibosCliente.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; frViewRecibosCliente1.cxViewGridPopupMenu.PopupMenus.Items[0].HitTypes := []; end; procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actCancelarExecute( Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actSeleccionarExecute( Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirRecibosCliente.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirRecibosCliente.GetRecibosClienteSeleccionados: IBizRecibosCliente; begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (RecibosCliente as ISeleccionable).SelectedRecords); // En SelectedRecords tengo los ID de las filas seleccionadas del grid Result := (Controller as IRecibosClienteController).ExtraerSeleccionados(RecibosCliente) as IBizRecibosCliente; end; procedure TfEditorElegirRecibosCliente.rbTodoClick(Sender: TObject); begin actQuitarFiltro.Execute; if rbTodo.Checked then begin edtFechaFiltro1.Enabled := False; edtFechaFiltro2.Enabled := False; txtFiltroTodo.Enabled := True; end else begin edtFechaFiltro1.Enabled := True; edtFechaFiltro2.Enabled := True; txtFiltroTodo.Enabled := False; end; end; function TfEditorElegirRecibosCliente.GetMensaje: String; begin Result := lblComments.Caption; end; function TfEditorElegirRecibosCliente.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirRecibosCliente.SetMensaje(const AValue: String); begin lblComments.Caption := AValue; end; procedure TfEditorElegirRecibosCliente.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirRecibosCliente.SetViewGrid(const Value: IViewGridBase); begin inherited; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; procedure TfEditorElegirRecibosCliente.txtFiltroTodoPropertiesChange(Sender: TObject); begin if Assigned(ViewGrid) then ViewGrid.Filter := txtFiltroTodo.Text; end; end.