{ =============================================================================== 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 uEditorElegirFacturasCliente; 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, JvgWizardHeader, StdCtrls, uViewFacturasCliente, uEditorFacturasCliente, uBizFacturasCliente, uIEditorElegirFacturasCliente, Buttons, cxRadioGroup, cxMaskEdit, cxDropDownEdit, cxCalendar, cxControls, cxContainer, cxEdit, cxTextEdit, TBXDkPanels, JSDialog; type TfEditorElegirFacturasCliente = class(TfEditorFacturasCliente, IEditorElegirFacturasCliente) frViewBarraSeleccion1: TfrViewBarraSeleccion; JvgWizardHeader1: TJvgWizardHeader; 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 GetFacturasClienteSeleccionados: IBizFacturaCliente; procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; public property Mensaje : String read GetMensaje write SetMensaje; property FacturasClienteSeleccionados: IBizFacturaCliente read GetFacturasClienteSeleccionados; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; end; implementation uses uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, uGridUtils, uEditorBase, uFacturasClienteController; {$R *.dfm} { TfEditorElegirFacturasCliente } procedure TfEditorElegirFacturasCliente.actAnchoAuto2Execute(Sender: TObject); begin inherited; actAnchoAuto.Execute; end; procedure TfEditorElegirFacturasCliente.actQuitarFiltro2Execute(Sender: TObject); begin // inherited; if Assigned(ViewGrid) then begin txtFiltroTodo.Clear; edtFechaFiltro1.Clear; edtFechaFiltro2.Clear; // (ViewGrid as IViewFacturasCliente).FiltrarPorFechas(null, null); inherited; end; // actQuitarFiltro.Execute; end; procedure TfEditorElegirFacturasCliente.edtFechaFiltro1PropertiesEditValueChanged(Sender: TObject); begin if not VarIsNull(edtFechaFiltro1.EditValue) and not VarIsNull(edtFechaFiltro2.EditValue) then begin if (edtFechaFiltro1.EditValue > edtFechaFiltro2.EditValue) then begin ShowMessage('La fecha de inicio debe ser anterior a la fecha final'); edtFechaFiltro1.SetFocus; end else // (ViewGrid as IViewFacturasCliente).FiltrarPorFechas(edtFechaFiltro1.EditValue, edtFechaFiltro2.EditValue); end; end; procedure TfEditorElegirFacturasCliente.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; end; procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actCancelarExecute( Sender: TObject); begin inherited; Close; end; procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarExecute( Sender: TObject); begin inherited; ModalResult := mrOk; end; procedure TfEditorElegirFacturasCliente.frViewBarraSeleccion1actSeleccionarUpdate( Sender: TObject); begin inherited; (Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0) end; function TfEditorElegirFacturasCliente.GetFacturasClienteSeleccionados: IBizFacturaCliente; begin SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); // En SelectedRecords tengo los ID de las filas seleccionadas del grid Result := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente; end; procedure TfEditorElegirFacturasCliente.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 TfEditorElegirFacturasCliente.GetMensaje: String; begin Result := JvgWizardHeader1.Comments.Text; end; function TfEditorElegirFacturasCliente.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; procedure TfEditorElegirFacturasCliente.SetMensaje(const AValue: String); begin JvgWizardHeader1.Comments.Text := AValue; end; procedure TfEditorElegirFacturasCliente.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; procedure TfEditorElegirFacturasCliente.SetViewGrid(const Value: IViewGridBase); begin inherited; ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; end; procedure TfEditorElegirFacturasCliente.txtFiltroTodoPropertiesChange(Sender: TObject); begin if Assigned(ViewGrid) then ViewGrid.Filter := txtFiltroTodo.Text; end; end.