From b16c3b217385e9862650de08c0bdaaf5b95ad613 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 15 Oct 2008 18:39:40 +0000 Subject: [PATCH] Modulo nuevo para los informes estadisticos e informes que ya tenian anteriormente git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@679 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- .../Controller/GestorInformes_controller.dcu | Bin 0 -> 23462 bytes .../Controller/GestorInformes_controller.dpk | Bin 0 -> 856 bytes .../GestorInformes_controller.dproj | 581 ++++++++++++++++++ .../GestorInformes_controller.identcache | Bin 0 -> 224 bytes .../Controller/GestorInformes_controller.rc | 22 + .../Controller/GestorInformes_controller.res | Bin 0 -> 384 bytes .../View/uIEditorGestorInformesReport.dcu | Bin 0 -> 1341 bytes .../View/uIEditorGestorInformesReport.pas | 26 + .../View/uIEditorGestorInformesReport.pas.bak | 16 + .../Controller/uGestorInformesController.dcu | Bin 0 -> 5371 bytes .../Controller/uGestorInformesController.pas | 426 +++++++++++++ .../Data/FacturasCliente_data.dpk | Bin 0 -> 652 bytes .../Data/FacturasCliente_data.dproj | 79 +++ .../Data/FacturasCliente_data.res | Bin 0 -> 4396 bytes .../Data/GestorInformes_data.dcu | Bin 0 -> 13556 bytes .../Data/GestorInformes_data.dpk | Bin 0 -> 755 bytes .../Data/GestorInformes_data.dproj | 579 +++++++++++++++++ .../Data/GestorInformes_data.identcache | Bin 0 -> 104 bytes .../Data/GestorInformes_data.rc | 22 + .../Data/GestorInformes_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleGestorInformes.dcu | Bin 0 -> 5399 bytes .../Data/uDataModuleGestorInformes.dfm | 63 ++ .../Data/uDataModuleGestorInformes.pas | 89 +++ .../Model/Data/uIDataModuleGestorInformes.dcu | Bin 0 -> 1026 bytes .../Model/Data/uIDataModuleGestorInformes.pas | 18 + .../Model/GestorInformes_model.dcu | Bin 0 -> 2153 bytes .../Model/GestorInformes_model.dpk | Bin 0 -> 591 bytes .../Model/GestorInformes_model.dproj | 568 +++++++++++++++++ .../Model/GestorInformes_model.identcache | Bin 0 -> 111 bytes .../Model/GestorInformes_model.rc | 22 + .../Model/GestorInformes_model.res | Bin 0 -> 384 bytes .../Plugin/GestorInformes_plugin.dcu | Bin 0 -> 24451 bytes .../Plugin/GestorInformes_plugin.dpk | Bin 0 -> 735 bytes .../Plugin/GestorInformes_plugin.dproj | 536 ++++++++++++++++ .../Plugin/GestorInformes_plugin.identcache | Bin 0 -> 102 bytes .../Plugin/GestorInformes_plugin.rc | 22 + .../Plugin/GestorInformes_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginGestorInformes.dcu | Bin 0 -> 3643 bytes .../Plugin/uPluginGestorInformes.dfm | 114 ++++ .../Plugin/uPluginGestorInformes.pas | 59 ++ .../Servidor/NewService_Impl.dfm | 107 ++++ .../Servidor/NewService_Impl.pas | 179 ++++++ .../Servidor/srvGestorInformes_Impl.dcu | Bin 0 -> 8417 bytes .../Servidor/srvGestorInformes_Impl.dfm | 109 ++++ .../Servidor/srvGestorInformes_Impl.pas | 198 ++++++ .../Views/GestorInformes_view.dcu | Bin 0 -> 24978 bytes .../Views/GestorInformes_view.dpk | 70 +++ .../Views/GestorInformes_view.dproj | 576 +++++++++++++++++ .../Views/GestorInformes_view.identcache | Bin 0 -> 494 bytes .../Views/GestorInformes_view.rc | 22 + .../Views/GestorInformes_view.res | Bin 0 -> 384 bytes .../Views/uEditorGestorInformesReport.dcu | Bin 0 -> 13615 bytes .../Views/uEditorGestorInformesReport.dfm | 200 ++++++ .../Views/uEditorGestorInformesReport.pas | 134 ++++ .../Views/uGestorInformesViewRegister.dcu | Bin 0 -> 915 bytes .../Views/uGestorInformesViewRegister.pas | 23 + .../Views/uViewFiltroClientes.dcu | Bin 0 -> 6310 bytes .../Views/uViewFiltroClientes.dfm | 167 +++++ .../Views/uViewFiltroClientes.pas | 51 ++ .../Views/uViewFiltroImportes.dcu | Bin 0 -> 4974 bytes .../Views/uViewFiltroImportes.dfm | 63 ++ .../Views/uViewFiltroImportes.pas | 33 + .../Views/uViewPeriodoFechas.dcu | Bin 0 -> 12638 bytes .../Views/uViewPeriodoFechas.dfm | 171 ++++++ .../Views/uViewPeriodoFechas.pas | 206 +++++++ .../Views/uViewPeriodoFechas.pas.bak | 206 +++++++ 66 files changed, 5757 insertions(+) create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.identcache create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.rc create mode 100644 Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res create mode 100644 Source/Modulos/Gestor de informes/Controller/View/uIEditorGestorInformesReport.dcu create mode 100644 Source/Modulos/Gestor de informes/Controller/View/uIEditorGestorInformesReport.pas create mode 100644 Source/Modulos/Gestor de informes/Controller/View/uIEditorGestorInformesReport.pas.bak create mode 100644 Source/Modulos/Gestor de informes/Controller/uGestorInformesController.dcu create mode 100644 Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas create mode 100644 Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dpk create mode 100644 Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dproj create mode 100644 Source/Modulos/Gestor de informes/Data/FacturasCliente_data.res create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.dcu create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.dpk create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.identcache create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc create mode 100644 Source/Modulos/Gestor de informes/Data/GestorInformes_data.res create mode 100644 Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dcu create mode 100644 Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm create mode 100644 Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas create mode 100644 Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu create mode 100644 Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.dproj create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.identcache create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc create mode 100644 Source/Modulos/Gestor de informes/Model/GestorInformes_model.res create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dcu create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dproj create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.identcache create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc create mode 100644 Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res create mode 100644 Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dcu create mode 100644 Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm create mode 100644 Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas create mode 100644 Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm create mode 100644 Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas create mode 100644 Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu create mode 100644 Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm create mode 100644 Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.identcache create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc create mode 100644 Source/Modulos/Gestor de informes/Views/GestorInformes_view.res create mode 100644 Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.dfm create mode 100644 Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm create mode 100644 Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu create mode 100644 Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm create mode 100644 Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas.bak diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dcu new file mode 100644 index 0000000000000000000000000000000000000000..66dca6875cef89d4667ac3dd4ae09764ef42cd06 GIT binary patch literal 23462 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 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk new file mode 100644 index 0000000000000000000000000000000000000000..4bcca8e348c35589a86540f88f09bafd5edb430d GIT binary patch literal 856 zcmaKq!H&}~5QaHd>O1(b(n<(bRN{cd$%!YyTF0(zH@jUSRc>M+&?do2VG-ipN!&WS zT?9GA<1aJ6|8b@@#aHvmqSSVM<7oY{aR=LNi>B^fv)^0yZa$mOeqBlQa^Y?mUMWBGO+^w7t%DN_jt5ArR5+KCT_zSXTK8j6rM9kKmw29 zX&(wFKxj@0OuZ_Nw&Fk?w(-osJ)zO+Va;~1woc(sJhMzZ|A%xp@UlpdWnmRI_ zeKoT0#on*3Kdt31M8xz4@4DWZqTj}ivsmyS(p-|d`*nP1@-(8j! z53Jfb<9-I6@`vT>#JKvK$Qgi5v&iRJHHvc$pMWvx}-4UH|jzqBY&M jH-4m0R>SyT>PXuT{dkSMvOhljFUxCrW410A^Vy3()^+?M literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj new file mode 100644 index 00000000..531f8b78 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj @@ -0,0 +1,581 @@ + + + + {276cb891-ed7d-4234-bff6-f7ffd1682ac9} + GestorInformes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_controller.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + GestorInformes_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.identcache b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..aa5a7f0520a1e81ec054348eb41f54bde116cf51 GIT binary patch literal 224 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 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas new file mode 100644 index 00000000..7aed2fd8 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas @@ -0,0 +1,426 @@ +unit uGestorInformesController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleGestorInformes; + +type + IGestorInformesController = interface(IControllerBase) + ['{5A556B66-AF8F-46F7-B12E-B8336CE07F6D}'] + function GetDataModule: IDataModuleGestorInformes; + property DataModule: IDataModuleGestorInformes read GetDataModule; +// procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); +// procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + procedure GetInformeIVAClientes; + end; + + TGestorInformesController = class(TControllerBase, IGestorInformesController) + private + FDataModule : IDataModuleGestorInformes; + + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function GetDataModule: IDataModuleGestorInformes; + +// procedure FiltrarEmpresa(AFactura: IBizFacturaCliente); + + public + constructor Create; override; + destructor Destroy; override; +{ + function Buscar(const ID: Integer): IBizFacturaCliente; + function BuscarTodos: IBizFacturaCliente; + function BuscarTodasPendientesComision(IdAgente: Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; + procedure Ver(AFactura : IBizFacturaCliente); + procedure VerTodos(AFacturas: IBizFacturaCliente); + + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); +} + property DataModule: IDataModuleGestorInformes read GetDataModule; + procedure GetInformeIVAClientes; + + + end; + +implementation + +uses + Windows, Controls, cxControls, DB, uEditorRegistryUtils, uFactuGES_App, + uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils, + uROTypes, DateUtils, Forms, uIntegerListUtils, uDataModuleGestorInformes, + uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uIEditorGestorInformesReport; + + +{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente; + ADestino : IBizDetallesFacturaCliente); +var + i : integer; + ADetallesController : IDetallesFacturaClienteController; +begin + if not Assigned(AOrigen) then + raise Exception.Create ('Origen no asignado (CopiarArticulosPedido)'); + + if not Assigned(ADestino) then + raise Exception.Create ('Destino no asignado (CopiarArticulosPedido)'); + + if not AOrigen.DataTable.Active then + AOrigen.DataTable.Active := True; + + if not ADestino.DataTable.Active then + ADestino.DataTable.Active := True; + + ADetallesController := TDetallesFacturaClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADestino); + + AOrigen.DataTable.First; + for i := 0 to AOrigen.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADestino, TIPO_DETALLE_CONCEPTO); + ADestino.Edit; + ADestino.REFERENCIA := AOrigen.REFERENCIA; + if AOrigen.ID_ARTICULO > 0 then + ADestino.ID_ARTICULO := AOrigen.ID_ARTICULO; + ADestino.CONCEPTO := AOrigen.CONCEPTO; + ADestino.CANTIDAD := AOrigen.CANTIDAD; + ADestino.IMPORTE_UNIDAD := AOrigen.IMPORTE_UNIDAD; + ADestino.IMPORTE_TOTAL := AOrigen.IMPORTE_TOTAL; + ADestino.DESCUENTO := AOrigen.DESCUENTO; + ADestino.IMPORTE_PORTE := AOrigen.IMPORTE_PORTE; + ADestino.VISIBLE := AOrigen.VISIBLE; + ADestino.REFERENCIA_PROVEEDOR := AOrigen.REFERENCIA_PROVEEDOR; + ADestino.Post; + AOrigen.Next; + end; + finally + ADetallesController.EndUpdate(ADestino); + ADetallesController := NIL; + end; +end;} + + + +{ TGestorInformesController } + + +{ +function TGestorInformesController.Buscar(const ID: Integer): IBizFacturaCliente; +begin +// Result := (FDataModule as IDataModuleFacturasCliente).GetItem(ID); +// FiltrarEmpresa(Result); +end; + +function TGestorInformesController.BuscarTodasPendientesComision(IdAgente:Integer; IdComision: Integer; IdFacturasAsociadas: String): IBizFacturaCliente; +var + Condicion: TDAWhereExpression; +begin +{ ShowHourglassCursor; + try + Result := BuscarTodos; + with Result.DataTable.DynamicWhere do + begin + //Todas las facturas de un agente determinado + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_AGENTE), NewConstant(IdAgente, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.DynamicWhere do + begin + //Todas aquellas que no esten asociadas a ninguna comisión o asociadas a la comisión, + //pero no asociadas en el editor de la comision, esto es porque se puede agregar y quitar + //facturas y todos los cambios estan el cache y por lo tanto al pedir las facturas a seleccionar + //debemos tener en cuenta dichso cambios en cache + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_COMISION_LIQUIDADA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + +{REPASARRRRRRR + //Quitamos aquellas que ya están asociadas + if length(IdFacturasAsociadas) > 0 then + with Result.DataTable.DynamicWhere do + begin + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID), ' not in (' + IdFacturasAsociadas + ')');, dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + with Result.DataTable.Where do + begin + + CLOSEBraket; + AddOperator(opOR); + + OpenBraket; + //En caso de ser facturas ya asociadas lo limitamos a la comision actual + //ya que no debemos poder elegir facturas asociadas a otras comisiones + OpenBraket; + AddText(fld_FacturasClienteID_COMISION_LIQUIDADA + ' = ' + IntToStr(IdComision)); + CloseBraket; + //En el caso de que halla facturas asociadas + if length(IdFacturasAsociadas) > 0 then + begin + AddOperator(opAND); + OpenBraket; + AddText(fld_FacturasClienteID + ' not in (' + IdFacturasAsociadas + ')'); + CloseBraket; + end; + CloseBraket; + + CloseBraket; + end; + + finally + HideHourglassCursor; + end; +end; + +function TGestorInformesController.BuscarTodos: IBizFacturaCliente; +begin +// Result := FDataModule.GetItems; + // FiltrarEmpresa(Result); +end; +} + +constructor TGestorInformesController.Create; +begin + inherited; + FDataModule := TDataModuleGestorInformes.Create(Nil); +end; + + +function TGestorInformesController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +destructor TGestorInformesController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TGestorInformesController.GetDataModule: IDataModuleGestorInformes; +begin + Result := FDataModule; +end; + +procedure TGestorInformesController.GetInformeIVAClientes; +var + AStream: Binary; + AEditor : IEditorGestorInformesReport; +begin + AEditor := NIL; + ShowHourglassCursor; + try + try + CreateEditor('EditorGestorInformesReport', IEditorGestorInformesReport, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + AEditor.Controller := Self; + AStream := FDataModule.GetInformeIVAClientes(AppFactuGES.EmpresaActiva.ID, FechaInicio, FechaFin, ListaIDClientes, DesglosadoCliente, ImporteMinimo); + LoadFromStream(AStream); + Preview; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +{ +procedure TGestorInformesController.Ver(AFactura: IBizFacturaCliente); +var + AEditor : IEditorFacturaCliente; +begin + AEditor := NIL; +{ ShowHourglassCursor; + try + RecuperarCliente(AFactura); + CreateEditor('EditorFacturaCliente', IEditorFacturaCliente, AEditor); + + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Factura := AFactura; + + //MODO CONSULTAR + if not EsModificable(AFactura) then + begin + SetDataTableReadOnly(AFactura.DataTable, True); + ReadOnly := True; + end; + + ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if ReadOnly then + SetDataTableReadOnly(AFactura.DataTable, False); + + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TGestorInformesController.VerTodos(AFacturas: IBizFacturaCliente); +var + AEditor : IEditorFacturasCliente; +begin + AEditor := NIL; +{ + ShowHourglassCursor; + try + CreateEditor('EditorFacturasCliente', IEditorFacturasCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Facturas := AFacturas; + MultiSelect := True; + ShowEmbedded; + end; + finally + AEditor := Nil; + HideHourglassCursor; + end; +end; + + +procedure TGestorInformesController.FiltrarEmpresa(AFactura: IBizFacturaCliente); +var + Condicion: TDAWhereExpression; +begin +{ if AFactura.DataTable.Active then + AFactura.DataTable.Active := False; + + // Filtrar las facturas actuales por empresa + with AFactura.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TGestorInformesController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TGestorInformesController.SetDetallesController(const Value: IDetallesFacturaClienteController); +begin + FDetallesController := Value; +end; +} +{ +procedure TGestorInformesController.informe; +begin + + FDataModule.getInforme; +//showmessage('alla voy') +end; + +{ +procedure TGestorInformesController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +var +// AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin +{ + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Preview(ID_Facturas); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; + +procedure TGestorInformesController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +var +// AReportController : IFacturasClienteReportController; + ID_Facturas: TIntegerList; + +begin +{ + AReportController := TFacturasClienteReportController.Create; + ID_Facturas := TIntegerList.Create; + + try + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AFactura.DataTable do + begin + First; + while not EOF do + begin + ID_Facturas.Add(AFactura.ID); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Facturas.Add(AFactura.ID); + + AReportController.Print(ID_Facturas); + + finally + AReportController := NIL; + FreeANDNIL(ID_Facturas); + end; +end; +} + +end. diff --git a/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dpk b/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dpk new file mode 100644 index 0000000000000000000000000000000000000000..a82664e5f335c3cc909b27f1d4d2a76ae27f701c GIT binary patch literal 652 zcmZ{i$!fze5Qcj;_#Jcz1bPT9^ibNCkML8v!cvC)1*w^UB`8fBTXJB`|NN!zd`UolGpZa3~I}j zG(^dUcuEP3K@jEp4PfZa0xo^kTj0W?WXQ}?T3Gayhmq1283PLgQ}hGrbcih!1!0z< zr^G)d17kI>@7_&CC~uJEAz#5+>R=Y5_Jx}FIXb->WPsNUebgu^{;$J;kBrBh;ZUow zK&QTj5Nk1AJiCmL0b?4?1;(ITg?*y7d2`Jzf+vvH9koMyVof|7_E2)696iEy^S>8mo%clMlCPwaKn_ jg5(7m-~XQMlEauB@4CMc%b;Dai_NLYpB3rEbsqiz);hmI literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dproj b/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dproj new file mode 100644 index 00000000..ab24152d --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.dproj @@ -0,0 +1,79 @@ + + + {45f3d725-bfc7-4084-afb2-6032ebaddc4a} + FacturasCliente_data.dpk + Debug + AnyCPU + DCC32 + C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\FacturasCliente_data.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + FacturasCliente_data.dpk + + + + + + + MainSource + + + +
DataModuleFacturasCliente
+ TDAClientDataModule +
+
+ +
\ No newline at end of file diff --git a/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.res b/Source/Modulos/Gestor de informes/Data/FacturasCliente_data.res new file mode 100644 index 0000000000000000000000000000000000000000..4f907139ddab7c4037201c4f222a18f1c3263363 GIT binary patch literal 4396 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 A^Z)<= literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj new file mode 100644 index 00000000..8b09b5fc --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.dproj @@ -0,0 +1,579 @@ + + + + {45f3d725-bfc7-4084-afb2-6032ebaddc4a} + GestorInformes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_data.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + GestorInformes_data.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.identcache b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b39bb677bcbc6f27b41341305aa67233b8cc6f5e GIT binary patch literal 104 zcmZQ%U|F3v1T&4~%lFD*(=jq%M-Db2|*j&V;dF3B%aNJ&-5 k%uCBJ%1tefaY-ymj41_?U`44AC7w`ey@JGIpwVyu0ADpB+yDRo literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Data/GestorInformes_data.res b/Source/Modulos/Gestor de informes/Data/GestorInformes_data.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 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 H67l~7t_+W` literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm new file mode 100644 index 00000000..03b96bdd --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.dfm @@ -0,0 +1,63 @@ +inherited DataModuleGestorInformes: TDataModuleGestorInformes + OnCreate = DAClientDataModuleCreate + Height = 207 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvGestorInformes' + Left = 40 + Top = 16 + end + object rda_GestorInformes: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 43 + Top = 135 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 72 + end + object tbl_DirectoryData: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FileName' + DataType = datString + Size = 200 + DisplayWidth = 50 + InPrimaryKey = True + end + item + Name = 'FileSize' + DataType = datInteger + end> + Params = < + item + Name = 'Directory' + DataType = datString + Size = 200 + Value = '' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_GestorInformes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DirectoryData' + IndexDefs = <> + Left = 184 + Top = 40 + end + object ds_DirectoryData: TDADataSource + DataSet = tbl_DirectoryData.Dataset + DataTable = tbl_DirectoryData + Left = 184 + Top = 104 + end +end diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas new file mode 100644 index 00000000..6e4914ce --- /dev/null +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas @@ -0,0 +1,89 @@ +unit uDataModuleGestorInformes; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + + uIDataModuleGestorInformes, uDADesigntimeCall, uDataModuleBase, + uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uIntegerListUtils, FactuGES_Intf; + +type + TDataModuleGestorInformes = class(TDataModuleBase, IDataModuleGestorInformes) + RORemoteService: TRORemoteService; + rda_GestorInformes: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_DirectoryData: TDAMemDataTable; + ds_DirectoryData: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public +// function GetItems : IBizFacturaCliente; + + // Report + function GetInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + procedure getInforme; + end; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, uDataTableUtils, cxControls, + Dialogs; + +{ TdmPresupuestos } + +procedure TDataModuleGestorInformes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleGestorInformes.GetInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GetInformeIVAClientes(IdEmpresa, FechaInicio, FechaFin, ListaIdClientes, Desglosado, ImporteMinimo); + finally + end; +end; + +procedure TDataModuleGestorInformes.getInforme; +begin + tbl_DirectoryData.close; + tbl_DirectoryData.ParamByName('Directory').AsString := 'ddddd'; + tbl_DirectoryData.Open; + showmessage(tbl_DirectoryData.FieldByName('filename').asstring) +end; +{ +function TDataModuleGestorInformes.GetItems: IBizFacturaCliente; +var + AFactura : TDAMemDataTable; +begin + ShowHourglassCursor; + try + + AFactura := CloneDataTable(tbl_FacturasCliente); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AFactura.FieldByName(fld_FacturasClienteREFERENCIA).ServerAutoRefresh := TRUE; + + AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_CLIENTE; + + with TBizFacturaCliente(AFactura.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AFactura as IBizFacturaCliente); + + finally + HideHourglassCursor; + end; +end; +} + +end. diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.dcu new file mode 100644 index 0000000000000000000000000000000000000000..1fafac7e130036d6f5f62f94c2f8b1d663a0f999 GIT binary patch literal 1026 zcmaJ<-)qxQ6h66jZC2B@lv-*Xy0A?~ouN948;-FbUAL%nuy*2PGQ-VH8%>jvqz_fW zf-g>CY$~EKr@r{+i-`E3FdV)KKKSCp{(-4aK8a(iH*s!buqE)3^WAguednCp3=l>h zfaKlLuAW0{%Yfo#F)i8Bh#{9XGDIxfFhyN4%p$QKfw#NV?3_;So+OkcYwhv*E|9(1 zie-}`fZ`WL-6p0YVRGi;*LB5f*`})J-yXa1O!4>WmYUs)eNJkgnDtMTk4k-xs*#*p zB-hT)Wffn)VQ56s{~UQr6n3C&nncHy&isp&d_(WBq{|w~sJf(Sm6a={PgwR*2coXp z09a*H0&3gSBsfoqXPwmb+z7)a0QnbYR!MAZd7%30!<)|2B^iO>&l7uN;Z@{? z_&k&J(ZWbjI54z%B3|el&{RS3!wW`5dt#<2qucJFm*~qup zRo;^&n&O2BV3+zF+D7s9qC8kEnZ%M1&FA-L2rfu;e^@mT_>SM=!$nZ5joYU$nEMA(Jkf%e1b{Z_LIMk2dmzQoIcfOdVVidRpFo_<bT}*fo#06T?@{kppsCWoD2-05;eK9Wp literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas new file mode 100644 index 00000000..6dc3e39a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas @@ -0,0 +1,18 @@ +unit uIDataModuleGestorInformes; + +interface + +uses + uROTypes, FactuGES_Intf; + +type + IDataModuleGestorInformes = interface + ['{65FB8E9E-5218-43DC-80AD-BDB4383B7064}'] +// function GetItems: IBizFacturaCliente; + procedure getInforme; + function GetInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: TDateTime; const FechaFin: TDateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dcu new file mode 100644 index 0000000000000000000000000000000000000000..9732855e4ca5b2bc404fc6da0cd5e302ed242229 GIT binary patch literal 2153 zcmeHHTTj$L6rMA|-Q!va5;Tn(v+hXL zGodGj%PbOpSn-zqu+5?eZQo(;yA-(<4w>W4Ld~477N1{j&PN?9-mvk(GGsd(G%)%!G=Q?sf0AB%ZR4$@Rpx#FgxOcxy`!Y32oM_`cB97qvmda zti!T=PmzKoFE+9htd?ghV}zyZYms1WLRwmhdzQ77>J{?5GT?(bnv(Pvg$>sc{tvs0Z)!4g(iB0H#q5S!tGtc>M}C?We@ z?m7OG1QeyVdBNQzSjPSfoNlZI>gEzMo30f_EFpBNRBhyKC;n)rGgm7VO_e&Hkd}l= zD_V(1k4n_!!3qoGaTR_SzZy^Im4u>ahiiel#$=A^a^{JOCzj(mDbsJ)mLA1}noLry zFIJ~2?I7Vdl~6@UOwcXVRKu5~_$1v@bXCUVD4$x1yGgf%bF9T95w69bJ|guM5;CL2 z#d34|O%9-&}B31L!)I|x$<(+D#N za|jKD1%yQd?jbZ0?jt-zSVC|RmJwETc!c2U;2{JEA%Z}7jPTUZHYluTv`sbBOh()4 gF0_nBDec2v`jY04r(aQ8Ag{?AO8W^V6K{$26RMLqT>t<8 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.dpk new file mode 100644 index 0000000000000000000000000000000000000000..713babe54a50e44a140106a742ce37080d6761c0 GIT binary patch literal 591 zcmZ{iOH0E*5XU_S@*Vb2D0nCe9t2OD>?97|N7&t_4+IJAD#bRbNqZ8%yGfeFslloJ(2EnpDLVw92UJz!x$GGJyYEnV~!MWVC?#;BzOQ{f|o(?Of7kaDvW zf#MfT#>Q%_?>!gP~Vr zX*i8E6;Kz`>Dgrhj54Ode8ZILbA^4P^YG>xEzp2NSWnar5&|X2nJ~Bla@!6S1&tw~ z2FU2{ra2u=IEHA08FJP|`(EkZPuqHVzDG!qRjys>y2y{&HgDkxS$51su{rJB&p$x6 XIT<&PPyhQ&4p}vBHC?`$_} + + + {e8b638a4-6653-49db-9d4d-557579466934} + GestorInformes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_model.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + GestorInformes_model.dpk + + + + + + + MainSource + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.identcache b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..5243afc8996c60d75d2baeed58fc8b67ebcc424a GIT binary patch literal 111 zcmZQ%U|@)Iwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&V;dF3B%aNJ&-5 o%uCBJ%1tc>NdeWlB$gz`lzM_Fu-a6JN>8XNy@JGIpbc;U0CV&tc>n+a literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Model/GestorInformes_model.res b/Source/Modulos/Gestor de informes/Model/GestorInformes_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 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 MM_MA8uSJai0mjZu&Hw-a literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.dpk new file mode 100644 index 0000000000000000000000000000000000000000..8c7f40c0d37041fcfc140ea7d09c2b9eb624ba7d GIT binary patch literal 735 zcmZva!ET%|5Qck3;vIa56sf9KiPS@-o(vx7XpN0*?RXVr$r+eFa}Ml)wUbI5^F#uVtka8K3jaM@^X-i<;7G~y7C9W|>&h62Pc(|8Bu z+BX$5nnFZ1kc*F3(|4vh#~4ktL(a~t!=ST2PStpMVL%9N+qx=?p=w-I^!CHVp32&f z-7t^2zj)2I_w4#g`Bd(Xar4+V&bpx==?q0WRV*4sIk>NddsybbeDLZ~m5m#^rmk)G oR`#i~KmCK7%8JT)%ct4Tze1#P + + + {ba7a4052-3c4c-401c-bae5-3701abd24fc1} + GestorInformes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_plugin.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.identcache b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..dc321ee3d3e8e805b69d80c712cf887cffcae886 GIT binary patch literal 102 zcmZQ%U|F3v1T&4~%lFD*(=jq%M-Db2|*j&V;dF3B%aNJ&-5 j%uCBJ%1tef3CJl;&&-P{h0qWMo={1>g2ZB=!EgWo9p)ik literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res b/Source/Modulos/Gestor de informes/Plugin/GestorInformes_plugin.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$N{H}-9a`IQ+^V$@-B^hlsg;u=$91XIp!!EmXwP|ftZlua}U8#QXLmy)3 zxjVbd!mjhy6?3`g`_4IY?m6e4c^ts^jWU3BukYBjW%YxbK&z5FV@cgGxABA>w|dNI z+#2PH9|CN)s*6&x79G7e(YJ|?J%k@q68Dh@%{_P^Ve?UdsHdmLw7C^kRQ}Yn*XN_| zgl!q7e(tN^`AO8%VJ3{hoUD5zJNCT9Ra@>d5@U+3?)|`X>5%Tvp**T2WA=8%)MDH^ zC%8wmTtDB}Va_*1+#k1%sG%w% z=D$sx1U*owD~DX#+g^nbJ0oO_9@+cMtFw zR}%a$f~bsiDYoK-DR;%4#2g8a7<$!GCXDBEZ=WI1D+^QDd@#Fg-S)o*OGqiyCQVqalL?=rPDS4{;PcTGIrSD`?6OCZ`P{pUf>Ba zRP^#8)5=`89H@qhPx5iteg5dDR1M{(u}cjt4y9T(RBS5MsiCD~pj8bmyYg*nD0_c5 zpvT+|-K>W4YN8>P%lJ!3Ev7t%F7s0iV5%(@J$;=^lXV#0`RR@id>a6NXPf+3f+F9m zarp6_eUp{YQdN{b4Cks&ZSrrV^4c&2Ae60{jnUWS=! zpu67Pv16afEk8&ub&AZC0(kx9&5sp#n3-ea@OR-cvSvjQkLYDK<3&n;zKnzE&&fE5 zh6B6aTLbDeZGKpfiQ+(WJri2&jlm(s_=08mUVeie&7^XU z&d;t{F-3mw;A)pRRiGSGFkZf}u<&ZCU8JJ}C_oVCgA!x06V5>F7akX~<%OLtjL7n& z70)=p!otQ#b}51+5#BlgSRBO~@UKH}Gl&y(q$ zvxs;P=gI%V{kwVc|7*J<9qRG4`~2QG=^%M6@gqbCRx8*AQj}I_$Nt(Q}>sx4K4+D zlAgsl*3CWt+;iFy@7^awQ0aEL``;HYPJB(gktFgoFOHr7=@gJtGI8&crZ&*_8oE^? zQ!M@0My3MNG>~Z&10==Bbbw5INh2e>80lwZCnFLgWsGTi-}-8A5%;{n>@r!{5LTp5`Qkke&Cd3_C;lW5Q@Q5QMw706o8Dtf$5 z{$Ah*ZW@#*ZKOWxaj&O->Y)KC=nCJLsn1pU2BrJqgbS}u0Q@+{y>GVfq1asX6u6)= z=oa_85@#6%!!fG?Tn|cuTT_%m?HITpl+@NWrCb#1Qf>+jPYB(H6r<1>72C#?heFd9 zVbe0uP>cUshiAa;YHb-vNiJv!H`E~}YqN;St-DfX6k4~8prO2FPkPnFdIsaz+W$VT zU13?c?LR99&v{%1E{NS)0mkNVYpoYs>tw^3Hc{yJgD^7!&<1B4+4)A-xkmT-4fC_@ U0=eL4zwx{0>QKu|#R|&*0JDu_zW@LL literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm new file mode 100644 index 00000000..04489040 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm @@ -0,0 +1,114 @@ +object PluginGestorInformes: TPluginGestorInformes + OldCreateOrder = True + Description = 'Informes' + ModuleMenu = MainMenu + ModuleName = 'Gestor de informes' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = LargeImages + Left = 40 + Top = 72 + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001684944415478DA + 63FCFFFF3FC394C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F + 19ACFDF319CEED98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC + 5BBA09D3007CE0D7EFBF609B4178C98683D80D40770136B0AED69461E59623B8 + 0D80391B04FE01E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D + 760CCEE587E03607359F66585A6AC0B069CF49FC06A0DB0CC2207E58FB598685 + 85BA0CDB0E9CC16DC0C15E0706FBE203605B37375A809D0D02209BA3BB2F30CC + C9D566D87DE41C6E0340CE46B7F9E7AF3F6076D2C42B0C53D2D4180E9FBE8C69 + 4046941B8363E94194105F5E6EC810D9791ECC9E99A5C9903EED3A437F920AC3 + 89F357310D480E7386DB08A2435ACF302C2ED687B8049A067266DD62E88A5364 + 387BF906A60171410E280107B3191DB446C9315CBA7E1BD380283F3B147F23DB + FC1BC9E07FFFFE335CB97907D380502F6B86D5DB8E129D13310C0009900A4006 + 00004B6D80F047EC10D30000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000002834944415478DA + BDD6ED4F52511800F087ECDFA8B5D6CB2A8550FC525862BC28B56966F9B2D658 + 5B7373D69ABDACF5A12FADD6875EB6968DD922299C1481888680C0E555485494 + 20B2FADCFAD6565FE53EDD7B0B86099C6BD7F970D9E53CDC7B7EE73907388810 + 11363344C5A023F0916BB0B9FC73559B7970C7DFD7DCFBDC8150B5A5AA24705A + 23159505C7A90CB62A0EFCF7E869A62F9A46C8E568C8D134C8DB2EC382EB6979 + D0EE4F635B5335340C506B3A0B3F549485FEBDDE7DF730182C7E308C38F881EB + 0D1654CBF680FFD70A04F42EF819D181D14691C131DF073C79ACA66C85A5F2C1 + 078D70F44A0022D4E742EE47E81C98EC413268F3A6B05D29E65D19BB4EB91C72 + E7E2B56373E6C93019B47A97F0945252B212BEC156FADDDB031667940738CD80 + AA3F60F114AD37BE79BAC1EA9A21836F3D8BD8A13EC881953E959582BD77F4BA + 14ECD3713268712791F9A20A064D572530E19B25836FDC0B7846535B002BAD65 + 7E40C5D7E4EF310E88C14925C8E06BD73C7636D709AEF0F9A56AF084E7798053 + 0CD8221C1CEADF0FBE68920C9AA7E6B0AB4526784AF57DFB808A2D92C1516702 + BBB5F5822B1CECDD0BA1D9140FF05D023BB532EEA74A08F8F8C26E88CEA5C9E0 + C8E47B660DEB41712D28684A1F9DDF05F164861FD8A1AE03E58DB0A00AEFEB76 + 4262294B064D13716C57D582E666541078EFEC0E486696C9E02B470C5B9BA470 + FC568C57E7ECA086232B85B64EBE9503EFF46C8754F60B3FF044A3A4F49643AF + FEFBD03B985DB3CEF9F6EDAE6D905EFE4A065F8ECFA0F6888488B103EAD37F2A + 39EDEB028DF62836378889187BBE38547EFBE20D0E8F4550231713B172B9E2E0 + 05BEB0855175A886DBCB362288A0C11AC227CFCC1B82E5A322B819F11BFB7D9A + E74CD9D0710000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas new file mode 100644 index 00000000..4c76f8f5 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas @@ -0,0 +1,59 @@ +unit uPluginGestorInformes; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCGestorInformes = interface(IInterface) + ['{D44E1560-BF8F-4DA2-BF64-E0A44C08AC01}'] + end; + + TPluginGestorInformes = class(TModuleController, IMCGestorInformes) + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uGestorInformesController, uGestorInformesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginGestorInformes.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +constructor TPluginGestorInformes.Create(AOwner: TComponent); +begin + inherited; + uGestorInformesViewRegister.RegisterViews; +end; + +destructor TPluginGestorInformes.Destroy; +begin + uGestorInformesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginGestorInformes); + +finalization + UnRegisterModuleClass(TPluginGestorInformes); + +end. diff --git a/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm new file mode 100644 index 00000000..76f3ebcb --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.dfm @@ -0,0 +1,107 @@ +object NewService: TNewService + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ServiceSchema = Schema + ServiceDataStreamer = DABinDataStreamer1 + ExportedDataTables = < + item + DataTable = dtComboDataset + LogicalName = 'ComboDataset' + end + item + DataTable = dtWindowsDir + LogicalName = 'DirectoryData' + end> + BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData + ValidateDatasetAccess = DataAbstractServiceValidateDatasetAccess + Height = 149 + Width = 326 + object Schema: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = <> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = < + item + Name = 'FK_Employees_Employees' + MasterDatasetName = 'Employees' + MasterFields = 'EmployeeID' + DetailDatasetName = 'Employees' + DetailFields = 'ReportsTo' + RelationshipType = rtForeignKey + end> + UpdateRules = <> + Version = 0 + Left = 32 + Top = 56 + end + object dtComboDataset: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'AutoIncField' + DataType = datAutoInc + InPrimaryKey = True + end + item + Name = 'TextField' + DataType = datString + Size = 50 + DisplayWidth = 50 + end> + Params = < + item + Name = 'CustomParameter' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ComboDataset' + IndexDefs = <> + Left = 128 + Top = 56 + end + object dtWindowsDir: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FileName' + DataType = datString + Size = 200 + DisplayWidth = 50 + InPrimaryKey = True + end + item + Name = 'FileSize' + DataType = datInteger + end> + Params = < + item + Name = 'Directory' + DataType = datString + Size = 200 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DirectoryData' + IndexDefs = <> + Left = 216 + Top = 56 + end + object DABinDataStreamer1: TDABinDataStreamer + Left = 128 + Top = 8 + end +end diff --git a/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas new file mode 100644 index 00000000..0586b541 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/NewService_Impl.pas @@ -0,0 +1,179 @@ +unit NewService_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDADataTable, uDAMemDataTable, uDABinAdapter; + + +const + { Dataset names for Schema } + ds_Employees = 'Employees'; + ds_Customers = 'Customers'; + ds_Regions = 'Regions'; + +type + { TNewService } + TNewService = class(TDataAbstractService, INewService) + dtComboDataset: TDAMemDataTable; + dtWindowsDir: TDAMemDataTable; + DABinDataStreamer1: TDABinDataStreamer; + Schema: TDASchema; + procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); + procedure DataAbstractServiceValidateDatasetAccess(Sender: TObject; + const aConnection: IDAConnection; const aDatasetName: string; + const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + private + procedure FillComboDataset(const aDataset: IDAEditableDataset); + procedure FillWinDirDataset(const aDataset: IDAEditableDataset); + protected + { INewService methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_NewService(out anInstance: IUnknown); +begin + anInstance := TNewService.Create(nil); +end; + +procedure TNewService.FillComboDataset(const aDataset: IDAEditableDataset); +var + employees, + customers, + regions: IDADataset; + textfield: TDAField; +begin +{ + with aDataset do begin + // Opens the in memory data table + Open; + textfield := FieldByName('TextField'); + + // Adds 3 dummy records + Insert; + textfield.AsString := 'String A'; + Post; + + Insert; + textfield.AsString := 'String B'; + Post; + + Insert; + textfield.AsString := 'String C'; + Post; + + // Fetches data from other datasets, according to the value of the parameter "CustomParameter" + if (Pos('EMPLOYEES', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + employees := Schema.NewDataset(Connection, ds_Employees, [], [], TRUE); + while not employees.EOF do begin + Insert; + textfield.AsString := employees.FieldByName('FirstName').AsString + ' ' + employees.FieldByName('LastName').AsString; + Post; + + employees.Next; + end; + employees:=nil; + end; + if (Pos('CUSTOMERS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + customers := Schema.NewDataset(Connection, ds_Customers, [], [], TRUE); + while not customers.EOF do begin + Insert; + textfield.AsString := customers.FieldByName('CompanyName').AsString; + Post; + + customers.Next; + end; + customers := nil; + end; + if (Pos('REGIONS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + regions := Schema.NewDataset(Connection, ds_Regions, [], [], TRUE); + while not regions.EOF do begin + Insert; + textfield.AsString := regions.FieldByName('RegionDescription').AsString; + Post; + + regions.Next; + end; + regions := nil; + end; + end; +} +end; + +procedure TNewService.FillWinDirDataset(const aDataset: IDAEditableDataset); +var + dirinfo: TSearchRec; +begin + aDataset.Open; +{ + if (FindFirst(IncludeTrailingPathDelimiter(aDataset.ParamByName('Directory').AsString) + '*.*', faArchive, dirinfo) = 0) then repeat + aDataset.Insert; + + aDataset.FieldByName('FileName').AsString := dirinfo.Name; + aDataset.FieldByName('FileSize').AsInteger := dirinfo.Size; + + aDataset.Post; + until (FindNext(dirinfo) <> 0); +} +end; + +procedure TNewService.DataAbstractServiceBeforeGetDatasetData( + aSender: TObject; const aDataset: IDADataset; + const aIncludeSchema: Boolean; const aMaxRecords: Integer); +begin + if SameText(aDataset.LogicalName, dtComboDataset.LogicalName) then + FillComboDataset((dtComboDataset as IDAEditableDataset)) + else if SameText(aDataset.LogicalName, dtWindowsDir.LogicalName) then + FillWinDirDataset((dtWindowsDir as IDAEditableDataset)); +end; + +procedure TNewService.DataAbstractServiceValidateDatasetAccess( + Sender: TObject; const aConnection: IDAConnection; + const aDatasetName: string; const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + + procedure FillParameters(aDataSet: TDAMemDataTable); + var + i: integer; + begin + for i := Low(aParamNames) to High(aParamNames) do + aDataset.ParamByName(aParamNames[i]).Value := aParamValues[i]; + end; + +begin + if SameText(aDatasetName, dtComboDataset.LogicalName) then + FillParameters(dtComboDataset) + else if SameText(aDatasetName, dtWindowsDir.LogicalName) then + FillParameters(dtWindowsDir) +end; + +initialization + TROClassFactory.Create('NewService', Create_NewService, TNewService_Invoker); + +finalization + +end. + diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dcu new file mode 100644 index 0000000000000000000000000000000000000000..5370956da4d4e705168d42f419d3a2694e74720b GIT binary patch literal 8417 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 Y>Y+@_Y8dYsx=5cKnrq>k@~x@#f77FNE&u=k literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm new file mode 100644 index 00000000..0b32f5d2 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.dfm @@ -0,0 +1,109 @@ +object srvGestorInformes: TsrvGestorInformes + OldCreateOrder = True + SessionManager = dmServer.SessionManager + ServiceSchema = Schema + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = < + item + DataTable = dtComboDataset + LogicalName = 'ComboDataset' + end + item + DataTable = dtWindowsDir + LogicalName = 'DirectoryData' + end> + BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData + ValidateDatasetAccess = DataAbstractServiceValidateDatasetAccess + Height = 162 + Width = 313 + object Schema: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = <> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = < + item + Name = 'FK_Employees_Employees' + MasterDatasetName = 'Employees' + MasterFields = 'EmployeeID' + DetailDatasetName = 'Employees' + DetailFields = 'ReportsTo' + RelationshipType = rtForeignKey + end> + UpdateRules = <> + Version = 0 + Left = 32 + Top = 64 + end + object dtComboDataset: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'AutoIncField' + DataType = datAutoInc + InPrimaryKey = True + end + item + Name = 'TextField' + DataType = datString + Size = 50 + DisplayWidth = 50 + end> + Params = < + item + Name = 'CustomParameter' + DataType = datString + Size = 50 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ComboDataset' + IndexDefs = <> + Left = 128 + Top = 56 + end + object dtWindowsDir: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'FileName' + DataType = datString + Size = 200 + DisplayWidth = 50 + InPrimaryKey = True + end + item + Name = 'FileSize' + DataType = datInteger + end> + Params = < + item + Name = 'Directory' + DataType = datString + Size = 200 + Value = '' + ParamType = daptInput + end> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalDataStreamer = Bin2DataStreamer + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'DirectoryData' + IndexDefs = <> + Left = 216 + Top = 56 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 32 + Top = 8 + end +end diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas new file mode 100644 index 00000000..c519059c --- /dev/null +++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas @@ -0,0 +1,198 @@ +unit srvGestorInformes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces, uDADataTable, uDAMemDataTable, uDABinAdapter; + + +const + { Dataset names for Schema } + ds_Employees = 'Employees'; + ds_Customers = 'Customers'; + ds_Regions = 'Regions'; + +type + { TGestorInformes } + TsrvGestorInformes = class(TDataAbstractService, IsrvGestorInformes) + dtComboDataset: TDAMemDataTable; + dtWindowsDir: TDAMemDataTable; + Schema: TDASchema; + Bin2DataStreamer: TDABin2DataStreamer; + procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); + procedure DataAbstractServiceValidateDatasetAccess(Sender: TObject; + const aConnection: IDAConnection; const aDatasetName: string; + const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + private + procedure FillComboDataset(const aDataset: IDAEditableDataset); + procedure FillWinDirDataset(const aDataset: IDAEditableDataset); + + public + function GetInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, Dialogs, uRptFacturasCliente_Server; + +procedure Create_srvGestorInformes(out anInstance: IUnknown); +begin + anInstance := TsrvGestorInformes.Create(nil); +end; + +procedure TsrvGestorInformes.FillComboDataset(const aDataset: IDAEditableDataset); +var + employees, + customers, + regions: IDADataset; + textfield: TDAField; +begin +{ + with aDataset do begin + // Opens the in memory data table + Open; + textfield := FieldByName('TextField'); + + // Adds 3 dummy records + Insert; + textfield.AsString := 'String A'; + Post; + + Insert; + textfield.AsString := 'String B'; + Post; + + Insert; + textfield.AsString := 'String C'; + Post; + + // Fetches data from other datasets, according to the value of the parameter "CustomParameter" + if (Pos('EMPLOYEES', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + employees := Schema.NewDataset(Connection, ds_Employees, [], [], TRUE); + while not employees.EOF do begin + Insert; + textfield.AsString := employees.FieldByName('FirstName').AsString + ' ' + employees.FieldByName('LastName').AsString; + Post; + + employees.Next; + end; + employees:=nil; + end; + if (Pos('CUSTOMERS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + customers := Schema.NewDataset(Connection, ds_Customers, [], [], TRUE); + while not customers.EOF do begin + Insert; + textfield.AsString := customers.FieldByName('CompanyName').AsString; + Post; + + customers.Next; + end; + customers := nil; + end; + if (Pos('REGIONS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin + regions := Schema.NewDataset(Connection, ds_Regions, [], [], TRUE); + while not regions.EOF do begin + Insert; + textfield.AsString := regions.FieldByName('RegionDescription').AsString; + Post; + + regions.Next; + end; + regions := nil; + end; + end; +} +end; + +procedure TsrvGestorInformes.FillWinDirDataset(const aDataset: IDAEditableDataset); +var + dirinfo: TSearchRec; +begin + aDataset.Open; +{ + if (FindFirst(IncludeTrailingPathDelimiter(aDataset.ParamByName('Directory').AsString) + '*.*', faArchive, dirinfo) = 0) then repeat +} + aDataset.Insert; + + aDataset.FieldByName('FileName').AsString := 'hola'; + aDataset.FieldByName('FileSize').AsInteger := 10; + + aDataset.Post; +{ + until (FindNext(dirinfo) <> 0); +} +end; + +function TsrvGestorInformes.GetInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; +var + AReportGenerator : TRptFacturasCliente; +begin + AReportGenerator := TRptFacturasCliente.Create(nil); + try + Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo); + finally + FreeAndNIL(AReportGenerator); + end; +end; + +procedure TsrvGestorInformes.DataAbstractServiceBeforeGetDatasetData( + aSender: TObject; const aDataset: IDADataset; + const aIncludeSchema: Boolean; const aMaxRecords: Integer); +begin + if SameText(aDataset.LogicalName, dtComboDataset.LogicalName) then + FillComboDataset((dtComboDataset as IDAEditableDataset)) + else if SameText(aDataset.LogicalName, dtWindowsDir.LogicalName) then + FillWinDirDataset((dtWindowsDir as IDAEditableDataset)); +end; + +procedure TsrvGestorInformes.DataAbstractServiceValidateDatasetAccess( + Sender: TObject; const aConnection: IDAConnection; + const aDatasetName: string; const aParamNames: array of string; + const aParamValues: array of Variant; aSchema: TDASchema; + var Allowed: Boolean); + + procedure FillParameters(aDataSet: TDAMemDataTable); + var + i: integer; + begin + for i := Low(aParamNames) to High(aParamNames) do + begin + showmessage(aParamValues[i]); + aDataset.ParamByName(aParamNames[i]).Value := aParamValues[i]; + end; + end; + +begin + if SameText(aDatasetName, dtComboDataset.LogicalName) then + FillParameters(dtComboDataset) + else if SameText(aDatasetName, dtWindowsDir.LogicalName) then + FillParameters(dtWindowsDir) +end; + +initialization + TROClassFactory.Create('srvGestorInformes', Create_srvGestorInformes, TsrvGestorInformes_Invoker); + +finalization + +end. + diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dcu new file mode 100644 index 0000000000000000000000000000000000000000..0dbda05f14ae237c451debe965bac8a8e3ec2bdb GIT binary patch literal 24978 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 + + + {cdba3fdf-b755-404b-b9f9-ebf0ce885115} + GestorInformes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\GestorInformes_view.bpl + + + 7.0 + False + False + 0 + RELEASE + + + 7.0 + ..\..\..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorGestorInformesReport
+ TfEditorElegirFacturasCliente +
+ + +
frViewFiltroClientes
+ TFrame +
+ +
frViewFiltroImportes
+ TFrame +
+ +
frViewPeriodoFechas
+ TFrame +
+ + + + + +
+
+ diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.identcache b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..d7c2b3fb6b37bf75b89c37fdc4380b99265f6b56 GIT binary patch literal 494 zcmb`EF$%&!5Jl5?kDR~**e*s=2pWThY!kBIIIzitnGIgwEQ(;XTc`Qm`@H$9EXyjh zv4$OWoY!cT0=zx(BrWWo-Q-#A4jNc;hn$8hOAobY!d>kYqaYuI%YI}D(Dm5pOnu)m z6@P#bJ1)@PnlJh#g}!w(Ydz)4mso|Uv6M)v`7DSZtI&}K$g<{7Qy5PeeoXNI1W=~8 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 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 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.dfm b/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.dfm new file mode 100644 index 00000000..abbcc771 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.dfm @@ -0,0 +1,200 @@ +inherited fEditorGestorInformesReport: TfEditorGestorInformesReport + Caption = 'fEditorGestorInformesReport' + ClientHeight = 790 + ClientWidth = 895 + ExplicitWidth = 903 + ExplicitHeight = 824 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 895 + ExplicitWidth = 895 + inherited Image1: TImage + Left = 868 + ExplicitLeft = 868 + end + end + inherited TBXDock: TTBXDock + Width = 895 + ExplicitWidth = 895 + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 895 + end + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 591 + object TBXItem58: TTBXItem [0] + Action = actRefrescar + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end + end + inherited StatusBar: TJvStatusBar + Top = 771 + Width = 895 + ExplicitTop = 771 + ExplicitWidth = 895 + end + object dxLayoutControl1: TdxLayoutControl [3] + Left = 0 + Top = 102 + Width = 895 + Height = 275 + Align = alTop + TabOrder = 3 + TabStop = False + inline frViewPeriodoFechas1: TfrViewPeriodoFechas + Left = 10 + Top = 10 + Width = 450 + Height = 75 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False + ExplicitLeft = 10 + ExplicitTop = 10 + ExplicitWidth = 450 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 450 + ExplicitHeight = 75 + inherited dxLayoutControl1: TdxLayoutControl + Width = 795 + Align = alLeft + ExplicitWidth = 795 + ExplicitHeight = 75 + inherited cbPeriodo: TcxComboBox + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIni: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFin: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + end + inline frViewFiltroImportes1: TfrViewFiltroImportes + Left = 466 + Top = 10 + Width = 318 + Height = 70 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 466 + ExplicitTop = 10 + ExplicitHeight = 70 + inherited dxLayoutControl1: TdxLayoutControl + Height = 70 + ExplicitHeight = 70 + inherited eImporte: TcxSpinEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + inline frViewFiltroClientes1: TfrViewFiltroClientes + Left = 10 + Top = 91 + Width = 795 + Height = 170 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 2 + ReadOnly = False + ExplicitLeft = 10 + ExplicitTop = 91 + ExplicitWidth = 795 + ExplicitHeight = 170 + inherited dxLayoutControl1: TdxLayoutControl + Width = 795 + Height = 41 + ExplicitWidth = 795 + ExplicitHeight = 41 + inherited edtlNombre: TcxDBTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 200 + Width = 200 + end + inherited edtNIFCIF: TcxDBTextEdit + Left = 544 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 544 + ExplicitWidth = 100 + Width = 100 + end + end + inherited Panel1: TPanel + Width = 795 + ExplicitWidth = 795 + end + inherited GroupBox1: TGroupBox + Width = 795 + ExplicitWidth = 795 + end + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [aaHorizontal] + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaHorizontal] + Control = frViewPeriodoFechas1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Control = frViewFiltroImportes1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item3: TdxLayoutItem + Control = frViewFiltroClientes1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.pas b/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.pas new file mode 100644 index 00000000..0d29b7fb --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uEditorGestorInformesReport.pas @@ -0,0 +1,134 @@ +unit uEditorGestorInformesReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportText, frxExportRTF, frxExportMail, + frxExportXLS, frxExportImage, frxExportPDF, frxClass, frxDCtrl, frxGradient, + frxChBox, frxCross, frxRich, frxOLE, frxBarcode, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TB2ExtItems, + TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvNavigationPane, uIEditorGestorInformesReport, uCustomView, + uViewBase, uViewPeriodoFechas, uViewDatosYSeleccionClienteBase, + uViewFiltroClientes, dxLayoutControl, cxControls, uViewFiltroImportes, + FactuGES_Intf; + +type + TfEditorGestorInformesReport = class(TfEditorPreview, IEditorGestorInformesReport) + frViewPeriodoFechas1: TfrViewPeriodoFechas; + frViewFiltroClientes1: TfrViewFiltroClientes; + frViewFiltroImportes1: TfrViewFiltroImportes; + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + dxLayoutControl1Item1: TdxLayoutItem; + dxLayoutControl1Item2: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutControl1Group1: TdxLayoutGroup; + TBXItem58: TTBXItem; + procedure actRefrescarExecute(Sender: TObject); + private + FListaIDClientes: TIntegerArray; + function GetFechaFin: TDateTime; + function GetFechaInicio: TDateTime; + function GetListaIDClientes: TIntegerArray; + function GetImporteMinimo: Currency; + function GetDesglosadoCliente: Boolean; + procedure OnClienteChanged(Sender: TObject); + + procedure RefrescarInforme; + + public + property FechaInicio: TDateTime read GetFechaInicio; + property FechaFin: TDateTime read GetFechaFin; + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + property DesglosadoCliente: Boolean read GetDesglosadoCliente; + property ImporteMinimo: Currency read getImporteMinimo; + + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + +implementation + +{$R *.dfm} + +uses uROTypes, uGestorInformesController, uFactuGES_App; + +{ TfEditorGestorInformesReport } + +procedure TfEditorGestorInformesReport.actRefrescarExecute(Sender: TObject); +begin + inherited; + RefrescarInforme; +end; + +constructor TfEditorGestorInformesReport.Create(AOwner: TComponent); +begin + inherited; + FListaIDClientes := TIntegerArray.Create; + frViewFiltroClientes1.OnClienteChanged := OnClienteChanged; +end; + +destructor TfEditorGestorInformesReport.Destroy; +begin + FListaIDClientes.Free; + frViewFiltroClientes1.OnClienteChanged := Nil; + inherited; +end; + +function TfEditorGestorInformesReport.GetDesglosadoCliente: Boolean; +begin + if frViewFiltroClientes1.cbxDesglosado.Enabled then + Result := frViewFiltroClientes1.cbxDesglosado.Checked + else + Result := False; +end; + +function TfEditorGestorInformesReport.GetFechaFin: TDateTime; +begin + Result := frViewPeriodoFechas1.edtFechaFin.Date; +end; + +function TfEditorGestorInformesReport.GetFechaInicio: TDateTime; +begin + Result := frViewPeriodoFechas1.edtFechaIni.Date; +end; + +function TfEditorGestorInformesReport.GetImporteMinimo: Currency; +begin + if frViewFiltroImportes1.eImporte.Enabled then + Result := frViewFiltroImportes1.eImporte.Value + else + Result := 0; +end; + +function TfEditorGestorInformesReport.GetListaIDClientes: TIntegerArray; +begin + Result := FListaIDClientes; +end; + +procedure TfEditorGestorInformesReport.OnClienteChanged(Sender: TObject); +begin + FListaIDClientes.Clear; + if Assigned(frViewFiltroClientes1.Cliente) then + FListaIDClientes.Add(frViewFiltroClientes1.Cliente.ID); +end; + +procedure TfEditorGestorInformesReport.RefrescarInforme; +var + AStream: Binary; +begin + try + AStream := (Controller as IGestorInformesController).DataModule.GetInformeIVAClientes(AppFactuGES.EmpresaActiva.ID, FechaInicio, FechaFin, ListaIDClientes, DesglosadoCliente, ImporteMinimo); + LoadFromStream(AStream); + Report.ShowPreparedReport; + + finally + FreeAndNil(AStream); + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.dcu new file mode 100644 index 0000000000000000000000000000000000000000..64e77c7481abd11a854128f9c9eda6efa49fb663 GIT binary patch literal 915 zcmaJ;OKTHR6h3n^#yH$gE*eWnYV9K}LmY>c5~LtfAFXDkHb$tgcAQ5#Fqy=e2^w7( za1{#DS`k;ieu4|pg-{8u{T)RYx^tuBz3Etu*tr+Zz2}_oJDl^Kae)0BF@UL8=V#WJ zzC8t$ZJsqezwVYCv+mXm@3LjwUNEYb=Ns-5h#zkpjsPeP)hl#LGoZ)IEy}0?m~qc{ zEvNeC$i3&LaMJOt@{V5>XV0mQZX5HKquO?BYq{}J)Av$p$+3I@%}6!pbc=Sg-GSSx z_?GPfRK@=AhZz4_GqNGLe}Dy}QFm!EbLf(}&H7({^49X#>LDcxvTyFhDa|<0JZ-C< z_fJEnSn3Pkc|V@jicwm&Vd?F|Pe?27D8*~VKci#q7*eL@L4e{e8i=g^?gP=qYSO^( z&9N!)>?Lt;A=X{hx9UzvyEeK;dC!m(Jr%G+MiUJC^9&>a zgd~l$lR*&Ne=*Cl_5>=wWS>=dmt)Vto|6vB_-Yq`0)q^VM9mh`LuMklnCezmzf5md zRwgJ@4+?r`B-q2sPH$dWT+};cMW#-7i-kUazutXtl>NAFZ5Xh`$B4*Dm>ax_^C(6L zH<-e*$jNDLEW^nd2?Qga8^Z%=4G#fANJ(5kIsV2vLIrpP8zhZ@UI}<4Wb)MF90C4E iY*@-5M4wdX#Hl066skNX(g>9a^3(#z%o4;bsJ{T;Js2SX literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas new file mode 100644 index 00000000..4e58f07c --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uGestorInformesViewRegister.pas @@ -0,0 +1,23 @@ +unit uGestorInformesViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorGestorInformesReport; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorGestorInformesReport, 'EditorGestorInformesReport'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorGestorInformesReport); +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dcu new file mode 100644 index 0000000000000000000000000000000000000000..19590076eb3742668fc4992865002b22449e009d GIT binary patch literal 6310 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 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm new file mode 100644 index 00000000..e2894886 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.dfm @@ -0,0 +1,167 @@ +inherited frViewFiltroClientes: TfrViewFiltroClientes + Width = 694 + Height = 184 + ExplicitWidth = 694 + ExplicitHeight = 184 + inherited dxLayoutControl1: TdxLayoutControl + Top = 129 + Width = 694 + Height = 55 + ExplicitTop = 129 + ExplicitWidth = 694 + ExplicitHeight = 55 + DesignSize = ( + 694 + 55) + object edtlNombre: TcxDBTextEdit [0] + Left = 56 + Top = 10 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NOMBRE' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Height = 21 + Width = 200 + end + object edtNIFCIF: TcxDBTextEdit [1] + Left = 481 + Top = 10 + Anchors = [akLeft, akTop, akRight] + AutoSize = False + DataBinding.DataField = 'NIF_CIF' + DataBinding.DataSource = dsCliente + Enabled = False + ParentFont = False + Properties.ReadOnly = True + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Height = 21 + Width = 100 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + LayoutDirection = ldHorizontal + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Nombre:' + Control = edtlNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'NIF/CIF:' + Control = edtNIFCIF + ControlOptions.ShowBorder = False + end + end + end + inherited Panel1: TPanel + Top = 94 + Width = 694 + ExplicitTop = 94 + ExplicitWidth = 694 + inherited bElegirCliente: TBitBtn + ExplicitLeft = 4 + ExplicitTop = 4 + end + inherited bNuevoCliente: TBitBtn + ExplicitLeft = 266 + ExplicitTop = 4 + end + inherited bVerFicha: TBitBtn + ExplicitLeft = 121 + ExplicitTop = 4 + end + end + object GroupBox1: TGroupBox [2] + Left = 0 + Top = 0 + Width = 694 + Height = 94 + Margins.Left = 0 + Margins.Top = 0 + Margins.Right = 0 + Margins.Bottom = 0 + Align = alTop + Caption = 'Elija una de las siguientes opciones para generar el listado' + Ctl3D = False + ParentCtl3D = False + TabOrder = 2 + object rd1: TRadioButton + Left = 16 + Top = 24 + Width = 321 + Height = 17 + Caption = 'Listar informe de todos los clientes' + Checked = True + TabOrder = 0 + TabStop = True + OnClick = rd1Click + end + object rd2: TRadioButton + Left = 16 + Top = 56 + Width = 361 + Height = 17 + Caption = 'Listar informe del cliente siguiente' + TabOrder = 1 + OnClick = rd2Click + end + object cbxDesglosado: TCheckBox + Left = 261 + Top = 24 + Width = 282 + Height = 17 + Caption = 'Desglosar por cliente' + TabOrder = 2 + end + end + inherited ActionList1: TActionList + inherited actElegirContacto: TAction + Enabled = False + end + inherited actAnadirContacto: TAction + Enabled = False + Visible = False + end + inherited actVerContacto: TAction + Enabled = False + end + inherited actElegirDireccion: TAction + Enabled = False + end + inherited actElegirPersonaContacto: TAction + Enabled = False + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas new file mode 100644 index 00000000..a9108757 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroClientes.pas @@ -0,0 +1,51 @@ +unit uViewFiltroClientes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDatosYSeleccionClienteBase, ImgList, PngImageList, ActnList, DB, + uDAInterfaces, uDADataTable, StdCtrls, Buttons, ExtCtrls, dxLayoutControl, + cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit; + +type + TfrViewFiltroClientes = class(TfrViewDatosYSeleccionClienteBase) + dxLayoutControl1Item1: TdxLayoutItem; + edtlNombre: TcxDBTextEdit; + dxLayoutControl1Item2: TdxLayoutItem; + edtNIFCIF: TcxDBTextEdit; + GroupBox1: TGroupBox; + rd1: TRadioButton; + rd2: TRadioButton; + cbxDesglosado: TCheckBox; + procedure rd1Click(Sender: TObject); + procedure rd2Click(Sender: TObject); + end; + +implementation +{$R *.dfm} + +procedure TfrViewFiltroClientes.rd1Click(Sender: TObject); +begin + inherited; + if rd1.Checked then + begin + cbxDesglosado.Enabled := True; + actElegirContacto.Enabled := False; + actVerContacto.Enabled := False; + Cliente := Nil; + end; +end; + +procedure TfrViewFiltroClientes.rd2Click(Sender: TObject); +begin + inherited; + if rd2.Checked then + begin + cbxDesglosado.Enabled := False; + actElegirContacto.Enabled := True; + actVerContacto.Enabled := True; + end; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dcu new file mode 100644 index 0000000000000000000000000000000000000000..ade8e34e0d7bc92317e9263ac3c05e293b45ceaa GIT binary patch literal 4974 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 Pj)^8#3po(7e~I)TQm!%d literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm new file mode 100644 index 00000000..9deaa50a --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.dfm @@ -0,0 +1,63 @@ +inherited frViewFiltroImportes: TfrViewFiltroImportes + Width = 318 + Height = 44 + ExplicitWidth = 318 + ExplicitHeight = 44 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 318 + Height = 44 + Align = alClient + TabOrder = 0 + TabStop = False + object CheckBox1: TCheckBox + Left = 10 + Top = 10 + Width = 159 + Height = 17 + Caption = 'Solo facturas que superen:' + Checked = True + State = cbChecked + TabOrder = 0 + OnClick = CheckBox1Click + end + object eImporte: TcxSpinEdit + Left = 175 + Top = 10 + Enabled = False + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.UseDisplayFormatWhenEditing = True + Properties.ValueType = vtFloat + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 121 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item1: TdxLayoutItem + Caption = 'CheckBox1' + ShowCaption = False + Control = CheckBox1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Control = eImporte + ControlOptions.ShowBorder = False + end + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas new file mode 100644 index 00000000..665ab1f4 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewFiltroImportes.pas @@ -0,0 +1,33 @@ +unit uViewFiltroImportes; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxSpinEdit, + dxLayoutControl, StdCtrls, cxControls; + +type + TfrViewFiltroImportes = class(TfrViewBase) + dxLayoutControl1Group_Root: TdxLayoutGroup; + dxLayoutControl1: TdxLayoutControl; + CheckBox1: TCheckBox; + dxLayoutControl1Item1: TdxLayoutItem; + eImporte: TcxSpinEdit; + dxLayoutControl1Item2: TdxLayoutItem; + procedure CheckBox1Click(Sender: TObject); + end; + +implementation +{$R *.dfm} + +procedure TfrViewFiltroImportes.CheckBox1Click(Sender: TObject); +begin + inherited; + if not CheckBox1.Checked then + eImporte.Enabled := True + else + eImporte.Enabled := False; +end; + +end. diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dcu new file mode 100644 index 0000000000000000000000000000000000000000..c167352f54f447962aca1a3203467ea76ca51830 GIT binary patch literal 12638 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 PK#FMsfhA=4OQin>4h~FZ literal 0 HcmV?d00001 diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm new file mode 100644 index 00000000..13fbebd4 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.dfm @@ -0,0 +1,171 @@ +inherited frViewPeriodoFechas: TfrViewPeriodoFechas + Width = 769 + Height = 75 + ExplicitWidth = 769 + ExplicitHeight = 75 + object TBXDockablePanel1: TTBXDockablePanel + Left = 0 + Top = 0 + Align = alClient + Caption = 'TBXDockablePanel1' + FloatingWidth = 128 + FloatingHeight = 128 + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 769 + Height = 75 + Align = alClient + ParentBackground = True + TabOrder = 0 + TabStop = False + LookAndFeel = dxLayoutStandardLookAndFeel1 + DesignSize = ( + 769 + 75) + object cbPeriodo: TcxComboBox + Left = 55 + Top = 37 + RepositoryItem = cxRepositoryPeriodos + Anchors = [akLeft, akTop, akRight] + Properties.OnChange = cbPeriodoPropertiesChange + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 2 + Text = 'Este mes' + Width = 385 + end + object edtFechaIni: TcxDateEdit + Left = 55 + Top = 10 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaIni2PropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 0 + Width = 170 + end + object edtFechaFin: TcxDateEdit + Left = 268 + Top = 10 + Properties.DateButtons = [btnToday] + Properties.PostPopupValueOnTab = True + Properties.SaveTime = False + Properties.ShowTime = False + Properties.OnValidate = edtFechaFinPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 1 + Width = 170 + end + object dxLayoutGroup1: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutGroup2: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Desde:' + Control = edtFechaIni + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Hasta:' + Control = edtFechaFin + ControlOptions.ShowBorder = False + end + end + object dxLayoutItem1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'Periodo:' + Control = cbPeriodo + ControlOptions.ShowBorder = False + end + end + end + end + object cxRepository: TcxEditRepository + Left = 184 + Top = 32 + object cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem + Properties.BeepOnError = True + Properties.DropDownListStyle = lsFixedList + Properties.DropDownRows = 10 + Properties.ImmediatePost = True + Properties.ImmediateUpdateText = True + Properties.Items.Strings = ( + 'Hoy' + 'Ayer' + 'Esta semana' + 'Este mes' + 'Este a'#241'o' + #218'ltimos 7 d'#237'as' + #218'ltimos 30 d'#237'as' + #218'ltimos 3 meses' + 'Mes anterior' + 'A'#241'o anterior' + 'Personalizado') + Properties.PostPopupValueOnTab = True + Properties.ReadOnly = False + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 136 + Top = 16 + object dxLayoutStandardLookAndFeel1: TdxLayoutStandardLookAndFeel + end + end +end diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas new file mode 100644 index 00000000..ca10d796 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas @@ -0,0 +1,206 @@ +unit uViewPeriodoFechas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, + cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, + cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, + Mask, JvExMask, JvToolEdit, TB2Dock; + +type + IViewPeriodoFechas = interface + ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] + end; + + TfrViewPeriodoFechas = class(TfrViewBase, IViewPeriodoFechas) + cxRepository: TcxEditRepository; + cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutStandardLookAndFeel1: TdxLayoutStandardLookAndFeel; + TBXDockablePanel1: TTBXDockablePanel; + dxLayoutControl1: TdxLayoutControl; + cbPeriodo: TcxComboBox; + edtFechaIni: TcxDateEdit; + edtFechaFin: TcxDateEdit; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutGroup2: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutItem1: TdxLayoutItem; + procedure cbPeriodoPropertiesChange(Sender: TObject); + procedure edtFechaIni2PropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure edtFechaFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + private + function GetFechaFinal: TDateTime; + function GetFechaInicial: TDateTime; + procedure SetFechaFinal(const Value: TDateTime); + procedure SetFechaInicial(const Value: TDateTime); + public + procedure Hoy; + procedure Ayer; + procedure EstaSemana; + procedure EsteMes; + procedure EsteAno; + procedure Ultimos7dias; + procedure Ultimos30dias; + procedure Ultimos3meses; + procedure MesAnterior; + procedure AnoAnterior; + procedure Personalizado; + property FechaInicial : TDateTime read GetFechaInicial write SetFechaInicial; + property FechaFinal : TDateTime read GetFechaFinal write SetFechaFinal; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses DateUtils; + +{$R *.dfm} + +procedure TfrViewPeriodoFechas.AnoAnterior; +begin + edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Ayer; +begin + edtFechaIni.Date := Yesterday; + edtFechaFin.Date := Yesterday; +end; + +procedure TfrViewPeriodoFechas.EstaSemana; +begin + edtFechaIni.Date := StartOfTheWeek(Today); + edtFechaFin.Date := EndOfTheWeek(Today); +end; + +procedure TfrViewPeriodoFechas.EsteAno; +begin + edtFechaIni.Date := StartOfTheYear(Today); + edtFechaFin.Date := EndOfTheYear(Today); +end; + +procedure TfrViewPeriodoFechas.EsteMes; +begin + edtFechaIni.Date := StartOfTheMonth(Today); + edtFechaFin.Date := EndOfTheMonth(Today); +end; + +function TfrViewPeriodoFechas.GetFechaFinal: TDateTime; +begin + Result := DateOf(edtFechaFin.Date); +end; + +function TfrViewPeriodoFechas.GetFechaInicial: TDateTime; +begin + Result := DateOf(edtFechaIni.Date); +end; + +procedure TfrViewPeriodoFechas.Hoy; +begin + edtFechaIni.Date := Today; + edtFechaFin.Date := Today; +end; + +procedure TfrViewPeriodoFechas.MesAnterior; +begin + edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Personalizado; +begin + edtFechaIni.SetFocus; +end; + +procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: TDateTime); +begin + edtFechaFin.Date := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: TDateTime); +begin + edtFechaIni.Date := Value; +end; + +procedure TfrViewPeriodoFechas.Ultimos30dias; +begin + edtFechaIni.Date := IncDay(Today, -30); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos3meses; +begin + edtFechaIni.Date := IncMonth(Today, -3); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos7dias; +begin + edtFechaIni.Date := IncDay(Today, -7); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : Hoy; + 1 : Ayer; + 2 : EstaSemana; + 3 : EsteMes; + 4 : EsteAno; + 5 : Ultimos7dias; + 6 : Ultimos30dias; + 7 : Ultimos3meses; + 8 : MesAnterior; + 9 : AnoAnterior; + else + Personalizado; + end; +end; + +constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); +begin + inherited; + cbPeriodo.ItemIndex := 3; + EsteMes; +end; + +procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaIni.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue > edtFechaFin.Date then + begin + edtFechaFin.EditText := DisplayValue; + edtFechaFin.ValidateEdit(True); + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaFin.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue < edtFechaIni.Date then + begin + edtFechaIni.EditText := DisplayValue; + edtFechaIni.ValidateEdit(True); + end; +end; + +end. + diff --git a/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas.bak b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas.bak new file mode 100644 index 00000000..c937783b --- /dev/null +++ b/Source/Modulos/Gestor de informes/Views/uViewPeriodoFechas.pas.bak @@ -0,0 +1,206 @@ +unit uViewPeriodoFechas; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxEdit, cxDropDownEdit, cxCalendar, StdCtrls, + cxControls, cxContainer, cxTextEdit, cxMaskEdit, TBXDkPanels, + cxEditRepositoryItems, dxLayoutControl, dxLayoutLookAndFeels, uViewBase, + Mask, JvExMask, JvToolEdit, uViewInformeBaseParametros, TB2Dock; + +type + IViewPeriodoFechas = interface(IViewInformeBaseParametros) + ['{793084E2-873E-4C57-8BD6-9087816CCF3A}'] + end; + + TfrViewPeriodoFechas = class(TfrViewInformeBaseParametros, IViewPeriodoFechas) + cxRepository: TcxEditRepository; + cxRepositoryPeriodos: TcxEditRepositoryComboBoxItem; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutStandardLookAndFeel1: TdxLayoutStandardLookAndFeel; + TBXDockablePanel1: TTBXDockablePanel; + dxLayoutControl1: TdxLayoutControl; + cbPeriodo: TcxComboBox; + edtFechaIni: TcxDateEdit; + edtFechaFin: TcxDateEdit; + dxLayoutGroup1: TdxLayoutGroup; + dxLayoutGroup2: TdxLayoutGroup; + dxLayoutControl1Item2: TdxLayoutItem; + dxLayoutControl1Item3: TdxLayoutItem; + dxLayoutItem1: TdxLayoutItem; + procedure cbPeriodoPropertiesChange(Sender: TObject); + procedure edtFechaIni2PropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + procedure edtFechaFinPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); + private + function GetFechaFinal: TDateTime; + function GetFechaInicial: TDateTime; + procedure SetFechaFinal(const Value: TDateTime); + procedure SetFechaInicial(const Value: TDateTime); + public + procedure Hoy; + procedure Ayer; + procedure EstaSemana; + procedure EsteMes; + procedure EsteAno; + procedure Ultimos7dias; + procedure Ultimos30dias; + procedure Ultimos3meses; + procedure MesAnterior; + procedure AnoAnterior; + procedure Personalizado; + property FechaInicial : TDateTime read GetFechaInicial write SetFechaInicial; + property FechaFinal : TDateTime read GetFechaFinal write SetFechaFinal; + constructor Create(AOwner: TComponent); override; + end; + +implementation + +uses DateUtils; + +{$R *.dfm} + +procedure TfrViewPeriodoFechas.AnoAnterior; +begin + edtFechaIni.Date := StartOfTheYear(IncYear(Today, -1)); + edtFechaFin.Date := EndOfTheYear(IncYear(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Ayer; +begin + edtFechaIni.Date := Yesterday; + edtFechaFin.Date := Yesterday; +end; + +procedure TfrViewPeriodoFechas.EstaSemana; +begin + edtFechaIni.Date := StartOfTheWeek(Today); + edtFechaFin.Date := EndOfTheWeek(Today); +end; + +procedure TfrViewPeriodoFechas.EsteAno; +begin + edtFechaIni.Date := StartOfTheYear(Today); + edtFechaFin.Date := EndOfTheYear(Today); +end; + +procedure TfrViewPeriodoFechas.EsteMes; +begin + edtFechaIni.Date := StartOfTheMonth(Today); + edtFechaFin.Date := EndOfTheMonth(Today); +end; + +function TfrViewPeriodoFechas.GetFechaFinal: TDateTime; +begin + Result := DateOf(edtFechaFin.Date); +end; + +function TfrViewPeriodoFechas.GetFechaInicial: TDateTime; +begin + Result := DateOf(edtFechaIni.Date); +end; + +procedure TfrViewPeriodoFechas.Hoy; +begin + edtFechaIni.Date := Today; + edtFechaFin.Date := Today; +end; + +procedure TfrViewPeriodoFechas.MesAnterior; +begin + edtFechaIni.Date := StartOfTheMonth(IncMonth(Today, -1)); + edtFechaFin.Date := EndOfTheMonth(IncMonth(Today, -1)); +end; + +procedure TfrViewPeriodoFechas.Personalizado; +begin + edtFechaIni.SetFocus; +end; + +procedure TfrViewPeriodoFechas.SetFechaFinal(const Value: TDateTime); +begin + edtFechaFin.Date := Value; +end; + +procedure TfrViewPeriodoFechas.SetFechaInicial(const Value: TDateTime); +begin + edtFechaIni.Date := Value; +end; + +procedure TfrViewPeriodoFechas.Ultimos30dias; +begin + edtFechaIni.Date := IncDay(Today, -30); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos3meses; +begin + edtFechaIni.Date := IncMonth(Today, -3); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.Ultimos7dias; +begin + edtFechaIni.Date := IncDay(Today, -7); + edtFechaFin.Date := Today +end; + +procedure TfrViewPeriodoFechas.cbPeriodoPropertiesChange(Sender: TObject); +begin + case (Sender as TcxComboBox).ItemIndex of + 0 : Hoy; + 1 : Ayer; + 2 : EstaSemana; + 3 : EsteMes; + 4 : EsteAno; + 5 : Ultimos7dias; + 6 : Ultimos30dias; + 7 : Ultimos3meses; + 8 : MesAnterior; + 9 : AnoAnterior; + else + Personalizado; + end; +end; + +constructor TfrViewPeriodoFechas.Create(AOwner: TComponent); +begin + inherited; + cbPeriodo.ItemIndex := 3; + EsteMes; +end; + +procedure TfrViewPeriodoFechas.edtFechaIni2PropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaIni.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue > edtFechaFin.Date then + begin + edtFechaFin.EditText := DisplayValue; + edtFechaFin.ValidateEdit(True); + end; +end; + +procedure TfrViewPeriodoFechas.edtFechaFinPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if DisplayValue <> edtFechaFin.Date then + cbPeriodo.ItemIndex := 12; + if DisplayValue < edtFechaIni.Date then + begin + edtFechaIni.EditText := DisplayValue; + edtFechaIni.ValidateEdit(True); + end; +end; + +end. +