Listados de pedidos a proveedor -> Arreglos estéticos
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@891 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
5bfc178b04
commit
c5e8dffe74
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 RptPedidosProveedor: TRptPedidosProveedor
|
object RptPedidosProveedor: TRptPedidosProveedor
|
||||||
OldCreateOrder = True
|
OldCreateOrder = True
|
||||||
OnCreate = DataModuleCreate
|
OnCreate = DataModuleCreate
|
||||||
|
OnDestroy = DataModuleDestroy
|
||||||
Height = 522
|
Height = 522
|
||||||
Width = 766
|
Width = 766
|
||||||
object schReport: TDASchema
|
object schReport: TDASchema
|
||||||
@ -572,42 +573,20 @@ object RptPedidosProveedor: TRptPedidosProveedor
|
|||||||
PrintOptions.Printer = 'Por defecto'
|
PrintOptions.Printer = 'Por defecto'
|
||||||
PrintOptions.PrintOnSheet = 0
|
PrintOptions.PrintOnSheet = 0
|
||||||
ReportOptions.CreateDate = 37800.807714351900000000
|
ReportOptions.CreateDate = 37800.807714351900000000
|
||||||
ReportOptions.LastChange = 39836.753662280090000000
|
ReportOptions.LastChange = 39840.822843958330000000
|
||||||
ScriptLanguage = 'PascalScript'
|
ScriptLanguage = 'PascalScript'
|
||||||
ScriptText.Strings = (
|
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);'
|
'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);'
|
||||||
'begin'
|
'begin'
|
||||||
' if Engine.FinalPass then'
|
' if Engine.FinalPass then'
|
||||||
' begin'
|
' begin'
|
||||||
|
' if (<Page#> = <TotalPages#>) then'
|
||||||
' //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'
|
|
||||||
' begin '
|
' begin '
|
||||||
' mContinua.Visible := True;'
|
' mContinua.Visible := False;'
|
||||||
' end '
|
' end '
|
||||||
' else'
|
' else'
|
||||||
' begin '
|
' begin '
|
||||||
' mContinua.Visible := False;'
|
' mContinua.Visible := True;'
|
||||||
' end '
|
' end '
|
||||||
' end; '
|
' end; '
|
||||||
'end;'
|
'end;'
|
||||||
|
|||||||
@ -70,18 +70,22 @@ type
|
|||||||
DABin2DataStreamer1: TDABin2DataStreamer;
|
DABin2DataStreamer1: TDABin2DataStreamer;
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
procedure frxReportGetValue(const VarName: string; var Value: Variant);
|
procedure frxReportGetValue(const VarName: string; var Value: Variant);
|
||||||
|
procedure DataModuleDestroy(Sender: TObject);
|
||||||
private
|
private
|
||||||
FConnection: IDAConnection;
|
FConnection: IDAConnection;
|
||||||
FIdEmpresa: Integer;
|
FIdEmpresa: Integer;
|
||||||
FFechaInicio: Variant;
|
FFechaInicio: Variant;
|
||||||
FFechaFin: Variant;
|
FFechaFin: Variant;
|
||||||
FListaIDProveedores: TIntegerArray;
|
FListaIDProveedores: TIntegerArray;
|
||||||
|
FListaNombresProveedores: TStringList;
|
||||||
FImporteMinimo: Currency;
|
FImporteMinimo: Currency;
|
||||||
FImprimirPrecio : Boolean;
|
FImprimirPrecio : Boolean;
|
||||||
FImprimirRefProveedor : Boolean;
|
FImprimirRefProveedor : Boolean;
|
||||||
|
FDesglosado : Boolean;
|
||||||
procedure _GenerarPedido(const ID : Integer);
|
procedure _GenerarPedido(const ID : Integer);
|
||||||
|
|
||||||
|
procedure RecuperarNombresProveedores;
|
||||||
|
procedure IniciarParametrosInforme;
|
||||||
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
|
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||||
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
|
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
|
||||||
function _GenerarInforme(const TipoInforme: String): Binary;
|
function _GenerarInforme(const TipoInforme: String): Binary;
|
||||||
@ -103,7 +107,8 @@ implementation
|
|||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf;
|
uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf,
|
||||||
|
uROServer, DataAbstract4_Intf;
|
||||||
|
|
||||||
const
|
const
|
||||||
rptInforme = 'InfPedidoProveedor.fr3';
|
rptInforme = 'InfPedidoProveedor.fr3';
|
||||||
@ -125,10 +130,17 @@ begin
|
|||||||
FConnection := dmServer.DarNuevaConexion;
|
FConnection := dmServer.DarNuevaConexion;
|
||||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||||
|
|
||||||
|
FListaNombresProveedores := TStringList.Create;
|
||||||
|
|
||||||
frxDBCabecera.DataSource := DADSCabecera;
|
frxDBCabecera.DataSource := DADSCabecera;
|
||||||
frxDBDetalles.DataSource := DADSDetalles;
|
frxDBDetalles.DataSource := DADSDetalles;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TRptPedidosProveedor.DataModuleDestroy(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FreeANDNIL(FListaNombresProveedores);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string;
|
procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string;
|
||||||
var Value: Variant);
|
var Value: Variant);
|
||||||
begin
|
begin
|
||||||
@ -158,8 +170,6 @@ begin
|
|||||||
FFechaFin := FechaFin;
|
FFechaFin := FechaFin;
|
||||||
FImporteMinimo := ImporteMinimo;
|
FImporteMinimo := ImporteMinimo;
|
||||||
|
|
||||||
if Assigned(FListaIDProveedores) then
|
|
||||||
FListaIDProveedores.Free;
|
|
||||||
FListaIDProveedores := ListaIDProveedores;
|
FListaIDProveedores := ListaIDProveedores;
|
||||||
|
|
||||||
if tbl_InformeListadoPedidos.Active then
|
if tbl_InformeListadoPedidos.Active then
|
||||||
@ -178,6 +188,7 @@ begin
|
|||||||
DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPedidosResumen, TRUE, '', TRUE, TRUE);
|
DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPedidosResumen, TRUE, '', TRUE, TRUE);
|
||||||
|
|
||||||
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
|
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
|
||||||
|
FDesglosado := Desglosado;
|
||||||
if Desglosado then
|
if Desglosado then
|
||||||
ATipoInforme := rptInformeListadoPedidosDesglosado
|
ATipoInforme := rptInformeListadoPedidosDesglosado
|
||||||
else
|
else
|
||||||
@ -226,8 +237,7 @@ begin
|
|||||||
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
|
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));
|
||||||
|
|
||||||
frxReport.LoadFromFile(AInforme, True);
|
frxReport.LoadFromFile(AInforme, True);
|
||||||
frxReport.Variables.Variables['FechaInicio'] := FFechaInicio;
|
IniciarParametrosInforme;
|
||||||
frxReport.Variables.Variables['FechaFin'] := FFechaFin;
|
|
||||||
|
|
||||||
frxReport.PrepareReport(False);
|
frxReport.PrepareReport(False);
|
||||||
frxReport.PreviewPages.SaveToStream(Result);
|
frxReport.PreviewPages.SaveToStream(Result);
|
||||||
@ -280,6 +290,48 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TRptPedidosProveedor.IniciarParametrosInforme;
|
||||||
|
var
|
||||||
|
ATextos : TStringList;
|
||||||
|
ACadena : String;
|
||||||
|
begin
|
||||||
|
ATextos := TStringList.Create;
|
||||||
|
|
||||||
|
try
|
||||||
|
if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then
|
||||||
|
ACadena := Format('Fechas de pedido 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('Pedidos 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 TRptPedidosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable);
|
procedure TRptPedidosProveedor.PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||||
var
|
var
|
||||||
Condicion: TDAWhereExpression;
|
Condicion: TDAWhereExpression;
|
||||||
@ -386,4 +438,94 @@ begin
|
|||||||
ATabla.Where.AddText(AWhereStr);
|
ATabla.Where.AddText(AWhereStr);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TRptPedidosProveedor.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 := DABin2DataStreamer1;
|
||||||
|
ADataTable.RemoteFetchEnabled := False;
|
||||||
|
DABin2DataStreamer1.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;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user