This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
AlonsoYSal_FactuGES/Modulos/Montajes/Cliente/uViewArticulosMontaje.pas
2014-07-14 17:22:53 +00:00

179 lines
5.9 KiB
ObjectPascal

unit uViewArticulosMontaje;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, ActnList, Menus,
cxGridBandedTableView, cxGridDBBandedTableView, uBizArticulosMontaje, JvComponent,
JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk,
ComCtrls, ToolWin, uViewFiltroBase;
type
IViewArticulosMontaje = interface(IViewGrid)
['{64DE44DE-2F59-43E5-88D6-C958F3997A45}']
function GetCodigoMontaje: Integer;
procedure SetCodigoMontaje(const Value: Integer);
property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
function GetArticulosMontaje: IBizArticulosMontaje;
procedure SetArticulosMontaje(const Value: IBizArticulosMontaje);
property ArticulosMontaje: IBizArticulosMontaje read GetArticulosMontaje write SetArticulosMontaje;
end;
TfrViewArticulosMontaje = class(TfrViewGrid, IViewArticulosMontaje)
PngImageList: TPngImageList;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewCODIGO: TcxGridDBColumn;
cxGridViewDESCRIPCION: TcxGridDBColumn;
cxGridViewREFERENCIAMONTAJE: TcxGridDBColumn;
cxGridViewALMACEN: TcxGridDBColumn;
cxGridViewCODIGOMONTAJE: TcxGridDBColumn;
cxGridViewCODIGOPEDIDO: TcxGridDBColumn;
cxGridViewCODIGOALMACEN: TcxGridDBColumn;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton4: TToolButton;
actAnadir: TAction;
actQuitar: TAction;
procedure cxGridViewCODIGOCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure actAnadirExecute(Sender: TObject);
procedure actQuitarExecute(Sender: TObject);
procedure cxGridViewSelectionChanged(Sender: TcxCustomGridTableView);
procedure actQuitarUpdate(Sender: TObject);
protected
FCodigoMontaje: Integer;
FArticulosMontaje: IBizArticulosMontaje;
function GetCodigoMontaje: Integer;
procedure SetCodigoMontaje(const Value: Integer);
function GetArticulosMontaje: IBizArticulosMontaje;
procedure SetArticulosMontaje(const Value: IBizArticulosMontaje);
public
property ArticulosMontaje: IBizArticulosMontaje read GetArticulosMontaje write SetArticulosMontaje;
property CodigoMontaje: Integer read GetCodigoMontaje write SetCodigoMontaje;
end;
var
frViewArticulosMontaje: TfrViewArticulosMontaje;
implementation
uses uBizArticulos, uDataModuleArticulos, uDBSelectionList;
{$R *.dfm}
{ TfrViewArticulosMontaje }
{
******************************* TfrViewArticulosMontaje *******************************
}
function TfrViewArticulosMontaje.GetArticulosMontaje: IBizArticulosMontaje;
begin
Result := FArticulosMontaje;
end;
procedure TfrViewArticulosMontaje.SetArticulosMontaje(const Value: IBizArticulosMontaje);
begin
FArticulosMontaje := Value;
if Assigned(FArticulosMontaje) then
DADataSource.DataTable := FArticulosMontaje.DataTable;
end;
procedure TfrViewArticulosMontaje.cxGridViewCODIGOCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
R : TRect;
begin
inherited;
R := AViewInfo.ContentBounds;
ACanvas.FillRect(R);
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0);
ADone := True;
end;
procedure TfrViewArticulosMontaje.actAnadirExecute(Sender: TObject);
var
AArticulos: IBizArticulosAlmacen;
begin
try
AArticulos:= dmArticulos.GetItemsLibres;
if AArticulos.ShowForSelect = mrOK then
begin
AArticulos.Reservar(CodigoMontaje);
FArticulosMontaje.DataTable.Refresh;
end;
finally
AArticulos := Nil;
Self.RefreshGrid;
Self.SyncFocusedRecordsFromDataSet;
end;
end;
procedure TfrViewArticulosMontaje.actQuitarExecute(Sender: TObject);
begin
Self.SyncFocusedRecordsFromGrid;
try
FArticulosMontaje.Liberar;
FArticulosMontaje.DataTable.Refresh;
finally
Self.RefreshGrid;
Self.SyncFocusedRecordsFromDataSet;
end;
end;
procedure TfrViewArticulosMontaje.cxGridViewSelectionChanged(Sender: TcxCustomGridTableView);
var
ABookmark : Pointer;
i, pos: Integer;
begin
inherited;
pos := (Sender as TcxGridDBTableView).GetColumnByFieldName('CODIGO').Index;
if FArticulosMontaje <> NIL then
begin
FArticulosMontaje.DataTable.DisableControls;
ABookmark := FArticulosMontaje.DataTable.GetBookMark;
(FArticulosMontaje as ISelectedRowList).SelectedRows.Clear;
for i:=0 to Sender.Controller.SelectedRecordCount-1 do
begin
FArticulosMontaje.DataTable.Locate('CODIGO', Sender.Controller.SelectedRecords[i].Values[pos],[]);
(FArticulosMontaje as ISelectedRowList).SelectedRows.CurrentRowSelected := True;
end;
(FArticulosMontaje as ISelectedRowList).SelectedRows.Count;
FArticulosMontaje.DataTable.GotoBookmark(ABookmark);
FArticulosMontaje.DataTable.FreeBookmark(ABookmark);
FArticulosMontaje.DataTable.EnableControls;
end;
end;
function TfrViewArticulosMontaje.GetCodigoMontaje: Integer;
begin
Result := FCodigoMontaje;
end;
procedure TfrViewArticulosMontaje.SetCodigoMontaje(const Value: Integer);
begin
FCodigoMontaje := Value;
end;
procedure TfrViewArticulosMontaje.actQuitarUpdate(Sender: TObject);
begin
inherited;
if Assigned(DADataSource.DataTable) then
(Sender as TAction).Enabled := (not DADataSource.DataTable.IsEmpty)
else
(Sender as TAction).Enabled := False;
end;
end.