unit uEditorFacturasCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorGrid, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid, pngimage, uBizFacturasCliente, JvComponentBase, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, cxDBEdit, TBXDkPanels, dxLayoutControl, JvButton, cxRadioGroup, Buttons; type IEditorFacturasCliente = interface(IEditorGrid) ['{597BF875-BD19-4B68-898F-B09982B3360A}'] function GetFacturasCliente: IBizFacturasCliente; procedure SetFacturasCliente(const Value: IBizFacturasCliente); property FacturasCliente: IBizFacturasCliente read GetFacturasCliente write SetFacturasCliente; end; TfEditorFacturasCliente = class(TfEditorGrid, IEditorFacturasCliente) pnlFiltrar: TTBXDockablePanel; TBXItemFiltro: TTBXItem; actFiltrar: TAction; txtFiltroTodo: TcxTextEdit; edtFechaFiltro1: TcxDateEdit; edtFechaFiltro2: TcxDateEdit; Label1: TLabel; rbTodo: TcxRadioButton; rbFechas: TcxRadioButton; Button1: TBitBtn; procedure actEliminarExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actNuevoExecute(Sender: TObject); procedure actQuitarFiltroExecute(Sender: TObject); procedure edtFecha1PropertiesEditValueChanged(Sender: TObject); procedure actFiltrarExecute(Sender: TObject); procedure actFiltrarUpdate(Sender: TObject); procedure rbTodoClick(Sender: TObject); procedure txtFiltroTodoPropertiesChange(Sender: TObject); private FFacturasCliente: IBizFacturasCliente; protected function GetFacturasCliente: IBizFacturasCliente; procedure SetFacturasCliente(const Value: IBizFacturasCliente); procedure SetViewGrid(const Value: IViewGrid); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property FacturasCliente: IBizFacturasCliente read GetFacturasCliente write SetFacturasCliente; end; var fEditorFacturasCliente: TfEditorFacturasCliente; implementation uses uDataModuleFacturasCliente, uViewFacturasCliente, uEditorUtils; {$R *.dfm} function ShowEditorFacturasCliente (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorFacturasCliente; begin AEditor := TfEditorFacturasCliente.Create(Application); try AEditor.FacturasCliente := (ABizObject as IBizFacturasCliente); Result := AEditor.ShowModal; finally AEditor.Release; end; end; function ShowSelectEditorFacturasCliente (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorFacturasCliente; begin AEditor := TfEditorFacturasCliente.Create(Application); try AEditor.FacturasCliente := (ABizObject as IBizFacturasCliente); // AEditor.SelectionBarVisible := True; Result := AEditor.ShowModal; finally AEditor.Release; end; end; { *************************** TfEditorFacturasCliente *************************** } constructor TfEditorFacturasCliente.Create(AOwner: TComponent); begin inherited; ViewGrid := CreateView(TfrViewFacturasCliente) as IViewFacturasCliente; end; destructor TfEditorFacturasCliente.Destroy; begin FFacturasCliente := NIL; inherited; end; procedure TfEditorFacturasCliente.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar esta factura de cliente?', 'Atención', MB_YESNO) = IDYES) then begin inherited; ViewGrid.RefreshGrid; end; end; procedure TfEditorFacturasCliente.actModificarExecute(Sender: TObject); begin inherited; FacturasCliente.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; procedure TfEditorFacturasCliente.actNuevoExecute(Sender: TObject); begin inherited; FacturasCliente.Insert; FacturasCliente.Show; ViewGrid.RefreshGrid; ViewGrid.SyncFocusedRecordsFromDataSet; end; function TfEditorFacturasCliente.GetFacturasCliente: IBizFacturasCliente; begin Result := FFacturasCliente; end; procedure TfEditorFacturasCliente.SetFacturasCliente(const Value: IBizFacturasCliente); begin FFacturasCliente := Value; dsDataTable.DataTable := FFacturasCliente.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewFacturasCliente).FacturasCliente := FacturasCliente; end; procedure TfEditorFacturasCliente.SetViewGrid(const Value: IViewGrid); begin inherited; if Assigned(ViewGrid) and Assigned(FacturasCliente) then (ViewGrid as IViewFacturasCliente).FacturasCliente := FFacturasCliente; end; procedure TfEditorFacturasCliente.actQuitarFiltroExecute(Sender: TObject); begin if Assigned(ViewGrid) then begin txtFiltroTodo.Clear; edtFechaFiltro1.Clear; edtFechaFiltro2.Clear; (ViewGrid as IViewFacturasCliente).FiltrarPorFechas(null, null); inherited; end; end; procedure TfEditorFacturasCliente.edtFecha1PropertiesEditValueChanged(Sender: TObject); begin inherited; 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 TfEditorFacturasCliente.actFiltrarExecute(Sender: TObject); begin inherited; pnlFiltrar.Visible := not pnlFiltrar.Visible; end; procedure TfEditorFacturasCliente.actFiltrarUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := pnlFiltrar.Visible; end; procedure TfEditorFacturasCliente.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; procedure TfEditorFacturasCliente.txtFiltroTodoPropertiesChange( Sender: TObject); begin if Assigned(ViewGrid) then ViewGrid.Filter := txtFiltroTodo.Text; end; initialization RegisterEditor(IBizFacturasCliente, ShowEditorFacturasCliente, etItems); RegisterEditor(IBizFacturasCliente, ShowSelectEditorFacturasCliente, etSelectItems); finalization end.