- #12 -> Enviar documentos por correo electrónico. Adaptación de los módulos (sin terminar)
- En los controladores, cambiar TObservador por TControllerBase - Limpieza de código y warnings. git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@528 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
253cc6e33b
commit
e7e45f1323
@ -9,12 +9,12 @@ const
|
|||||||
{ Data table rules ids
|
{ Data table rules ids
|
||||||
Feel free to change them to something more human readable
|
Feel free to change them to something more human readable
|
||||||
but make sure they are unique in the context of your application }
|
but make sure they are unique in the context of your application }
|
||||||
RID_USUARIOS = '{190ECFD6-8BF8-463A-A069-134DC883028F}';
|
RID_USUARIOS = '{2287F1C0-E6D4-49D4-AB4C-12163784F52F}';
|
||||||
RID_USUARIOS_EVENTOS = '{CA759DA6-3907-41E0-8214-9BC7C8630DE0}';
|
RID_USUARIOS_EVENTOS = '{30A9A653-7C94-4C9E-9826-57923A79A57B}';
|
||||||
RID_USUARIOS_LOGON = '{243F3788-11A9-45F4-B185-AA2D73BE1D71}';
|
RID_USUARIOS_LOGON = '{6663D7AD-00A8-471A-9DD6-0A354F14D25B}';
|
||||||
RID_PERMISOS = '{F3432FFB-2820-4EB5-89C6-0D64DB88682D}';
|
RID_PERMISOS = '{271B422A-6E39-420F-85DE-835F1D690B83}';
|
||||||
RID_PERMISOSEX = '{05E24A98-1A49-4D0F-A11E-49B4B37F7489}';
|
RID_PERMISOSEX = '{603236F6-99D3-4AD9-8B2B-FE07776B6E4F}';
|
||||||
RID_PERFILES = '{6C36D997-1C57-4896-A3CE-4B74F465AC38}';
|
RID_PERFILES = '{59A02969-8C95-4F46-BE34-51B288BCF8C9}';
|
||||||
|
|
||||||
{ Data table names }
|
{ Data table names }
|
||||||
nme_USUARIOS = 'USUARIOS';
|
nme_USUARIOS = 'USUARIOS';
|
||||||
@ -129,7 +129,7 @@ const
|
|||||||
type
|
type
|
||||||
{ IUSUARIOS }
|
{ IUSUARIOS }
|
||||||
IUSUARIOS = interface(IDAStronglyTypedDataTable)
|
IUSUARIOS = interface(IDAStronglyTypedDataTable)
|
||||||
['{4039ABB1-B663-4DFA-8549-14CA71056FD6}']
|
['{2813C411-0CBD-437C-83F3-857491E279DC}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetIDValue: Integer;
|
function GetIDValue: Integer;
|
||||||
procedure SetIDValue(const aValue: Integer);
|
procedure SetIDValue(const aValue: Integer);
|
||||||
@ -296,7 +296,7 @@ type
|
|||||||
|
|
||||||
{ IUSUARIOS_EVENTOS }
|
{ IUSUARIOS_EVENTOS }
|
||||||
IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable)
|
IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable)
|
||||||
['{6E1A8BC6-48E1-4831-A571-4DCF7C3A8DA6}']
|
['{EB6F65EF-39D6-4820-9797-B25FD4C792B3}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetAPLICACIONValue: String;
|
function GetAPLICACIONValue: String;
|
||||||
procedure SetAPLICACIONValue(const aValue: String);
|
procedure SetAPLICACIONValue(const aValue: String);
|
||||||
@ -427,7 +427,7 @@ type
|
|||||||
|
|
||||||
{ IUSUARIOS_LOGON }
|
{ IUSUARIOS_LOGON }
|
||||||
IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable)
|
IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable)
|
||||||
['{9343561D-EEC6-478D-891D-E1BE34EB2FD4}']
|
['{F1859EC8-B46A-4505-A1D0-FC3502A3CCC5}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetLOGONIDValue: String;
|
function GetLOGONIDValue: String;
|
||||||
procedure SetLOGONIDValue(const aValue: String);
|
procedure SetLOGONIDValue(const aValue: String);
|
||||||
@ -510,7 +510,7 @@ type
|
|||||||
|
|
||||||
{ IPERMISOS }
|
{ IPERMISOS }
|
||||||
IPERMISOS = interface(IDAStronglyTypedDataTable)
|
IPERMISOS = interface(IDAStronglyTypedDataTable)
|
||||||
['{BDFA2EDF-FEA0-4089-AD25-8D484E9CC6CA}']
|
['{290DD780-7C7C-4A2E-891E-3A29A6505859}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetID_USUARIOValue: Integer;
|
function GetID_USUARIOValue: Integer;
|
||||||
procedure SetID_USUARIOValue(const aValue: Integer);
|
procedure SetID_USUARIOValue(const aValue: Integer);
|
||||||
@ -581,7 +581,7 @@ type
|
|||||||
|
|
||||||
{ IPERMISOSEX }
|
{ IPERMISOSEX }
|
||||||
IPERMISOSEX = interface(IDAStronglyTypedDataTable)
|
IPERMISOSEX = interface(IDAStronglyTypedDataTable)
|
||||||
['{5CF900FA-631D-4FC6-99AF-F173251A0378}']
|
['{8F86DA9F-7DF3-4B17-84F5-0876E21F625D}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetID_USUARIOValue: Integer;
|
function GetID_USUARIOValue: Integer;
|
||||||
procedure SetID_USUARIOValue(const aValue: Integer);
|
procedure SetID_USUARIOValue(const aValue: Integer);
|
||||||
@ -664,7 +664,7 @@ type
|
|||||||
|
|
||||||
{ IPERFILES }
|
{ IPERFILES }
|
||||||
IPERFILES = interface(IDAStronglyTypedDataTable)
|
IPERFILES = interface(IDAStronglyTypedDataTable)
|
||||||
['{2738B3A7-8644-46C1-AD68-CFA62CE0809E}']
|
['{A7B5EBFD-F995-4F8D-8723-7397501F897D}']
|
||||||
{ Property getters and setters }
|
{ Property getters and setters }
|
||||||
function GetIDValue: Integer;
|
function GetIDValue: Integer;
|
||||||
procedure SetIDValue(const aValue: Integer);
|
procedure SetIDValue(const aValue: Integer);
|
||||||
|
|||||||
@ -53,6 +53,57 @@
|
|||||||
<DelphiCompile Include="Base.dpk">
|
<DelphiCompile Include="Base.dpk">
|
||||||
<MainSource>MainSource</MainSource>
|
<MainSource>MainSource</MainSource>
|
||||||
</DelphiCompile>
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\adortl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxDataD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxEditorsD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxExportD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxExtEditorsD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxGridD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxIntl6D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxIntlPrintSys3D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxLibraryD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\cxPageControlD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\DataAbstract_Core_D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dbrtl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dclIndyCore.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\designide.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dsnap.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dxGDIPlusD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dxPSCoreD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\dxThemeD11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\GUISDK_D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\IndyCore.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\IndyProtocols.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\IndySystem.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\Jcl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JclVcl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JSDialog100.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvCmpD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvCoreD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvCtrlsD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvDlgsD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvMMD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvNetD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvPageCompsD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvStdCtrlsD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\JvSystemD11R.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\pckMD5.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\pckUCDataConnector.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\pckUserControl_RT.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\PngComponentsD10.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\PNG_D10.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\RemObjects_Core_D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\RemObjects_Indy_D11.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\rtl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\TB2k_D10.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\tbx_d10.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\vcl.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\vclactnband.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\vcldb.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\vcljpg.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\VclSmp.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\vclx.dcp" />
|
||||||
|
<DCCReference Include="..\Modulos\Facturas de cliente\xmlrtl.dcp" />
|
||||||
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
|
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
|
||||||
<DCCReference Include="Conexion\uConfigurarConexion.pas">
|
<DCCReference Include="Conexion\uConfigurarConexion.pas">
|
||||||
<Form>fConfigurarConexion</Form>
|
<Form>fConfigurarConexion</Form>
|
||||||
@ -77,56 +128,12 @@
|
|||||||
<Form>dmBase</Form>
|
<Form>dmBase</Form>
|
||||||
<DesignClass>TDataModule</DesignClass>
|
<DesignClass>TDataModule</DesignClass>
|
||||||
</DCCReference>
|
</DCCReference>
|
||||||
<DCCReference Include="Utiles\adortl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
|
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
|
||||||
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
|
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
|
||||||
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
|
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
|
||||||
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
|
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
|
||||||
<DCCReference Include="Utiles\ClipboardUtils.pas" />
|
<DCCReference Include="Utiles\ClipboardUtils.pas" />
|
||||||
<DCCReference Include="Utiles\Ctltortf.pas" />
|
<DCCReference Include="Utiles\Ctltortf.pas" />
|
||||||
<DCCReference Include="Utiles\cxDataD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxEditorsD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxExportD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxExtEditorsD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxGridD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxIntl6D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxIntlPrintSys3D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxLibraryD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\cxPageControlD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\DataAbstract_Core_D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dbrtl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dclIndyCore.dcp" />
|
|
||||||
<DCCReference Include="Utiles\designide.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dsnap.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dxGDIPlusD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dxPSCoreD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\dxThemeD11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\GUISDK_D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\IndyCore.dcp" />
|
|
||||||
<DCCReference Include="Utiles\IndyProtocols.dcp" />
|
|
||||||
<DCCReference Include="Utiles\IndySystem.dcp" />
|
|
||||||
<DCCReference Include="Utiles\Jcl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JclVcl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JSDialog100.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvCmpD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvCoreD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvCtrlsD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvDlgsD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvMMD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvNetD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvPageCompsD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvStdCtrlsD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\JvSystemD11R.dcp" />
|
|
||||||
<DCCReference Include="Utiles\pckMD5.dcp" />
|
|
||||||
<DCCReference Include="Utiles\pckUCDataConnector.dcp" />
|
|
||||||
<DCCReference Include="Utiles\pckUserControl_RT.dcp" />
|
|
||||||
<DCCReference Include="Utiles\PngComponentsD10.dcp" />
|
|
||||||
<DCCReference Include="Utiles\PNG_D10.dcp" />
|
|
||||||
<DCCReference Include="Utiles\RemObjects_Core_D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\RemObjects_Indy_D11.dcp" />
|
|
||||||
<DCCReference Include="Utiles\rtl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\TB2k_D10.dcp" />
|
|
||||||
<DCCReference Include="Utiles\tbx_d10.dcp" />
|
|
||||||
<DCCReference Include="Utiles\uAppInfoUtils.pas" />
|
<DCCReference Include="Utiles\uAppInfoUtils.pas" />
|
||||||
<DCCReference Include="Utiles\uCalculosUtils.pas" />
|
<DCCReference Include="Utiles\uCalculosUtils.pas" />
|
||||||
<DCCReference Include="Utiles\uDataTableUtils.pas" />
|
<DCCReference Include="Utiles\uDataTableUtils.pas" />
|
||||||
@ -145,13 +152,6 @@
|
|||||||
<DCCReference Include="Utiles\uRTFUtils.pas" />
|
<DCCReference Include="Utiles\uRTFUtils.pas" />
|
||||||
<DCCReference Include="Utiles\uSistemaFunc.pas" />
|
<DCCReference Include="Utiles\uSistemaFunc.pas" />
|
||||||
<DCCReference Include="Utiles\uStringsUtils.pas" />
|
<DCCReference Include="Utiles\uStringsUtils.pas" />
|
||||||
<DCCReference Include="Utiles\vcl.dcp" />
|
|
||||||
<DCCReference Include="Utiles\vclactnband.dcp" />
|
|
||||||
<DCCReference Include="Utiles\vcldb.dcp" />
|
|
||||||
<DCCReference Include="Utiles\vcljpg.dcp" />
|
|
||||||
<DCCReference Include="Utiles\VclSmp.dcp" />
|
|
||||||
<DCCReference Include="Utiles\vclx.dcp" />
|
|
||||||
<DCCReference Include="Utiles\xmlrtl.dcp" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
<!-- EurekaLog First Line
|
<!-- EurekaLog First Line
|
||||||
|
|||||||
Binary file not shown.
@ -3,7 +3,7 @@ unit uIntegerListUtils;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes;
|
Classes, FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TIntegerList = class(TList)
|
TIntegerList = class(TList)
|
||||||
@ -14,6 +14,7 @@ type
|
|||||||
procedure Add(Value: integer); reintroduce;
|
procedure Add(Value: integer); reintroduce;
|
||||||
function Find(Value: integer; var Index: Integer): Boolean;
|
function Find(Value: integer; var Index: Integer): Boolean;
|
||||||
property Integers[index: integer]: integer read GetInteger write SetInteger; default;
|
property Integers[index: integer]: integer read GetInteger write SetInteger; default;
|
||||||
|
function ToIntegerArray : TIntegerArray;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -28,6 +29,15 @@ begin
|
|||||||
Items[index] := Pointer(Value);
|
Items[index] := Pointer(Value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TIntegerList.ToIntegerArray: TIntegerArray;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
Result := TIntegerArray.Create;
|
||||||
|
for i := 0 to Count - 1 do
|
||||||
|
Result.Add(Integers[i]);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TIntegerList.Add(Value: integer);
|
procedure TIntegerList.Add(Value: integer);
|
||||||
var
|
var
|
||||||
Index: integer;
|
Index: integer;
|
||||||
|
|||||||
@ -157,7 +157,6 @@ function DarFicheroPDFTemporal(const AFileName : String) : String;
|
|||||||
var
|
var
|
||||||
Cadena : String;
|
Cadena : String;
|
||||||
RutaTmp : string;
|
RutaTmp : string;
|
||||||
Buf: array [0..MAX_PATH] of Char;
|
|
||||||
begin
|
begin
|
||||||
if not EsCadenaVacia(AFileName) then
|
if not EsCadenaVacia(AFileName) then
|
||||||
begin
|
begin
|
||||||
|
|||||||
@ -12,21 +12,22 @@ inherited fDialogElegirEMail: TfDialogElegirEMail
|
|||||||
inherited pnlBotones: TFlowPanel
|
inherited pnlBotones: TFlowPanel
|
||||||
Top = 164
|
Top = 164
|
||||||
Width = 533
|
Width = 533
|
||||||
|
ExplicitTop = 164
|
||||||
|
ExplicitWidth = 533
|
||||||
inherited Button1: TButton
|
inherited Button1: TButton
|
||||||
Left = 437
|
Left = 437
|
||||||
TabOrder = 1
|
|
||||||
ExplicitLeft = 437
|
ExplicitLeft = 437
|
||||||
end
|
end
|
||||||
inherited Button2: TButton
|
inherited Button2: TButton
|
||||||
Left = 347
|
Left = 347
|
||||||
TabOrder = 0
|
|
||||||
ExplicitLeft = 347
|
ExplicitLeft = 347
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
inherited FlowPanel1: TFlowPanel
|
inherited FlowPanel1: TFlowPanel
|
||||||
Width = 533
|
Width = 533
|
||||||
Height = 164
|
Height = 164
|
||||||
ExplicitTop = -6
|
ExplicitWidth = 533
|
||||||
|
ExplicitHeight = 164
|
||||||
inherited lblInstruccion: TLabel
|
inherited lblInstruccion: TLabel
|
||||||
Width = 411
|
Width = 411
|
||||||
Caption = 'Indique la direcci'#243'n de correo electr'#243'nico del destinatario:'
|
Caption = 'Indique la direcci'#243'n de correo electr'#243'nico del destinatario:'
|
||||||
|
|||||||
@ -110,7 +110,7 @@ procedure TfDialogElegirEMail.FormCloseQuery(Sender: TObject;
|
|||||||
var CanClose: Boolean);
|
var CanClose: Boolean);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
if rbEdit.Checked and EsCadenaVacia(edtEMail.Text) then
|
if (ModalResult = mrOk) and rbEdit.Checked and EsCadenaVacia(edtEMail.Text) then
|
||||||
begin
|
begin
|
||||||
ShowErrorMessage('Elegir dirección de correo electrónico', 'Debe indicar una dirección de correo electrónico.');
|
ShowErrorMessage('Elegir dirección de correo electrónico', 'Debe indicar una dirección de correo electrónico.');
|
||||||
edtEMail.SetFocus;
|
edtEMail.SetFocus;
|
||||||
@ -131,8 +131,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfDialogElegirEMail.FormShow(Sender: TObject);
|
procedure TfDialogElegirEMail.FormShow(Sender: TObject);
|
||||||
var
|
|
||||||
I: Integer;
|
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
cbEMail.Items.Clear;
|
cbEMail.Items.Clear;
|
||||||
|
|||||||
@ -11,7 +11,8 @@ uses
|
|||||||
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
|
pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport,
|
||||||
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
|
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode,
|
||||||
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
|
ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar,
|
||||||
frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase;
|
frxExportMail, frxExportXLS, frxExportText, frxExportRTF, uControllerBase,
|
||||||
|
uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IEditorPreview = interface(IEditorBase)
|
IEditorPreview = interface(IEditorBase)
|
||||||
@ -33,9 +34,9 @@ type
|
|||||||
property Controller : IControllerBase read GetController
|
property Controller : IControllerBase read GetController
|
||||||
write SetController;
|
write SetController;
|
||||||
|
|
||||||
function GetListaID : String;
|
function GetListaID : TIntegerList;
|
||||||
procedure SetListaID (const Value : String);
|
procedure SetListaID (const Value : TIntegerList);
|
||||||
property ListaID : String read GetListaID
|
property ListaID : TIntegerList read GetListaID
|
||||||
write SetListaID;
|
write SetListaID;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -144,7 +145,7 @@ type
|
|||||||
FPreview : TfrViewPreview;
|
FPreview : TfrViewPreview;
|
||||||
FTitle : TCaption;
|
FTitle : TCaption;
|
||||||
FController : IControllerBase;
|
FController : IControllerBase;
|
||||||
FListaID : String;
|
FListaID : TIntegerList;
|
||||||
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
|
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
|
||||||
procedure UpdateZoom;
|
procedure UpdateZoom;
|
||||||
protected
|
protected
|
||||||
@ -154,11 +155,11 @@ type
|
|||||||
procedure PonerTitulos(const ATitulo: String = ''); override;
|
procedure PonerTitulos(const ATitulo: String = ''); override;
|
||||||
function GetController : IControllerBase;
|
function GetController : IControllerBase;
|
||||||
procedure SetController (const Value : IControllerBase);
|
procedure SetController (const Value : IControllerBase);
|
||||||
procedure SetListaID (const Value : String);
|
procedure SetListaID (const Value : TIntegerList);
|
||||||
function GetListaID : String;
|
function GetListaID : TIntegerList;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
property ListaID : String read GetListaID
|
property ListaID : TIntegerList read GetListaID
|
||||||
write SetListaID;
|
write SetListaID;
|
||||||
property Controller : IControllerBase read GetController
|
property Controller : IControllerBase read GetController
|
||||||
write SetController;
|
write SetController;
|
||||||
@ -186,7 +187,7 @@ begin
|
|||||||
Result := FController;
|
Result := FController;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TfEditorPreview.GetListaID: String;
|
function TfEditorPreview.GetListaID: TIntegerList;
|
||||||
begin
|
begin
|
||||||
Result := FListaID;
|
Result := FListaID;
|
||||||
end;
|
end;
|
||||||
@ -454,7 +455,7 @@ begin
|
|||||||
FController := Value;
|
FController := Value;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorPreview.SetListaID(const Value: String);
|
procedure TfEditorPreview.SetListaID(const Value: TIntegerList);
|
||||||
begin
|
begin
|
||||||
FListaID := Value;
|
FListaID := Value;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
uDetallesAlbaranClienteController, uBizAlbaranesCliente, uBizDireccionesContacto;
|
uDetallesAlbaranClienteController, uBizAlbaranesCliente, uBizDireccionesContacto;
|
||||||
|
|
||||||
type
|
type
|
||||||
IAlbaranesClienteController = interface(IObservador)
|
IAlbaranesClienteController = interface(IControllerBase)
|
||||||
['{E83F4950-400E-446B-8EB0-1609FF8FEA77}']
|
['{E83F4950-400E-446B-8EB0-1609FF8FEA77}']
|
||||||
function GetClienteController: IClientesController;
|
function GetClienteController: IClientesController;
|
||||||
procedure SetClienteController(const Value: IClientesController);
|
procedure SetClienteController(const Value: IClientesController);
|
||||||
@ -61,7 +61,7 @@ type
|
|||||||
DoPost: Boolean = True) : Boolean;
|
DoPost: Boolean = True) : Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TAlbaranesClienteController = class(TObservador, IAlbaranesClienteController)
|
TAlbaranesClienteController = class(TControllerBase, IAlbaranesClienteController)
|
||||||
protected
|
protected
|
||||||
FDataModule : IDataModuleAlbaranesCliente;
|
FDataModule : IDataModuleAlbaranesCliente;
|
||||||
FClienteController : IClientesController;
|
FClienteController : IClientesController;
|
||||||
@ -152,7 +152,7 @@ uses
|
|||||||
// Pedidos no estará en TECSITEL
|
// Pedidos no estará en TECSITEL
|
||||||
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
|
// uPedidosClienteController, uBizPedidosCliente, uBizDetallesPedidoCliente, schPedidosClienteClient_Intf,
|
||||||
|
|
||||||
uDialogUtils, Windows, Forms, Dialogs, uGUIBase;
|
uDialogUtils, Windows, Forms, Dialogs, uGUIBase, uIntegerListUtils;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -933,11 +933,11 @@ end;
|
|||||||
procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
|
procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IAlbaranesClienteReportController;
|
AReportController : IAlbaranesClienteReportController;
|
||||||
ID_Albaranes: TStringList;
|
ID_Albaranes: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TAlbaranesClienteReportController.Create;
|
AReportController := TAlbaranesClienteReportController.Create;
|
||||||
ID_Albaranes := TStringList.Create;
|
ID_Albaranes := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
||||||
@ -949,32 +949,31 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
|
ID_Albaranes.Add(AAlbaran.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
|
ID_Albaranes.Add(AAlbaran.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Albaranes.CommaText);
|
AReportController.Preview(ID_Albaranes);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Albaranes.Free;
|
FreeANDNIL(ID_Albaranes);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
|
procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IAlbaranesClienteReportController;
|
AReportController : IAlbaranesClienteReportController;
|
||||||
ID_Albaranes: TStringList;
|
ID_Albaranes: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TAlbaranesClienteReportController.Create;
|
AReportController := TAlbaranesClienteReportController.Create;
|
||||||
ID_Albaranes := TStringList.Create;
|
ID_Albaranes := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
@ -984,20 +983,20 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
|
ID_Albaranes.Add(AAlbaran.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Albaranes.Add(IntToStr(AAlbaran.ID));
|
ID_Albaranes.Add(AAlbaran.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Albaranes.CommaText);
|
AReportController.Print(ID_Albaranes);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Albaranes.Free;
|
FreeANDNIL(ID_Albaranes);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -5,13 +5,13 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesClienteReport,
|
||||||
uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController,
|
uClientesController, uAlbaranesClienteController, uDetallesAlbaranClienteController,
|
||||||
uBizAlbaranesCliente;
|
uBizAlbaranesCliente, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IAlbaranesClienteReportController = interface(IControllerBase)
|
IAlbaranesClienteReportController = interface(IControllerBase)
|
||||||
['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}']
|
['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}']
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
|
procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean);
|
||||||
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
|
procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
@ -26,8 +26,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean);
|
procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean);
|
||||||
procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean);
|
procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean);
|
||||||
@ -140,7 +140,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAlbaranesClienteReportController.Preview(const AListaID : String);
|
procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorAlbaranesClientePreview;
|
AEditor : IEditorAlbaranesClientePreview;
|
||||||
@ -148,19 +148,21 @@ begin
|
|||||||
AEditor := NIL;
|
AEditor := NIL;
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AListaID); //Lista de seleccionados (Array de integers)
|
AStream := FDataModule.GetRptAlbaranes(AListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
|
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
begin
|
||||||
begin
|
try
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
AEditor.ListaID := AListaID;
|
||||||
Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
LoadFromStream(AStream);
|
AEditor.LoadFromStream(AStream);
|
||||||
Preview;
|
AEditor.Preview;
|
||||||
Release;
|
finally
|
||||||
|
AEditor.Release;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
AEditor := Nil;
|
AEditor := Nil;
|
||||||
@ -170,7 +172,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAlbaranesClienteReportController.Print(const AListaID : String);
|
procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorAlbaranesClientePreview;
|
AEditor : IEditorAlbaranesClientePreview;
|
||||||
@ -178,18 +180,21 @@ begin
|
|||||||
AEditor := NIL;
|
AEditor := NIL;
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AListaID);
|
AStream := FDataModule.GetRptAlbaranes(AListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
|
CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
begin
|
||||||
begin
|
try
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
AEditor.ListaID := AListaID;
|
||||||
LoadFromStream(AStream);
|
AEditor.Title := 'Albarán - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
Print;
|
AEditor.LoadFromStream(AStream);
|
||||||
Release;
|
AEditor.Print;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
AEditor := Nil;
|
AEditor := Nil;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
|
|
||||||
uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente,
|
uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente,
|
||||||
uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable,
|
uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable,
|
||||||
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter;
|
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModuleAlbaranesCliente = class(TDataModuleBase, IDataModuleAlbaranesCliente, IDataModuleAlbaranesClienteReport)
|
TDataModuleAlbaranesCliente = class(TDataModuleBase, IDataModuleAlbaranesCliente, IDataModuleAlbaranesClienteReport)
|
||||||
@ -34,9 +34,10 @@ type
|
|||||||
function NewItem : IBizAlbaranCliente;
|
function NewItem : IBizAlbaranCliente;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetReport(const AID: String): Binary;
|
function GetRptAlbaranes(const ListaID: TIntegerList): Binary;
|
||||||
function GetRptWordAlbaran(const AID: Integer): Binary;
|
function GetRptWordAlbaran(const AID: Integer): Binary;
|
||||||
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
||||||
|
function GetRptPDFAlbaran(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -60,15 +61,36 @@ begin
|
|||||||
RORemoteService.Message := dmConexion.Message;
|
RORemoteService.Message := dmConexion.Message;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleAlbaranesCliente.GetReport(const AID: String): Binary;
|
function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(AID);
|
AParam := ListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
|
||||||
|
finally
|
||||||
|
FreeAndNil(AParam);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TDataModuleAlbaranesCliente.GetRptPDFAlbaran(
|
||||||
|
const AID: Integer): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
|
begin
|
||||||
|
AParam := TIntegerArray.Create;
|
||||||
|
try
|
||||||
|
AParam.Add(AID);
|
||||||
|
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam);
|
||||||
|
finally
|
||||||
|
FreeAndNil(AParam);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleAlbaranesCliente.GetRptWordAlbaran(
|
function TDataModuleAlbaranesCliente.GetRptWordAlbaran(
|
||||||
const AID: Integer): Binary;
|
const AID: Integer): Binary;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReportEnWord(AID)
|
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEnWord(AID)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente;
|
function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente;
|
||||||
@ -96,7 +118,7 @@ end;
|
|||||||
|
|
||||||
function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvAlbaranesCliente).GenerateEtiquetas(AID, withRefCliente)
|
Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInformeEtiquetas(AID, withRefCliente)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente;
|
function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente;
|
||||||
|
|||||||
@ -3,13 +3,14 @@ unit uIDataModuleAlbaranesClienteReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uROTypes;
|
uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModuleAlbaranesClienteReport = interface
|
IDataModuleAlbaranesClienteReport = interface
|
||||||
['{42C55204-5AB9-403E-8385-1A62B02D8234}']
|
['{42C55204-5AB9-403E-8385-1A62B02D8234}']
|
||||||
function GetReport(const AID: String): Binary;
|
function GetRptAlbaranes(const AListaID: TIntegerList): Binary;
|
||||||
function GetRptWordAlbaran(const AID: Integer): Binary;
|
function GetRptWordAlbaran(const AID: Integer): Binary;
|
||||||
|
function GetRptPDFAlbaran(const AID: Integer): Binary;
|
||||||
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
object RptAlbaranesCliente: TRptAlbaranesCliente
|
object RptAlbaranesCliente: TRptAlbaranesCliente
|
||||||
OldCreateOrder = True
|
OldCreateOrder = True
|
||||||
OnCreate = DataModuleCreate
|
OnCreate = DataModuleCreate
|
||||||
Height = 490
|
Height = 471
|
||||||
Width = 447
|
Width = 448
|
||||||
object DADSCabecera: TDADataSource
|
object DADSCabecera: TDADataSource
|
||||||
DataSet = tbl_Cabecera.Dataset
|
DataSet = tbl_Cabecera.Dataset
|
||||||
DataTable = tbl_Cabecera
|
DataTable = tbl_Cabecera
|
||||||
@ -1131,4 +1131,18 @@ object RptAlbaranesCliente: TRptAlbaranesCliente
|
|||||||
Left = 344
|
Left = 344
|
||||||
Top = 128
|
Top = 128
|
||||||
end
|
end
|
||||||
|
object frxPDFExport1: TfrxPDFExport
|
||||||
|
ShowDialog = False
|
||||||
|
UseFileCache = True
|
||||||
|
ShowProgress = False
|
||||||
|
PrintOptimized = True
|
||||||
|
Outline = False
|
||||||
|
Author = 'FactuGES'
|
||||||
|
Subject = 'FactuGES'
|
||||||
|
Background = False
|
||||||
|
Creator = 'FactuGES'
|
||||||
|
HTMLTags = True
|
||||||
|
Left = 344
|
||||||
|
Top = 304
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -8,7 +8,7 @@ uses
|
|||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
||||||
uDAMemDataTable;
|
uDAMemDataTable, frxExportPDF, FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptAlbaranesCliente = class(TDataModule)
|
TRptAlbaranesCliente = class(TDataModule)
|
||||||
@ -61,14 +61,16 @@ type
|
|||||||
tbl_Detalles: TDAMemDataTable;
|
tbl_Detalles: TDAMemDataTable;
|
||||||
schReport: TDASchema;
|
schReport: TDASchema;
|
||||||
DataDictionary: TDADataDictionary;
|
DataDictionary: TDADataDictionary;
|
||||||
|
frxPDFExport1: TfrxPDFExport;
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
//Genera cada uno de los albaranes a imprimir
|
//Genera cada uno de los albaranes a imprimir
|
||||||
procedure GenerarAlbaran(const AID: integer); overload;
|
procedure _GenerarAlbaran(const AID: Integer);
|
||||||
public
|
public
|
||||||
function GenerarAlbaran(const AID : String): Binary; overload;
|
function GenerarAlbaran(const AListaID : TIntegerArray): Binary;
|
||||||
function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary;
|
function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary;
|
||||||
|
function GenerarAlbaranEnPDF(const ListaID : TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -98,30 +100,44 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptAlbaranesCliente.GenerarAlbaran(const AID: String): Binary;
|
function TRptAlbaranesCliente.GenerarAlbaran(const AListaID : TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Albaranes: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
try
|
try
|
||||||
ID_Albaranes := TStringList.Create;
|
|
||||||
ID_Albaranes.CommaText := AID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada uno de los albaranes recibidos
|
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||||
for i := 0 to ID_Albaranes.Count - 1 do
|
for i := 0 to AListaID.Count - 1 do
|
||||||
GenerarAlbaran(StrToInt(ID_Albaranes.Strings[i]));
|
_GenerarAlbaran(AListaID.Items[i]);
|
||||||
|
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRptAlbaranesCliente.GenerarAlbaran(const AID: integer);
|
function TRptAlbaranesCliente.GenerarAlbaranEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := Binary.Create;
|
||||||
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
|
try
|
||||||
|
//Vamos generando todos y cada uno de los presupuestos recibidos
|
||||||
|
for i := 0 to ListaID.Count - 1 do
|
||||||
|
_GenerarAlbaran(ListaID.Items[i]);
|
||||||
|
|
||||||
|
frxPDFExport1.Stream := Result;
|
||||||
|
frxReport.Export(frxPDFExport1)
|
||||||
|
finally
|
||||||
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRptAlbaranesCliente._GenerarAlbaran(const AID: Integer);
|
||||||
var
|
var
|
||||||
AStream: TMemoryStream;
|
AStream: TMemoryStream;
|
||||||
dsMaster: IDADataset;
|
dsMaster: IDADataset;
|
||||||
|
|||||||
@ -30,12 +30,12 @@ type
|
|||||||
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string);
|
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string);
|
||||||
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer);
|
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer);
|
||||||
procedure DARemoteServiceCreate(Sender: TObject);
|
procedure DARemoteServiceCreate(Sender: TObject);
|
||||||
private
|
|
||||||
protected
|
protected
|
||||||
{ IsrvAlbaranesCliente methods }
|
{ IsrvAlbaranesCliente methods }
|
||||||
function GenerateReport(const ID: String): Binary;
|
function GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
|
function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
|
||||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
function GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
|
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -78,7 +78,20 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvAlbaranesCliente.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
|
function TsrvAlbaranesCliente.GenerarInformeEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
AReportGenerator : TRptAlbaranesCliente;
|
||||||
|
begin
|
||||||
|
AReportGenerator := TRptAlbaranesCliente.Create(nil);
|
||||||
|
try
|
||||||
|
Result := AReportGenerator.GenerarAlbaranEnPDF(ListaID);
|
||||||
|
finally
|
||||||
|
FreeAndNIL(AReportGenerator);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TsrvAlbaranesCliente.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
|
||||||
//var
|
//var
|
||||||
// AReportGenerator : TRptAlbaranesCliente;
|
// AReportGenerator : TRptAlbaranesCliente;
|
||||||
begin
|
begin
|
||||||
@ -92,19 +105,19 @@ begin
|
|||||||
}
|
}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvAlbaranesCliente.GenerateReport(const ID: String): Binary;
|
function TsrvAlbaranesCliente.GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptAlbaranesCliente;
|
AReportGenerator : TRptAlbaranesCliente;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptAlbaranesCliente.Create(nil);
|
AReportGenerator := TRptAlbaranesCliente.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarAlbaran(ID);
|
Result := AReportGenerator.GenerarAlbaran(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvAlbaranesCliente.GenerateReportEnWord(const ID: Integer): Binary;
|
function TsrvAlbaranesCliente.GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptWordAlbaranCliente;
|
AReportGenerator : TRptWordAlbaranCliente;
|
||||||
AFicheroTMP : TFileName;
|
AFicheroTMP : TFileName;
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
inherited fEditorAlbaranesClientePreview: TfEditorAlbaranesClientePreview
|
inherited fEditorAlbaranesClientePreview: TfEditorAlbaranesClientePreview
|
||||||
Caption = 'Previsualizar el albar'#225'n de cliente'
|
Caption = 'Previsualizar el albar'#225'n de cliente'
|
||||||
|
ExplicitWidth = 320
|
||||||
|
ExplicitHeight = 240
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
inherited TBXDock: TTBXDock
|
inherited TBXDock: TTBXDock
|
||||||
|
|||||||
@ -31,21 +31,14 @@ uses
|
|||||||
procedure TfEditorAlbaranesClientePreview.actExportarRTFExecute(
|
procedure TfEditorAlbaranesClientePreview.actExportarRTFExecute(
|
||||||
Sender: TObject);
|
Sender: TObject);
|
||||||
var
|
var
|
||||||
AListaID : TStringList;
|
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
// inherited; <- No llamar al padre
|
// inherited; <- No llamar al padre
|
||||||
if not Assigned(Controller) then
|
if not Assigned(Controller) then
|
||||||
raise Exception.Create('No se ha asignado el controlador necesario');
|
raise Exception.Create('No se ha asignado el controlador necesario');
|
||||||
|
|
||||||
AListaID := TStringList.Create;
|
for I := 0 to ListaID.Count - 1 do
|
||||||
try
|
(Controller as IAlbaranesClienteReportController).ExportToWord(ListaID[I]);
|
||||||
AListaID.CommaText := Self.ListaID;
|
|
||||||
for I := 0 to AListaID.Count - 1 do
|
|
||||||
(Controller as IAlbaranesClienteReportController).ExportToWord(StrToInt(AListaID[I]));
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AListaID);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -10,7 +10,7 @@ uses
|
|||||||
uBizDireccionesContacto, uBizInventario;
|
uBizDireccionesContacto, uBizInventario;
|
||||||
|
|
||||||
type
|
type
|
||||||
IAlbaranesProveedorController = interface(IObservador)
|
IAlbaranesProveedorController = interface(IControllerBase)
|
||||||
['{E2FA2312-EDBD-4E80-B3D7-A8784F6A4E39}']
|
['{E2FA2312-EDBD-4E80-B3D7-A8784F6A4E39}']
|
||||||
function GetProveedorController: IProveedoresController;
|
function GetProveedorController: IProveedoresController;
|
||||||
procedure SetProveedorController(const Value: IProveedoresController);
|
procedure SetProveedorController(const Value: IProveedoresController);
|
||||||
@ -56,7 +56,7 @@ type
|
|||||||
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TAlbaranesProveedorController = class(TObservador, IAlbaranesProveedorController)
|
TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController)
|
||||||
protected
|
protected
|
||||||
FDataModule : IDataModuleAlbaranesProveedor;
|
FDataModule : IDataModuleAlbaranesProveedor;
|
||||||
FProveedorController : IProveedoresController;
|
FProveedorController : IProveedoresController;
|
||||||
|
|||||||
@ -31,9 +31,6 @@ type
|
|||||||
procedure DARemoteServiceCreate(Sender: TObject);
|
procedure DARemoteServiceCreate(Sender: TObject);
|
||||||
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
||||||
var aConnectionName: string);
|
var aConnectionName: string);
|
||||||
protected
|
|
||||||
{ IsrvAlbaranesProveedor methods }
|
|
||||||
function GenerateReport(const ID: String): Binary;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -78,19 +75,6 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvAlbaranesProveedor.GenerateReport(const ID: String): Binary;
|
|
||||||
//var
|
|
||||||
// AReportGenerator : TRptAlbaranesProveedor;
|
|
||||||
begin
|
|
||||||
{ AReportGenerator := TRptAlbaranesProveedor.Create(nil);
|
|
||||||
try
|
|
||||||
Result := AReportGenerator.GenerarAlbaran(ID);
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AReportGenerator);
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
end;
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
TROClassFactory.Create('srvAlbaranesProveedor', Create_srvAlbaranesProveedor, TsrvAlbaranesProveedor_Invoker);
|
TROClassFactory.Create('srvAlbaranesProveedor', Create_srvAlbaranesProveedor, TsrvAlbaranesProveedor_Invoker);
|
||||||
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@ uses
|
|||||||
Forms, Classes, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils,
|
Forms, Classes, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils,
|
||||||
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController,
|
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController,
|
||||||
uIEditorElegirClientes, uIEditorElegirDireccionEntrega, uEditorGridBase,
|
uIEditorElegirClientes, uIEditorElegirDireccionEntrega, uEditorGridBase,
|
||||||
Dialogs;
|
Dialogs, uIntegerListUtils;
|
||||||
|
|
||||||
{ TClientesController }
|
{ TClientesController }
|
||||||
|
|
||||||
@ -220,10 +220,10 @@ end;
|
|||||||
procedure TClientesController.Preview(ACliente: IBizCliente; AllItems: Boolean);
|
procedure TClientesController.Preview(ACliente: IBizCliente; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IEtiquetasContactosReportController;
|
AReportController : IEtiquetasContactosReportController;
|
||||||
ListaID: TStringList;
|
ListaID: TIntegerList;
|
||||||
begin
|
begin
|
||||||
AReportController := TEtiquetasContactosReportController.Create;
|
AReportController := TEtiquetasContactosReportController.Create;
|
||||||
ListaID := TStringList.Create;
|
ListaID := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -234,31 +234,30 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ListaID.Add(IntToStr(ACliente.ID));
|
ListaID.Add(ACliente.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ListaID.Add(IntToStr(ACliente.ID));
|
ListaID.Add(ACliente.ID);
|
||||||
|
|
||||||
AReportController.Preview(ListaID.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ListaID);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ListaID.Free;
|
FreeANDNIL(ListaID);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TClientesController.Print(ACliente: IBizCliente; AllItems: Boolean);
|
procedure TClientesController.Print(ACliente: IBizCliente; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IEtiquetasContactosReportController;
|
AReportController : IEtiquetasContactosReportController;
|
||||||
ListaID: TStringList;
|
ListaID: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TEtiquetasContactosReportController.Create;
|
AReportController := TEtiquetasContactosReportController.Create;
|
||||||
ListaID := TStringList.Create;
|
ListaID := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -269,20 +268,20 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ListaID.Add(IntToStr(ACliente.ID));
|
ListaID.Add(ACliente.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ListaID.Add(IntToStr(ACliente.ID));
|
ListaID.Add(ACliente.ID);
|
||||||
|
|
||||||
AReportController.Print(ListaID.CommaText);
|
AReportController.Print(ListaID);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ListaID.Free;
|
FreeANDNil(ListaID);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@ implementation
|
|||||||
uses
|
uses
|
||||||
Windows, SysUtils, cxControls, Dialogs, uDataModuleEmpleados, uEditorRegistryUtils,
|
Windows, SysUtils, cxControls, Dialogs, uDataModuleEmpleados, uEditorRegistryUtils,
|
||||||
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uFichasEmpleadoReportController,
|
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uFichasEmpleadoReportController,
|
||||||
uEditorGridBase;
|
uEditorGridBase, uIntegerListUtils;
|
||||||
|
|
||||||
{ TEmpleadoController }
|
{ TEmpleadoController }
|
||||||
|
|
||||||
@ -186,13 +186,11 @@ end;
|
|||||||
procedure TEmpleadosController.Preview(AEmpleado: IBizEmpleado; AllItems: Boolean);
|
procedure TEmpleadosController.Preview(AEmpleado: IBizEmpleado; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IFichasEmpleadoReportController;
|
AReportController : IFichasEmpleadoReportController;
|
||||||
ID_Fichas: TStringList;
|
ID_Fichas: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TFichasEmpleadoReportController.Create;
|
AReportController := TFichasEmpleadoReportController.Create;
|
||||||
ID_Fichas := TStringList.Create;
|
ID_Fichas := TIntegerList.Create;
|
||||||
try
|
try
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
begin
|
begin
|
||||||
@ -201,31 +199,30 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Fichas.Add(IntToStr(AEmpleado.ID));
|
ID_Fichas.Add(AEmpleado.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Fichas.Add(IntToStr(AEmpleado.ID));
|
ID_Fichas.Add(AEmpleado.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Fichas.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ID_Fichas);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Fichas.Free;
|
FreeANDNil(ID_Fichas);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEmpleadosController.Print(AEmpleado: IBizEmpleado; AllItems: Boolean);
|
procedure TEmpleadosController.Print(AEmpleado: IBizEmpleado; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IFichasEmpleadoReportController;
|
AReportController : IFichasEmpleadoReportController;
|
||||||
ID_Fichas: TStringList;
|
ID_Fichas: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TFichasEmpleadoReportController.Create;
|
AReportController := TFichasEmpleadoReportController.Create;
|
||||||
ID_Fichas := TStringList.Create;
|
ID_Fichas := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -236,20 +233,19 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Fichas.Add(IntToStr(AEmpleado.ID));
|
ID_Fichas.Add(AEmpleado.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Fichas.Add(IntToStr(AEmpleado.ID));
|
ID_Fichas.Add(AEmpleado.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Fichas.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Print(ID_Fichas);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Fichas.Free;
|
FreeANDNIL(ID_Fichas);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -4,13 +4,13 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleEtiquetasContactosReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleEtiquetasContactosReport,
|
||||||
uEmpleadosController;
|
uEmpleadosController, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IEtiquetasContactosReportController = interface(IControllerBase)
|
IEtiquetasContactosReportController = interface(IControllerBase)
|
||||||
['{76BB35E3-554E-4D30-8D3E-54E488EF82E2}']
|
['{76BB35E3-554E-4D30-8D3E-54E488EF82E2}']
|
||||||
procedure Preview(const AContactosID : String);
|
procedure Preview(const ListaID : TIntegerList);
|
||||||
procedure Print(const AContactosID : String);
|
procedure Print(const ListaID : TIntegerList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TEtiquetasContactosReportController = class(TControllerBase, IEtiquetasContactosReportController)
|
TEtiquetasContactosReportController = class(TControllerBase, IEtiquetasContactosReportController)
|
||||||
@ -21,8 +21,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AContactosID : String);
|
procedure Preview(const ListaID : TIntegerList);
|
||||||
procedure Print(const AContactosID : String);
|
procedure Print(const ListaID : TIntegerList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEtiquetasContactosReportController.Preview(const AContactosID : String);
|
procedure TEtiquetasContactosReportController.Preview(const ListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorEtiquetasContactosPreview;
|
AEditor : IEditorEtiquetasContactosPreview;
|
||||||
@ -59,15 +59,19 @@ begin
|
|||||||
AEditor := NIL;
|
AEditor := NIL;
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AContactosID);
|
AStream := FDataModule.GetReport(ListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor);
|
CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
LoadFromStream(AStream);
|
try
|
||||||
Preview;
|
AEditor.Controller := Self;
|
||||||
Release;
|
AEditor.ListaID := ListaID;
|
||||||
|
AEditor.LoadFromStream(AStream);
|
||||||
|
AEditor.Preview;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
@ -78,7 +82,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEtiquetasContactosReportController.Print(const AContactosID : String);
|
procedure TEtiquetasContactosReportController.Print(const ListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorEtiquetasContactosPreview;
|
AEditor : IEditorEtiquetasContactosPreview;
|
||||||
@ -86,15 +90,19 @@ begin
|
|||||||
AEditor := NIL;
|
AEditor := NIL;
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AContactosID);
|
AStream := FDataModule.GetReport(ListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor);
|
CreateEditor('EditorEtiquetasContactosPreview', IEditorEtiquetasContactosPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
LoadFromStream(AStream);
|
try
|
||||||
Print;
|
AEditor.Controller := Self;
|
||||||
Release;
|
AEditor.ListaID := ListaID;
|
||||||
|
AEditor.LoadFromStream(AStream);
|
||||||
|
AEditor.Print;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
|
|||||||
@ -4,13 +4,13 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFichasEmpleadoReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFichasEmpleadoReport,
|
||||||
uEmpleadosController;
|
uEmpleadosController, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IFichasEmpleadoReportController = interface(IControllerBase)
|
IFichasEmpleadoReportController = interface(IControllerBase)
|
||||||
['{8E43F55F-7D5A-4778-8523-7C105EAEB1AB}']
|
['{8E43F55F-7D5A-4778-8523-7C105EAEB1AB}']
|
||||||
procedure Preview(const AFichaID : String);
|
procedure Preview(const ListaID : TIntegerList);
|
||||||
procedure Print(const AFichaID : String);
|
procedure Print(const ListaID : TIntegerList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TFichasEmpleadoReportController = class(TControllerBase, IFichasEmpleadoReportController)
|
TFichasEmpleadoReportController = class(TControllerBase, IFichasEmpleadoReportController)
|
||||||
@ -21,8 +21,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AFichaID : String);
|
procedure Preview(const ListaID : TIntegerList);
|
||||||
procedure Print(const AFichaID : String);
|
procedure Print(const ListaID : TIntegerList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFichasEmpleadoReportController.Preview(const AFichaID : String);
|
procedure TFichasEmpleadoReportController.Preview(const ListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorFichasEmpleadoPreview;
|
AEditor : IEditorFichasEmpleadoPreview;
|
||||||
@ -59,15 +59,19 @@ begin
|
|||||||
AEditor := NIL;
|
AEditor := NIL;
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AFichaID);
|
AStream := FDataModule.GetReport(ListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor);
|
CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
LoadFromStream(AStream);
|
try
|
||||||
Preview;
|
AEditor.Controller := Self;
|
||||||
Release;
|
AEditor.ListaID := ListaID;
|
||||||
|
AEditor.LoadFromStream(AStream);
|
||||||
|
AEditor.Preview;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
@ -78,7 +82,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFichasEmpleadoReportController.Print(const AFichaID : String);
|
procedure TFichasEmpleadoReportController.Print(const ListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorFichasEmpleadoPreview;
|
AEditor : IEditorFichasEmpleadoPreview;
|
||||||
@ -87,15 +91,19 @@ begin
|
|||||||
|
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
AStream := FDataModule.GetReport(AFichaID);
|
AStream := FDataModule.GetReport(ListaID);
|
||||||
try
|
try
|
||||||
CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor);
|
CreateEditor('EditorFichasEmpleadoPreview', IEditorFichasEmpleadoPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
LoadFromStream(AStream);
|
try
|
||||||
Print;
|
AEditor.Controller := Self;
|
||||||
Release;
|
AEditor.ListaID := ListaID;
|
||||||
|
AEditor.LoadFromStream(AStream);
|
||||||
|
AEditor.Print;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
|
|||||||
@ -51,7 +51,7 @@ uses
|
|||||||
SysUtils, cxControls, Dialogs, uDataModuleProveedores, uEditorRegistryUtils,
|
SysUtils, cxControls, Dialogs, uDataModuleProveedores, uEditorRegistryUtils,
|
||||||
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController,
|
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController,
|
||||||
uIEditorElegirProveedores, Controls, uIEditorElegirDireccionEntrega,
|
uIEditorElegirProveedores, Controls, uIEditorElegirDireccionEntrega,
|
||||||
uEditorGridBase, uDAInterfaces;
|
uEditorGridBase, uDAInterfaces, uIntegerListUtils;
|
||||||
|
|
||||||
{ TProveedoresController }
|
{ TProveedoresController }
|
||||||
|
|
||||||
@ -232,11 +232,11 @@ end;
|
|||||||
procedure TProveedoresController.Preview(AProveedor: IBizProveedor; AllItems: Boolean);
|
procedure TProveedoresController.Preview(AProveedor: IBizProveedor; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IEtiquetasContactosReportController;
|
AReportController : IEtiquetasContactosReportController;
|
||||||
ListaID: TStringList;
|
ListaID: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TEtiquetasContactosReportController.Create;
|
AReportController := TEtiquetasContactosReportController.Create;
|
||||||
ListaID := TStringList.Create;
|
ListaID := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -247,34 +247,32 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ListaID.Add(IntToStr(AProveedor.ID));
|
ListaID.Add(AProveedor.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ListaID.Add(IntToStr(AProveedor.ID));
|
ListaID.Add(AProveedor.ID);
|
||||||
|
|
||||||
AReportController.Preview(ListaID.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ListaID);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ListaID.Free;
|
FreeANDNil(ListaID);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProveedoresController.Print(AProveedor: IBizProveedor; AllItems: Boolean);
|
procedure TProveedoresController.Print(AProveedor: IBizProveedor; AllItems: Boolean);
|
||||||
var
|
var
|
||||||
AReportController : IEtiquetasContactosReportController;
|
AReportController : IEtiquetasContactosReportController;
|
||||||
ListaID: TStringList;
|
ListaID: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TEtiquetasContactosReportController.Create;
|
AReportController := TEtiquetasContactosReportController.Create;
|
||||||
ListaID := TStringList.Create;
|
ListaID := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
begin
|
begin
|
||||||
@ -283,20 +281,20 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ListaID.Add(IntToStr(AProveedor.ID));
|
ListaID.Add(AProveedor.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ListaID.Add(IntToStr(AProveedor.ID));
|
ListaID.Add(AProveedor.ID);
|
||||||
|
|
||||||
AReportController.Print(ListaID.CommaText);
|
AReportController.Print(ListaID);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ListaID.Free;
|
FreeANDNil(ListaID);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,8 @@ uses
|
|||||||
uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport,
|
uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport,
|
||||||
uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest,
|
uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest,
|
||||||
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
|
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
|
||||||
uDAMemDataTable, uDataModuleBase, uBizContactosPersonal;
|
uDAMemDataTable, uDataModuleBase, uBizContactosPersonal,
|
||||||
|
uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleEtiquetasContactosReport)
|
TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleEtiquetasContactosReport)
|
||||||
@ -35,7 +36,7 @@ type
|
|||||||
function _GetPersonal: IBizContactoPersonal;
|
function _GetPersonal: IBizContactoPersonal;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetReport(const AContactosID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -59,9 +60,16 @@ begin
|
|||||||
//
|
//
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleContactos.GetReport(const AContactosID: String): Binary;
|
function TDataModuleContactos.GetReport(const ListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvContactos).GenerateEtiquetasReport(AContactosID);
|
AParam := ListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvContactos).GenerarInformeEtiquetas(AParam);
|
||||||
|
finally
|
||||||
|
FreeANDNIL(AParam);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios;
|
function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes,
|
uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes,
|
||||||
uIDataModuleEmpleados, uBizContactos, uDADesigntimeCall, uIDataModuleFichasEmpleadoReport,
|
uIDataModuleEmpleados, uBizContactos, uDADesigntimeCall, uIDataModuleFichasEmpleadoReport,
|
||||||
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
||||||
uDARemoteDataAdapter;
|
uDARemoteDataAdapter, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModuleEmpleados = class(TDataModuleContactos, IDataModuleEmpleados, IDataModuleFichasEmpleadoReport)
|
TDataModuleEmpleados = class(TDataModuleContactos, IDataModuleEmpleados, IDataModuleFichasEmpleadoReport)
|
||||||
@ -27,7 +27,7 @@ type
|
|||||||
function DarListaContratosEmpleado : TStringList;
|
function DarListaContratosEmpleado : TStringList;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetReport(const AFichaID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -105,9 +105,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleEmpleados.GetReport(const AFichaID: String): Binary;
|
function TDataModuleEmpleados.GetReport(const ListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvContactos).GenerateFichaEmpleadoReport(AFichaID);
|
AParam := ListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvContactos).GenerarInformeFichaEmpleado(AParam)
|
||||||
|
finally
|
||||||
|
FreeANDNil(AParam);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleEmpleados.NewItem: IBizEmpleado;
|
function TDataModuleEmpleados.NewItem: IBizEmpleado;
|
||||||
|
|||||||
@ -3,12 +3,12 @@ unit uIDataModuleEtiquetasContactosReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Classes, uROTypes;
|
SysUtils, Classes, uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModuleEtiquetasContactosReport = interface
|
IDataModuleEtiquetasContactosReport = interface
|
||||||
['{26E68DED-5BD9-4227-B07F-9644BED7AE7B}']
|
['{26E68DED-5BD9-4227-B07F-9644BED7AE7B}']
|
||||||
function GetReport(const AClientesID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|||||||
@ -3,12 +3,12 @@ unit uIDataModuleFichasEmpleadoReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Classes, uROTypes;
|
SysUtils, Classes, uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModuleFichasEmpleadoReport = interface
|
IDataModuleFichasEmpleadoReport = interface
|
||||||
['{45EEB949-2AC0-459F-88B0-235444B005E4}']
|
['{45EEB949-2AC0-459F-88B0-235444B005E4}']
|
||||||
function GetReport(const AFichaID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|||||||
@ -7,7 +7,8 @@ uses
|
|||||||
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable;
|
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable,
|
||||||
|
FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptEtiquetasContacto = class(TDataModule)
|
TRptEtiquetasContacto = class(TDataModule)
|
||||||
@ -29,7 +30,7 @@ type
|
|||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
public
|
public
|
||||||
function GenerarInforme(const AID : String): Binary; overload;
|
function GenerarInforme(const ListaID: TIntegerArray): Binary; overload;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -56,10 +57,12 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptEtiquetasContacto.GenerarInforme(const AID: String): Binary;
|
function TRptEtiquetasContacto.GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AStream: TMemoryStream;
|
AStream: TMemoryStream;
|
||||||
dsMaster: IDADataset;
|
dsMaster: IDADataset;
|
||||||
|
i : Integer;
|
||||||
|
AWhereStr : String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
@ -69,7 +72,17 @@ begin
|
|||||||
AStream := TMemoryStream.Create;
|
AStream := TMemoryStream.Create;
|
||||||
try
|
try
|
||||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeContactos, [], [], False); //, ['ID'], ['611, 751']); //AID]);
|
dsMaster := schReport.NewDataset(FConnection, ds_InformeContactos, [], [], False); //, ['ID'], ['611, 751']); //AID]);
|
||||||
dsMaster.Where.AddText(fld_ContactosID + ' in (' + AID + ')');
|
AWhereStr := fld_ContactosID + ' in (';
|
||||||
|
for i := 0 to ListaID.Count - 1 do
|
||||||
|
begin
|
||||||
|
if i > 0 then
|
||||||
|
AWhereStr := AWhereStr + ', ';
|
||||||
|
AWhereStr := AWhereStr + IntToStr(ListaID.Items[i]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
AWhereStr := AWhereStr + ')';
|
||||||
|
dsMaster.Where.AddText(AWhereStr);
|
||||||
|
|
||||||
dsMaster.Open;
|
dsMaster.Open;
|
||||||
|
|
||||||
AStream.Clear;
|
AStream.Clear;
|
||||||
|
|||||||
@ -7,7 +7,8 @@ uses
|
|||||||
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable;
|
uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable,
|
||||||
|
FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptFichasEmpleado = class(TDataModule)
|
TRptFichasEmpleado = class(TDataModule)
|
||||||
@ -29,9 +30,9 @@ type
|
|||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
//Genera cada uno de los albaranes a imprimir
|
//Genera cada uno de los albaranes a imprimir
|
||||||
procedure GenerarFicha(const ID: integer); overload;
|
procedure _GenerarFicha(const ID: Integer);
|
||||||
public
|
public
|
||||||
function GenerarFicha(const AFichaID : String): Binary; overload;
|
function GenerarFicha(const ListaID: TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -58,31 +59,25 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptFichasEmpleado.GenerarFicha(const AFichaID: String): Binary;
|
function TRptFichasEmpleado.GenerarFicha(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Fichas: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
FConnection.BeginTransaction;
|
|
||||||
|
|
||||||
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
try
|
try
|
||||||
ID_Fichas := TStringList.Create;
|
|
||||||
ID_Fichas.CommaText := AFichaID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada uno de las fichas de empleado
|
//Vamos generando todos y cada uno de las fichas de empleado
|
||||||
for i := 0 to ID_Fichas.Count - 1 do
|
for i := 0 to ListaID.Count - 1 do
|
||||||
GenerarFicha(StrToInt(ID_Fichas.Strings[i]));
|
_GenerarFicha(ListaID.Items[i]);
|
||||||
|
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
FConnection.RollbackTransaction;
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRptFichasEmpleado.GenerarFicha(const ID: integer);
|
procedure TRptFichasEmpleado._GenerarFicha(const ID: Integer);
|
||||||
var
|
var
|
||||||
AStream: TMemoryStream;
|
AStream: TMemoryStream;
|
||||||
dsMaster: IDADataset;
|
dsMaster: IDADataset;
|
||||||
|
|||||||
@ -40,8 +40,8 @@ type
|
|||||||
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
||||||
var aConnectionName: string);
|
var aConnectionName: string);
|
||||||
public
|
public
|
||||||
function GenerateFichaEmpleadoReport(const EmpleadoID: String): Binary;
|
function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerateEtiquetasReport(const ContactosID: String): Binary;
|
function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
|
||||||
function DarListaContratosEmpleados: String;
|
function DarListaContratosEmpleados: String;
|
||||||
function DarListaDescripcionesProveedores: String;
|
function DarListaDescripcionesProveedores: String;
|
||||||
end;
|
end;
|
||||||
@ -137,25 +137,25 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvContactos.GenerateEtiquetasReport(const ContactosID: String): Binary;
|
function TsrvContactos.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptEtiquetasContacto;
|
AReportGenerator : TRptEtiquetasContacto;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptEtiquetasContacto.Create(nil);
|
AReportGenerator := TRptEtiquetasContacto.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarInforme(ContactosID);
|
Result := AReportGenerator.GenerarInforme(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvContactos.GenerateFichaEmpleadoReport(const EmpleadoID: String): Binary;
|
function TsrvContactos.GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptFichasEmpleado;
|
AReportGenerator : TRptFichasEmpleado;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptFichasEmpleado.Create(nil);
|
AReportGenerator := TRptFichasEmpleado.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarFicha(EmpleadoID);
|
Result := AReportGenerator.GenerarFicha(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -8,9 +8,6 @@ uses
|
|||||||
type
|
type
|
||||||
IEditorFacturasClientePreview = interface(IEditorPreview)
|
IEditorFacturasClientePreview = interface(IEditorPreview)
|
||||||
['{0B893ED1-261A-4358-814E-18D7FD768E14}']
|
['{0B893ED1-261A-4358-814E-18D7FD768E14}']
|
||||||
{ function PreviewGetController : IFacturasClienteReportController;
|
|
||||||
procedure PreviewSetController (const Value : IFacturasClienteReportController);
|
|
||||||
property PreviewController : IFacturasClienteReportController read PreviewGetController write PreviewSetController;}
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
uBizFacturasCliente;
|
uBizFacturasCliente;
|
||||||
|
|
||||||
type
|
type
|
||||||
IFacturasClienteController = interface(IObservador)
|
IFacturasClienteController = interface(IControllerBase)
|
||||||
['{CAD20B4E-6D0B-4A1C-9306-B195824B6CAD}']
|
['{CAD20B4E-6D0B-4A1C-9306-B195824B6CAD}']
|
||||||
function GetClienteController: IClientesController;
|
function GetClienteController: IClientesController;
|
||||||
procedure SetClienteController(const Value: IClientesController);
|
procedure SetClienteController(const Value: IClientesController);
|
||||||
@ -50,7 +50,7 @@ type
|
|||||||
function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TFacturasClienteController = class(TObservador, IFacturasClienteController)
|
TFacturasClienteController = class(TControllerBase, IFacturasClienteController)
|
||||||
private
|
private
|
||||||
FDataModule : IDataModuleFacturasCliente;
|
FDataModule : IDataModuleFacturasCliente;
|
||||||
FClienteController : IClientesController;
|
FClienteController : IClientesController;
|
||||||
@ -118,7 +118,7 @@ uses
|
|||||||
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
|
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
|
||||||
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
||||||
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
||||||
uRecibosClienteController, uBizRecibosCliente;
|
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils;
|
||||||
|
|
||||||
|
|
||||||
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
|
{procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente;
|
||||||
@ -518,8 +518,6 @@ end;
|
|||||||
|
|
||||||
function TFacturasClienteController.ValidarFactura(AFactura: IBizFacturaCliente): Boolean;
|
function TFacturasClienteController.ValidarFactura(AFactura: IBizFacturaCliente): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
|
||||||
|
|
||||||
if not Assigned(AFactura) then
|
if not Assigned(AFactura) then
|
||||||
raise Exception.Create ('Factura no asignada');
|
raise Exception.Create ('Factura no asignada');
|
||||||
|
|
||||||
@ -895,11 +893,11 @@ end;
|
|||||||
procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false);
|
procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IFacturasClienteReportController;
|
AReportController : IFacturasClienteReportController;
|
||||||
ID_Facturas: TStringList;
|
ID_Facturas: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TFacturasClienteReportController.Create;
|
AReportController := TFacturasClienteReportController.Create;
|
||||||
ID_Facturas := TStringList.Create;
|
ID_Facturas := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -910,31 +908,31 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Facturas.Add(IntToStr(AFactura.ID));
|
ID_Facturas.Add(AFactura.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Facturas.Add(IntToStr(AFactura.ID));
|
ID_Facturas.Add(AFactura.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Facturas.CommaText);
|
AReportController.Preview(ID_Facturas);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Facturas.Free;
|
FreeANDNIL(ID_Facturas);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false);
|
procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IFacturasClienteReportController;
|
AReportController : IFacturasClienteReportController;
|
||||||
ID_Facturas: TStringList;
|
ID_Facturas: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TFacturasClienteReportController.Create;
|
AReportController := TFacturasClienteReportController.Create;
|
||||||
ID_Facturas := TStringList.Create;
|
ID_Facturas := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -945,20 +943,20 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Facturas.Add(IntToStr(AFactura.ID));
|
ID_Facturas.Add(AFactura.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Facturas.Add(IntToStr(AFactura.ID));
|
ID_Facturas.Add(AFactura.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Facturas.CommaText);
|
AReportController.Print(ID_Facturas);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Facturas.Free;
|
FreeANDNIL(ID_Facturas);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -5,13 +5,13 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasClienteReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleFacturasClienteReport,
|
||||||
uClientesController, uDetallesFacturaClienteController,
|
uClientesController, uDetallesFacturaClienteController,
|
||||||
uBizFacturasCliente;
|
uBizFacturasCliente, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IFacturasClienteReportController = interface(IControllerBase)
|
IFacturasClienteReportController = interface(IControllerBase)
|
||||||
['{A0F41767-4FF6-4BAE-9FC9-894DD721D756}']
|
['{A0F41767-4FF6-4BAE-9FC9-894DD721D756}']
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -24,8 +24,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFacturasClienteReportController.Preview(const AListaID : String);
|
procedure TFacturasClienteReportController.Preview(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorFacturasClientePreview;
|
AEditor : IEditorFacturasClientePreview;
|
||||||
@ -98,7 +98,6 @@ begin
|
|||||||
with AEditor do
|
with AEditor do
|
||||||
begin
|
begin
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
|
||||||
LoadFromStream(AStream);
|
LoadFromStream(AStream);
|
||||||
Preview;
|
Preview;
|
||||||
Release;
|
Release;
|
||||||
@ -112,7 +111,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFacturasClienteReportController.Print(const AListaID : String);
|
procedure TFacturasClienteReportController.Print(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorFacturasClientePreview;
|
AEditor : IEditorFacturasClientePreview;
|
||||||
@ -127,7 +126,6 @@ begin
|
|||||||
with AEditor do
|
with AEditor do
|
||||||
begin
|
begin
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
|
||||||
LoadFromStream(AStream);
|
LoadFromStream(AStream);
|
||||||
Print;
|
Print;
|
||||||
Release;
|
Release;
|
||||||
|
|||||||
@ -10,7 +10,7 @@ uses
|
|||||||
uIDataModuleFacturasCliente, uBizFacturasCliente, uBizDetallesFacturaCliente,
|
uIDataModuleFacturasCliente, uBizFacturasCliente, uBizDetallesFacturaCliente,
|
||||||
uDADesigntimeCall, uIDataModuleFacturasClienteReport, uDataModuleBase,
|
uDADesigntimeCall, uIDataModuleFacturasClienteReport, uDataModuleBase,
|
||||||
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
||||||
uDARemoteDataAdapter;
|
uDARemoteDataAdapter, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModuleFacturasCliente = class(TDataModuleBase, IDataModuleFacturasCliente, IDataModuleFacturasClienteReport)
|
TDataModuleFacturasCliente = class(TDataModuleBase, IDataModuleFacturasCliente, IDataModuleFacturasClienteReport)
|
||||||
@ -30,8 +30,9 @@ type
|
|||||||
function NewItem : IBizFacturaCliente;
|
function NewItem : IBizFacturaCliente;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetRptFacturas(const AListaID: String): Binary;
|
function GetRptFacturas(const AListaID: TIntegerList): Binary;
|
||||||
function GetRptWordFactura(const AID: Integer): Binary;
|
function GetRptWordFactura(const AID: Integer): Binary;
|
||||||
|
function GetRptPDFFactura(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -51,15 +52,36 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleFacturasCliente.GetRptFacturas(
|
function TDataModuleFacturasCliente.GetRptFacturas(
|
||||||
const AListaID: String): Binary;
|
const AListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvFacturasCliente).GenerateReport(AListaID)
|
AParam := AListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvFacturasCliente).GenerarInforme(AParam);
|
||||||
|
finally
|
||||||
|
FreeANDNIL(AParam);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TDataModuleFacturasCliente.GetRptPDFFactura(
|
||||||
|
const AID: Integer): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
|
begin
|
||||||
|
AParam := TIntegerArray.Create;
|
||||||
|
try
|
||||||
|
AParam.Add(AID);
|
||||||
|
Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnPDF(AParam);
|
||||||
|
finally
|
||||||
|
FreeANDNIL(AParam);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleFacturasCliente.GetRptWordFactura(
|
function TDataModuleFacturasCliente.GetRptWordFactura(
|
||||||
const AID: Integer): Binary;
|
const AID: Integer): Binary;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvFacturasCliente).GenerateReportEnWord(AID)
|
Result := (RORemoteService as IsrvFacturasCliente).GenerarInformeEnWord(AID)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModuleFacturasCliente.NewItem: IBizFacturaCliente;
|
function TDataModuleFacturasCliente.NewItem: IBizFacturaCliente;
|
||||||
|
|||||||
@ -3,13 +3,14 @@ unit uIDataModuleFacturasClienteReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Classes, uROTypes;
|
SysUtils, Classes, uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModuleFacturasClienteReport = interface
|
IDataModuleFacturasClienteReport = interface
|
||||||
['{D241A912-78C6-4C65-AEBF-8DDEFE35F511}']
|
['{D241A912-78C6-4C65-AEBF-8DDEFE35F511}']
|
||||||
function GetRptFacturas(const AListaID: String): Binary;
|
function GetRptFacturas(const AListaID: TIntegerList): Binary;
|
||||||
function GetRptWordFactura(const AID: Integer): Binary;
|
function GetRptWordFactura(const AID: Integer): Binary;
|
||||||
|
function GetRptPDFFactura(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|||||||
@ -1465,4 +1465,18 @@ object RptFacturasCliente: TRptFacturasCliente
|
|||||||
Left = 216
|
Left = 216
|
||||||
Top = 408
|
Top = 408
|
||||||
end
|
end
|
||||||
|
object frxPDFExport1: TfrxPDFExport
|
||||||
|
ShowDialog = False
|
||||||
|
UseFileCache = True
|
||||||
|
ShowProgress = False
|
||||||
|
PrintOptimized = True
|
||||||
|
Outline = False
|
||||||
|
Author = 'FactuGES'
|
||||||
|
Subject = 'FactuGES'
|
||||||
|
Background = False
|
||||||
|
Creator = 'FactuGES'
|
||||||
|
HTMLTags = True
|
||||||
|
Left = 424
|
||||||
|
Top = 288
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -8,7 +8,7 @@ uses
|
|||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
||||||
uDAMemDataTable;
|
uDAMemDataTable, FactuGES_Intf, frxExportPDF;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptFacturasCliente = class(TDataModule)
|
TRptFacturasCliente = class(TDataModule)
|
||||||
@ -80,13 +80,15 @@ type
|
|||||||
vencimientosFECHA_VENCIMIENTO: TDateField;
|
vencimientosFECHA_VENCIMIENTO: TDateField;
|
||||||
vencimientosIMPORTE_TOTAL: TIBBCDField;
|
vencimientosIMPORTE_TOTAL: TIBBCDField;
|
||||||
schReport: TDASchema;
|
schReport: TDASchema;
|
||||||
|
frxPDFExport1: TfrxPDFExport;
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
//Genera cada una de las facturas a imprimir
|
//Genera cada una de las facturas a imprimir
|
||||||
procedure GenerarFactura(const ID: integer); overload;
|
procedure _GenerarFactura(const ID: Integer);
|
||||||
public
|
public
|
||||||
function GenerarFactura(const AFacturaID : String): Binary; overload;
|
function GenerarFactura(const ListaID : TIntegerArray): Binary;
|
||||||
|
function GenerarFacturaEnPDF(const ListaID : TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -115,31 +117,45 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptFacturasCliente.GenerarFactura(const AFacturaID: String): Binary;
|
function TRptFacturasCliente.GenerarFactura(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Facturas: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
try
|
try
|
||||||
ID_Facturas := TStringList.Create;
|
|
||||||
ID_Facturas.CommaText := AFacturaID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada una de las facturas recibidas
|
//Vamos generando todos y cada una de las facturas recibidas
|
||||||
for i := 0 to ID_Facturas.Count - 1 do
|
for i := 0 to ListaID.Count - 1 do
|
||||||
GenerarFactura(StrToInt(ID_Facturas.Strings[i]));
|
_GenerarFactura(ListaID.Items[i]);
|
||||||
|
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRptFacturasCliente.GenerarFactura(const ID: integer);
|
function TRptFacturasCliente.GenerarFacturaEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := Binary.Create;
|
||||||
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
|
try
|
||||||
|
//Vamos generando todos y cada una de las facturas recibidas
|
||||||
|
for i := 0 to ListaID.Count - 1 do
|
||||||
|
_GenerarFactura(ListaID.Items[i]);
|
||||||
|
|
||||||
|
frxPDFExport1.Stream := Result;
|
||||||
|
frxReport.Export(frxPDFExport1)
|
||||||
|
finally
|
||||||
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRptFacturasCliente._GenerarFactura(const ID: Integer);
|
||||||
//var
|
//var
|
||||||
// AStream: TMemoryStream;
|
// AStream: TMemoryStream;
|
||||||
// dsMaster: IDADataset;
|
// dsMaster: IDADataset;
|
||||||
|
|||||||
@ -35,8 +35,9 @@ type
|
|||||||
private
|
private
|
||||||
protected
|
protected
|
||||||
{ IsrvFacturasCliente methods }
|
{ IsrvFacturasCliente methods }
|
||||||
function GenerateReport(const FacturaID: String): Binary;
|
function GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
function GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
|
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -83,19 +84,32 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvFacturasCliente.GenerateReport(const FacturaID: String): Binary;
|
function TsrvFacturasCliente.GenerarInformeEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptFacturasCliente;
|
AReportGenerator : TRptFacturasCliente;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptFacturasCliente.Create(nil);
|
AReportGenerator := TRptFacturasCliente.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarFactura(FacturaID);
|
Result := AReportGenerator.GenerarFacturaEnPDF(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvFacturasCliente.GenerateReportEnWord(const ID: Integer): Binary;
|
function TsrvFacturasCliente.GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
AReportGenerator : TRptFacturasCliente;
|
||||||
|
begin
|
||||||
|
AReportGenerator := TRptFacturasCliente.Create(nil);
|
||||||
|
try
|
||||||
|
Result := AReportGenerator.GenerarFactura(ListaID);
|
||||||
|
finally
|
||||||
|
FreeAndNIL(AReportGenerator);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TsrvFacturasCliente.GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptWordFacturaCliente;
|
AReportGenerator : TRptWordFacturaCliente;
|
||||||
AFicheroTMP : TFileName;
|
AFicheroTMP : TFileName;
|
||||||
|
|||||||
@ -48,13 +48,13 @@
|
|||||||
<DelphiCompile Include="FacturasCliente_view.dpk">
|
<DelphiCompile Include="FacturasCliente_view.dpk">
|
||||||
<MainSource>MainSource</MainSource>
|
<MainSource>MainSource</MainSource>
|
||||||
</DelphiCompile>
|
</DelphiCompile>
|
||||||
<DCCReference Include="..\..\Lib\AlbCli_FacCli_relation.dcp" />
|
<DCCReference Include="..\AlbCli_FacCli_relation.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\Articulos_view.dcp" />
|
<DCCReference Include="..\Articulos_view.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\Contactos_view.dcp" />
|
<DCCReference Include="..\Contactos_view.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\FacturasCliente_controller.dcp" />
|
<DCCReference Include="..\FacturasCliente_controller.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\FacturasCliente_model.dcp" />
|
<DCCReference Include="..\FacturasCliente_model.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\GUIBase.dcp" />
|
<DCCReference Include="..\GUIBase.dcp" />
|
||||||
<DCCReference Include="..\..\Lib\PreCli_FacCli_relation.dcp" />
|
<DCCReference Include="..\PreCli_FacCli_relation.dcp" />
|
||||||
<DCCReference Include="uEditorElegirArticulosFacturaCliente.pas">
|
<DCCReference Include="uEditorElegirArticulosFacturaCliente.pas">
|
||||||
<Form>fEditorElegirArticulosFacturaCliente</Form>
|
<Form>fEditorElegirArticulosFacturaCliente</Form>
|
||||||
<DesignClass>TForm</DesignClass>
|
<DesignClass>TForm</DesignClass>
|
||||||
|
|||||||
@ -1,8 +1,24 @@
|
|||||||
inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview
|
inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview
|
||||||
Caption = 'Previsualizar la factura'
|
Caption = 'Previsualizar la factura'
|
||||||
|
ClientWidth = 622
|
||||||
|
ExplicitWidth = 630
|
||||||
|
ExplicitHeight = 492
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
|
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||||
|
Width = 622
|
||||||
|
ExplicitWidth = 622
|
||||||
|
inherited Image1: TImage
|
||||||
|
Left = 595
|
||||||
|
ExplicitLeft = 595
|
||||||
|
end
|
||||||
|
end
|
||||||
inherited TBXDock: TTBXDock
|
inherited TBXDock: TTBXDock
|
||||||
|
Width = 622
|
||||||
|
ExplicitWidth = 622
|
||||||
|
inherited tbxMenu: TTBXToolbar
|
||||||
|
ExplicitWidth = 622
|
||||||
|
end
|
||||||
inherited TBXToolbar1: TTBXToolbar
|
inherited TBXToolbar1: TTBXToolbar
|
||||||
ExplicitWidth = 540
|
ExplicitWidth = 540
|
||||||
object TBXItem58: TTBXItem [1]
|
object TBXItem58: TTBXItem [1]
|
||||||
@ -11,4 +27,8 @@ inherited fEditorFacturasClientePreview: TfEditorFacturasClientePreview
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
inherited StatusBar: TJvStatusBar
|
||||||
|
Width = 622
|
||||||
|
ExplicitWidth = 622
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -32,25 +32,18 @@ implementation
|
|||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uFacturasClienteReportController;
|
uFacturasClienteReportController, uIntegerListUtils;
|
||||||
|
|
||||||
procedure TfEditorFacturasClientePreview.actExportarRTFExecute(Sender: TObject);
|
procedure TfEditorFacturasClientePreview.actExportarRTFExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
AListaID : TStringList;
|
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
// inherited; <- No llamar al padre
|
// inherited; <- No llamar al padre
|
||||||
if not Assigned(Controller) then
|
if not Assigned(Controller) then
|
||||||
raise Exception.Create('No se ha asignado el controlador necesario');
|
raise Exception.Create('No se ha asignado el controlador necesario');
|
||||||
|
|
||||||
AListaID := TStringList.Create;
|
for I := 0 to ListaID.Count - 1 do
|
||||||
try
|
(Controller as IFacturasClienteReportController).ExportToWord(ListaID[I]);
|
||||||
AListaID.CommaText := Self.ListaID;
|
|
||||||
for I := 0 to AListaID.Count - 1 do
|
|
||||||
(Controller as IFacturasClienteReportController).ExportToWord(StrToInt(AListaID[I]));
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AListaID);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
uBizAlbaranesProveedor;
|
uBizAlbaranesProveedor;
|
||||||
|
|
||||||
type
|
type
|
||||||
IFacturasProveedorController = interface(IObservador)
|
IFacturasProveedorController = interface(IControllerBase)
|
||||||
['{3868267C-E61A-4B79-AF61-648B2D627F56}']
|
['{3868267C-E61A-4B79-AF61-648B2D627F56}']
|
||||||
function GetProveedorController: IProveedoresController;
|
function GetProveedorController: IProveedoresController;
|
||||||
procedure SetProveedorController(const Value: IProveedoresController);
|
procedure SetProveedorController(const Value: IProveedoresController);
|
||||||
@ -49,7 +49,7 @@ type
|
|||||||
function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor;
|
function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TFacturasProveedorController = class(TObservador, IFacturasProveedorController)
|
TFacturasProveedorController = class(TControllerBase, IFacturasProveedorController)
|
||||||
private
|
private
|
||||||
FDataModule : IDataModuleFacturasProveedor;
|
FDataModule : IDataModuleFacturasProveedor;
|
||||||
FProveedorController : IProveedoresController;
|
FProveedorController : IProveedoresController;
|
||||||
|
|||||||
@ -33,9 +33,6 @@ type
|
|||||||
procedure DARemoteServiceCreate(Sender: TObject);
|
procedure DARemoteServiceCreate(Sender: TObject);
|
||||||
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
||||||
var aConnectionName: string);
|
var aConnectionName: string);
|
||||||
protected
|
|
||||||
{ IsrvFacturasProveedor methods }
|
|
||||||
function GenerateReport(const FacturaID: String): Binary;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -80,20 +77,6 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvFacturasProveedor.GenerateReport(const FacturaID: String): Binary;
|
|
||||||
//var
|
|
||||||
// AReportGenerator : TRptFacturasProveedor;
|
|
||||||
begin
|
|
||||||
{ AReportGenerator := TRptFacturasProveedor.Create(nil);
|
|
||||||
try
|
|
||||||
Result := AReportGenerator.GenerarFactura(FacturaID);
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AReportGenerator);
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
TROClassFactory.Create('srvFacturasProveedor', Create_srvFacturasProveedor, TsrvFacturasProveedor_Invoker);
|
TROClassFactory.Create('srvFacturasProveedor', Create_srvFacturasProveedor, TsrvFacturasProveedor_Invoker);
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ uses
|
|||||||
uDetallesPedidoProveedorController, uBizPedidosProveedor;
|
uDetallesPedidoProveedorController, uBizPedidosProveedor;
|
||||||
|
|
||||||
type
|
type
|
||||||
IPedidosProveedorController = interface(IObservador)
|
IPedidosProveedorController = interface(IControllerBase)
|
||||||
['{404FFA2F-D683-447D-91E6-C9A7322934D8}']
|
['{404FFA2F-D683-447D-91E6-C9A7322934D8}']
|
||||||
function GetProveedorController: IProveedoresController;
|
function GetProveedorController: IProveedoresController;
|
||||||
procedure SetProveedorController(const Value: IProveedoresController);
|
procedure SetProveedorController(const Value: IProveedoresController);
|
||||||
@ -51,7 +51,7 @@ type
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TPedidosProveedorController = class(TObservador, IPedidosProveedorController)
|
TPedidosProveedorController = class(TControllerBase, IPedidosProveedorController)
|
||||||
protected
|
protected
|
||||||
FDataModule : IDataModulePedidosProveedor;
|
FDataModule : IDataModulePedidosProveedor;
|
||||||
FProveedorController : IProveedoresController;
|
FProveedorController : IProveedoresController;
|
||||||
@ -121,8 +121,8 @@ uses
|
|||||||
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
|
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
|
||||||
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
|
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
|
||||||
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
|
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
|
||||||
Dialogs, uIEditorDireccionEntregaPedidoProveedor, Classes,
|
Dialogs, uIEditorDireccionEntregaPedidoProveedor, Classes, uIEditorSituacionPedidoProveedor,
|
||||||
uIEditorSituacionPedidoProveedor, Variants;
|
Variants, uIntegerListUtils;
|
||||||
|
|
||||||
{ TPedidosProveedorController }
|
{ TPedidosProveedorController }
|
||||||
|
|
||||||
@ -741,14 +741,13 @@ end;
|
|||||||
procedure TPedidosProveedorController.Preview(APedido: IBizPedidoProveedor; AllItems: Boolean = false);
|
procedure TPedidosProveedorController.Preview(APedido: IBizPedidoProveedor; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IPedidosProveedorReportController;
|
AReportController : IPedidosProveedorReportController;
|
||||||
ID_Pedidos: TStringList;
|
ID_Pedidos: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TPedidosProveedorReportController.Create;
|
AReportController := TPedidosProveedorReportController.Create;
|
||||||
ID_Pedidos := TStringList.Create;
|
ID_Pedidos := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
begin
|
begin
|
||||||
@ -757,31 +756,29 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Pedidos.Add(IntToStr(APedido.ID));
|
ID_Pedidos.Add(APedido.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Pedidos.Add(IntToStr(APedido.ID));
|
ID_Pedidos.Add(APedido.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Pedidos.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ID_Pedidos);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Pedidos.Free;
|
FreeANDNIL(ID_Pedidos)
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPedidosProveedorController.Print(APedido: IBizPedidoProveedor; AllItems: Boolean = false);
|
procedure TPedidosProveedorController.Print(APedido: IBizPedidoProveedor; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IPedidosProveedorReportController;
|
AReportController : IPedidosProveedorReportController;
|
||||||
ID_Pedidos: TStringList;
|
ID_Pedidos: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TPedidosProveedorReportController.Create;
|
AReportController := TPedidosProveedorReportController.Create;
|
||||||
ID_Pedidos := TStringList.Create;
|
ID_Pedidos := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
@ -792,20 +789,19 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Pedidos.Add(IntToStr(APedido.ID));
|
ID_Pedidos.Add(APedido.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Pedidos.Add(IntToStr(APedido.ID));
|
ID_Pedidos.Add(APedido.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Pedidos.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Print(ID_Pedidos);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Pedidos.Free;
|
FreeANDNIL(ID_Pedidos)
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -5,13 +5,13 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePedidosProveedorReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePedidosProveedorReport,
|
||||||
uClientesController, uPedidosProveedorController, uDetallesPedidoProveedorController,
|
uClientesController, uPedidosProveedorController, uDetallesPedidoProveedorController,
|
||||||
uBizPedidosProveedor;
|
uBizPedidosProveedor, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IPedidosProveedorReportController = interface(IControllerBase)
|
IPedidosProveedorReportController = interface(IControllerBase)
|
||||||
['{D0686358-251C-43C4-9927-6112F2F4D3B8}']
|
['{D0686358-251C-43C4-9927-6112F2F4D3B8}']
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -23,8 +23,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPedidosProveedorReportController.Preview(const AListaID : String);
|
procedure TPedidosProveedorReportController.Preview(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorPedidosProveedorPreview;
|
AEditor : IEditorPedidosProveedorPreview;
|
||||||
@ -94,14 +94,16 @@ begin
|
|||||||
try
|
try
|
||||||
CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor);
|
CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
AEditor.Controller := Self;
|
try
|
||||||
AEditor.ListaID := AListaID;
|
AEditor.Controller := Self;
|
||||||
Title := 'Pedido a proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
AEditor.ListaID := AListaID;
|
||||||
LoadFromStream(AStream);
|
AEditor.Title := 'Pedido a proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
Preview;
|
AEditor.LoadFromStream(AStream);
|
||||||
Release;
|
AEditor.Preview;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
@ -112,7 +114,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPedidosProveedorReportController.Print(const AListaID : String);
|
procedure TPedidosProveedorReportController.Print(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorPedidosProveedorPreview;
|
AEditor : IEditorPedidosProveedorPreview;
|
||||||
@ -124,11 +126,16 @@ begin
|
|||||||
try
|
try
|
||||||
CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor);
|
CreateEditor('EditorPedidosProveedorPreview', IEditorPedidosProveedorPreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
|
||||||
begin
|
begin
|
||||||
LoadFromStream(AStream);
|
try
|
||||||
Print;
|
AEditor.Controller := Self;
|
||||||
Release;
|
AEditor.ListaID := AListaID;
|
||||||
|
AEditor.Title := 'Pedido a proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
|
AEditor.LoadFromStream(AStream);
|
||||||
|
AEditor.Print;
|
||||||
|
finally
|
||||||
|
AEditor.Release;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
|
|||||||
@ -10,7 +10,8 @@ uses
|
|||||||
uROTypes, uDataModuleBase,
|
uROTypes, uDataModuleBase,
|
||||||
uIDataModulePedidosProveedor, uIDataModulePedidosProveedorReport,
|
uIDataModulePedidosProveedor, uIDataModulePedidosProveedorReport,
|
||||||
uBizPedidosProveedor, uBizDetallesPedidoProveedor, uDARemoteDataAdapter,
|
uBizPedidosProveedor, uBizDetallesPedidoProveedor, uDARemoteDataAdapter,
|
||||||
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable;
|
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable,
|
||||||
|
uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModulePedidosProveedor = class(TDataModuleBase, IDataModulePedidosProveedor,
|
TDataModulePedidosProveedor = class(TDataModuleBase, IDataModulePedidosProveedor,
|
||||||
@ -39,8 +40,10 @@ type
|
|||||||
function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend;
|
function GetArticulosPendientes(const IDPedido: Integer): IBizDetallesPedidoProveedorPend;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetReport(const AID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
function GetRptWordPedido(const AID: Integer): Binary;
|
function GetRptWordPedido(const AID: Integer): Binary;
|
||||||
|
function GetRptPDFPedido(const AID: Integer): Binary;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -64,15 +67,36 @@ begin
|
|||||||
RORemoteService.Message := dmConexion.Message;
|
RORemoteService.Message := dmConexion.Message;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePedidosProveedor.GetReport(const AID: String): Binary;
|
function TDataModulePedidosProveedor.GetReport(const ListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvPedidosProveedor).GenerateReport(AID)
|
AParam := ListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvPedidosProveedor).GenerarInforme(AParam)
|
||||||
|
finally
|
||||||
|
FreeANDNil(AParam);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TDataModulePedidosProveedor.GetRptPDFPedido(
|
||||||
|
const AID: Integer): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
|
begin
|
||||||
|
AParam := TIntegerArray.Create;
|
||||||
|
try
|
||||||
|
AParam.Add(AID);
|
||||||
|
Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnPDF(AParam)
|
||||||
|
finally
|
||||||
|
FreeANDNil(AParam);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePedidosProveedor.GetRptWordPedido(
|
function TDataModulePedidosProveedor.GetRptWordPedido(
|
||||||
const AID: Integer): Binary;
|
const AID: Integer): Binary;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvPedidosProveedor).GenerateReportEnWord(AID)
|
Result := (RORemoteService as IsrvPedidosProveedor).GenerarInformeEnWord(AID);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePedidosProveedor.NewItem: IBizPedidoProveedor;
|
function TDataModulePedidosProveedor.NewItem: IBizPedidoProveedor;
|
||||||
|
|||||||
@ -3,13 +3,14 @@ unit uIDataModulePedidosProveedorReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uROTypes;
|
uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModulePedidosProveedorReport = interface
|
IDataModulePedidosProveedorReport = interface
|
||||||
['{F2FFF4EA-B43D-4AAB-8A76-35A322B61A80}']
|
['{F2FFF4EA-B43D-4AAB-8A76-35A322B61A80}']
|
||||||
function GetReport(const AID: String): Binary;
|
function GetReport(const ListaID: TIntegerList): Binary;
|
||||||
function GetRptWordPedido(const AID: Integer): Binary;
|
function GetRptWordPedido(const AID: Integer): Binary;
|
||||||
|
function GetRptPDFPedido(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|||||||
@ -789,4 +789,18 @@ object RptPedidosProveedor: TRptPedidosProveedor
|
|||||||
Left = 360
|
Left = 360
|
||||||
Top = 136
|
Top = 136
|
||||||
end
|
end
|
||||||
|
object frxPDFExport1: TfrxPDFExport
|
||||||
|
ShowDialog = False
|
||||||
|
UseFileCache = True
|
||||||
|
ShowProgress = False
|
||||||
|
PrintOptimized = True
|
||||||
|
Outline = False
|
||||||
|
Author = 'FactuGES'
|
||||||
|
Subject = 'FactuGES'
|
||||||
|
Background = False
|
||||||
|
Creator = 'FactuGES'
|
||||||
|
HTMLTags = True
|
||||||
|
Left = 440
|
||||||
|
Top = 296
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -8,7 +8,7 @@ uses
|
|||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase,
|
||||||
uDAMemDataTable;
|
uDAMemDataTable, frxExportPDF, FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptPedidosProveedor = class(TDataModule)
|
TRptPedidosProveedor = class(TDataModule)
|
||||||
@ -61,12 +61,14 @@ type
|
|||||||
cabeceraENTREGAR_A: TIBStringField;
|
cabeceraENTREGAR_A: TIBStringField;
|
||||||
schReport: TDASchema;
|
schReport: TDASchema;
|
||||||
DataDictionary: TDADataDictionary;
|
DataDictionary: TDADataDictionary;
|
||||||
|
frxPDFExport1: TfrxPDFExport;
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
procedure GenerarPedido(const ID : Integer); overload;
|
procedure _GenerarPedido(const ID : Integer);
|
||||||
public
|
public
|
||||||
function GenerarPedido(const AID : String): Binary; overload;
|
function GenerarPedido(const ListaID : TIntegerArray): Binary;
|
||||||
|
function GenerarPedidoEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -94,31 +96,24 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptPedidosProveedor.GenerarPedido(const AID: String): Binary;
|
function TRptPedidosProveedor.GenerarPedido(const ListaID : TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Pedidos: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
|
|
||||||
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
try
|
try
|
||||||
ID_Pedidos := TStringList.Create;
|
|
||||||
ID_Pedidos.CommaText := AID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada uno de los albaranes recibidos
|
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||||
for i := 0 to ID_Pedidos.Count - 1 do
|
for i := 0 to ListaID.Count - 1 do
|
||||||
GenerarPedido(StrToInt(ID_Pedidos.Strings[i]));
|
_GenerarPedido(ListaID.Items[i]);
|
||||||
|
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRptPedidosProveedor.GenerarPedido(const ID: Integer);
|
procedure TRptPedidosProveedor._GenerarPedido(const ID: Integer);
|
||||||
var
|
var
|
||||||
AStream: TMemoryStream;
|
AStream: TMemoryStream;
|
||||||
dsMaster: IDADataset;
|
dsMaster: IDADataset;
|
||||||
@ -146,4 +141,25 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TRptPedidosProveedor.GenerarPedidoEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
Result := Binary.Create;
|
||||||
|
|
||||||
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
try
|
||||||
|
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||||
|
for i := 0 to ListaID.Count - 1 do
|
||||||
|
_GenerarPedido(ListaID.Items[i]);
|
||||||
|
|
||||||
|
frxPDFExport1.Stream := Result;
|
||||||
|
frxReport.Export(frxPDFExport1)
|
||||||
|
finally
|
||||||
|
//FConnection.RollbackTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -31,10 +31,13 @@ type
|
|||||||
procedure DARemoteServiceCreate(Sender: TObject);
|
procedure DARemoteServiceCreate(Sender: TObject);
|
||||||
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
|
||||||
var aConnectionName: string);
|
var aConnectionName: string);
|
||||||
|
private
|
||||||
|
function GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
protected
|
protected
|
||||||
{ IsrvPedidosProveedor methods }
|
{ IsrvPedidosProveedor methods }
|
||||||
function GenerateReport(const ID: String): Binary;
|
function GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerateReportEnWord(const ID: Integer): Binary;
|
function GenerateInformeEnWord(const ID: Integer): Binary;
|
||||||
|
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -82,20 +85,32 @@ begin
|
|||||||
ConnectionName := dmServer.ConnectionName;
|
ConnectionName := dmServer.ConnectionName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvPedidosProveedor.GenerateReport(const ID: String): Binary;
|
function TsrvPedidosProveedor.GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptPedidosProveedor;
|
AReportGenerator : TRptPedidosProveedor;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptPedidosProveedor.Create(nil);
|
AReportGenerator := TRptPedidosProveedor.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarPedido(ID);
|
Result := AReportGenerator.GenerarPedido(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvPedidosProveedor.GenerateReportEnWord(const ID: Integer): Binary;
|
function TsrvPedidosProveedor.GenerarInformeEnPDF(
|
||||||
|
const ListaID: TIntegerArray): Binary;
|
||||||
|
var
|
||||||
|
AReportGenerator : TRptPedidosProveedor;
|
||||||
|
begin
|
||||||
|
AReportGenerator := TRptPedidosProveedor.Create(nil);
|
||||||
|
try
|
||||||
|
Result := AReportGenerator.GenerarPedidoEnPDF(ListaID);
|
||||||
|
finally
|
||||||
|
FreeAndNIL(AReportGenerator);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TsrvPedidosProveedor.GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptWordPedidoProveedor;
|
AReportGenerator : TRptWordPedidoProveedor;
|
||||||
AFicheroTMP : TFileName;
|
AFicheroTMP : TFileName;
|
||||||
@ -114,6 +129,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TsrvPedidosProveedor.GenerateInformeEnWord(const ID: Integer): Binary;
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker);
|
TROClassFactory.Create('srvPedidosProveedor', Create_srvPedidosProveedor, TsrvPedidosProveedor_Invoker);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
inherited fEditorPedidosProveedorPreview: TfEditorPedidosProveedorPreview
|
inherited fEditorPedidosProveedorPreview: TfEditorPedidosProveedorPreview
|
||||||
Caption = 'Previsualizar el pedidos proveedor'
|
Caption = 'Previsualizar el pedidos proveedor'
|
||||||
|
ExplicitWidth = 320
|
||||||
|
ExplicitHeight = 240
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
inherited TBXDock: TTBXDock
|
inherited TBXDock: TTBXDock
|
||||||
|
|||||||
@ -33,21 +33,14 @@ uses
|
|||||||
procedure TfEditorPedidosProveedorPreview.actExportarRTFExecute(
|
procedure TfEditorPedidosProveedorPreview.actExportarRTFExecute(
|
||||||
Sender: TObject);
|
Sender: TObject);
|
||||||
var
|
var
|
||||||
AListaID : TStringList;
|
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
// inherited; <- No llamar al padre
|
// inherited; <- No llamar al padre
|
||||||
if not Assigned(Controller) then
|
if not Assigned(Controller) then
|
||||||
raise Exception.Create('No se ha asignado el controlador necesario');
|
raise Exception.Create('No se ha asignado el controlador necesario');
|
||||||
|
|
||||||
AListaID := TStringList.Create;
|
for I := 0 to ListaID.Count - 1 do
|
||||||
try
|
(Controller as IPedidosProveedorReportController).ExportToWord(ListaID[I]);
|
||||||
AListaID.CommaText := Self.ListaID;
|
|
||||||
for I := 0 to AListaID.Count - 1 do
|
|
||||||
(Controller as IPedidosProveedorReportController).ExportToWord(StrToInt(AListaID[I]));
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AListaID);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -10,7 +10,7 @@ uses
|
|||||||
uBizDetallesPresupuestoCliente;
|
uBizDetallesPresupuestoCliente;
|
||||||
|
|
||||||
type
|
type
|
||||||
IPresupuestosClienteController = interface(IObservador)
|
IPresupuestosClienteController = interface(IControllerBase)
|
||||||
['{21ED0332-F0E0-468D-8D53-8CA362757191}']
|
['{21ED0332-F0E0-468D-8D53-8CA362757191}']
|
||||||
function GetClienteController: IClientesController;
|
function GetClienteController: IClientesController;
|
||||||
procedure SetClienteController(const Value: IClientesController);
|
procedure SetClienteController(const Value: IClientesController);
|
||||||
@ -56,7 +56,7 @@ type
|
|||||||
function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean;
|
function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TPresupuestosClienteController = class(TObservador, IPresupuestosClienteController)
|
TPresupuestosClienteController = class(TControllerBase, IPresupuestosClienteController)
|
||||||
protected
|
protected
|
||||||
FDataModule : IDataModulePresupuestosCliente;
|
FDataModule : IDataModulePresupuestosCliente;
|
||||||
FClienteController : IClientesController;
|
FClienteController : IClientesController;
|
||||||
@ -129,7 +129,7 @@ uses
|
|||||||
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
|
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
|
||||||
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
|
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
|
||||||
schContactosClient_Intf, uPresupuestosClienteReportController,
|
schContactosClient_Intf, uPresupuestosClienteReportController,
|
||||||
uSistemaFunc, uEMailUtils, uDialogElegirEMail;
|
uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils;
|
||||||
|
|
||||||
{ TPresupuestosClienteController }
|
{ TPresupuestosClienteController }
|
||||||
|
|
||||||
@ -205,13 +205,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TPresupuestosClienteController.CambiarSituacion(APresupuesto: IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime;
|
function TPresupuestosClienteController.CambiarSituacion(APresupuesto: IBizPresupuestoCliente;
|
||||||
AllItems: Boolean): Boolean;
|
Situacion: String; FechaDecision: TDateTime; AllItems: Boolean): Boolean;
|
||||||
//En el caso de cambiar almenos un elemento del conjunto se devuelve true
|
// En el caso de cambiar almenos un elemento del conjunto se devuelve true
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := False;
|
|
||||||
|
|
||||||
if not Assigned(APresupuesto) then
|
if not Assigned(APresupuesto) then
|
||||||
raise Exception.Create ('APresupuesto no asignado');
|
raise Exception.Create ('APresupuesto no asignado');
|
||||||
|
|
||||||
@ -864,12 +861,11 @@ end;
|
|||||||
procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
|
procedure TPresupuestosClienteController.Preview(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IPresupuestosClienteReportController;
|
AReportController : IPresupuestosClienteReportController;
|
||||||
ID_Presupuestos: TStringList;
|
ID_Presupuestos: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TPresupuestosClienteReportController.Create;
|
AReportController := TPresupuestosClienteReportController.Create;
|
||||||
try
|
try
|
||||||
ID_Presupuestos := TStringList.Create;
|
ID_Presupuestos := TIntegerList.Create;
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto presupuesto
|
//Si deseamos previsualizar todos los items del objeto presupuesto
|
||||||
if AllItems then
|
if AllItems then
|
||||||
@ -879,17 +875,16 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
|
ID_Presupuestos.Add(APresupuesto.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
|
ID_Presupuestos.Add(APresupuesto.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Presupuestos.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ID_Presupuestos);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
FreeAndNil(ID_Presupuestos);
|
FreeAndNil(ID_Presupuestos);
|
||||||
@ -899,10 +894,10 @@ end;
|
|||||||
procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
|
procedure TPresupuestosClienteController.Print(APresupuesto: IBizPresupuestoCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IPresupuestosClienteReportController;
|
AReportController : IPresupuestosClienteReportController;
|
||||||
ID_Presupuestos: TStringList;
|
ID_Presupuestos: TIntegerList;
|
||||||
begin
|
begin
|
||||||
AReportController := TPresupuestosClienteReportController.Create;
|
AReportController := TPresupuestosClienteReportController.Create;
|
||||||
ID_Presupuestos := TStringList.Create;
|
ID_Presupuestos := TIntegerList.Create;
|
||||||
try
|
try
|
||||||
//Si deseamos imprimimos todos los items del objeto presupuesto
|
//Si deseamos imprimimos todos los items del objeto presupuesto
|
||||||
if AllItems then
|
if AllItems then
|
||||||
@ -912,16 +907,16 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
|
ID_Presupuestos.Add(APresupuesto.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo imprimimos el item seleccionado
|
//Solo imprimimos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Presupuestos.Add(IntToStr(APresupuesto.ID));
|
ID_Presupuestos.Add(APresupuesto.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Presupuestos.CommaText);
|
AReportController.Print(ID_Presupuestos);
|
||||||
|
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
@ -934,7 +929,6 @@ function TPresupuestosClienteController.GenerarCertificados(
|
|||||||
var
|
var
|
||||||
AReportController : IPresupuestosClienteReportController;
|
AReportController : IPresupuestosClienteReportController;
|
||||||
ID_Presupuestos: TStringList;
|
ID_Presupuestos: TStringList;
|
||||||
AFile : String;
|
|
||||||
ATitulo : String;
|
ATitulo : String;
|
||||||
AComentario : String;
|
AComentario : String;
|
||||||
ARuta : String;
|
ARuta : String;
|
||||||
|
|||||||
@ -5,13 +5,13 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePresupuestosClienteReport,
|
Classes, SysUtils, uDADataTable, uControllerBase, uIDataModulePresupuestosClienteReport,
|
||||||
uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController,
|
uClientesController, uPresupuestosClienteController, uDetallesPresupuestoClienteController,
|
||||||
uBizPresupuestosCliente;
|
uBizPresupuestosCliente, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IPresupuestosClienteReportController = interface(IControllerBase)
|
IPresupuestosClienteReportController = interface(IControllerBase)
|
||||||
['{41AE4B36-6114-4DDE-8BCF-288AA0E12449}']
|
['{41AE4B36-6114-4DDE-8BCF-288AA0E12449}']
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean;
|
function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean;
|
||||||
@ -25,8 +25,8 @@ type
|
|||||||
constructor Create; override;
|
constructor Create; override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
|
||||||
procedure Preview(const AListaID : String);
|
procedure Preview(const AListaID : TIntegerList);
|
||||||
procedure Print(const AListaID : String);
|
procedure Print(const AListaID : TIntegerList);
|
||||||
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToWord(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
|
function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean;
|
||||||
function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean;
|
function GenerarCertificados(const AID: Integer; const AFileName : String): Boolean;
|
||||||
@ -64,17 +64,14 @@ function TPresupuestosClienteReportController.ExportToPDF(const AID: Integer;
|
|||||||
const AFileName: String): Boolean;
|
const AFileName: String): Boolean;
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
ID_Presupuestos: TStringList;
|
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if EsCadenaVacia(AFileName) then
|
if EsCadenaVacia(AFileName) then
|
||||||
Exit;
|
Exit;
|
||||||
|
|
||||||
ID_Presupuestos := TStringList.Create;
|
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
ID_Presupuestos.Add(IntToStr(AID));
|
AStream := FDataModule.GetRptPDFPresupuesto(AID);
|
||||||
AStream := FDataModule.GetRptPDFPresupuesto(ID_Presupuestos.CommaText);
|
|
||||||
try
|
try
|
||||||
AStream.SaveToFile(AFileName);
|
AStream.SaveToFile(AFileName);
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -135,7 +132,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPresupuestosClienteReportController.Preview(const AListaID : String);
|
procedure TPresupuestosClienteReportController.Preview(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorPresupuestosClientePreview;
|
AEditor : IEditorPresupuestosClientePreview;
|
||||||
@ -147,15 +144,17 @@ begin
|
|||||||
try
|
try
|
||||||
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
begin
|
||||||
begin
|
try
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
AEditor.ListaID := AListaID;
|
||||||
Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
LoadFromStream(AStream);
|
AEditor.LoadFromStream(AStream);
|
||||||
Preview;
|
AEditor.Preview;
|
||||||
Release;
|
finally
|
||||||
|
AEditor.Release;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
AEditor := Nil;
|
AEditor := Nil;
|
||||||
@ -165,7 +164,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPresupuestosClienteReportController.Print(const AListaID : String);
|
procedure TPresupuestosClienteReportController.Print(const AListaID : TIntegerList);
|
||||||
var
|
var
|
||||||
AStream: Binary;
|
AStream: Binary;
|
||||||
AEditor : IEditorPresupuestosClientePreview;
|
AEditor : IEditorPresupuestosClientePreview;
|
||||||
@ -177,14 +176,17 @@ begin
|
|||||||
try
|
try
|
||||||
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
CreateEditor('EditorPresupuestosClientePreview', IEditorPresupuestosClientePreview, AEditor);
|
||||||
if Assigned(AEditor) then
|
if Assigned(AEditor) then
|
||||||
with AEditor do
|
begin
|
||||||
begin
|
try
|
||||||
AEditor.Controller := Self;
|
AEditor.Controller := Self;
|
||||||
AEditor.ListaID := AListaID;
|
AEditor.ListaID := AListaID;
|
||||||
|
AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE;
|
||||||
AEditor.LoadFromStream(AStream);
|
AEditor.LoadFromStream(AStream);
|
||||||
AEditor.Print;
|
AEditor.Print;
|
||||||
|
finally
|
||||||
AEditor.Release;
|
AEditor.Release;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(AStream);
|
FreeAndNil(AStream);
|
||||||
AEditor := Nil;
|
AEditor := Nil;
|
||||||
|
|||||||
@ -11,7 +11,7 @@ uses
|
|||||||
uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente,
|
uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente,
|
||||||
uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces,
|
uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces,
|
||||||
uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
|
uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
|
||||||
uDAMemDataTable;
|
uDAMemDataTable, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport)
|
TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport)
|
||||||
@ -36,10 +36,10 @@ type
|
|||||||
function NewItem : IBizPresupuestoCliente;
|
function NewItem : IBizPresupuestoCliente;
|
||||||
|
|
||||||
// Report
|
// Report
|
||||||
function GetRptPresupuestos(const AListaID: String): Binary;
|
function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
|
||||||
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
||||||
function GetRptWordCertificadoTrabajos(const AID: Integer): Binary;
|
function GetRptWordCertificadoTrabajos(const AID: Integer): Binary;
|
||||||
function GetRptPDFPresupuesto(const AListaID: String): Binary;
|
function GetRptPDFPresupuesto(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -64,14 +64,29 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePresupuestosCliente.GetRptPDFPresupuesto(
|
function TDataModulePresupuestosCliente.GetRptPDFPresupuesto(
|
||||||
const AListaID: String): Binary;
|
const AID: Integer): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnPDF(AListaID)
|
AParam := TIntegerArray.Create;
|
||||||
|
try
|
||||||
|
AParam.Add(AID);
|
||||||
|
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnPDF(AParam)
|
||||||
|
finally
|
||||||
|
FreeANDNIL(AParam)
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePresupuestosCliente.GetRptPresupuestos(const AListaID: String): Binary;
|
function TDataModulePresupuestosCliente.GetRptPresupuestos(const AListaID: TIntegerList): Binary;
|
||||||
|
var
|
||||||
|
AParam : TIntegerArray;
|
||||||
begin
|
begin
|
||||||
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInforme(AListaID)
|
AParam := AListaID.ToIntegerArray;
|
||||||
|
try
|
||||||
|
Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInforme(AParam)
|
||||||
|
finally
|
||||||
|
FreeANDNIL(AParam)
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataModulePresupuestosCliente.GetRptWordCertificadoTrabajos(
|
function TDataModulePresupuestosCliente.GetRptWordCertificadoTrabajos(
|
||||||
|
|||||||
@ -3,15 +3,15 @@ unit uIDataModulePresupuestosClienteReport;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uROTypes;
|
uROTypes, uIntegerListUtils;
|
||||||
|
|
||||||
type
|
type
|
||||||
IDataModulePresupuestosClienteReport = interface
|
IDataModulePresupuestosClienteReport = interface
|
||||||
['{70CEBB06-376F-4363-B80F-DDA4324E0F85}']
|
['{70CEBB06-376F-4363-B80F-DDA4324E0F85}']
|
||||||
function GetRptPresupuestos(const AListaID: String): Binary;
|
function GetRptPresupuestos(const AListaID: TIntegerList): Binary;
|
||||||
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
function GetRptWordPresupuesto(const AID: Integer): Binary;
|
||||||
function GetRptWordCertificadoTrabajos(const AID: Integer): Binary;
|
function GetRptWordCertificadoTrabajos(const AID: Integer): Binary;
|
||||||
function GetRptPDFPresupuesto(const AListaID: String): Binary;
|
function GetRptPDFPresupuesto(const AID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|||||||
@ -8,7 +8,7 @@ uses
|
|||||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes,
|
uDADataTable, uDACDSDataTable, DB, uDAClasses, uDABINAdapter, uROTypes,
|
||||||
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
|
||||||
frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine,
|
frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDAEngine,
|
||||||
IBSQL, IBDatabase, IBCustomDataSet, IBQuery, frxExportPDF;
|
IBSQL, IBDatabase, IBCustomDataSet, IBQuery, frxExportPDF, FactuGES_Intf;
|
||||||
|
|
||||||
type
|
type
|
||||||
TRptPresupuestosCliente = class(TDataModule)
|
TRptPresupuestosCliente = class(TDataModule)
|
||||||
@ -83,8 +83,8 @@ type
|
|||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
procedure _GenerarPresupuesto(const AID : Integer);
|
procedure _GenerarPresupuesto(const AID : Integer);
|
||||||
public
|
public
|
||||||
function GenerarPresupuesto(const ListaID : String): Binary; overload;
|
function GenerarPresupuesto(const ListaID : TIntegerArray): Binary;
|
||||||
function GenerarPDF(const ListaID : String): Binary; overload;
|
function GenerarPresupuestoEnPDF(const ListaID : TIntegerArray): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -108,22 +108,17 @@ begin
|
|||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptPresupuestosCliente.GenerarPDF(const ListaID: String): Binary;
|
function TRptPresupuestosCliente.GenerarPresupuestoEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Presupuestos: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
try
|
try
|
||||||
ID_Presupuestos := TStringList.Create;
|
|
||||||
ID_Presupuestos.CommaText := ListaID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada uno de los presupuestos recibidos
|
//Vamos generando todos y cada uno de los presupuestos recibidos
|
||||||
for i := 0 to ID_Presupuestos.Count - 1 do
|
for i := 0 to ListaID.Count - 1 do
|
||||||
_GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
|
_GenerarPresupuesto(ListaID.Items[i]);
|
||||||
|
|
||||||
frxPDFExport1.Stream := Result;
|
frxPDFExport1.Stream := Result;
|
||||||
frxReport.Export(frxPDFExport1)
|
frxReport.Export(frxPDFExport1)
|
||||||
@ -132,22 +127,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID: String): Binary;
|
function TRptPresupuestosCliente.GenerarPresupuesto(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
ID_Presupuestos: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := Binary.Create;
|
Result := Binary.Create;
|
||||||
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
//FConnection.BeginTransaction; <--- Creo que no va a hacer falta.
|
||||||
|
|
||||||
try
|
try
|
||||||
ID_Presupuestos := TStringList.Create;
|
|
||||||
ID_Presupuestos.CommaText := ListaID;
|
|
||||||
|
|
||||||
//Vamos generando todos y cada uno de los presupuestos recibidos
|
//Vamos generando todos y cada uno de los presupuestos recibidos
|
||||||
for i := 0 to ID_Presupuestos.Count - 1 do
|
for i := 0 to ListaID.Count - 1 do
|
||||||
_GenerarPresupuesto(StrToInt(ID_Presupuestos.Strings[i]));
|
_GenerarPresupuesto(ListaID.Items[i]);
|
||||||
|
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
finally
|
finally
|
||||||
|
|||||||
@ -91,10 +91,7 @@ end;
|
|||||||
function TRptWordPresupuestoCliente.Exportar(Codigo, Fichero: String): Boolean;
|
function TRptWordPresupuestoCliente.Exportar(Codigo, Fichero: String): Boolean;
|
||||||
begin
|
begin
|
||||||
if EsCadenaVacia(Fichero) then
|
if EsCadenaVacia(Fichero) then
|
||||||
begin
|
|
||||||
Result := False;
|
|
||||||
RaiseError('Falta indicar el fichero donde se exportará el listado.');
|
RaiseError('Falta indicar el fichero donde se exportará el listado.');
|
||||||
end;
|
|
||||||
|
|
||||||
FNombreFichero := Fichero;
|
FNombreFichero := Fichero;
|
||||||
FCodigoPresupuesto := Codigo;
|
FCodigoPresupuesto := Codigo;
|
||||||
@ -148,6 +145,7 @@ var
|
|||||||
iContador : Integer;
|
iContador : Integer;
|
||||||
TotalConceptos : Double;
|
TotalConceptos : Double;
|
||||||
begin
|
begin
|
||||||
|
TotalConceptos := 0;
|
||||||
numRows := 2;
|
numRows := 2;
|
||||||
numCols := 1;
|
numCols := 1;
|
||||||
mergeSplit := False;
|
mergeSplit := False;
|
||||||
@ -194,14 +192,15 @@ end;
|
|||||||
function TRptWordPresupuestoCliente.RellenarCabecera: boolean;
|
function TRptWordPresupuestoCliente.RellenarCabecera: boolean;
|
||||||
var
|
var
|
||||||
NombreFichero,
|
NombreFichero,
|
||||||
Texto,
|
Texto : String;
|
||||||
FicheroTemporal : String;
|
{ FicheroTemporal : String;
|
||||||
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
||||||
Imagen : InlineShape;
|
Imagen : InlineShape;
|
||||||
What, Which, Count, Name : OleVariant;
|
ovRange : OleVariant;
|
||||||
|
Which, Name : OleVariant;}
|
||||||
|
What, Count : OleVariant;
|
||||||
ovBookMarkName : OleVariant;
|
ovBookMarkName : OleVariant;
|
||||||
TempRange : Word2000.Range;
|
TempRange : Word2000.Range;
|
||||||
ovRange : OleVariant;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
||||||
@ -364,11 +363,10 @@ end;
|
|||||||
function TRptWordPresupuestoCliente.RellenarPortada: boolean;
|
function TRptWordPresupuestoCliente.RellenarPortada: boolean;
|
||||||
var
|
var
|
||||||
NombreFichero,
|
NombreFichero,
|
||||||
Texto,
|
Texto : String;
|
||||||
FicheroTemporal : string;
|
{FicheroTemporal : string;
|
||||||
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
LinkToFile, SaveWithDocument, _Range : OleVariant;
|
||||||
Imagen : InlineShape;
|
Imagen : InlineShape;}
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
//PARA DIBUJAR EL LOGOTIPO MULTIEMPRESA
|
||||||
@ -418,6 +416,7 @@ var
|
|||||||
Tabla : Table;
|
Tabla : Table;
|
||||||
Estilo : OleVariant;
|
Estilo : OleVariant;
|
||||||
begin
|
begin
|
||||||
|
TotalConceptos := 0;
|
||||||
numRows := 2;
|
numRows := 2;
|
||||||
numCols := 1;
|
numCols := 1;
|
||||||
mergeSplit := False;
|
mergeSplit := False;
|
||||||
|
|||||||
@ -33,9 +33,9 @@ type
|
|||||||
procedure DARemoteServiceCreate(Sender: TObject);
|
procedure DARemoteServiceCreate(Sender: TObject);
|
||||||
protected
|
protected
|
||||||
{ IsrvPresupuestosCliente methods }
|
{ IsrvPresupuestosCliente methods }
|
||||||
function GenerarInforme(const ListaID: String): Binary;
|
function GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerarInformeEnWord(const ID: Integer): Binary;
|
function GenerarInformeEnWord(const ID: Integer): Binary;
|
||||||
function GenerarInformeEnPDF(const ListaID: String): Binary;
|
function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
|
||||||
function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary;
|
function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvPresupuestosCliente.GenerarInforme(const ListaID: String): Binary;
|
function TsrvPresupuestosCliente.GenerarInforme(const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptPresupuestosCliente;
|
AReportGenerator : TRptPresupuestosCliente;
|
||||||
begin
|
begin
|
||||||
@ -114,13 +114,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TsrvPresupuestosCliente.GenerarInformeEnPDF(
|
function TsrvPresupuestosCliente.GenerarInformeEnPDF(
|
||||||
const ListaID: String): Binary;
|
const ListaID: TIntegerArray): Binary;
|
||||||
var
|
var
|
||||||
AReportGenerator : TRptPresupuestosCliente;
|
AReportGenerator : TRptPresupuestosCliente;
|
||||||
begin
|
begin
|
||||||
AReportGenerator := TRptPresupuestosCliente.Create(nil);
|
AReportGenerator := TRptPresupuestosCliente.Create(nil);
|
||||||
try
|
try
|
||||||
Result := AReportGenerator.GenerarPDF(ListaID);
|
Result := AReportGenerator.GenerarPresupuestoEnPDF(ListaID);
|
||||||
finally
|
finally
|
||||||
FreeAndNIL(AReportGenerator);
|
FreeAndNIL(AReportGenerator);
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
inherited fEditorPresupuestosClientePreview: TfEditorPresupuestosClientePreview
|
inherited fEditorPresupuestosClientePreview: TfEditorPresupuestosClientePreview
|
||||||
Caption = 'Previsualizar el pedidos proveedor'
|
Caption = 'Previsualizar el pedidos proveedor'
|
||||||
|
ExplicitWidth = 320
|
||||||
|
ExplicitHeight = 240
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
inherited JvNavPanelHeader: TJvNavPanelHeader
|
inherited JvNavPanelHeader: TJvNavPanelHeader
|
||||||
|
|||||||
@ -24,26 +24,19 @@ implementation
|
|||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uPresupuestosClienteReportController;
|
uPresupuestosClienteReportController, uIntegerListUtils;
|
||||||
|
|
||||||
procedure TfEditorPresupuestosClientePreview.actExportarRTFExecute(
|
procedure TfEditorPresupuestosClientePreview.actExportarRTFExecute(
|
||||||
Sender: TObject);
|
Sender: TObject);
|
||||||
var
|
var
|
||||||
AListaID : TStringList;
|
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
// inherited; <- No llamar al padre
|
// inherited; <- No llamar al padre
|
||||||
if not Assigned(Controller) then
|
if not Assigned(Controller) then
|
||||||
raise Exception.Create('No se ha asignado el controlador necesario');
|
raise Exception.Create('No se ha asignado el controlador necesario');
|
||||||
|
|
||||||
AListaID := TStringList.Create;
|
for I := 0 to ListaID.Count - 1 do
|
||||||
try
|
(Controller as IPresupuestosClienteReportController).ExportToWord(ListaID[I]);
|
||||||
AListaID.CommaText := Self.ListaID;
|
|
||||||
for I := 0 to AListaID.Count - 1 do
|
|
||||||
(Controller as IPresupuestosClienteReportController).ExportToWord(StrToInt(AListaID[I]));
|
|
||||||
finally
|
|
||||||
FreeAndNIL(AListaID);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -31,7 +31,7 @@ uses
|
|||||||
uBizRecibosCliente, uIDataModuleRecibosCliente;
|
uBizRecibosCliente, uIDataModuleRecibosCliente;
|
||||||
|
|
||||||
type
|
type
|
||||||
IRecibosClienteController = interface(IObservador)
|
IRecibosClienteController = interface(IControllerBase)
|
||||||
['{CBC8BDB8-FBE0-4D54-B2F1-A9330E8339EB}']
|
['{CBC8BDB8-FBE0-4D54-B2F1-A9330E8339EB}']
|
||||||
|
|
||||||
function GetPagosController: IPagosClienteController;
|
function GetPagosController: IPagosClienteController;
|
||||||
@ -78,7 +78,7 @@ type
|
|||||||
procedure Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false);
|
procedure Print(ARecibosCliente : IBizRecibosCliente; AllItems: Boolean = false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TRecibosClienteController = class(TObservador, IRecibosClienteController)
|
TRecibosClienteController = class(TControllerBase, IRecibosClienteController)
|
||||||
private
|
private
|
||||||
function ImporteTotalModificado(ARecibosCliente: IBizRecibosCliente;
|
function ImporteTotalModificado(ARecibosCliente: IBizRecibosCliente;
|
||||||
var ImporteRestante: Currency): Boolean;
|
var ImporteRestante: Currency): Boolean;
|
||||||
@ -147,7 +147,7 @@ uses
|
|||||||
Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs,
|
Forms, uNumUtils, cxControls, DB, uEditorRegistryUtils, Dialogs,
|
||||||
uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
|
uDAInterfaces, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
|
||||||
uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants,
|
uDateUtils, uROTypes, DateUtils, Controls, Windows, Variants,
|
||||||
uRecibosClienteReportController, uBizContactos, uDADelta,
|
uRecibosClienteReportController, uBizContactos, uDADelta, uIntegerListUtils,
|
||||||
schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente,
|
schRecibosClienteClient_Intf, uIEditorRecibosCliente, uIEditorReciboCliente,
|
||||||
uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago;
|
uIEditorElegirRecibosCliente, uDataModuleRecibosCliente, uIEditorFechaPago;
|
||||||
|
|
||||||
@ -829,14 +829,13 @@ end;
|
|||||||
procedure TRecibosClienteController.Preview(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false);
|
procedure TRecibosClienteController.Preview(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IRecibosClienteReportController;
|
AReportController : IRecibosClienteReportController;
|
||||||
ID_Recibos: TStringList;
|
ID_Recibos: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TRecibosClienteReportController.Create;
|
AReportController := TRecibosClienteReportController.Create;
|
||||||
ID_Recibos := TStringList.Create;
|
ID_Recibos := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
begin
|
begin
|
||||||
@ -845,34 +844,32 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Recibos.Add(IntToStr(ARecibosCliente.ID));
|
ID_Recibos.Add(ARecibosCliente.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Recibos.Add(IntToStr(ARecibosCliente.ID));
|
ID_Recibos.Add(ARecibosCliente.ID);
|
||||||
|
|
||||||
AReportController.Preview(ID_Recibos.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Preview(ID_Recibos);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Recibos.Free;
|
FreeANDNil(ID_Recibos);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRecibosClienteController.Print(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false);
|
procedure TRecibosClienteController.Print(ARecibosCliente: IBizRecibosCliente; AllItems: Boolean = false);
|
||||||
var
|
var
|
||||||
AReportController : IRecibosClienteReportController;
|
AReportController : IRecibosClienteReportController;
|
||||||
ID_Recibos: TStringList;
|
ID_Recibos: TIntegerList;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
AReportController := TRecibosClienteReportController.Create;
|
AReportController := TRecibosClienteReportController.Create;
|
||||||
ID_Recibos := TStringList.Create;
|
ID_Recibos := TIntegerList.Create;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
||||||
//Si deseamos previsualizar todos los items del objeto albaran
|
//Si deseamos previsualizar todos los items del objeto albaran
|
||||||
if AllItems then
|
if AllItems then
|
||||||
begin
|
begin
|
||||||
@ -881,22 +878,20 @@ begin
|
|||||||
First;
|
First;
|
||||||
while not EOF do
|
while not EOF do
|
||||||
begin
|
begin
|
||||||
ID_Recibos.Add(IntToStr(ARecibosCliente.ID));
|
ID_Recibos.Add(ARecibosCliente.ID);
|
||||||
Next;
|
Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
//Solo previsualizamos el item seleccionado
|
//Solo previsualizamos el item seleccionado
|
||||||
else
|
else
|
||||||
ID_Recibos.Add(IntToStr(ARecibosCliente.ID));
|
ID_Recibos.Add(ARecibosCliente.ID);
|
||||||
|
|
||||||
AReportController.Print(ID_Recibos.CommaText);
|
|
||||||
|
|
||||||
|
AReportController.Print(ID_Recibos);
|
||||||
finally
|
finally
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
ID_Recibos.Free;
|
FreeANDNil(ID_Recibos);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
| |||||||