ConstruccionesCNJ_FactuGES/Modulos/Montajes/Views/uEditorMontajes.pas
2007-06-21 15:50:59 +00:00

178 lines
4.9 KiB
ObjectPascal

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.