#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
185 lines
5.6 KiB
ObjectPascal
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.
|