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