ConstruccionesCNJ_FactuGES/Modulos/Cobros con montaje/Reports/uRptCobrosMontaje_Server.pas
2007-06-21 15:50:59 +00:00

82 lines
2.3 KiB
ObjectPascal

unit uRptCobrosMontaje_Server;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
uDAInterfaces;
type
TRptCobrosMontaje = class(TDataModule)
DADataCabecera: TDADataSource;
tbl_CobrosMontaje: TDACDSDataTable;
DABINAdapter: TDABINAdapter;
frxRichObject1: TfrxRichObject;
frxBarCodeObject1: TfrxBarCodeObject;
frxOLEObject1: TfrxOLEObject;
frxCrossObject1: TfrxCrossObject;
frxCheckBoxObject1: TfrxCheckBoxObject;
frxGradientObject1: TfrxGradientObject;
frxChartObject1: TfrxChartObject;
frxDBCabecera: TfrxDBDataset;
frxReport: TfrxReport;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
procedure DataModuleCreate(Sender: TObject);
private
FConnection: IDAConnection;
public
function GenerarCobro(const ACobroID : Integer): Binary;
end;
implementation
{$R *.dfm}
uses
uDataModuleServer, schCobrosClienteClient_Intf;
const
rptCobroCliente = 'InfRecibo.fr3';
{ Dataset names for schReport }
ds_InformeCobrosMontaje = 'InformeCobrosMontaje';
{ TRptCobrosMontaje }
procedure TRptCobrosMontaje.DataModuleCreate(Sender: TObject);
begin
schReport.ConnectionManager := dmServer.ConnectionManager;
FConnection := dmServer.DarNuevaConexion;
end;
function TRptCobrosMontaje.GenerarCobro(const ACobroID: Integer): Binary;
var
dsMaster: IDADataset;
dsDetail: IDADataset;
AStream: TMemoryStream;
begin
AStream := TMemoryStream.Create;
Result := Binary.Create;
FConnection.BeginTransaction;
try
dsMaster := schReport.NewDataset(FConnection, ds_InformeCobrosMontaje, ['ID'], [ACobroID]);
AStream.Clear;
DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
DABINAdapter.ReadDataset(AStream, tbl_CobrosMontaje, TRUE, '', TRUE, TRUE);
frxReport.LoadFromFile(DarRutaInformes + rptCobroCliente, True);
frxReport.PrepareReport;
frxReport.PreviewPages.SaveToStream(Result);
finally
AStream.Free;
FConnection.RollbackTransaction;
end;
end;
end.