Listados de recibos de proveedor -> Arreglos estéticos
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@894 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
f65df6dd9f
commit
63bf5af46f
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
@ -1,6 +1,7 @@
|
||||
object RptRecibosProveedor: TRptRecibosProveedor
|
||||
OldCreateOrder = True
|
||||
OnCreate = DataModuleCreate
|
||||
OnDestroy = DataModuleDestroy
|
||||
Height = 405
|
||||
Width = 873
|
||||
object DADataCabecera: TDADataSource
|
||||
@ -1148,42 +1149,20 @@ object RptRecibosProveedor: TRptRecibosProveedor
|
||||
PrintOptions.Printer = 'Por defecto'
|
||||
PrintOptions.PrintOnSheet = 0
|
||||
ReportOptions.CreateDate = 37800.807714351900000000
|
||||
ReportOptions.LastChange = 39839.760718449080000000
|
||||
ReportOptions.LastChange = 39841.474564699070000000
|
||||
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;'
|
||||
|
||||
@ -41,6 +41,7 @@ type
|
||||
schReport: TDASchema;
|
||||
DataDictionary: TDADataDictionary;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
procedure DataModuleDestroy(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
FIdEmpresa: Integer;
|
||||
@ -50,7 +51,11 @@ type
|
||||
FFechaVenFin: Variant;
|
||||
FListaIDProveedores: TIntegerArray;
|
||||
FImporteMinimo: Currency;
|
||||
|
||||
FListaNombresProveedores: TStringList;
|
||||
FDesglosado : Boolean;
|
||||
|
||||
procedure RecuperarNombresProveedores;
|
||||
procedure IniciarParametrosInforme;
|
||||
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
|
||||
function _GenerarInforme(const TipoInforme: String): Binary;
|
||||
@ -64,7 +69,8 @@ implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uSistemaFunc, StrUtils, uDataModuleServer, schRecibosProveedorClient_Intf;
|
||||
uSistemaFunc, StrUtils, uDataModuleServer, schRecibosProveedorClient_Intf,
|
||||
uROServer, DataAbstract4_Intf;
|
||||
|
||||
const
|
||||
rptInforme = 'InfReciboProveedor.fr3';
|
||||
@ -89,10 +95,17 @@ begin
|
||||
FConnection := dmServer.DarNuevaConexion;
|
||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||
|
||||
FListaNombresProveedores := TStringList.Create;
|
||||
|
||||
frxDBCabecera.DataSource := DADataCabecera;
|
||||
frxDBCompensados.DataSource := DADataCompensados;
|
||||
end;
|
||||
|
||||
procedure TRptRecibosProveedor.DataModuleDestroy(Sender: TObject);
|
||||
begin
|
||||
FreeANDNIL(FListaNombresProveedores);
|
||||
end;
|
||||
|
||||
function TRptRecibosProveedor.GenerarInformeListadoRecibos(
|
||||
const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
|
||||
const FechaVenInicio, FechaVenFin: Variant;
|
||||
@ -140,6 +153,7 @@ begin
|
||||
|
||||
|
||||
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
|
||||
FDesglosado := Desglosado;
|
||||
if Desglosado then
|
||||
ATipoInforme := rptInformeListadoRecibosProveedorDesglosado
|
||||
else
|
||||
@ -217,6 +231,7 @@ begin
|
||||
|
||||
|
||||
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
|
||||
FDesglosado := Desglosado;
|
||||
if Desglosado then
|
||||
ATipoInforme := rptInformeListadoRecibosProvPendientesDesglosado
|
||||
else
|
||||
@ -234,6 +249,48 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptRecibosProveedor.IniciarParametrosInforme;
|
||||
var
|
||||
ATextos : TStringList;
|
||||
ACadena : String;
|
||||
begin
|
||||
ATextos := TStringList.Create;
|
||||
|
||||
try
|
||||
if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then
|
||||
ACadena := Format('Fechas de recibo desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)])
|
||||
else
|
||||
ACadena := 'Sin rango de fechas';
|
||||
ATextos.Add(ACadena);
|
||||
ACadena := '';
|
||||
|
||||
if (FImporteMinimo > 0) then
|
||||
begin
|
||||
ACadena := Format('Recibos con importe superior a %m', [FImporteMinimo]);
|
||||
ATextos.Add(ACadena);
|
||||
ACadena := '';
|
||||
end;
|
||||
|
||||
if Assigned(FListaIDProveedores) and (FListaIDProveedores.Count > 0) then
|
||||
begin
|
||||
RecuperarNombresProveedores;
|
||||
ACadena := FListaNombresProveedores.Text;
|
||||
end
|
||||
else begin
|
||||
ACadena := 'Todos los proveedores';
|
||||
if FDesglosado then
|
||||
ACadena := ACadena + ' (desglosados)'
|
||||
end;
|
||||
|
||||
ATextos.Add(ACadena);
|
||||
ACadena := '';
|
||||
|
||||
frxReport.Variables.Variables['TextoParametros'] := ATextos.Text;
|
||||
finally
|
||||
FreeAndNil(ATextos);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRptRecibosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
@ -365,6 +422,97 @@ begin
|
||||
ATabla.Where.AddText(AWhereStr);
|
||||
end;
|
||||
|
||||
procedure TRptRecibosProveedor.RecuperarNombresProveedores;
|
||||
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('Proveedores');
|
||||
ATableRequestInfo := TableRequestInfoV5.Create;
|
||||
|
||||
with ATableRequestInfo do
|
||||
begin
|
||||
IncludeSchema := True;
|
||||
MaxRecords := -1;
|
||||
UserFilter := '';
|
||||
|
||||
AWhereBuilder.Clear;
|
||||
with AWhereBuilder do
|
||||
for i := 0 to FListaIDProveedores.Count - 1 do
|
||||
begin
|
||||
ACondicion := NewBinaryExpression(
|
||||
NewBinaryExpression(NewField('', 'ID'), NewConstant(FListaIDProveedores[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 := 'Proveedores';
|
||||
ADataTable.LocalDataStreamer := Bin2DataStreamer;
|
||||
ADataTable.RemoteFetchEnabled := False;
|
||||
Bin2DataStreamer.ReadDataset(AStream, ADataTable, True);
|
||||
|
||||
ADataTable.Open;
|
||||
FListaNombresProveedores.Clear;
|
||||
for i := 0 to ADataTable.RecordCount - 1 do
|
||||
begin
|
||||
FListaNombresProveedores.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;
|
||||
|
||||
|
||||
function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String): Binary;
|
||||
var
|
||||
AInforme: Variant;
|
||||
@ -376,9 +524,8 @@ 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);
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user