git-svn-id: https://192.168.0.254/svn/Proyectos.EstudioCarnicero_ProGestion/trunk@4 1b8572a8-2d6b-b84e-8c90-20ed86fa4eca
280 lines
8.7 KiB
ObjectPascal
280 lines
8.7 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2006. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 22-05-2006
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual: 22-05-2006
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit uEditorContactos;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uEditorBase, uEditorGrid, ToolWin, ComCtrls, JvExControls, JvComponent,
|
|
JvNavigationPane, uViewContactos, uBizContacto, ActnList, DBActns, uViewGrid,
|
|
Menus, uDataModuleBase, ImgList, PngImageList, TB2Dock, TB2Toolbar, TBX,
|
|
TB2Item, StdActns, TB2ExtItems, TBXExtItems, TB2MRU, DB, uDADataTable,
|
|
StdCtrls, ExtCtrls, uCustomView, uViewBase, uViewBarraSeleccion,
|
|
dxLayoutLookAndFeels, JvAppStorage, JvAppRegistryStorage, JvFormPlacement,
|
|
uEditorUtils, JvComponentBase, cxGridCustomTableView;
|
|
|
|
type
|
|
IEditorContactos = interface(IEditorGrid)
|
|
['{21DD6B74-F218-4AFC-91EE-1ECD4ADF1553}']
|
|
function GetContactos: IBizContacto;
|
|
procedure SetContactos(const Value: IBizContacto);
|
|
property Contactos: IBizContacto read GetContactos write SetContactos;
|
|
end;
|
|
|
|
TfEditorContactos = class(TfEditorGrid, IEditorContactos, IEditorMenu)
|
|
actVerTodos: TAction;
|
|
actVerPorCategorias: TAction;
|
|
EditorMenu: TMainMenu;
|
|
Contactos1: TMenuItem;
|
|
VerTodos1: TMenuItem;
|
|
Verporcategoras1: TMenuItem;
|
|
frViewContactos1: TfrViewContactos;
|
|
procedure actEliminarExecute(Sender: TObject);
|
|
procedure actModificarExecute(Sender: TObject);
|
|
procedure actNuevoExecute(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure actVerTodosExecute(Sender: TObject);
|
|
procedure actVerPorCategoriasExecute(Sender: TObject);
|
|
procedure frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
|
|
procedure actModificarUpdate(Sender: TObject);
|
|
procedure actEliminarUpdate(Sender: TObject);
|
|
|
|
private
|
|
FContactos: IBizContacto;
|
|
|
|
protected
|
|
function GetContactos: IBizContacto; virtual;
|
|
procedure SetContactos(const Value: IBizContacto); virtual;
|
|
procedure SetViewGrid(const Value: IViewGrid); override;
|
|
procedure SetSelectionBarVisible(const Value: Boolean); override;
|
|
|
|
public
|
|
property Contactos: IBizContacto read GetContactos write SetContactos;
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
function GetEditorMenu: TMainMenu;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
uCustomEditor, uDataModuleContactos, uEditorContacto,
|
|
uPluginControllerContactos, cxGridDBTableView, uDBSelectionList,
|
|
LiteralesContactos, cxGridCustomView, cxGrid, Math;
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
function ShowEditorContactos (ABizObject : TDADataTableRules) : TModalResult;
|
|
var
|
|
AEditor: TfEditorContactos;
|
|
begin
|
|
AEditor := TfEditorContactos.Create(Application);
|
|
try
|
|
AEditor.Contactos := (ABizObject as IBizContacto);
|
|
Result := AEditor.ShowModal;
|
|
finally
|
|
AEditor.Release;
|
|
Application.ProcessMessages;
|
|
end;
|
|
end;
|
|
|
|
function ShowMultiSelectEditorContactos (ABizObject : TDADataTableRules) : TModalResult;
|
|
var
|
|
AEditor: TfEditorContactos;
|
|
begin
|
|
AEditor := TfEditorContactos.Create(Application);
|
|
try
|
|
AEditor.Contactos := (ABizObject as IBizContacto);
|
|
AEditor.SelectionBarVisible := True;
|
|
AEditor.MultiSelection := True;
|
|
AEditor.actVerTodos.Execute;
|
|
Result := AEditor.ShowModal;
|
|
finally
|
|
AEditor.Release;
|
|
end;
|
|
end;
|
|
|
|
function ShowSelectEditorContactos (ABizObject : TDADataTableRules) : TModalResult;
|
|
var
|
|
AEditor: TfEditorContactos;
|
|
begin
|
|
AEditor := TfEditorContactos.Create(Application);
|
|
try
|
|
AEditor.Contactos := (ABizObject as IBizContacto);
|
|
AEditor.SelectionBarVisible := True;
|
|
Result := AEditor.ShowModal;
|
|
finally
|
|
AEditor.Release;
|
|
end;
|
|
end;
|
|
|
|
|
|
{
|
|
****************************** TfEditorContactos *******************************
|
|
}
|
|
|
|
procedure TfEditorContactos.actEliminarExecute(Sender: TObject);
|
|
begin
|
|
if (MessageDlg(msgLitBorrar, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
|
|
begin
|
|
inherited;
|
|
ViewGrid.RefreshGrid;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorContactos.actModificarExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Contactos.Show;
|
|
try
|
|
ViewGrid.Grid.BeginUpdate; //Ojo no quitar porque si no pierde la posición cuando hacemos doble click
|
|
ViewGrid.RefreshGrid;
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|
finally
|
|
ViewGrid.Grid.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorContactos.actNuevoExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Contactos.Insert;
|
|
Contactos.Show;
|
|
ViewGrid.RefreshGrid;
|
|
ViewGrid.SyncFocusedRecordsFromDataSet;
|
|
end;
|
|
|
|
procedure TfEditorContactos.FormShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
|
|
if not Assigned(ViewGrid) then
|
|
raise Exception.Create('No hay ninguna vista asignada');
|
|
|
|
if not Assigned(Contactos) then
|
|
raise Exception.Create('No hay ningún contacto asignado');
|
|
|
|
Contactos.DataTable.Active := True;
|
|
end;
|
|
|
|
function TfEditorContactos.GetContactos: IBizContacto;
|
|
begin
|
|
Result := FContactos;
|
|
end;
|
|
|
|
procedure TfEditorContactos.SetContactos(const Value: IBizContacto);
|
|
begin
|
|
FContactos := Value;
|
|
dsDataTable.DataTable := FContactos.DataTable;
|
|
if Assigned(ViewGrid) then
|
|
(ViewGrid as IViewContactos).Contactos := Contactos;
|
|
end;
|
|
|
|
procedure TfEditorContactos.SetViewGrid(const Value: IViewGrid);
|
|
begin
|
|
inherited;
|
|
if Assigned(ViewGrid) and Assigned(Contactos) then
|
|
(ViewGrid as IViewContactos).Contactos := Contactos;
|
|
end;
|
|
|
|
constructor TfEditorContactos.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
// ViewGrid := CreateView(TfrViewContactos) as IViewContactos;
|
|
ViewGrid := frViewContactos1;
|
|
end;
|
|
|
|
destructor TfEditorContactos.Destroy;
|
|
begin
|
|
FContactos := NIL;
|
|
ViewGrid := Nil;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TfEditorContactos.CustomEditorClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
inherited;
|
|
if ModalResult <> mrOk then
|
|
(Contactos as ISelectedRowList).SelectedRows.Clear;
|
|
end;
|
|
|
|
procedure TfEditorContactos.actVerTodosExecute(Sender: TObject);
|
|
begin
|
|
(ViewGrid as IViewContactos).SetViewType(vtAll);
|
|
end;
|
|
|
|
procedure TfEditorContactos.actVerPorCategoriasExecute(Sender: TObject);
|
|
begin
|
|
(ViewGrid as IViewContactos).SetViewType(vtCat);
|
|
end;
|
|
|
|
procedure TfEditorContactos.frViewBarraSeleccionactSeleccionarExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
ViewGrid.SyncFocusedRecordsFromGrid;
|
|
ModalResult := mrOK;
|
|
end;
|
|
|
|
procedure TfEditorContactos.SetSelectionBarVisible(const Value: Boolean);
|
|
begin
|
|
inherited;
|
|
if Value then
|
|
ViewGrid.OnDblClick := frViewBarraSeleccion.actSeleccionar.OnExecute;
|
|
end;
|
|
|
|
function TfEditorContactos.getEditorMenu: TMainMenu;
|
|
begin
|
|
Result := EditorMenu;
|
|
end;
|
|
|
|
procedure TfEditorContactos.actModificarUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if (ViewGrid.Grid.ActiveView is TcxGridDBTableView) and
|
|
Assigned((ViewGrid.Grid.ActiveView as TcxGridDBTableView).Controller.FocusedRow) then
|
|
if not (ViewGrid.Grid.ActiveView as TcxGridDBTableView).Controller.FocusedRow.HasCells then
|
|
(Sender as TAction).Enabled := False;
|
|
end;
|
|
|
|
procedure TfEditorContactos.actEliminarUpdate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if (ViewGrid.Grid.ActiveView is TcxGridDBTableView) and
|
|
Assigned((ViewGrid.Grid.ActiveView as TcxGridDBTableView).Controller.FocusedRow) then
|
|
if not (ViewGrid.Grid.ActiveView as TcxGridDBTableView).Controller.FocusedRow.HasCells then
|
|
(Sender as TAction).Enabled := False;
|
|
end;
|
|
|
|
initialization
|
|
RegisterEditor(IBizContacto, ShowEditorContactos, etItems);
|
|
RegisterEditor(IBizContacto, ShowMultiSelectEditorContactos, etSelectItems);
|
|
RegisterEditor(IBizContacto, ShowSelectEditorContactos, etSelectItem);
|
|
|
|
end.
|
|
|