Remesas de cliente

git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@56 f33bb606-9f5c-448d-9c99-757f00063c96
This commit is contained in:
David Arranz 2010-01-25 11:48:44 +00:00
parent c44470d4e8
commit 04a9086456
3 changed files with 404 additions and 150 deletions

View File

@ -16,38 +16,263 @@ object RptRemesasCliente: TRptRemesasCliente
Left = 344 Left = 344
Top = 72 Top = 72
end end
object tbl_Cabecera: TDACDSDataTable object tbl_Cabecera: TDAMemDataTable
RemoteUpdatesOptions = [] RemoteUpdatesOptions = []
Fields = <> Fields = <
Params = <> item
Name = 'ID'
DataType = datInteger
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'FECHA_REMESA'
DataType = datDateTime
end
item
Name = 'IMPORTE_TOTAL'
DataType = datFloat
end
item
Name = 'TITULAR'
DataType = datString
Size = 255
end
item
Name = 'ENTIDAD'
DataType = datString
Size = 15
end
item
Name = 'SUCURSAL'
DataType = datString
Size = 15
end
item
Name = 'DC'
DataType = datString
Size = 15
end
item
Name = 'CUENTA'
DataType = datString
Size = 15
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'NIF_CIF_EMPRESA'
DataType = datString
Size = 15
end
item
Name = 'RAZON_SOCIAL'
DataType = datString
Size = 255
end
item
Name = 'CALLE_EMPRESA'
DataType = datString
Size = 255
end
item
Name = 'POBLACION_EMPRESA'
DataType = datString
Size = 255
end
item
Name = 'PROVINCIA_EMPRESA'
DataType = datString
Size = 255
end
item
Name = 'CODIGO_POSTAL_EMPRESA'
DataType = datString
Size = 10
end
item
Name = 'TELEFONO_1'
DataType = datString
Size = 25
end
item
Name = 'FAX'
DataType = datString
Size = 25
end
item
Name = 'MOVIL_1'
DataType = datString
Size = 25
end
item
Name = 'EMAIL_1'
DataType = datString
Size = 255
end
item
Name = 'PAGINA_WEB'
DataType = datString
Size = 255
end
item
Name = 'REGISTRO_MERCANTIL'
DataType = datString
Size = 255
end
item
Name = 'LOGOTIPO'
DataType = datBlob
end>
Params = <
item
Name = 'ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
MasterMappingMode = mmDataRequest MasterMappingMode = mmDataRequest
LogChanges = False LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] LocalSchema = schReport
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LocalDataStreamer = Bin2DataStreamer
LogicalName = 'Informe_Cabecera'
IndexDefs = <> IndexDefs = <>
Left = 264 Left = 264
Top = 128 Top = 128
end end
object tbl_Detalles: TDACDSDataTable object tbl_Detalles: TDAMemDataTable
RemoteUpdatesOptions = [] RemoteUpdatesOptions = []
Fields = <> Fields = <
Params = <> item
Name = 'ID'
DataType = datInteger
end
item
Name = 'REFERENCIA'
DataType = datString
Size = 255
end
item
Name = 'SITUACION'
DataType = datString
Size = 9
end
item
Name = 'ID_FACTURA'
DataType = datInteger
end
item
Name = 'ID_REMESA'
DataType = datInteger
end
item
Name = 'REFERENCIA_REMESA'
DataType = datString
Size = 255
end
item
Name = 'FECHA_VENCIMIENTO'
DataType = datDateTime
end
item
Name = 'DESCRIPCION'
DataType = datString
Size = 255
end
item
Name = 'OBSERVACIONES'
DataType = datString
Size = 255
end
item
Name = 'IMPORTE'
DataType = datCurrency
end
item
Name = 'OTROS_GASTOS'
DataType = datCurrency
end
item
Name = 'IMPORTE_TOTAL'
DataType = datCurrency
end
item
Name = 'FECHA_FACTURA'
DataType = datDateTime
end
item
Name = 'FORMA_PAGO_FACTURA'
DataType = datString
Size = 255
end
item
Name = 'IMPORTE_FACTURA'
DataType = datCurrency
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
end
item
Name = 'NOMBRE_CLIENTE'
DataType = datString
Size = 255
end
item
Name = 'NIF_CIF_CLIENTE'
DataType = datString
Size = 15
end
item
Name = 'ENTIDAD'
DataType = datString
Size = 254
end
item
Name = 'SUCURSAL'
DataType = datString
Size = 254
end
item
Name = 'DC'
DataType = datString
Size = 254
end
item
Name = 'CUENTA'
DataType = datString
Size = 254
end>
Params = <
item
Name = 'ID_REMESA'
DataType = datInteger
Value = '1'
ParamType = daptInput
end>
MasterMappingMode = mmDataRequest MasterMappingMode = mmDataRequest
LogChanges = False LogChanges = False
StreamingOptions = [soDisableEventsWhileStreaming] StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False RemoteFetchEnabled = False
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] LocalSchema = schReport
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LocalDataStreamer = Bin2DataStreamer
LogicalName = 'Informe_Detalles'
IndexDefs = <> IndexDefs = <>
Left = 344 Left = 344
Top = 128 Top = 128
end end
object DABINAdapter: TDABINAdapter
Left = 48
Top = 80
end
object frxRichObject1: TfrxRichObject object frxRichObject1: TfrxRichObject
Left = 48 Left = 48
Top = 296 Top = 296
@ -331,7 +556,7 @@ object RptRemesasCliente: TRptRemesasCliente
item item
Name = 'ID_REMESA' Name = 'ID_REMESA'
DataType = datInteger DataType = datInteger
Value = '' Value = '1'
ParamType = daptInput ParamType = daptInput
end> end>
Statements = < Statements = <
@ -349,10 +574,12 @@ object RptRemesasCliente: TRptRemesasCliente
'ECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' V_RE' + 'ECHA_FACTURA,'#10' V_RECIBOS_CLIENTE.FORMA_PAGO_FACTURA,'#10' V_RE' +
'CIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.ID_EMPRESA,' + 'CIBOS_CLIENTE.IMPORTE_FACTURA,'#10' V_RECIBOS_CLIENTE.ID_EMPRESA,' +
#10' V_RECIBOS_CLIENTE.NOMBRE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF' + #10' V_RECIBOS_CLIENTE.NOMBRE_CLIENTE,'#10' V_RECIBOS_CLIENTE.NIF' +
'_CIF_CLIENTE,'#10' V_RECIBOS_CLIENTE.ENTIDAD_CLIENTE,'#10' V_RECIB' + '_CIF_CLIENTE,'#10' V_RECIBOS_CLIENTE.POBLACION_CLIENTE,'#10' V_REC' +
'OS_CLIENTE.SUCURSAL_CLIENTE,'#10' V_RECIBOS_CLIENTE.DC_CLIENTE,'#10' ' + 'IBOS_CLIENTE.CODIGO_POSTAL_CLIENTE,'#10' substr(DATOS_BANCARIOS, ' +
' V_RECIBOS_CLIENTE.CUENTA_CLIENTE'#10#10#10'FROM V_RECIBOS_CLIENTE'#10'WHE' + '1,4) as ENTIDAD,'#10' substr(DATOS_BANCARIOS, 6,9) as SUCURSAL,'#10' ' +
'RE ID_REMESA = :ID_REMESA'#10'ORDER BY FECHA_VENCIMIENTO' ' substr(DATOS_BANCARIOS, 11,13) as DC,'#10' substr(DATOS_BANCAR' +
'IOS, 14,23) as CUENTA'#10#10#10#10'FROM V_RECIBOS_CLIENTE'#10'WHERE ID_REMESA ' +
'= :ID_REMESA'#10'ORDER BY REFERENCIA, FECHA_VENCIMIENTO'#10
StatementType = stSQL StatementType = stSQL
ColumnMappings = < ColumnMappings = <
item item
@ -365,7 +592,8 @@ object RptRemesasCliente: TRptRemesasCliente
end end
item item
DatasetField = 'SITUACION' DatasetField = 'SITUACION'
TableField = 'SITUACION' TableField = '<unknown>'
SQLOrigin = 'SITUACION'
end end
item item
DatasetField = 'ID_FACTURA' DatasetField = 'ID_FACTURA'
@ -377,7 +605,8 @@ object RptRemesasCliente: TRptRemesasCliente
end end
item item
DatasetField = 'REFERENCIA_REMESA' DatasetField = 'REFERENCIA_REMESA'
TableField = 'REFERENCIA_REMESA' TableField = '<unknown>'
SQLOrigin = 'REFERENCIA_REMESA'
end end
item item
DatasetField = 'FECHA_VENCIMIENTO' DatasetField = 'FECHA_VENCIMIENTO'
@ -395,53 +624,74 @@ object RptRemesasCliente: TRptRemesasCliente
DatasetField = 'IMPORTE' DatasetField = 'IMPORTE'
TableField = 'IMPORTE' TableField = 'IMPORTE'
end end
item
DatasetField = 'FECHA_FACTURA'
TableField = 'FECHA_FACTURA'
end
item
DatasetField = 'FORMA_PAGO_FACTURA'
TableField = 'FORMA_PAGO_FACTURA'
end
item
DatasetField = 'IMPORTE_FACTURA'
TableField = 'IMPORTE_FACTURA'
end
item
DatasetField = 'ID_EMPRESA'
TableField = 'ID_EMPRESA'
end
item
DatasetField = 'NOMBRE_CLIENTE'
TableField = 'NOMBRE_CLIENTE'
end
item
DatasetField = 'NIF_CIF_CLIENTE'
TableField = 'NIF_CIF_CLIENTE'
end
item
DatasetField = 'ENTIDAD_CLIENTE'
TableField = 'ENTIDAD_CLIENTE'
end
item
DatasetField = 'SUCURSAL_CLIENTE'
TableField = 'SUCURSAL_CLIENTE'
end
item
DatasetField = 'DC_CLIENTE'
TableField = 'DC_CLIENTE'
end
item
DatasetField = 'CUENTA_CLIENTE'
TableField = 'CUENTA_CLIENTE'
end
item item
DatasetField = 'OTROS_GASTOS' DatasetField = 'OTROS_GASTOS'
TableField = 'OTROS_GASTOS' TableField = 'OTROS_GASTOS'
end end
item item
DatasetField = 'IMPORTE_TOTAL' DatasetField = 'IMPORTE_TOTAL'
TableField = 'IMPORTE_TOTAL' TableField = '<unknown>'
SQLOrigin = 'IMPORTE_TOTAL'
end
item
DatasetField = 'FECHA_FACTURA'
TableField = '<unknown>'
SQLOrigin = 'FECHA_FACTURA'
end
item
DatasetField = 'FORMA_PAGO_FACTURA'
TableField = '<unknown>'
SQLOrigin = 'FORMA_PAGO_FACTURA'
end
item
DatasetField = 'IMPORTE_FACTURA'
TableField = '<unknown>'
SQLOrigin = 'IMPORTE_FACTURA'
end
item
DatasetField = 'ID_EMPRESA'
TableField = '<unknown>'
SQLOrigin = 'ID_EMPRESA'
end
item
DatasetField = 'NOMBRE_CLIENTE'
TableField = '<unknown>'
SQLOrigin = 'NOMBRE_CLIENTE'
end
item
DatasetField = 'NIF_CIF_CLIENTE'
TableField = '<unknown>'
SQLOrigin = 'NIF_CIF_CLIENTE'
end
item
DatasetField = 'ENTIDAD'
TableField = '<unknown>'
SQLOrigin = 'ENTIDAD'
end
item
DatasetField = 'SUCURSAL'
TableField = '<unknown>'
SQLOrigin = 'SUCURSAL'
end
item
DatasetField = 'DC'
TableField = '<unknown>'
SQLOrigin = 'DC'
end
item
DatasetField = 'CUENTA'
TableField = '<unknown>'
SQLOrigin = 'CUENTA'
end
item
DatasetField = 'POBLACION_CLIENTE'
TableField = '<unknown>'
SQLOrigin = 'POBLACION_CLIENTE'
end
item
DatasetField = 'CODIGO_POSTAL_CLIENTE'
TableField = '<unknown>'
SQLOrigin = 'CODIGO_POSTAL_CLIENTE'
end> end>
end> end>
Name = 'Informe_Detalles' Name = 'Informe_Detalles'
@ -489,15 +739,15 @@ object RptRemesasCliente: TRptRemesasCliente
end end
item item
Name = 'IMPORTE' Name = 'IMPORTE'
DataType = datFloat DataType = datCurrency
end end
item item
Name = 'OTROS_GASTOS' Name = 'OTROS_GASTOS'
DataType = datFloat DataType = datCurrency
end end
item item
Name = 'IMPORTE_TOTAL' Name = 'IMPORTE_TOTAL'
DataType = datFloat DataType = datCurrency
end end
item item
Name = 'FECHA_FACTURA' Name = 'FECHA_FACTURA'
@ -510,7 +760,7 @@ object RptRemesasCliente: TRptRemesasCliente
end end
item item
Name = 'IMPORTE_FACTURA' Name = 'IMPORTE_FACTURA'
DataType = datFloat DataType = datCurrency
end end
item item
Name = 'ID_EMPRESA' Name = 'ID_EMPRESA'
@ -527,24 +777,34 @@ object RptRemesasCliente: TRptRemesasCliente
Size = 15 Size = 15
end end
item item
Name = 'ENTIDAD_CLIENTE' Name = 'POBLACION_CLIENTE'
DataType = datString DataType = datString
Size = 15 Size = 255
end end
item item
Name = 'SUCURSAL_CLIENTE' Name = 'CODIGO_POSTAL_CLIENTE'
DataType = datString DataType = datString
Size = 15 Size = 10
end end
item item
Name = 'DC_CLIENTE' Name = 'ENTIDAD'
DataType = datString DataType = datString
Size = 15 Size = 254
end end
item item
Name = 'CUENTA_CLIENTE' Name = 'SUCURSAL'
DataType = datString DataType = datString
Size = 15 Size = 254
end
item
Name = 'DC'
DataType = datString
Size = 254
end
item
Name = 'CUENTA'
DataType = datString
Size = 254
end> end>
end> end>
JoinDataTables = <> JoinDataTables = <>
@ -562,7 +822,7 @@ object RptRemesasCliente: TRptRemesasCliente
Top = 158 Top = 158
end end
object frxReport: TfrxReport object frxReport: TfrxReport
Version = '4.3' Version = '4.8.11'
DotMatrixReport = False DotMatrixReport = False
EngineOptions.DoublePass = True EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports' IniFile = '\Software\Fast Reports'
@ -572,54 +832,15 @@ object RptRemesasCliente: TRptRemesasCliente
PrintOptions.Printer = 'Default' PrintOptions.Printer = 'Default'
PrintOptions.PrintOnSheet = 0 PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37871.995398692100000000 ReportOptions.CreateDate = 37871.995398692100000000
ReportOptions.LastChange = 39258.760263842600000000 ReportOptions.LastChange = 40199.771052685190000000
ReportOptions.VersionBuild = '1' ReportOptions.VersionBuild = '1'
ReportOptions.VersionMajor = '12' ReportOptions.VersionMajor = '12'
ReportOptions.VersionMinor = '13' ReportOptions.VersionMinor = '13'
ReportOptions.VersionRelease = '1' ReportOptions.VersionRelease = '1'
ScriptLanguage = 'PascalScript' ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'procedure ReportSummary1OnBeforePrint(Sender: TfrxComponent);'
'begin'
' Engine.CurY := Engine.CurY + Engine.FreeSpace - ReportSummary1' +
'.Height - 1;'
'end;'
''
'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);'
'var'
' Cadena: String;'
'begin'
' DatosEmpresa.Lines.Clear;'
' DatosEmpresa.Lines.Add(<frxDBCabecera."RAZON_SOCIAL">);'
' DatosEmpresa.Lines.Add(<frxDBCabecera."CALLE_EMPRESA">);'
''
' Cadena := '#39#39';'
' if (<frxDBCabecera."TELEFONO_1"> <> '#39#39') then'
' Cadena := '#39'TLF: '#39' + <frxDBCabecera."TELEFONO_1">;'
' if (<frxDBCabecera."FAX"> <> '#39#39') then'
' Cadena := Cadena + '#39' FAX: '#39' + <frxDBCabecera."FAX">;'
' DatosEmpresa.Lines.Add(Cadena);'
''
' Cadena := '#39#39';'
' if (<frxDBCabecera."CODIGO_POSTAL_EMPRESA"> <> '#39#39') then'
' Cadena := <frxDBCabecera."CODIGO_POSTAL_EMPRESA">;'
' if (<frxDBCabecera."POBLACION_EMPRESA"> <> '#39#39') then'
' Cadena := Cadena + '#39' '#39' + <frxDBCabecera."POBLACION_EMPRES' +
'A">;'
' if (<frxDBCabecera."PROVINCIA_EMPRESA"> <> '#39#39') then'
' Cadena := Cadena + '#39' - '#39' + <frxDBCabecera."PROVINCIA_EMPR' +
'ESA">;'
' DatosEmpresa.Lines.Add(Cadena);'
'end;'
''
'begin'
''
'end.')
ShowProgress = False ShowProgress = False
StoreInDFM = False StoreInDFM = False
OnStartReport = 'frxReportOnStartReport'
Left = 169 Left = 169
Top = 16 Top = 16
end end
@ -627,6 +848,7 @@ object RptRemesasCliente: TRptRemesasCliente
UserName = 'frxDBCabecera' UserName = 'frxDBCabecera'
CloseDataSource = False CloseDataSource = False
DataSource = DADataCabecera DataSource = DADataCabecera
BCDToCurrency = False
Left = 264 Left = 264
Top = 16 Top = 16
end end
@ -634,7 +856,12 @@ object RptRemesasCliente: TRptRemesasCliente
UserName = 'frxDBDetalles' UserName = 'frxDBDetalles'
CloseDataSource = False CloseDataSource = False
DataSource = DADataDetalles DataSource = DADataDetalles
BCDToCurrency = False
Left = 344 Left = 344
Top = 16 Top = 16
end end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 48
Top = 96
end
end end

