unit uEditorAlbaranCliente; 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, uBizAlbaranesCliente, uViewAlbaranCliente, uCustomView, uViewBase, uViewContenido, uViewTotales, uViewDetallesAlbaranCliente, StdCtrls, pngimage, AppEvnts, uViewDetallesFamilias, JvComponentBase; type IEditorAlbaranCliente = interface(IEditorDBItem) ['{58CCCF45-8E27-418A-B938-075335A57A5F}'] function GetAlbaranCliente: IBizAlbaranesCliente; procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente); property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente write SetAlbaranCliente; end; TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente) frViewTotales1: TfrViewTotales; pagContenido: TTabSheet; frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente; frViewAlbaranCliente1: TfrViewAlbaranCliente; procedure actEliminarExecute(Sender: TObject); procedure FormShow(Sender: TObject); override; procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesChange( Sender: TObject); private FAlbaranCliente: IBizAlbaranesCliente; FViewAlbaranCliente: IViewAlbaranCliente; protected function GetAlbaranCliente: IBizAlbaranesCliente; function GetViewAlbaran: IViewAlbaranCliente; procedure SetAlbaranCliente(const Value: IBizAlbaranesCliente); procedure SetViewAlbaran(const Value: IViewAlbaranCliente); property ViewAlbaranCliente: IViewAlbaranCliente read GetViewAlbaran write SetViewAlbaran; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property AlbaranCliente: IBizAlbaranesCliente read GetAlbaranCliente write SetAlbaranCliente; end; var fEditorAlbaranCliente: TfEditorAlbaranCliente; implementation uses uEditorUtils, uDataModuleAlbaranesCliente, uBizImportesDetalleBase, uDataModulePresupuestos, uBizPresupuestosCliente, schAlbaranesClienteClient_Intf, uExceptions; {$R *.dfm} function ShowEditorAlbaranCliente (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorAlbaranCliente; begin AEditor := TfEditorAlbaranCliente.Create(Application); try AEditor.AlbaranCliente := (ABizObject as IBizAlbaranesCliente); Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorAlbaranCliente } { **************************** TfEditorAlbaranCliente **************************** } constructor TfEditorAlbaranCliente.Create(AOwner: TComponent); begin inherited; // ViewAlbaranCliente := CreateView(TfrViewAlbaranCliente) as IViewAlbaranCliente; pgPaginas.ActivePageIndex := 0; ViewAlbaranCliente := frViewAlbaranCliente1; end; destructor TfEditorAlbaranCliente.Destroy; begin FViewAlbaranCliente := NIL; FAlbaranCliente := NIL; inherited; end; procedure TfEditorAlbaranCliente.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar este albarán de cliente?', 'Atención', MB_YESNO) = IDYES) then inherited; end; procedure TfEditorAlbaranCliente.FormShow(Sender: TObject); begin inherited; if not Assigned(FViewAlbaranCliente) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(AlbaranCliente) then raise Exception.Create('No hay ningún albarán asignado'); AlbaranCliente.DataTable.Active := True; // FViewAlbaranCliente.ShowEmbedded(pagGeneral); // FViewAlbaranCliente.SetFocus; end; function TfEditorAlbaranCliente.GetAlbaranCliente: IBizAlbaranesCliente; begin Result := FAlbaranCliente; end; function TfEditorAlbaranCliente.GetViewAlbaran: IViewAlbaranCliente; begin Result := FViewAlbaranCliente; end; procedure TfEditorAlbaranCliente.SetAlbaranCliente(const Value: IBizAlbaranesCliente); begin FAlbaranCliente := Value; if Assigned(FAlbaranCliente) then begin dsDataTable.DataTable := FAlbaranCliente.DataTable; frViewTotales1.DADataSource.DataTable := FAlbaranCliente.DataTable; frViewDetallesAlbaranCliente1.DADataSource.DataTable := FAlbaranCliente.Detalles.DataTable; if Assigned(FViewAlbaranCliente) then FViewAlbaranCliente.AlbaranCliente := FAlbaranCliente; end; end; procedure TfEditorAlbaranCliente.SetViewAlbaran(const Value: IViewAlbaranCliente); begin FViewAlbaranCliente := Value; if Assigned(FViewAlbaranCliente) and Assigned(AlbaranCliente) then FViewAlbaranCliente.AlbaranCliente := AlbaranCliente; end; procedure TfEditorAlbaranCliente.frViewDatosYSeleccionContacto1edtlNombrePropertiesChange( Sender: TObject); begin inherited; if Length(frViewAlbaranCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text) = 0 then JvNavPanelHeader.Caption := 'Nuevo albarán de cliente' else JvNavPanelHeader.Caption := 'Albarán de ' + frViewAlbaranCliente1.frViewDatosYSeleccionContacto1.edtlNombre.Text; Caption := JvNavPanelHeader.Caption; end; initialization RegisterEditor(IBizAlbaranesCliente, ShowEditorAlbaranCliente, etItem); finalization end.