git-svn-id: https://192.168.0.254/svn/Proyectos.AlonsoYSal_FactuGES/trunk@5 9a1d36f3-7752-2d40-8ccb-50eb49674c68
143 lines
4.7 KiB
ObjectPascal
143 lines
4.7 KiB
ObjectPascal
unit srvMontajes_Impl;
|
|
|
|
{----------------------------------------------------------------------------}
|
|
{ This unit was automatically generated by the RemObjects SDK after reading }
|
|
{ the RODL file associated with this project . }
|
|
{ }
|
|
{ This is where you are supposed to code the implementation of your objects. }
|
|
{----------------------------------------------------------------------------}
|
|
|
|
interface
|
|
|
|
uses
|
|
{vcl:} Classes, SysUtils,
|
|
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
|
|
{Ancestor Implementation:} DARemoteService_Impl,
|
|
{Used RODLs:} DataAbstract_Intf,
|
|
{Generated:} FactuGES_Intf, uDAClasses, uDAScriptingProvider,
|
|
uDABusinessProcessor, uDADataTable, uDACDSDataTable, DB, frxClass,
|
|
frxDBSet, uDAInterfaces, uDABINAdapter;
|
|
|
|
type
|
|
{ TsrvMontajes }
|
|
TsrvMontajes = class(TDARemoteService, IsrvMontajes)
|
|
bpMontajes: TDABusinessProcessor;
|
|
frxDBCabecera: TfrxDBDataset;
|
|
DADataCabecera: TDADataSource;
|
|
tbl_Montaje: TDACDSDataTable;
|
|
frxDBDetalles: TfrxDBDataset;
|
|
DADataDetalles: TDADataSource;
|
|
tbl_Ficha: TDACDSDataTable;
|
|
DABINAdapter: TDABINAdapter;
|
|
frxReport1: TfrxReport;
|
|
schMontajes: TDASchema;
|
|
private
|
|
protected
|
|
{ IsrvMontajes methods }
|
|
function GetNextAutoinc(const Generador: String): Integer;
|
|
function PuedoEliminarMontaje(const Codigo: Integer): Boolean;
|
|
function GenerateReportFicha(const Codigo: Integer): Binary;
|
|
function GenerateReportEtiquetas(const Codigo: Integer; const NumEtiquetas : Integer): Binary;
|
|
function DarNuevaReferencia(const TipoMontaje: String): String;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
uses
|
|
{Generated:} FactuGES_Invk, uDataModuleServer, schMontajesClient_Intf;
|
|
|
|
procedure Create_srvMontajes(out anInstance : IUnknown);
|
|
begin
|
|
anInstance := TsrvMontajes.Create(NIL);
|
|
end;
|
|
|
|
{ srvMontajes }
|
|
function TsrvMontajes.GetNextAutoinc(const Generador: String): Integer;
|
|
begin
|
|
Result := uDataModuleServer.GetNextAutoinc(Connection, Generador);
|
|
end;
|
|
|
|
function TsrvMontajes.PuedoEliminarMontaje(const Codigo: Integer): Boolean;
|
|
var
|
|
dsData: IDASQLCommand;
|
|
begin
|
|
Result := True;
|
|
Connection.BeginTransaction;
|
|
try
|
|
dsData := schMontajes.NewCommand(Connection, 'Delete_Montajes', ['OLD_CODIGO'], [Codigo]);
|
|
except
|
|
on E: Exception do
|
|
Result := False;
|
|
end;
|
|
Connection.RollbackTransaction;
|
|
end;
|
|
|
|
function TsrvMontajes.GenerateReportFicha(const Codigo: Integer): Binary;
|
|
var
|
|
dsMaster: IDADataset;
|
|
dsDetail: IDADataset;
|
|
AStream: TMemoryStream;
|
|
begin
|
|
AStream := TMemoryStream.Create;
|
|
Result := Binary.Create;
|
|
try
|
|
dsMaster := schMontajes.NewDataset(Connection, nme_InformeCabeceraFicha, ['CODIGO'], [Codigo]);
|
|
dsDetail := schMontajes.NewDataset(Connection, nme_InformeDetallesFicha, ['CODIGO'], [Codigo], False);
|
|
dsDetail.Active := True;
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_Montaje, TRUE, '', TRUE, TRUE);
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_Ficha, TRUE, '', TRUE, TRUE);
|
|
|
|
frxReport1.LoadFromFile(DarRutaInformes + 'InfFicha.fr3', True);
|
|
frxReport1.PrepareReport;
|
|
frxReport1.PreviewPages.SaveToStream(Result);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
function TsrvMontajes.GenerateReportEtiquetas(
|
|
const Codigo: Integer; const NumEtiquetas : Integer): Binary;
|
|
var
|
|
dsMaster: IDADataset;
|
|
AStream: TMemoryStream;
|
|
begin
|
|
AStream := TMemoryStream.Create;
|
|
Result := Binary.Create;
|
|
try
|
|
dsMaster := schMontajes.NewDataset(Connection, nme_Refresh_Montajes, ['CODIGO'], [Codigo]);
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_Montaje, TRUE, '', TRUE, TRUE);
|
|
|
|
frxReport1.LoadFromFile(DarRutaInformes + 'InfEtiquetasMontajes.fr3', True);
|
|
frxReport1.Variables['NumEtiquetas'] := NumEtiquetas;
|
|
frxReport1.PrepareReport;
|
|
frxReport1.PreviewPages.SaveToStream(Result);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
function TsrvMontajes.DarNuevaReferencia(const TipoMontaje: String): String;
|
|
var
|
|
dsReferencia: IDADataset;
|
|
begin
|
|
dsReferencia := schMontajes.NewDataset(Connection, 'DarNuevaReferencia', ['TIPO'], [TipoMontaje]);
|
|
Result := dsReferencia.FieldByName('REFERENCIA').AsString;
|
|
end;
|
|
|
|
initialization
|
|
TROClassFactory.Create('srvMontajes', Create_srvMontajes, TsrvMontajes_Invoker);
|
|
|
|
finalization
|
|
|
|
end.
|