unit uEditorFacturaProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewFacturaProveedor, uCustomView, uViewBase, uViewContenido, uViewTotales, StdCtrls, pngimage, AppEvnts, uBizFacturasProveedor, JvComponentBase; type IEditorFacturaProveedor = interface(IEditorDBItem) ['{22C02CC0-035C-4405-A610-C5734B09BB9F}'] function GetFacturaProveedor: IBizFacturasProveedor; procedure SetFacturaProveedor(const Value: IBizFacturasProveedor); property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write SetFacturaProveedor; end; TfEditorFacturaProveedor = class(TfEditorDBItem, IEditorFacturaProveedor) frViewTotales1: TfrViewTotales; frViewFacturaProveedor1: TfrViewFacturaProveedor; procedure actEliminarExecute(Sender: TObject); procedure dsDataTableDataChange(Sender: TObject; Field: TField); procedure FormShow(Sender: TObject); override; procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesChange( Sender: TObject); private FFacturaProveedor: IBizFacturasProveedor; FViewFacturaProveedor: IViewFacturaProveedor; protected function GetFacturaProveedor: IBizFacturasProveedor; function GetViewFactura: IViewFacturaProveedor; procedure SetFacturaProveedor(const Value: IBizFacturasProveedor); procedure SetViewFactura(const Value: IViewFacturaProveedor); property ViewFacturaProveedor: IViewFacturaProveedor read GetViewFactura write SetViewFactura; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write SetFacturaProveedor; end; var fEditorFacturaProveedor: TfEditorFacturaProveedor; implementation uses uEditorUtils, uDataModuleFacturasProveedor, uBizImportesDetalleBase, schFacturasProveedorClient_Intf, uExceptions; {$R *.dfm} function ShowEditorFacturaProveedor (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorFacturaProveedor; begin AEditor := TfEditorFacturaProveedor.Create(Application); try AEditor.FacturaProveedor := (ABizObject as IBizFacturasProveedor); Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorFacturaProveedor } { **************************** TfEditorFacturaProveedor **************************** } constructor TfEditorFacturaProveedor.Create(AOwner: TComponent); begin inherited; // ViewFacturaProveedor := CreateView(TfrViewFacturaProveedor) as IViewFacturaProveedor; pgPaginas.ActivePageIndex := 0; ViewFacturaProveedor := frViewFacturaProveedor1; end; destructor TfEditorFacturaProveedor.Destroy; begin FViewFacturaProveedor := NIL; FFacturaProveedor := NIL; inherited; end; procedure TfEditorFacturaProveedor.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then inherited; end; procedure TfEditorFacturaProveedor.dsDataTableDataChange(Sender: TObject; Field: TField); begin inherited; if Assigned(FFacturaProveedor) and (not (FFacturaProveedor.DataTable.Fetching) or not (FFacturaProveedor.DataTable.Opening) or not (FFacturaProveedor.DataTable.Closing)) then begin if Length(FFacturaProveedor.NOMBRE) = 0 then JvNavPanelHeader.Caption := 'Nueva factura de proveedor' else JvNavPanelHeader.Caption := 'Factura de ' + FFacturaProveedor.NOMBRE; Caption := JvNavPanelHeader.Caption; end; end; procedure TfEditorFacturaProveedor.FormShow(Sender: TObject); begin inherited; if not Assigned(FViewFacturaProveedor) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(FacturaProveedor) then raise Exception.Create('No hay ninguna factura asignada'); FacturaProveedor.DataTable.Active := True; // FViewFacturaProveedor.ShowEmbedded(pagGeneral); // FViewFacturaProveedor.SetFocus; end; function TfEditorFacturaProveedor.GetFacturaProveedor: IBizFacturasProveedor; begin Result := FFacturaProveedor; end; function TfEditorFacturaProveedor.GetViewFactura: IViewFacturaProveedor; begin Result := FViewFacturaProveedor; end; procedure TfEditorFacturaProveedor.SetFacturaProveedor(const Value: IBizFacturasProveedor); begin FFacturaProveedor := Value; if Assigned(FFacturaProveedor) then begin dsDataTable.DataTable := FFacturaProveedor.DataTable; frViewTotales1.DADataSource.DataTable := FFacturaProveedor.DataTable; if Assigned(FViewFacturaProveedor) then FViewFacturaProveedor.FacturaProveedor := FFacturaProveedor; end; end; procedure TfEditorFacturaProveedor.SetViewFactura(const Value: IViewFacturaProveedor); begin FViewFacturaProveedor := Value; if Assigned(FViewFacturaProveedor) and Assigned(FacturaProveedor) then FViewFacturaProveedor.FacturaProveedor := FacturaProveedor; end; procedure TfEditorFacturaProveedor.frViewDatosYSeleccionContacto1edtlNombrePropertiesChange( Sender: TObject); begin inherited; if Length(frViewFacturaProveedor1.frViewDatosYSeleccionContacto1.edtlNombre.Text) = 0 then JvNavPanelHeader.Caption := 'Nueva factura de proveedor' else JvNavPanelHeader.Caption := 'Factura de ' + frViewFacturaProveedor1.frViewDatosYSeleccionContacto1.edtlNombre.Text; Caption := JvNavPanelHeader.Caption; end; initialization RegisterEditor(IBizFacturasProveedor, ShowEditorFacturaProveedor, etItem); finalization end.