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
|
||||
OldCreateOrder = True
|
||||
OnCreate = DataModuleCreate
|
||||
OnDestroy = DataModuleDestroy
|
||||
Height = 522
|
||||
Width = 766
|
||||
object schReport: TDASchema
|
||||
@ -572,42 +573,20 @@ object RptPedidosProveedor: TRptPedidosProveedor
|
||||
PrintOptions.Printer = 'Por defecto'
|
||||
PrintOptions.PrintOnSheet = 0
|
||||
ReportOptions.CreateDate = 37800.807714351900000000
|
||||
ReportOptions.LastChange = 39836.753662280090000000
|
||||
ReportOptions.LastChange = 39840.822843958330000000
|
||||
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;'
|
||||
|
||||
@ -70,18 +70,22 @@ type
|
||||
DABin2DataStreamer1: TDABin2DataStreamer;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
procedure frxReportGetValue(const VarName: string; var Value: Variant);
|
||||
procedure DataModuleDestroy(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
FIdEmpresa: Integer;
|
||||
FFechaInicio: Variant;
|
||||
FFechaFin: Variant;
|
||||
FListaIDProveedores: TIntegerArray;
|
||||
FListaNombresProveedores: TStringList;
|
||||
FImporteMinimo: Currency;
|
||||
FImprimirPrecio : Boolean;
|
||||
FImprimirRefProveedor : Boolean;
|
||||
|
||||
FDesglosado : Boolean;
|
||||
procedure _GenerarPedido(const ID : Integer);
|
||||
|
||||
procedure RecuperarNombresProveedores;
|
||||
procedure IniciarParametrosInforme;
|
||||
procedure PrepararTablaInforme(ATabla: TDAMemDataTable);
|
||||
procedure PrepararTablaResumenInforme(ATabla: IDADataset);
|
||||
function _GenerarInforme(const TipoInforme: String): Binary;
|
||||
@ -103,7 +107,8 @@ implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf;
|
||||
uSistemaFunc, StrUtils, uDataModuleServer, schPedidosProveedorClient_Intf,
|
||||
uROServer, DataAbstract4_Intf;
|
||||
|
||||
const
|
||||
rptInforme = 'InfPedidoProveedor.fr3';
|
||||
@ -125,10 +130,17 @@ begin
|
||||
FConnection := dmServer.DarNuevaConexion;
|
||||
frxReport.EngineOptions.NewSilentMode := simReThrow;
|
||||
|
||||
FListaNombresProveedores := TStringList.Create;
|
||||
|
||||
frxDBCabecera.DataSource := DADSCabecera;
|
||||
frxDBDetalles.DataSource := DADSDetalles;
|
||||
end;
|
||||
|
||||
procedure TRptPedidosProveedor.DataModuleDestroy(Sender: TObject);
|
||||
begin
|
||||
FreeANDNIL(FListaNombresProveedores);
|
||||
end;
|
||||
|
||||
procedure TRptPedidosProveedor.frxReportGetValue(const VarName: string;
|
||||
var Value: Variant);
|
||||
begin
|
||||
@ -158,8 +170,6 @@ begin
|
||||
FFechaFin := FechaFin;
|
||||
FImporteMinimo := ImporteMinimo;
|
||||
|
||||
if Assigned(FListaIDProveedores) then
|
||||
FListaIDProveedores.Free;
|
||||
FListaIDProveedores := ListaIDProveedores;
|
||||
|
||||
if tbl_InformeListadoPedidos.Active then
|
||||
@ -178,6 +188,7 @@ begin
|
||||
DABin2DataStreamer1.ReadDataset(AStream, tbl_InformeListadoPedidosResumen, TRUE, '', TRUE, TRUE);
|
||||
|
||||
//DESGLOSADO POR PROVEEDOR EN ESTE INFORME NO SE DESGLOSARÁ POR PROVEEDOR
|
||||
FDesglosado := Desglosado;
|
||||
if Desglosado then
|
||||
ATipoInforme := rptInformeListadoPedidosDesglosado
|
||||
else
|
||||
@ -226,8 +237,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);
|
||||
@ -280,6 +290,48 @@ begin
|
||||
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);
|
||||
var
|
||||
Condicion: TDAWhereExpression;
|
||||
@ -386,4 +438,94 @@ begin
|
||||
ATabla.Where.AddText(AWhereStr);
|
||||
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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user