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
roberto f2c4e7954f #408: Informe de comisiones de vendedor ordenar por referencia de factura
#409: Sacar en pedidos de cliente y albaranes de cliente la provincia
#410: Sacar nombre comercial en etiquetas y albaranes y pedidos
#411: Cuando sea un abono que salga en grande en el informe
#412: Cuando una factura es más de dos hojas que no repita el pie de importes
#413: Poder filtrar por provincia en todos los documentos
Version 1.0.8

git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@134 f33bb606-9f5c-448d-9c99-757f00063c96
2010-07-12 15:44:32 +00:00

185 lines
5.6 KiB
ObjectPascal

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.