git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
139 lines
3.5 KiB
ObjectPascal
139 lines
3.5 KiB
ObjectPascal
unit InformeEstadoObra;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, InformeBaseFR3, frxCross, frxClass, frxIBXComponents, frxDBSet,
|
|
DB, IBCustomDataSet, IBDatabase, TablaCitas, IBQuery;
|
|
|
|
type
|
|
TdmInformeEstadoObra = class(TdmInformeBaseFR3)
|
|
frxTablaCitas: TfrxDBDataset;
|
|
frxTablaInstaladores: TfrxDBDataset;
|
|
frxTablaObras: TfrxDBDataset;
|
|
dsCitas: TDataSource;
|
|
dsInstaladores: TDataSource;
|
|
dsObras: TDataSource;
|
|
TablaCitas: TIBQuery;
|
|
TablaObrasInstaladores: TIBQuery;
|
|
TablaObras: TIBQuery;
|
|
frxReport1: TfrxReport;
|
|
procedure FReportBeforePrint(Sender: TfrxReportComponent);
|
|
private
|
|
FCodigoContrato: variant;
|
|
protected
|
|
procedure PrepararConsultas; override;
|
|
public
|
|
EstadoObra : array[TPartidasObra, tcPedido..tcEntregaCliente] of String;
|
|
Proveedores : array[TPartidasObra] of String;
|
|
constructor Create(AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
property CodigoContrato : variant read FCodigoContrato write FCodigoContrato;
|
|
end;
|
|
|
|
var
|
|
dmInformeEstadoObra: TdmInformeEstadoObra;
|
|
|
|
implementation
|
|
|
|
uses
|
|
TablaObras, TablaObrasInstaladores, frxPreview;
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
{ TdmInformeEstadoObra }
|
|
|
|
constructor TdmInformeEstadoObra.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
FCodigoContrato := NULL;
|
|
FNombreInforme := 'InformeEstadoObra.fr3';
|
|
end;
|
|
|
|
destructor TdmInformeEstadoObra.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
procedure TdmInformeEstadoObra.PrepararConsultas;
|
|
var
|
|
Cont : TTipoCitas;
|
|
begin
|
|
inherited;
|
|
|
|
with TablaObras do
|
|
begin
|
|
Database := FBaseDatos;
|
|
Transaction := FTransaccion;
|
|
SQL.Clear;
|
|
SQL.Assign(dmTablaObras.sqlConsultar);
|
|
ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaCitas do
|
|
begin
|
|
Database := FBaseDatos;
|
|
Transaction := FTransaccion;
|
|
SQL.Clear;
|
|
SQL.Add('select START, CAPTION, NOMBRE, TIPOTAREA ');
|
|
SQL.Add('from CITAS, INSTALADORES ');
|
|
SQL.Add('WHERE CODIGOCONTRATO = :CODIGOCONTRATO');
|
|
SQL.Add('and CODIGO = RESOURCEID ');
|
|
SQL.Add('and TIPOTAREA IN (');
|
|
for Cont := tcEntrega to tcRemate do
|
|
begin
|
|
SQL.Add('''' + TextoTipoCita[Ord(Cont)] + '''');
|
|
if Cont < tcRemate then
|
|
SQL.Add(', ');
|
|
end;
|
|
SQL.Add(')');
|
|
ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
with TablaObrasInstaladores do
|
|
begin
|
|
Database := FBaseDatos;
|
|
Transaction := FTransaccion;
|
|
SQL.Clear;
|
|
SQL.Assign(dmTablaObrasInstaladores.sqlGrid);
|
|
ParamByName('CODIGOCONTRATO').AsString := FCodigoContrato;
|
|
Prepare;
|
|
Open;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TdmInformeEstadoObra.FReportBeforePrint(
|
|
Sender: TfrxReportComponent);
|
|
var
|
|
Cross: TfrxCrossView;
|
|
APartida : TPartidasObra;
|
|
ATipoCita : TTipoCitas;
|
|
Col, Row : Integer;
|
|
Cadena : String;
|
|
begin
|
|
if Sender is TfrxCrossView then
|
|
begin
|
|
Cross := TfrxCrossView(Sender);
|
|
for APartida := poCocina to poVarios do
|
|
begin
|
|
Col := Ord(APartida);
|
|
Cross.AddValue(['Proveedores'], [LiteralPartidasObra[Col]], [Proveedores[APartida]]);
|
|
for ATipoCita := tcPedido to tcEntregaCliente do
|
|
begin
|
|
Row := Ord(ATipoCita);
|
|
Cadena := EstadoObra[APartida, ATipoCita];
|
|
Cross.AddValue([LiteralTipoCita[Row]], [LiteralPartidasObra[Col]], [EstadoObra[APartida, ATipoCita]]);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|