Informes de recibos de cliente adaptada la cabecera a los parametros

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@893 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
roberto 2009-01-28 10:45:04 +00:00
parent f386074c8e
commit f65df6dd9f
14 changed files with 261 additions and 153 deletions

View File

@ -54,58 +54,58 @@
<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="C:\Documents and Settings\Usuario\adortl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxDataD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxEditorsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxExportD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxExtEditorsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxGridD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxIntl6D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxIntlPrintSys3D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxPageControlD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dclIndyCore.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\designide.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dsnap.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxGDIPlusD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPSCoreD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUISDK_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndyCore.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndyProtocols.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\IndySystem.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Jcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JclVcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JSDialog100.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCmpD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCoreD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvDlgsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvMMD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvNetD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvPageCompsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvStdCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvSystemD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckMD5.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckUCDataConnector.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\pckUserControl_RT.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PngComponentsD10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\PNG_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Indy_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\TB2k_D10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\tbx_d10.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclactnband.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\VclSmp.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\xmlrtl.dcp" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
<DesignClass>TForm</DesignClass>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1693,42 +1693,20 @@ object RptFacturasCliente: TRptFacturasCliente
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 37800.807714351900000000
ReportOptions.LastChange = 39836.552824236110000000
ReportOptions.LastChange = 39840.805247928200000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'procedure frxReportOnStartReport(Sender: TfrxComponent);'
'begin'
' Set('#39'Pagina'#39', 0);'
' Set('#39'TotalPaginas'#39', 0); '
'end;'
''
'procedure Band1OnBeforePrint(Sender: TfrxComponent);'
'begin'
' if not Engine.FinalPass then'
' Set('#39'TotalPaginas'#39', (<TotalPaginas> + 1));'
''
' if Engine.FinalPass then'
' Set('#39'Pagina'#39', (<Pagina> + 1)); '
'end;'
''
'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
'begin'
' if Engine.FinalPass then'
' begin'
' //A la vez que salta este salta la asignacion de pagina por ' +
'lo que no coincide nunca si no suponemos +1 ' +
' ' +
' ' +
' ' +
' '
' if ((<Pagina> + 1) = <TotalPaginas>) then'
' if (<Page#> = <TotalPages#>) then'
' begin '
' mContinua.Visible := True;'
' mContinua.Visible := False;'
' end '
' else'
' begin '
' mContinua.Visible := False;'
' mContinua.Visible := True;'
' end '
' end; '
'end;'

View File

@ -334,9 +334,6 @@ begin
FFechaVenInicio := FechaVenInicio;
FFechaVenFin := FechaVenFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDClientes) then
FListaIDClientes.Free;
FListaIDClientes := ListaIDClientes;
//Se prepara la tabla del listado general del informe

View File