View File

@ -5,17 +5,16 @@ interface
uses uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, frxDBSet, uDAScriptingProvider, Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient,
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
uDAInterfaces, uDADataStreamer; uDAInterfaces, uDADataStreamer, uDABin2DataStreamer, FactuGES_Intf, uROClient;
type type
TRptRemesasCliente = class(TDataModule) TRptRemesasCliente = class(TDataModule)
DADataCabecera: TDADataSource; DADataCabecera: TDADataSource;
DADataDetalles: TDADataSource; DADataDetalles: TDADataSource;
tbl_Cabecera: TDACDSDataTable; tbl_Cabecera: TDAMemDataTable;
tbl_Detalles: TDACDSDataTable; tbl_Detalles: TDAMemDataTable;
DABINAdapter: TDABINAdapter;
frxRichObject1: TfrxRichObject; frxRichObject1: TfrxRichObject;
frxBarCodeObject1: TfrxBarCodeObject; frxBarCodeObject1: TfrxBarCodeObject;
frxOLEObject1: TfrxOLEObject; frxOLEObject1: TfrxOLEObject;
@ -26,15 +25,18 @@ type
frxDBCabecera: TfrxDBDataset; frxDBCabecera: TfrxDBDataset;
frxDBDetalles: TfrxDBDataset; frxDBDetalles: TfrxDBDataset;
frxReport: TfrxReport; frxReport: TfrxReport;
Bin2DataStreamer: TDABin2DataStreamer;
schReport: TDASchema; schReport: TDASchema;
DataDictionary: TDADataDictionary; DataDictionary: TDADataDictionary;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject); procedure DataModuleDestroy(Sender: TObject);
private private
FConnection: IDAConnection; FConnection: IDAConnection;
procedure GenerarRemesa(const ID : Integer); overload; procedure _GenerarRemesa(const ID : Integer);
public public
function GenerarRemesa(const ID : String): Binary; overload; function GenerarRemesa(const ListaID : TIntegerArray): Binary;
end; end;
implementation implementation
@ -42,7 +44,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
uDataModuleServer; uSistemaFunc, uDataModuleServer;
const const
rptInforme = 'InfRemesaCliente.fr3'; rptInforme = 'InfRemesaCliente.fr3';
@ -64,31 +66,22 @@ begin
frxDBCabecera.DataSource := DADataCabecera; frxDBCabecera.DataSource := DADataCabecera;
frxDBCabecera.CloseDataSource := False; frxDBCabecera.CloseDataSource := False;
frxDBCompensados.DataSource := DADataCompensados; frxDBDetalles.DataSource := DADataDetalles;
frxDBCompensados.CloseDataSource := False; frxDBDetalles.CloseDataSource := False;
end; end;
function TRptRemesasCliente.GenerarRemesa(const ID: String): Binary; function TRptRemesasCliente.GenerarRemesa(const ListaID: TIntegerArray): Binary;
var var
ID_Remesas: TStringList;
i: Integer; i: Integer;
begin begin
Result := Binary.Create; Result := Binary.Create;
FConnection.BeginTransaction;
try try
ID_Remesas := TStringList.Create;
ID_Remesas.CommaText := ID;
//Vamos generando todos y cada uno de los albaranes recibidos //Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Remesas.Count - 1 do for i := 0 to ListaID.Count - 1 do
GenerarRemesa(StrToInt(ID_Remesas.Strings[i])); _GenerarRemesa(ListaID.Items[i]);
frxReport.PreviewPages.SaveToStream(Result); frxReport.PreviewPages.SaveToStream(Result);
finally finally
FConnection.RollbackTransaction;
end; end;
end; end;
@ -98,13 +91,35 @@ begin
tbl_Detalles.Active := False; tbl_Detalles.Active := False;
end; end;
procedure TRptRemesasCliente.GenerarRemesa(const ID: Integer); procedure TRptRemesasCliente._GenerarRemesa(const ID: Integer);
var var
AStream: TMemoryStream;
dsMaster: IDADataset;
dsDetail: IDADataset;
AInforme: Variant; AInforme: Variant;
begin begin
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
try
tbl_Cabecera.Active := False;
tbl_Detalles.Active := False;
tbl_Cabecera.ParamByName('ID').AsInteger := ID;
tbl_Detalles.ParamByName('ID_REMESA').AsInteger := ID;
tbl_Cabecera.Active := True;
tbl_Detalles.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString);
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarRecibo, no encuentra informe ' + rptInforme));
frxReport.LoadFromFile(AInforme, True);
frxReport.PrepareReport(False);
finally
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
end;
{
AStream := TMemoryStream.Create; AStream := TMemoryStream.Create;
try try
@ -131,6 +146,7 @@ begin
dsMaster := Nil; dsMaster := Nil;
dsDetail := Nil; dsDetail := Nil;
end; end;
}
end; end;
end. end.

