unit uViewTienda; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, dxLayoutControl, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxControls, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust, dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue, dxSkinsdxLCPainter; type IViewTienda = interface(IViewBase) ['{9FD357AB-2E87-4CAF-8AEB-04368AD075AF}'] function GetDataItem: TDADataTable; procedure SetDataItem(const Value: TDADataTable); property DataItem : TDADataTable read GetDataItem write SetDataItem; procedure ElegirTienda(const AIDTienda : Integer); end; TfrViewTienda = class(TfrViewBase, IViewTienda) cbTienda: TcxComboBox; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item1: TdxLayoutItem; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure cbTiendaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); private FDataItem : TDADataTable; FListaTiendas : TStringList; function GetDataItem: TDADataTable; procedure SetDataItem(const Value: TDADataTable); public property DataItem : TDADataTable read GetDataItem write SetDataItem; procedure ElegirTienda(const AIDTienda : Integer); end; implementation {$R *.dfm} uses uFactuGES_App; procedure TfrViewTienda.cbTiendaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var AIndex : integer; begin inherited; if Assigned(FDataItem) and FDataItem.Active then begin AIndex := StrToInt(FListaTiendas.Values[DisplayValue]); FDataItem.Edit; if Assigned(FDataItem.FindField('ID_TIENDA')) then FDataItem.FieldByName('ID_TIENDA').AsInteger := AIndex; if Assigned(FDataItem.FindField('TIENDA')) then FDataItem.FieldByName('TIENDA').AsString := DisplayValue; FDataItem.post; end; end; procedure TfrViewTienda.CustomViewCreate(Sender: TObject); var i : integer; begin inherited; FListaTiendas := AppFactuGES.EmpresasController.DarListaTiendas(AppFactuGES.EmpresaActiva); with cbTienda.Properties.Items do begin BeginUpdate; try Clear; for i := 0 to FListaTiendas.Count - 1 do Add(FListaTiendas.Names[i]); finally EndUpdate; end; end; end; procedure TfrViewTienda.CustomViewDestroy(Sender: TObject); begin FreeAndNIL(FListaTiendas); inherited; end; procedure TfrViewTienda.ElegirTienda(const AIDTienda: Integer); var i : integer; begin for i := 0 to FListaTiendas.Count-1 do begin if FListaTiendas.ValueFromIndex[i] = IntToStr(AIDTienda) then begin cbTienda.Text := FListaTiendas.Names[i]; Break; end; end; end; function TfrViewTienda.GetDataItem: TDADataTable; begin Result := FDataItem; end; procedure TfrViewTienda.SetDataItem(const Value: TDADataTable); begin FDataItem := Value; if Assigned(FDataItem.FindField('ID_TIENDA')) then ElegirTienda(FDataItem.FieldByName('ID_TIENDA').AsInteger); end; end.