@ -41,6 +41,8 @@ type
schReport: TDASchema;
DataDictionary: TDADataDictionary;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
private
FConnection: IDAConnection;
FIdEmpresa: Integer;
@ -49,13 +51,17 @@ type
FFechaVenInicio: Variant;
FFechaVenFin: Variant;
FListaIDClientes: TIntegerArray;
FListaNombresClientes : TStringList;
FImporteMinimo: Currency;
FDesglosado : Boolean;
procedure _GenerarRecibo(const ID : Integer);
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
function _GenerarInforme(const TipoInforme: String): Binary;
procedure IniciarParametrosInforme;
procedure RecuperarNombresClientes;
public
function GenerarRecibo(const ListaID : TIntegerArray): Binary;
@ -69,7 +75,8 @@ implementation
{$R *.dfm}
uses
uSistemaFunc, StrUtils, uDataModuleServer, schRecibosClienteClient_Intf;
uSistemaFunc, StrUtils, uDataModuleServer, schRecibosClienteClient_Intf,
uROServer, DataAbstract4_Intf;
const
rptInforme = 'InfReciboCliente.fr3';
@ -94,6 +101,8 @@ begin
FConnection := dmServer.DarNuevaConexion;
frxReport.EngineOptions.NewSilentMode := simReThrow;
FListaNombresClientes := TStringList.Create;
frxDBCabecera.DataSource := DADataCabecera;
frxDBCompensados.DataSource := DADataCompensados;
end;
@ -112,6 +121,56 @@ begin
end;
end;
procedure TRptRecibosCliente.IniciarParametrosInforme;
var
ATextos : TStringList;
ACadena : String;
begin
ATextos := TStringList.Create;
try
if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then
ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)])
else
ACadena := 'Sin rango de fechas';
ATextos.Add(ACadena);
ACadena := '';
// Filtrar el informe por fechas de vencimiento
if (not VarIsNull(FFechaVenInicio)) and (not VarIsNull(FFechaVenFin)) then
begin
ACadena := Format('Vencimientos desde el %s hasta el %s', [VarToStr(FFechaVenInicio), VarToStr(FFechaVenFin)]);
ATextos.Add(ACadena);
ACadena := '';
end;
if (FImporteMinimo > 0) then
begin
ACadena := Format('Facturas con importe superior a %m', [FImporteMinimo]);
ATextos.Add(ACadena);
ACadena := '';
end;
if Assigned(FListaIDClientes) and (FListaIDClientes.Count > 0) then
begin
RecuperarNombresClientes;
ACadena := FListaNombresClientes.Text;
end
else begin
ACadena := 'Todos los clientes';
if FDesglosado then
ACadena := ACadena + ' (desglosados)'
end;
ATextos.Add(ACadena);
ACadena := '';
frxReport.Variables.Variables['TextoParametros'] := ATextos.Text;
finally
FreeAndNil(ATextos);
end;
end;
procedure TRptRecibosCliente.PrepararTablaInforme(ATabla: TDAMemDataTable);
var
Condicion: TDAWhereExpression;
@ -243,6 +302,101 @@ begin
ATabla.Where.AddText(AWhereStr);
end;
procedure TRptRecibosCliente.RecuperarNombresClientes;
var
AContactosService : IsrvContactos;
Intf : IInterface;
AClientID : TGUID;
ATableNameArray: StringArray;
ATableRequestInfoArray: TableRequestInfoArray;
ATableRequestInfo: TableRequestInfoV5;
AStream: TMemoryStream;
ADataTable: TDAMemDataTable;
i: Integer;
AWhereBuilder : TDAWhereBuilder;
ACondicion : TDAWhereExpression;
begin
CreateGUID(AClientID);
GetClassFactory('srvContactos').CreateInstance(AClientID, Intf);
if Assigned(Intf) then
begin
AContactosService := Intf as IsrvContactos;
ATableNameArray := StringArray.Create;
ATableRequestInfoArray := TableRequestInfoArray.Create;
AWhereBuilder := TDAWhereBuilder.Create;
try
ATableNameArray.Add('Clientes');
ATableRequestInfo := TableRequestInfoV5.Create;
with ATableRequestInfo do
begin
IncludeSchema := True;
MaxRecords := -1;
UserFilter := '';
AWhereBuilder.Clear;
with AWhereBuilder do
for i := 0 to FListaIDClientes.Count - 1 do
begin
ACondicion := NewBinaryExpression(
NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDClientes[i], datInteger), dboEqual),
NewBinaryExpression(NewField('', 'ID_EMPRESA'), NewConstant(FIdEmpresa, datInteger), dboEqual),
dboAnd);
if not AWhereBuilder.IsEmpty then
Expression := NewBinaryExpression(Expression, ACondicion, dboOr)
else
Expression := ACondicion;
end;
WhereClause := AWhereBuilder.ExpressionToXmlNode(AWhereBuilder.Expression);
end;
try
ATableRequestInfoArray.Add(ATableRequestInfo);
AStream := AContactosService.GetData(ATableNameArray, ATableRequestInfoArray);
if Assigned(AStream) then
begin
ADataTable := TDAMemDataTable.Create(nil);
try
ADataTable.Name := 'Clientes';
ADataTable.LocalDataStreamer := Bin2DataStreamer;
ADataTable.RemoteFetchEnabled := False;
Bin2DataStreamer.ReadDataset(AStream, ADataTable, True);
ADataTable.Open;
FListaNombresClientes.Clear;
for i := 0 to ADataTable.RecordCount - 1 do
begin
FListaNombresClientes.Add(ADataTable.FieldByName('NOMBRE').AsString);
ADataTable.Next;
end;
finally
FreeANDNil(ADataTable);
end;
end;
except
on e: Exception do
dmServer.EscribirLog(e.Message);
end;
finally
FreeANDNIL(ATableRequestInfoArray);
FreeANDNIL(ATableNameArray);
FreeANDNIL(AWhereBuilder);
end;
end;
end;
procedure TRptRecibosCliente.DataModuleDestroy(Sender: TObject);
begin
FreeANDNIL(FListaNombresClientes);
end;
function TRptRecibosCliente.GenerarInformeListadoRecibos(
const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
const FechaVenInicio: Variant; FechaVenFin: Variant;
@ -265,9 +419,6 @@ begin
FFechaVenInicio := FechaVenInicio;
FFechaVenFin := FechaVenFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDClientes) then
FListaIDClientes.Free;
FListaIDClientes := ListaIDClientes;
//Se prepara la tabla del listado general del informe
@ -289,7 +440,8 @@ begin
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosResumen, TRUE, '', TRUE, TRUE);
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE
if Desglosado then
FDesglosado := Desglosado;
if FDesglosado then
ATipoInforme := rptInformeListadoRecibosClienteDesglosado
else
ATipoInforme := rptInformeListadoRecibosCliente;
@ -329,9 +481,6 @@ begin
FFechaVenInicio := FechaVenInicio;
FFechaVenFin := FechaVenFin;
FImporteMinimo := ImporteMinimo;
if Assigned(FListaIDClientes) then
FListaIDClientes.Free;
FListaIDClientes := ListaIDClientes;
//Se prepara la tabla del listado general del informe
@ -365,7 +514,8 @@ begin
Bin2DataStreamer.ReadDataset(AStream, tbl_InformeListadoRecibosPendResumen, TRUE, '', TRUE, TRUE);
//DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE
if Desglosado then
FDesglosado := Desglosado;
if FDesglosado then
ATipoInforme := rptInformeListadoRecibosCliPendientesDesglosado
else
ATipoInforme := rptInformeListadoRecibosCliPendientes;
@ -393,8 +543,7 @@ begin
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
frxReport.LoadFromFile(AInforme, True);
frxReport.Variables.Variables['FechaInicio'] := FFechaInicio;
frxReport.Variables.Variables['FechaFin'] := FFechaFin;
IniciarParametrosInforme;
frxReport.PrepareReport(False);
frxReport.PreviewPages.SaveToStream(Result);

Binary file not shown.

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN
VALUE "FileVersion", "1.6.5.0\0"
VALUE "ProductVersion", "1.6.5.0\0"
VALUE "CompileDate", "viernes, 23 de enero de 2009 18:57\0"
VALUE "CompileDate", "miércoles, 28 de enero de 2009 10:50\0"
END
END
BLOCK "VarFileInfo"