Informes -> arreglo en la localización de los ficheros de informes (dependencia de empresa)

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@789 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
David Arranz 2008-12-01 11:42:52 +00:00
parent c85cae7c75
commit 9c42c97007
13 changed files with 21 additions and 224 deletions

View File

@ -343,7 +343,7 @@ begin
tbl_InformeListadoFacturas.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoFacturas.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));

View File

@ -265,7 +265,7 @@ begin
tbl_InformeListadoFacturas.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoFacturas.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));

View File

@ -5,15 +5,9 @@ object srvGestorInformes: TsrvGestorInformes
ServiceDataStreamer = Bin2DataStreamer
ExportedDataTables = <
item
DataTable = dtComboDataset
LogicalName = 'ComboDataset'
end
item
DataTable = dtWindowsDir
LogicalName = 'DirectoryData'
end>
BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData
ValidateDatasetAccess = DataAbstractServiceValidateDatasetAccess
Height = 162
Width = 313
object Schema: TDASchema
@ -36,72 +30,6 @@ object srvGestorInformes: TsrvGestorInformes
Left = 32
Top = 64
end
object dtComboDataset: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'AutoIncField'
DataType = datAutoInc
InPrimaryKey = True
end
item
Name = 'TextField'
DataType = datString
Size = 50
DisplayWidth = 50
end>
Params = <
item
Name = 'CustomParameter'
DataType = datString
Size = 50
Value = ''
ParamType = daptInput
end>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'ComboDataset'
IndexDefs = <>
Left = 128
Top = 56
end
object dtWindowsDir: TDAMemDataTable
RemoteUpdatesOptions = []
Fields = <
item
Name = 'FileName'
DataType = datString
Size = 200
DisplayWidth = 50
InPrimaryKey = True
end
item
Name = 'FileSize'
DataType = datInteger
end>
Params = <
item
Name = 'Directory'
DataType = datString
Size = 200
Value = ''
ParamType = daptInput
end>
MasterMappingMode = mmDataRequest
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteFetchEnabled = False
LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'DirectoryData'
IndexDefs = <>
Left = 216
Top = 56
end
object Bin2DataStreamer: TDABin2DataStreamer
Left = 32
Top = 8

View File

