FactuGES2/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas
2008-05-23 14:48:33 +00:00

100 lines
2.8 KiB
ObjectPascal

unit uRptComisiones_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, uDADataStreamer, uDABin2DataStreamer, uDAMemDataTable;
type
TRptComisiones = class(TDataModule)
DADataCabecera: TDADataSource;
tbl_Comisiones: TDAMemDataTable;
frxRichObject1: TfrxRichObject;
frxBarCodeObject1: TfrxBarCodeObject;
frxOLEObject1: TfrxOLEObject;
frxCrossObject1: TfrxCrossObject;
frxCheckBoxObject1: TfrxCheckBoxObject;
frxGradientObject1: TfrxGradientObject;
frxChartObject1: TfrxChartObject;
frxDBCabecera: TfrxDBDataset;
frxReport: TfrxReport;
Bin2DataStreamer: TDABin2DataStreamer;
frxDBDetalles1: TfrxDBDataset;
DADataDetalles1: TDADataSource;
tbl_Facturas: TDAMemDataTable;
frxDBDetalles2: TfrxDBDataset;
DADataDetalles2: TDADataSource;
tbl_Vendedores: TDAMemDataTable;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
procedure DataModuleCreate(Sender: TObject);
private
FConnection: IDAConnection;
//Genera cada uno de los albaranes a imprimir
procedure GenerarComision(const ID: integer); overload;
public
function GenerarComision(const AComisionID : String): Binary; overload;
end;
implementation
{$R *.dfm}
uses
uDataModuleServer;
const
rptComision = 'InfComision.fr3';
{ TRptComision }
procedure TRptComisiones.DataModuleCreate(Sender: TObject);
begin
schReport.ConnectionManager := dmServer.ConnectionManager;
FConnection := dmServer.DarNuevaConexion;
frxReport.EngineOptions.NewSilentMode := simReThrow;
end;
procedure TRptComisiones.GenerarComision(const ID: integer);
begin
tbl_Comisiones.ParamByName('ID').AsInteger := ID;
tbl_Facturas.ParamByName('ID').AsInteger := ID;
tbl_Vendedores.ParamByName('ID').AsInteger := ID;
tbl_Comisiones.Active := True;
tbl_Facturas.Active := True;
tbl_Vendedores.Active := True;
frxReport.LoadFromFile(DarRutaInformes + rptComision, True);
frxReport.PrepareReport(False);
end;
function TRptComisiones.GenerarComision(const AComisionID: String): Binary;
var
ID_Comisiones: TStringList;
i: Integer;
begin
Result := Binary.Create;
FConnection.BeginTransaction;
try
ID_Comisiones := TStringList.Create;
ID_Comisiones.CommaText := AComisionID;
//Vamos generando todos y cada uno de los albaranes recibidos
for i := 0 to ID_Comisiones.Count - 1 do
GenerarComision(StrToInt(ID_Comisiones.Strings[i]));
frxReport.PreviewPages.SaveToStream(Result);
finally
FConnection.RollbackTransaction;
end;
end;
end.