View File

@ -29,8 +29,11 @@ type
procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceCreate(Sender: TObject);
procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset;
const IncludeSchema: Boolean; const MaxRecords: Integer); const IncludeSchema: Boolean; const MaxRecords: Integer);
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string);
var aConnectionName: string);
protected
function GenerarInforme(const ListaID: TIntegerArray): Binary;
end; end;
implementation implementation
@ -39,9 +42,7 @@ implementation
uses uses
{Generated:} FactuGES_Invk, uDataModuleServer, {Generated:} FactuGES_Invk, uDataModuleServer,
uDatabaseUtils, schRemesasClienteClient_Intf, uRestriccionesUsuarioUtils, uDatabaseUtils, schRemesasClienteClient_Intf, uRestriccionesUsuarioUtils,
uBizRemesasClienteServer, uBizRemesasClienteServer, uRptRemesasCliente_Server, Dialogs;
// uRptRemesasCliente_Server,
Dialogs;
procedure Create_srvRemesasCliente(out anInstance : IUnknown); procedure Create_srvRemesasCliente(out anInstance : IUnknown);
begin begin
@ -54,15 +55,13 @@ procedure TsrvRemesasCliente.DARemoteServiceBeforeGetDatasetData(
const Dataset: IDADataset; const IncludeSchema: Boolean; const Dataset: IDADataset; const IncludeSchema: Boolean;
const MaxRecords: Integer); const MaxRecords: Integer);
begin begin
{
if DataSet.Name = nme_RemesasCliente then if DataSet.Name = nme_RemesasCliente then
begin begin
{ Aquí se asegura que el usuario sólo accede a los RemesasCliente { Aquí se asegura que el usuario sólo accede a los RemesasCliente
de las empresas a las que tiene permiso para acceder de las empresas a las que tiene permiso para acceder
filtrando DataSet por ID_EMPRESA. } filtrando DataSet por ID_EMPRESA. }
{ FiltrarAccesoUsuario(Session, Connection, schRemesasCliente, DataSet, fld_RemesasClienteID_EMPRESA); FiltrarAccesoUsuario(Session, Connection, schRemesasCliente, DataSet, fld_RemesasClienteID_EMPRESA);
end; end;
}
end; end;
procedure TsrvRemesasCliente.DARemoteServiceCreate(Sender: TObject); procedure TsrvRemesasCliente.DARemoteServiceCreate(Sender: TObject);
@ -77,6 +76,18 @@ begin
ConnectionName := dmServer.ConnectionName; ConnectionName := dmServer.ConnectionName;
end; end;
function TsrvRemesasCliente.GenerarInforme(const ListaID: TIntegerArray): Binary;
var
AReportGenerator : TRptRemesasCliente;
begin
AReportGenerator := TRptRemesasCliente.Create(nil);
try
Result := AReportGenerator.GenerarRemesa(ListaID);
finally
FreeAndNIL(AReportGenerator);
end;
end;
initialization initialization
TROClassFactory.Create('srvRemesasCliente', Create_srvRemesasCliente, TsrvRemesasCliente_Invoker); TROClassFactory.Create('srvRemesasCliente', Create_srvRemesasCliente, TsrvRemesasCliente_Invoker);