@ -28,22 +28,8 @@ const
type
{ TGestorInformes }
TsrvGestorInformes = class(TDataAbstractService, IsrvGestorInformes)
dtComboDataset: TDAMemDataTable;
dtWindowsDir: TDAMemDataTable;
Schema: TDASchema;
Bin2DataStreamer: TDABin2DataStreamer;
procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject;
const aDataset: IDADataset; const aIncludeSchema: Boolean;
const aMaxRecords: Integer);
procedure DataAbstractServiceValidateDatasetAccess(Sender: TObject;
const aConnection: IDAConnection; const aDatasetName: string;
const aParamNames: array of string;
const aParamValues: array of Variant; aSchema: TDASchema;
var Allowed: Boolean);
private
procedure FillComboDataset(const aDataset: IDAEditableDataset);
procedure FillWinDirDataset(const aDataset: IDAEditableDataset);
public
//MODULO PRESUPUESTOS CLIENTE
function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
@ -83,89 +69,6 @@ begin
anInstance := TsrvGestorInformes.Create(nil);
end;
procedure TsrvGestorInformes.FillComboDataset(const aDataset: IDAEditableDataset);
var
employees,
customers,
regions: IDADataset;
textfield: TDAField;
begin
{
with aDataset do begin
// Opens the in memory data table
Open;
textfield := FieldByName('TextField');
// Adds 3 dummy records
Insert;
textfield.AsString := 'String A';
Post;
Insert;
textfield.AsString := 'String B';
Post;
Insert;
textfield.AsString := 'String C';
Post;
// Fetches data from other datasets, according to the value of the parameter "CustomParameter"
if (Pos('EMPLOYEES', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin
employees := Schema.NewDataset(Connection, ds_Employees, [], [], TRUE);
while not employees.EOF do begin
Insert;
textfield.AsString := employees.FieldByName('FirstName').AsString + ' ' + employees.FieldByName('LastName').AsString;
Post;
employees.Next;
end;
employees:=nil;
end;
if (Pos('CUSTOMERS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin
customers := Schema.NewDataset(Connection, ds_Customers, [], [], TRUE);
while not customers.EOF do begin
Insert;
textfield.AsString := customers.FieldByName('CompanyName').AsString;
Post;
customers.Next;
end;
customers := nil;
end;
if (Pos('REGIONS', UpperCase(ParamByName('CustomParameter').AsString)) > 0) then begin
regions := Schema.NewDataset(Connection, ds_Regions, [], [], TRUE);
while not regions.EOF do begin
Insert;
textfield.AsString := regions.FieldByName('RegionDescription').AsString;
Post;
regions.Next;
end;
regions := nil;
end;
end;
}
end;
procedure TsrvGestorInformes.FillWinDirDataset(const aDataset: IDAEditableDataset);
var
dirinfo: TSearchRec;
begin
aDataset.Open;
{
if (FindFirst(IncludeTrailingPathDelimiter(aDataset.ParamByName('Directory').AsString) + '*.*', faArchive, dirinfo) = 0) then repeat
}
aDataset.Insert;
aDataset.FieldByName('FileName').AsString := 'hola';
aDataset.FieldByName('FileSize').AsInteger := 10;
aDataset.Post;
{
until (FindNext(dirinfo) <> 0);
}
end;
function TsrvGestorInformes.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: DateTime; const FechaFin: DateTime; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
var
AReportGenerator : TRptFacturasCliente;
@ -340,40 +243,6 @@ begin
end;
end;
procedure TsrvGestorInformes.DataAbstractServiceBeforeGetDatasetData(
aSender: TObject; const aDataset: IDADataset;
const aIncludeSchema: Boolean; const aMaxRecords: Integer);
begin
if SameText(aDataset.LogicalName, dtComboDataset.LogicalName) then
FillComboDataset((dtComboDataset as IDAEditableDataset))
else if SameText(aDataset.LogicalName, dtWindowsDir.LogicalName) then
FillWinDirDataset((dtWindowsDir as IDAEditableDataset));
end;
procedure TsrvGestorInformes.DataAbstractServiceValidateDatasetAccess(
Sender: TObject; const aConnection: IDAConnection;
const aDatasetName: string; const aParamNames: array of string;
const aParamValues: array of Variant; aSchema: TDASchema;
var Allowed: Boolean);
procedure FillParameters(aDataSet: TDAMemDataTable);
var
i: integer;
begin
for i := Low(aParamNames) to High(aParamNames) do
begin
showmessage(aParamValues[i]);
aDataset.ParamByName(aParamNames[i]).Value := aParamValues[i];
end;
end;
begin
if SameText(aDatasetName, dtComboDataset.LogicalName) then
FillParameters(dtComboDataset)
else if SameText(aDatasetName, dtWindowsDir.LogicalName) then
FillParameters(dtWindowsDir)
end;
initialization
TROClassFactory.Create('srvGestorInformes', Create_srvGestorInformes, TsrvGestorInformes_Invoker);

View File

@ -243,7 +243,7 @@ begin
tbl_InformeListadoPedidos.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoPedidos.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));

View File

@ -248,7 +248,7 @@ begin
tbl_InformeListadoPresupuestos.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoPresupuestos.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));

View File

@ -216,7 +216,7 @@ begin
tbl_InformeListadoRecibos.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoRecibos.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));

View File

@ -199,7 +199,7 @@ begin
tbl_InformeListadoRecibos.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoRecibos.FieldByName('ID_EMPRESA').AsString);
AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, IntToStr(IdEmpresa));
if VarIsNull(AInforme) then
raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe ' + TipoInforme));