unit uDataModuleLogistica; interface uses {vcl:} SysUtils, Classes, DB, DBClient, {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, uBizLogistica; type TdmLogistica = class(TDAClientDataModule) DABINAdapter: TDABINAdapter; RORemoteService: TRORemoteService; tbl_Almacenes: TDACDSDataTable; ds_Almacenes: TDADataSource; tbl_Articulos: TDACDSDataTable; ds_Articulos: TDADataSource; procedure DAClientDataModuleCreate(Sender: TObject); private public function GetItemsAlmacenes: IBizAlmacen; function GetItemsArticulos: IBizArticulosAlmacen; function GetItemAlmacen(Codigo : Integer): IBizAlmacen; function GetItemArticulo(Codigo : Integer): IBizArticulosAlmacen; function GetNextAutoinc : integer; // function GetCliente(Codigo : Integer): IBizCliente; overload; procedure Preview; end; var dmLogistica: TdmLogistica; implementation {$R *.DFM} uses Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf, uDataTableUtils, uROTypes, uEditorPreview, Dialogs, schLogisticaClient_Intf, uDataModuleBase, uDBSelectionList; const MAX_RECORDS = 100; procedure TdmLogistica.DAClientDataModuleCreate(Sender: TObject); begin RORemoteService.Channel := dmBase.Channel; RORemoteService.Message := dmBase.Message; end; function TdmLogistica.GetItemsAlmacenes: IBizAlmacen; var dtAlmacenes: TDACDSDataTable; ACursor: TCursor; begin ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try dtAlmacenes := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_Almacenes, dtAlmacenes); dtAlmacenes.BusinessRulesID := 'BizAlmacen'; Result := (dtAlmacenes as IBizAlmacen); finally Screen.Cursor := ACursor; end; end; procedure TdmLogistica.Preview; var AStream: TMemoryStream; AEditorPreview : TfEditorPreview; begin { AStream := Binary.Create; AEditorPreview := TfEditorPreview.Create(Application); try AStream := (RemoteService as ISrvContactos).GenerateReport; AEditorPreview.Report.PreviewPages.LoadFromStream(AStream); AEditorPreview.ShowModal; finally AEditorPreview.Release; AStream.Free; end; } end; {function TdmAlmacenes.GetCliente(Codigo: Integer): IBizCliente; var // dtContactos: TDACDSDataTable; // dtCategorias: TDACDSDataTable; // ACursor: TCursor; begin { ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try dtContactos := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_Contactos, dtContactos); dtContactos.BusinessRulesID := 'BizCliente'; dtCategorias := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_CategoriasContacto, dtCategorias); dtCategorias.BusinessRulesID := 'BizCategoria'; (dtContactos as IBizContacto).Categorias := (dtCategorias as IBizCategoriasContacto); Result := (dtContactos as IBizCliente); GetCliente(Result, Codigo); finally Screen.Cursor := ACursor; end; end; } function TdmLogistica.GetNextAutoinc: integer; begin // Result := (RORemoteService as IsrvContactos).GetNextAutoinc; end; function TdmLogistica.GetItemAlmacen(Codigo: Integer): IBizAlmacen; var AAlmacen: IBizAlmacen; begin AAlmacen := GetItemsAlmacenes; with AAlmacen.DataTable do begin if Active then Active := False; Where.Clear; Where.AddCondition(fld_ALMACENESCODIGO, cEqual, Codigo); Active := True; end; Result := AAlmacen; end; function TdmLogistica.GetItemsArticulos: IBizArticulosAlmacen; var dtArticulos: TDACDSDataTable; ACursor: TCursor; begin ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try dtArticulos := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_Articulos, dtArticulos); dtArticulos.BusinessRulesID := 'BizArticulosAlmacen'; Result := (dtArticulos as IBizArticulosAlmacen); finally Screen.Cursor := ACursor; end; end; function TdmLogistica.GetItemArticulo(Codigo: Integer): IBizArticulosAlmacen; var AArticuloAlmacen: IBizArticulosAlmacen; begin AArticuloAlmacen := GetItemsArticulos; with AArticuloAlmacen.DataTable do begin if Active then Active := False; Where.Clear; Where.AddCondition(fld_ARTICULOSCODIGO, cEqual, Codigo); Active := True; end; Result := AArticuloAlmacen; end; initialization dmLogistica := TdmLogistica.Create(nil); finalization FreeAndNil(dmLogistica); end.