{ =============================================================================== Copyright (©) 2006. 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: 22-05-2006 Versión actual: 1.0.0 Fecha versión actual: 22-05-2006 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit uEditorPresupuestoContacto; interface uses JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, dxLayoutLookAndFeels, DB, uDADataTable, Controls, Classes, Windows, SysUtils, Forms, uEditorDBItem, uBizObra, uViewPresupuestoContacto; type IEditorPresupuestoContacto = interface(IEditorDBItem) ['{B759C9B7-DB89-40FD-AC24-DA4F727E89BB}'] function GetPresupuestoContacto: IBizPresupuestosObra; procedure SetPresupuestoContacto(const Value: IBizPresupuestosObra); property PresupuestoContacto: IBizPresupuestosObra read GetPresupuestoContacto write SetPresupuestoContacto; end; TfEditorPresupuestoContacto = class(TfEditorDBItem) procedure FormShow(Sender: TObject); procedure dsDataTableDataChange(Sender: TObject; Field: TField); private FPresupuestoContacto: IBizPresupuestosObra; function GetPresupuestoContacto: IBizPresupuestosObra; procedure SetPresupuestoContacto(const Value: IBizPresupuestosObra); protected FViewPresupuestoContacto: IViewPresupuestoContacto; function GetViewPresupuestoContacto: IViewPresupuestoContacto; procedure SetViewPresupuestoContacto(const Value: IViewPresupuestoContacto); property ViewPresupuestoContacto: IViewPresupuestoContacto read GetViewPresupuestoContacto write SetViewPresupuestoContacto; public property PresupuestoContacto: IBizPresupuestosObra read GetPresupuestoContacto write SetPresupuestoContacto; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; var fEditorPresupuestoContacto: TfEditorPresupuestoContacto; implementation {$R *.dfm} uses uEditorUtils, uViewTrabajoContacto, uEditorBase, uEditorDBBase, LiteralesObras; function ShowEditorPresupuestoContacto (ABizObject : TDADataTableRules) : TModalResult; var AEditor: TfEditorPresupuestoContacto; begin AEditor := TfEditorPresupuestoContacto.Create(Application); try AEditor.PresupuestoContacto := (ABizObject as IBizPresupuestosObra); Result := AEditor.ShowModal; finally AEditor.Release; end; end; { TfEditorPresupuestoContacto } constructor TfEditorPresupuestoContacto.Create(AOwner: TComponent); begin inherited; FApplyUpdates := False; end; destructor TfEditorPresupuestoContacto.Destroy; begin FViewPresupuestoContacto := Nil; FPresupuestoContacto := Nil; inherited; end; function TfEditorPresupuestoContacto.GetPresupuestoContacto: IBizPresupuestosObra; begin Result:= FPresupuestoContacto; end; function TfEditorPresupuestoContacto.GetViewPresupuestoContacto: IViewPresupuestoContacto; begin Result := FViewPresupuestoContacto; end; procedure TfEditorPresupuestoContacto.SetPresupuestoContacto(const Value: IBizPresupuestosObra); begin FPresupuestoContacto := Value; if Assigned(FPresupuestoContacto) then begin dsDataTable.DataTable := FPresupuestoContacto.DataTable; //En el caso de ser un trabajo cambiamos de vista if FPresupuestoContacto.CLASE = CLASE_PRESUPUESTO then ViewPresupuestoContacto := CreateView(TfrViewPresupuestoContacto) as IViewPresupuestoContacto else ViewPresupuestoContacto := CreateView(TfrViewTrabajoContacto) as IViewPresupuestoContacto; end else dsDataTable.DataTable := Nil; end; procedure TfEditorPresupuestoContacto.SetViewPresupuestoContacto(const Value: IViewPresupuestoContacto); begin FViewPresupuestoContacto := Value; if Assigned(FViewPresupuestoContacto) and Assigned(FPresupuestoContacto) then FViewPresupuestoContacto.PresupuestoContacto := FPresupuestoContacto; end; procedure TfEditorPresupuestoContacto.FormShow(Sender: TObject); begin inherited; if not Assigned(FViewPresupuestoContacto) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(PresupuestoContacto) then raise Exception.Create('No hay ningún presupuesto asignado'); FViewPresupuestoContacto.ShowEmbedded(pagGeneral); FViewPresupuestoContacto.SetFocus; end; procedure TfEditorPresupuestoContacto.dsDataTableDataChange(Sender: TObject; Field: TField); begin inherited; if Assigned(FPresupuestoContacto) and (not (FPresupuestoContacto.DataTable.Fetching) or not (FPresupuestoContacto.DataTable.Opening) or not (FPresupuestoContacto.DataTable.Closing)) then begin if Length(FPresupuestoContacto.NOMBRE) = 0 then if FPresupuestoContacto.CLASE = CLASE_PRESUPUESTO then JvNavPanelHeader.Caption := msgLitPresupuestoNuv else JvNavPanelHeader.Caption := msgLitTrabajoNuv else if FPresupuestoContacto.CLASE = CLASE_PRESUPUESTO then JvNavPanelHeader.Caption := msgPresupuestos + FPresupuestoContacto.NOMBRE else JvNavPanelHeader.Caption := msgTrabajos + FPresupuestoContacto.NOMBRE; Self.Caption := JvNavPanelHeader.Caption; end; end; initialization RegisterEditor(IBizPresupuestosObra, ShowEditorPresupuestoContacto, etItem); end.