unit uViewInstalador; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewContacto, dxLayoutLookAndFeels, DB, uDADataTable, dxLayoutControl, cxMemo, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxControls, cxMaskEdit, cxSpinEdit, ImgList, PngImageList, ActnList, cxHyperLinkEdit, Buttons, PngSpeedButton, cxDropDownEdit, cxCalendar, cxGraphics, uDAInterfaces, uCustomView, uViewBase, uViewTienda, uBizContactos, uViewObservaciones; type IViewInstalador = interface(IViewContacto) ['{629628EE-4B68-4721-8754-CC40BD563453}'] end; TfrViewInstalador = class(TfrViewContacto, IViewInstalador) dxLayoutControlContactoItem19: TdxLayoutItem; cbUsuario: TcxComboBox; dxLayoutControlContactoItem20: TdxLayoutItem; edtComision: TcxDBSpinEdit; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure cbUsuarioPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); private FDataItem : TDADataTable; FListaUsuarios : TStringList; function GetDataItem: TDADataTable; procedure SetDataItem(const Value: TDADataTable); protected procedure SetContacto(const Value: IBizContacto); override; public property DataItem : TDADataTable read GetDataItem write SetDataItem; procedure ElegirUsuario(const AIDUsuario : Integer); end; implementation {$R *.dfm} uses uFactuGES_App; procedure TfrViewInstalador.cbUsuarioPropertiesValidate(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(FListaUsuarios.Values[DisplayValue]); FDataItem.Edit; if Assigned(FDataItem.FindField('ID_USUARIO')) then FDataItem.FieldByName('ID_USUARIO').AsInteger := AIndex; // if Assigned(FDataItem.FindField('USUARIO')) then // FDataItem.FieldByName('USUARIO').AsString := DisplayValue; FDataItem.post; end; end; procedure TfrViewInstalador.CustomViewCreate(Sender: TObject); var i : integer; begin inherited; FListaUsuarios := AppFactuGES.UsuariosController.DarListaUsuarios; with cbUsuario.Properties.Items do begin BeginUpdate; try Clear; for i := 0 to FListaUsuarios.Count - 1 do Add(FListaUsuarios.Names[i]); finally EndUpdate; end; end; end; procedure TfrViewInstalador.CustomViewDestroy(Sender: TObject); begin FreeAndNIL(FListaUsuarios); inherited; end; procedure TfrViewInstalador.ElegirUsuario(const AIDUsuario: Integer); var i : integer; begin for i := 0 to FListaUsuarios.Count-1 do begin if FListaUsuarios.ValueFromIndex[i] = IntToStr(AIDUsuario) then begin cbUsuario.Text := FListaUsuarios.Names[i]; Break; end; end; end; function TfrViewInstalador.GetDataItem: TDADataTable; begin Result := FDataItem; end; procedure TfrViewInstalador.SetContacto(const Value: IBizContacto); begin inherited; DataItem := FContacto.DataTable; end; procedure TfrViewInstalador.SetDataItem(const Value: TDADataTable); begin FDataItem := Value; if Assigned(FDataItem.FindField('ID_USUARIO')) then ElegirUsuario(FDataItem.FieldByName('ID_USUARIO').AsInteger); end; end.