unit uEditorMontajes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, uDADataTable, JvAppStorage, JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, uViewGrid, pngimage, JvComponentBase, uEditorGridBase, uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, uBizMontajes, uIEditorMontajes, uMontajesController, uViewMontajes, JvExComCtrls, JvStatusBar; type TfEditorMontajes = class(TfEditorGridBase, IEditorMontajes) frViewMontajes1: TfrViewMontajes; actCambiarSituacion: TAction; TBXItem37: TTBXItem; TBXSeparatorItem17: TTBXSeparatorItem; procedure FormShow(Sender: TObject); procedure actNuevoExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actDuplicarExecute(Sender: TObject); procedure actCambiarSituacionExecute(Sender: TObject); procedure actCambiarSituacionUpdate(Sender: TObject); private FMontajes: IBizMontaje; FController : IMontajesController; function HayMontajes : Boolean; protected function GetMontajes: IBizMontaje; procedure SetMontajes(const Value: IBizMontaje); function GetController : IMontajesController; virtual; procedure SetController (const Value : IMontajesController); virtual; public procedure PonerTitulos(const ATitulo: string = ''); override; property Montajes: IBizMontaje read GetMontajes write SetMontajes; property Controller : IMontajesController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation uses uDataModuleMontajes, uDataModuleUsuarios; {$R *.dfm} { *************************** TfEditorMontajes *************************** } constructor TfEditorMontajes.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewMontajes1; // CreateView(TfrViewMontajes) as IViewMontajes; end; destructor TfEditorMontajes.Destroy; begin FMontajes := NIL; inherited; end; procedure TfEditorMontajes.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(Montajes) then raise Exception.Create('No hay ningún presupuesto asignado'); Montajes.DataTable.Active := True; ViewGrid.GotoFirst; end; procedure TfEditorMontajes.actCambiarSituacionExecute(Sender: TObject); begin inherited; FController.CambiarSituacion(FMontajes); end; procedure TfEditorMontajes.actCambiarSituacionUpdate(Sender: TObject); begin inherited; if HayDatos and Assigned(ViewGrid) then (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) and not ViewGrid.IsEmpty else (Sender as TAction).Enabled := False; end; procedure TfEditorMontajes.actDuplicarExecute(Sender: TObject); var AMontaje : IBizMontaje; begin inherited; AMontaje := FController.Duplicar(FMontajes); try FController.Ver(AMontaje); finally actRefrescar.Execute; end; end; procedure TfEditorMontajes.actEliminarExecute(Sender: TObject); begin if (Application.MessageBox('¿Desea borrar este montaje de cliente?', 'Atención', MB_YESNO) = IDYES) then begin FController.Eliminar(Montajes); inherited; end; end; procedure TfEditorMontajes.actModificarExecute(Sender: TObject); begin inherited; FController.Ver(Montajes); end; procedure TfEditorMontajes.actNuevoExecute(Sender: TObject); begin inherited; FController.Anadir(Montajes); FController.Ver(Montajes); end; function TfEditorMontajes.GetController: IMontajesController; begin Result := FController; end; function TfEditorMontajes.GetMontajes: IBizMontaje; begin Result := FMontajes; end; function TfEditorMontajes.HayMontajes: Boolean; begin Result := Assigned(FMontajes) and (FMontajes.DataTable.Active) and (not FMontajes.DataTable.Opening) and (not FMontajes.DataTable.Closing) and (not FMontajes.DataTable.Fetching) and (not FMontajes.DataTable.Opening) and (not FMontajes.DataTable.IsEmpty); end; procedure TfEditorMontajes.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Lista de Montajes de cliente - ' + dmUsuarios.EmpresaActual.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorMontajes.SetController(const Value: IMontajesController); begin FController := Value; end; procedure TfEditorMontajes.SetMontajes(const Value: IBizMontaje); begin FMontajes := Value; dsDataTable.DataTable := FMontajes.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewMontajes).Montajes := Montajes; end; end.