Tecsitel_FactuGES2/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas
2009-07-09 11:21:22 +00:00

215 lines
6.2 KiB
ObjectPascal
Raw Blame History

unit uEditorElegirArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, uDADataTable, Menus, JvAppStorage, JvAppRegistryStorage,
JvComponentBase, JvFormPlacement, ImgList, PngImageList, StdActns,
ActnList, uCustomView, uViewBase, uViewGridBase, uViewGrid,
uViewArticulos, ComCtrls, TB2ExtItems, TBXExtItems, TBX,
TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent,
JvNavigationPane, uViewBarraSeleccion, StdCtrls,
uEditorArticulos, uBizArticulos, uIEditorElegirArticulos,
JvExComCtrls, JvStatusBar, uDAInterfaces, uEditorGridBase, uArticulosController;
type
TfEditorElegirArticulos = class(TfEditorGridBase, IEditorElegirArticulos)
frViewBarraSeleccion1: TfrViewBarraSeleccion;
lblTitle: TLabel;
lblComments: TLabel;
EditorSeleccionActionList: TActionList;
actBuscar2: TAction;
actQuitarFiltro2: TAction;
actAnchoAuto2: TAction;
procedure frViewBarraSeleccion1actSeleccionarUpdate(Sender: TObject);
procedure frViewBarraSeleccion1actCancelarExecute(Sender: TObject);
procedure frViewBarraSeleccion1actSeleccionarExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actAnchoAuto2Execute(Sender: TObject);
procedure actQuitarFiltro2Execute(Sender: TObject);
private
FArticulos: IBizArticulo;
FController : IArticulosController;
protected
function GetArticulos: IBizArticulo;
procedure SetArticulos(const Value: IBizArticulo);
function GetController : IArticulosController; virtual;
procedure SetController (const Value : IArticulosController); virtual;
procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean;
function GetArticulosSeleccionados: IBizArticulo;
procedure SetViewGrid(const Value: IViewGridBase); override;
procedure SetMensaje (const AValue: String);
function GetMensaje: String;
procedure NuevoInterno; override;
procedure ModificarInterno; override;
public
property Mensaje : String read GetMensaje write SetMensaje;
property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
property Articulos: IBizArticulo read GetArticulos write SetArticulos;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
uses
cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils,
uGridStatusUtils, uEditorBase;
{$R *.dfm}
{ TfEditorElegirArticulos }
procedure TfEditorElegirArticulos.actAnchoAuto2Execute(Sender: TObject);
begin
inherited;
actAnchoAuto.Execute;
end;
procedure TfEditorElegirArticulos.actQuitarFiltro2Execute(Sender: TObject);
begin
inherited;
actQuitarFiltro.Execute;
end;
constructor TfEditorElegirArticulos.Create(AOwner: TComponent);
begin
inherited;
end;
destructor TfEditorElegirArticulos.Destroy;
begin
FArticulos := NIL;
FController := NIl;
inherited;
end;
procedure TfEditorElegirArticulos.FormShow(Sender: TObject);
begin
inherited;
if not Assigned(ViewGrid) then
raise Exception.Create('No hay ninguna vista asignada');
if not Assigned(Articulos) then
raise Exception.Create('No hay ning<6E>n articulo asignado');
Articulos.DataTable.Active := True;
// EditorActionList.State := asSuspended;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actCancelarExecute(
Sender: TObject);
begin
inherited;
Close;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarExecute(
Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfEditorElegirArticulos.frViewBarraSeleccion1actSeleccionarUpdate(
Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ViewGrid._FocusedView.Controller.SelectedRowCount > 0)
end;
function TfEditorElegirArticulos.GetArticulos: IBizArticulo;
begin
Result := FArticulos;
end;
function TfEditorElegirArticulos.GetArticulosSeleccionados: IBizArticulo;
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Articulos as ISeleccionable).SelectedRecords);
// En SelectedRecords tengo los ID de las filas seleccionadas del grid
Result := (Controller as IArticulosController).ExtraerSeleccionados(Articulos) as IBizArticulo;
end;
function TfEditorElegirArticulos.GetController: IArticulosController;
begin
Result := FController;
end;
function TfEditorElegirArticulos.GetMensaje: String;
begin
Result := lblComments.Caption;
end;
function TfEditorElegirArticulos.GetMultiSelect: Boolean;
begin
Result := ViewGrid.MultiSelect;
end;
procedure TfEditorElegirArticulos.ModificarInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
AArticulo := FController.Buscar(Articulos.ID);
FController.Ver(AArticulo);
RefrescarInterno;
end;
procedure TfEditorElegirArticulos.NuevoInterno;
var
AArticulo: IBizArticulo;
begin
inherited;
AArticulo := FController.Nuevo;
if not AArticulo.DataTable.Active then
AArticulo.DataTable.Active := True;
FController.Ver(AArticulo);
RefrescarInterno;
end;
procedure TfEditorElegirArticulos.SetArticulos(const Value: IBizArticulo);
begin
FArticulos := Value;
dsDataTable.DataTable := FArticulos.DataTable;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Articulos := FArticulos;
end;
procedure TfEditorElegirArticulos.SetController(const Value: IArticulosController);
begin
FController := Value;
if Assigned(ViewGrid) then
(ViewGrid as IViewArticulos).Controller := FController;
end;
procedure TfEditorElegirArticulos.SetMensaje(const AValue: String);
begin
lblComments.Caption := AValue;
end;
procedure TfEditorElegirArticulos.SetMultiSelect(AValue: Boolean);
begin
ViewGrid.MultiSelect := AValue;
end;
procedure TfEditorElegirArticulos.SetViewGrid(const Value: IViewGridBase);
begin
inherited;
ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute;
end;
end.