git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@25 9a1d36f3-7752-2d40-8ccb-50eb49674c68
179 lines
5.9 KiB
ObjectPascal
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.
|