unit uViewSucursalesContacto; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, uDADataTable, Grids, DBGrids, ActnList, ImgList, PngImageList, ComCtrls, ToolWin, cxGridDBTableView, uViewDetallesGenerico, uClientesController, uDAInterfaces, StdCtrls, uBizContactos; type TfrViewSucursalesContacto = class(TfrViewDetallesGenerico) cxGridViewNOMBRE: TcxGridDBColumn; cxGridViewTELEFONO: TcxGridDBColumn; cxGridViewMOVIL: TcxGridDBColumn; cxGridViewFAX: TcxGridDBColumn; cxGridViewEMAIL: TcxGridDBColumn; cxGridViewNIFCIF: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; procedure cxGridViewDblClick(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); private FCentral : IBizCliente; FClientesController : IClientesController; function GetCentral: IBizCliente; procedure SetCentral(const Value: IBizCliente); protected procedure AnadirInterno; override; procedure ModificarInterno; override; public property Central : IBizCliente read GetCentral write SetCentral; end; implementation {$R *.dfm} uses uDialogUtils; procedure TfrViewSucursalesContacto.actEliminarExecute(Sender: TObject); begin if (ShowConfirmMessage('Eliminar una sucursal', '¿Desea quitar esta sucursal?') = IDYES) then inherited; end; procedure TfrViewSucursalesContacto.AnadirInterno; var ACliente : IBizCliente; i : integer; begin inherited; ACliente := (FClientesController.ElegirContacto(FClientesController.BuscarTodos, '', False) as IBizCliente); if Assigned(ACliente) then begin dsDetalles.DataTable.Insert; try for i := 0 to dsDetalles.DataTable.Fields.Count - 1 do dsDetalles.DataTable.Fields[i].Value := ACliente.DataTable.FieldByName(dsDetalles.DataTable.Fields[i].Name).Value; dsDetalles.DataTable.FieldByName('ID_CENTRAL').Value := FCentral.ID; finally dsDetalles.DataTable.Post; end; end; ACliente := Nil; end; procedure TfrViewSucursalesContacto.CustomViewCreate(Sender: TObject); begin inherited; FCentral := NIL; FClientesController := TClientesController.Create; end; procedure TfrViewSucursalesContacto.CustomViewDestroy(Sender: TObject); begin inherited; FClientesController := NIL; end; procedure TfrViewSucursalesContacto.cxGridViewDblClick(Sender: TObject); begin inherited; actModificar.Execute; end; function TfrViewSucursalesContacto.GetCentral: IBizCliente; begin result := FCentral; end; procedure TfrViewSucursalesContacto.ModificarInterno; var ACliente : IBizContacto; begin inherited; ACliente := FClientesController.Buscar(cxGridViewID.DataBinding.Field.Value); if Assigned(ACliente) then FClientesController.Ver(ACliente); end; procedure TfrViewSucursalesContacto.SetCentral(const Value: IBizCliente); begin FCentral := Value; end; end.