unit uEditorDetalleReservas; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, uCustomEditor, ImgList, PngImageList, StdActns, ActnList, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, uViewDetalleReservas, Menus, DB, uDADataTable, ComCtrls, uViewGrid, uDAScriptingProvider, uDACDSDataTable, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion, JvComponentBase, uEditorGridBase, uIEditorDetalleReservas, uBizInventario, uViewGridBase, JvExComCtrls, JvStatusBar, uViewGrid2Niveles, JSDialog, uDAInterfaces; type TfEditorDetalleReservas = class(TfEditorGridBase, IEditorDetalleReservas) TBXSeparatorItem17: TTBXSeparatorItem; actExpandir: TAction; actContraer: TAction; frViewDetalleReservas1: TfrViewDetalleReservas; procedure FormShow(Sender: TObject); private function SeleccionarAlmacen(Descripcion: String): Integer; function DarIDAlmacenSeleccionado(Descripcion: String): Integer; protected FArticulo: IBizInventario; FDetalleReservas: IBizDetalleReservas; // FController : IDetalleReservasController; function GetArticulo: IBizInventario; procedure SetArticulo(const Value: IBizInventario); function GetDetalleReservas: IBizDetalleReservas; procedure SetDetalleReservas(const Value: IBizDetalleReservas); // function GetController : IDetalleReservasController; virtual; // procedure SetController (const Value : IDetalleReservasController); virtual; { procedure SetMultiSelect (AValue : Boolean); function GetMultiSelect : Boolean; function GetArticulosSeleccionados: IBizDetalleReservas; } procedure ImprimirInterno; override; procedure PrevisualizarInterno; override; public property Articulo: IBizInventario read GetArticulo write SetArticulo; property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas; // property Controller : IDetalleReservasController read GetController write SetController; // property ArticulosSeleccionados: IBizDetalleReservas read GetArticulosSeleccionados; // property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure PonerTitulos(const ATitulo: string = ''); override; end; implementation {$R *.DFM} uses cxControls, uGridUtils, uDataModuleInventario, uDataModuleUsuarios, uEditorBase, uDBSelectionListUtils, cxGridDBTableView, cxGridCustomTableView, uAlmacenesController, uBizAlmacenes, uFactuGES_App, // uGenerarAlbaranesProvUtils, schInventarioClient_Intf; {, uDBSelectionList, uDataModulePedidosProveedor, uBizPedidosProveedor, uBizMontajes, uDataModuleMontajes; } { TfEditorDetalleReservas } { ***************************** TfEditorDetalleReservas ***************************** } constructor TfEditorDetalleReservas.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewDetalleReservas1; end; function TfEditorDetalleReservas.DarIDAlmacenSeleccionado(Descripcion: String): Integer; var AAlmacenes : IBizAlmacen; AAlmacenesController : IAlmacenesController; Respuesta : integer; begin if (ViewGrid._Grid.ActiveLevel.Tag = -1) then Result := SeleccionarAlmacen(Descripcion) else Result := ViewGrid._Grid.ActiveLevel.Tag; end; destructor TfEditorDetalleReservas.Destroy; begin FDetalleReservas := NIL; inherited; end; procedure TfEditorDetalleReservas.FormShow(Sender: TObject); begin inherited; if not Assigned(ViewGrid) then raise Exception.Create('No hay ninguna vista asignada'); if not Assigned(DetalleReservas) then raise Exception.Create('No hay ningún DetalleReservas asignado'); DetalleReservas.DataTable.Active := True; ViewGrid.GotoFirst; end; { function TfEditorDetalleReservas.GetArticulosSeleccionados: IBizDetalleReservas; begin SeleccionarFilasDesdeGrid((ViewGrid as IViewDetalleReservas)._FocusedView, (DetalleReservas as ISeleccionable).SelectedRecords); // En Presupuestos.SelectedRecords tengo los ID de las filas seleccionadas del grid Result := Controller.ExtraerSeleccionados(DetalleReservas); end; function TfEditorDetalleReservas.GetController: IDetalleReservasController; begin Result := FController; end; } function TfEditorDetalleReservas.GetArticulo: IBizInventario; begin Result := FArticulo; end; function TfEditorDetalleReservas.GetDetalleReservas: IBizDetalleReservas; begin Result := FDetalleReservas; end; { function TfEditorDetalleReservas.GetMultiSelect: Boolean; begin Result := ViewGrid.MultiSelect; end; } procedure TfEditorDetalleReservas.ImprimirInterno; begin inherited; end; procedure TfEditorDetalleReservas.PonerTitulos(const ATitulo: string); var FTitulo : String; begin FTitulo := 'Detalle de reservas en almacen - ' + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; procedure TfEditorDetalleReservas.PrevisualizarInterno; begin inherited; end; function TfEditorDetalleReservas.SeleccionarAlmacen(Descripcion: String): Integer; var AAlmacenes : IBizAlmacen; Respuesta : integer; begin Result := -1; { JsElegirAlmacenDialog.Instruction.Text := Descripcion; with JsElegirAlmacenDialog.RadioButtons do begin Clear; AAlmacenes := (ViewGrid as IViewDetalleReservas).Almacenes; AAlmacenes.First; while not AAlmacenes.EOF do begin with Add do begin Caption := AAlmacenes.NOMBRE; Value := 1000 + AAlmacenes.ID; end; //Asi sabemos que solo va a intentar chequear el primero si hemos añadido al menos un item Items[0].Checked := True; AAlmacenes.Next; end; end; //Sacar la pantalla de selección y devolver el almacén seleccionado. Respuesta := JsElegirAlmacenDialog.Execute; if Respuesta <> IDCANCEL then Result := JsElegirAlmacenDialog.RadioResult - 1000; } end; { procedure TfEditorDetalleReservas.SetController(const Value: IDetalleReservasController); begin FController := Value; if Assigned(FController) then begin if Assigned(ViewGrid) then (ViewGrid as IViewDetalleReservas).Almacenes := FController.AlmacenesController.BuscarTodos; end; end; } procedure TfEditorDetalleReservas.SetArticulo(const Value: IBizInventario); begin FArticulo := Value; if Assigned(FArticulo) then begin tbxEditFiltro.Text := FArticulo.REFERENCIA; end; end; procedure TfEditorDetalleReservas.SetDetalleReservas(const Value: IBizDetalleReservas); begin FDetalleReservas := Value; dsDataTable.DataTable := FDetalleReservas.DataTable; if Assigned(ViewGrid) then (ViewGrid as IViewDetalleReservas).DetalleReservas := FDetalleReservas; end; { procedure TfEditorDetalleReservas.SetMultiSelect(AValue: Boolean); begin ViewGrid.MultiSelect := AValue; end; } end.