This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Contactos/Views/uViewContactos.pas

185 lines
5.6 KiB
ObjectPascal
Raw Permalink Normal View History

unit uViewContactos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGrid, uBizContactos, ActnList, Menus,
cxGridBandedTableView, cxGridDBBandedTableView, JvComponent,
JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon,
uDataModuleClientes, cxGridCustomPopupMenu, cxGridPopupMenu, uViewFiltroBase,
ComCtrls, TB2Item, SpTBXItem, TB2Toolbar, dxPgsDlg, dxPScxGrid6Lnk, uDAInterfaces, SpTBXDkPanels,
TB2Dock, uCustomView, uViewBase, cxLookAndFeels, cxLookAndFeelPainters,
dxPSPDFExportCore, dxPSPDFExport, cxDrawTextUtils, dxPSPrVwStd, dxPSPrVwAdv,
dxPScxEditorProducers, dxPScxExtEditorProducers, dxPScxPageControlProducer;
type
IViewContactos = interface(IViewGrid)
['{9E43DEE1-F72B-4C93-8592-1C7DF01E293D}']
function GetContactos: IBizContacto;
procedure SetContactos(const Value: IBizContacto);
property Contactos: IBizContacto read GetContactos write SetContactos;
end;
TfrViewContactos = class(TfrViewGrid, IViewContactos)
cxGridViewNIF_CIF: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewCALLE: TcxGridDBColumn;
cxGridViewPOBLACION: TcxGridDBColumn;
cxGridViewPROVINCIA: TcxGridDBColumn;
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
cxGridViewTELEFONO_1: TcxGridDBColumn;
cxGridViewTELEFONO_2: TcxGridDBColumn;
cxGridViewMOVIL_1: TcxGridDBColumn;
cxGridViewFAX: TcxGridDBColumn;
cxGridViewEMAIL_1: TcxGridDBColumn;
cxGridViewEMAIL_2: TcxGridDBColumn;
cxGridViewPAGINA_WEB: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
procedure OnFiltroListaPropertiesChange(Sender: TObject);
procedure OnFiltroListaPropertiesInitPopup(Sender: TObject);
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
private
procedure AnadirFiltroProvincia;
protected
FProvincias : TStringList;
FContactos: IBizContacto;
function GetContactos: IBizContacto; virtual;
procedure SetContactos(const Value: IBizContacto); virtual;
procedure CargarProvincias;
public
procedure AnadirOtrosFiltros; override;
property DataSet: IBizContacto read GetContactos write SetContactos;
end;
implementation
{$R *.dfm}
{ TfrViewContactos }
uses uProvinciasPoblacionesController;
{
******************************* TfrViewContactos *******************************
}
procedure TfrViewContactos.AnadirFiltroProvincia;
var
FFiltro : TcxFilterCriteriaItemList;
begin
//Solo se aplica este filtro en el caso de tener activo el panel de detalle de filtro
//y sobre la lista de pedidos
if frViewFiltroBase1.Visible then
begin
if (VarToStr(frViewFiltroBase1.eLista.EditValue) <> 'Todos') then
begin
FFiltro := AddFilterGrid(fboAnd);
FFiltro.AddItem(cxGridViewPROVINCIA, foEqual, VarToStr(frViewFiltroBase1.eLista.EditValue), VarToStr(frViewFiltroBase1.eLista.EditValue));
end;
end;
end;
procedure TfrViewContactos.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroProvincia;
//Finalmente activamos el filtro si tenemos algo
if cxGridView.DataController.Filter.IsEmpty
then cxGridView.DataController.Filter.Active := False
else cxGridView.DataController.Filter.Active := True;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewContactos.CargarProvincias;
var
i : integer;
begin
with TProvinciasPoblacionesController.Create do
try
FProvincias := DarListaProvincias;
with frViewFiltroBase1.eLista.Properties.Items do
begin
BeginUpdate;
try
Clear;
Add('Todos'); //Case 0
for i := 0 to FProvincias.Count - 1 do
Add(FProvincias.Names[i]);
frViewFiltroBase1.eLista.ItemIndex := 0;
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
procedure TfrViewContactos.CustomViewCreate(Sender: TObject);
begin
inherited;
FProvincias := NIL;
end;
procedure TfrViewContactos.CustomViewDestroy(Sender: TObject);
begin
frViewFiltroBase1.eLista.Properties.OnChange := Nil;
frViewFiltroBase1.eLista.Properties.OnInitPopup := Nil;
if Assigned(FProvincias) then
FreeANDNIL(FProvincias);
inherited;
end;
procedure TfrViewContactos.CustomViewShow(Sender: TObject);
begin
inherited;
frViewFiltroBase1.eLista.Properties.OnChange := OnFiltroListaPropertiesChange;
frViewFiltroBase1.eLista.Properties.OnInitPopup := OnFiltroListaPropertiesInitPopup;
end;
function TfrViewContactos.GetContactos: IBizContacto;
begin
Result := FContactos;
end;
procedure TfrViewContactos.OnFiltroListaPropertiesChange(Sender: TObject);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewContactos.OnFiltroListaPropertiesInitPopup(Sender: TObject);
begin
inherited;
ShowHourglassCursor;
try
if not Assigned(FProvincias) then
CargarProvincias;
finally
HideHourglassCursor;
end;
end;
procedure TfrViewContactos.SetContactos(const Value: IBizContacto);
begin
FContactos := Value;
if Assigned(FContactos) then
dsDataSource.DataTable := FContactos.DataTable;
end;
end.