Tecsitel_FactuGES2/Source/Modulos/Almacenes/Views/uViewAlmacen.pas
2008-06-09 18:10:00 +00:00

190 lines
5.3 KiB
ObjectPascal

unit uViewAlmacen;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
DBCtrls, Grids, DBGrids, uBizAlmacenes, Mask, ComCtrls, uCustomView,
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl, uDAInterfaces, dxSkinsCore, dxSkinBlue,
dxSkinCaramel, dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian,
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust,
dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue,
dxSkinsdxLCPainter, cxGraphics, cxMaskEdit, cxDropDownEdit;
type
IViewAlmacen = interface(IViewBase)
['{F44F8AEF-CB9C-44D5-93DA-53D6AB6A2D29}']
function GetAlmacen: IBizAlmacen;
procedure SetAlmacen(const Value: IBizAlmacen);
property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
end;
TfrViewAlmacen = class(TfrViewBase, IViewAlmacen)
DADataSource: TDADataSource;
ePersonaContacto: TcxDBTextEdit;
eTlfTelefono: TcxDBTextEdit;
eTlfMovil: TcxDBTextEdit;
eFax: TcxDBTextEdit;
dxLayoutControlAlmacenGroup_Root: TdxLayoutGroup;
dxLayoutControlAlmacen: TdxLayoutControl;
dxLayoutControlAlmacenGroup1: TdxLayoutGroup;
dxLayoutControlAlmacenItem3: TdxLayoutItem;
eNombre: TcxDBTextEdit;
dxLayoutControlAlmacenItem4: TdxLayoutItem;
dxLayoutControlAlmacenGroup2: TdxLayoutGroup;
dxLayoutControlAlmacenItem1: TdxLayoutItem;
dxLayoutControlAlmacenItem5: TdxLayoutItem;
dxLayoutControlAlmacenItem6: TdxLayoutItem;
dxLayoutControlAlmacenGroup3: TdxLayoutGroup;
dxLayoutControlAlmacenGroup4: TdxLayoutGroup;
dxLayoutControlAlmacenItem10: TdxLayoutItem;
eCalle: TcxDBTextEdit;
dxLayoutControlAlmacenItem2: TdxLayoutItem;
cbPoblacion: TcxDBComboBox;
dxLayoutControlAlmacenItem7: TdxLayoutItem;
eCodigoPostal: TcxDBTextEdit;
dxLayoutControlAlmacenItem9: TdxLayoutItem;
cbProvincia: TcxDBComboBox;
dxLayoutControlAlmacenGroup6: TdxLayoutGroup;
procedure cbProvinciaPropertiesInitPopup(Sender: TObject);
procedure cbPoblacionPropertiesInitPopup(Sender: TObject);
protected
FAlmacen: IBizAlmacen;
FProvincias : TStringList;
FPoblaciones : TStringList;
procedure CargarProvincias;
procedure CargarPoblaciones;
function GetAlmacen: IBizAlmacen;
procedure SetAlmacen(const Value: IBizAlmacen);
public
constructor Create(AOwner : TComponent); override;
destructor Destroy;
property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen;
end;
implementation
uses
uDataModuleAlmacenes, uProvinciasPoblacionesController, uStringsUtils;
{$R *.dfm}
{ TfrViewAlmacenes }
{
******************************* TfrViewAlmacenes ********************************
}
procedure TfrViewAlmacen.CargarPoblaciones;
var
i : integer;
AID : Integer;
begin
AID := StrToInt(FProvincias.Values[cbProvincia.Text]);
with TProvinciasPoblacionesController.Create do
try
FPoblaciones := DarListaPoblaciones(AID);
with cbPoblacion.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FPoblaciones.Count - 1 do
Add(FPoblaciones.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfrViewAlmacen.CargarProvincias;
var
i : integer;
begin
with TProvinciasPoblacionesController.Create do
try
FProvincias := DarListaProvincias;
with cbProvincia.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FProvincias.Count - 1 do
Add(FProvincias.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfrViewAlmacen.cbPoblacionPropertiesInitPopup(Sender: TObject);
begin
ShowHourglassCursor;
try
FreeANDNIL(FPoblaciones);
if not Assigned(FProvincias) then
CargarProvincias;
if not EsCadenaVacia(cbProvincia.Text) and (FProvincias.IndexOfName(cbProvincia.Text) <> -1) then
CargarPoblaciones
finally
HideHourglassCursor;
end;
end;
procedure TfrViewAlmacen.cbProvinciaPropertiesInitPopup(Sender: TObject);
begin
ShowHourglassCursor;
try
if not Assigned(FProvincias) then
CargarProvincias;
finally
HideHourglassCursor;
end;
end;
constructor TfrViewAlmacen.Create(AOwner: TComponent);
begin
inherited;
FProvincias := NIL;
FPoblaciones := NIL;
end;
destructor TfrViewAlmacen.Destroy;
begin
if Assigned(FProvincias) then
FreeANDNIL(FProvincias);
if Assigned(FPoblaciones) then
FreeANDNIL(FPoblaciones);
end;
function TfrViewAlmacen.GetAlmacen: IBizAlmacen;
begin
Result := FAlmacen;
end;
procedure TfrViewAlmacen.SetAlmacen(const Value: IBizAlmacen);
begin
FAlmacen := Value;
if Assigned(FAlmacen) then
DADataSource.DataTable := FAlmacen.DataTable
else
DADataSource.DataTable := NIL;
end;
end.