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.