ProGestion/Modulos/Recibos/Cliente/uDataModuleRecibosCliente.pas
2007-06-21 16:12:43 +00:00

135 lines
3.6 KiB
ObjectPascal

unit uDataModuleRecibosCliente;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
uBizRecibosCliente;
type
TdmRecibosCliente = class(TDAClientDataModule)
RORemoteService: TRORemoteService;
tbl_RecibosCliente: TDACDSDataTable;
ds_RecibosCliente: TDADataSource;
DABINAdapter: TDABINAdapter;
procedure DAClientDataModuleCreate(Sender: TObject);
public
function GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
function GetNextAutoinc : integer;
function GetItem(Codigo: Integer): IBizRecibosCliente;
function GetItems: IBizRecibosCliente;
procedure Print(Const Codigo: Integer);
procedure Preview(Const Codigo: Integer);
end;
var
dmRecibosCliente: TdmRecibosCliente;
implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uDataModuleBase, FactuGES_Intf, uEditorPreview,
uROTypes, uBizContacto, uDataModuleContactos, schRecibosClienteClient_Intf;
{ TDAClientDataModule1 }
function TdmRecibosCliente.GetItems: IBizRecibosCliente;
begin
Result := (GetDataTableItems(BIZ_RECIBOSCLIENTE) as IBizRecibosCliente);
end;
procedure TdmRecibosCliente.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmBase.Channel;
RORemoteService.Message := dmBase.Message;
Adapter := dmBase.Adapter;
end;
function TdmRecibosCliente.GetNextAutoinc: integer;
begin
Result := (RORemoteService as IsrvRecibosCliente).GetNextAutoinc;
end;
procedure TdmRecibosCliente.Preview(const Codigo: Integer);
var
AStream: TROBinaryMemoryStream;
AEditorPreview : TfEditorPreview;
begin
AStream := Nil;
AEditorPreview := TfEditorPreview.Create(Application);
try
AStream := (RORemoteService as IsrvRecibosCliente).GenerateReport(Codigo);
AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
AEditorPreview.ShowModal;
finally
AEditorPreview.Release;
AStream.Free;
end;
end;
procedure TdmRecibosCliente.Print(const Codigo: Integer);
var
AStream: TROBinaryMemoryStream;
AEditorPreview : TfEditorPreview;
begin
AStream := Nil;
AEditorPreview := TfEditorPreview.Create(Application);
try
AStream := (RORemoteService as IsrvRecibosCliente).GenerateReport(Codigo);
AEditorPreview.Report.PreviewPages.LoadFromStream(AStream);
AEditorPreview.Print;
finally
AEditorPreview.Release;
AStream.Free;
end;
end;
function TdmRecibosCliente.GetItem(Codigo: Integer): IBizRecibosCliente;
var
ARecibo: IBizRecibosCliente;
begin
ARecibo := GetItems;
with ARecibo.DataTable do
begin
if Active then Active := False;
Where.Clear;
Where.AddText(fld_RecibosClienteCODIGO + ' = ' + IntToStr(Codigo));
Active := True;
end;
Result := ARecibo;
end;
function TdmRecibosCliente.GetDataTableItems(const IDBusiness: String): TDACDSDataTable;
var
dtCabecera: TDACDSDataTable;
ACursor: TCursor;
begin
ACursor := Screen.Cursor;
Screen.Cursor := crHourGlass;
try
dtCabecera := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_RecibosCliente, dtCabecera);
with dtCabecera do
begin
BusinessRulesID := IDBusiness;
end;
Result := dtCabecera;
finally
Screen.Cursor := ACursor;
end;
end;
initialization
dmRecibosCliente := TdmRecibosCliente.Create(nil);
finalization
FreeAndNil(dmRecibosCliente);
end.