repaso final de todos lo datos
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@27 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
This commit is contained in:
parent
f35e44d301
commit
a17074b5e2
@ -13,7 +13,7 @@ uses
|
||||
TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, cxGridLevel,
|
||||
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
||||
cxControls, cxGridCustomView, cxGrid, cxTextEdit,
|
||||
uDAInterfaces;
|
||||
uDAInterfaces, uCustomView, uViewBase;
|
||||
|
||||
type
|
||||
IViewAlbaranesDevProveedor = interface(IViewAlbaranesProveedor)
|
||||
|
||||
@ -12,7 +12,7 @@ uses
|
||||
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
|
||||
cxGrid, uBizAlbaranesProveedor, cxCurrencyEdit, Forms, uViewFiltroBase,
|
||||
ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxTextEdit,
|
||||
uDAInterfaces;
|
||||
uDAInterfaces, uCustomView, uViewBase;
|
||||
|
||||
type
|
||||
IViewAlbaranesProveedor = interface(IViewGrid)
|
||||
@ -64,6 +64,12 @@ type
|
||||
procedure cxGridViewDataControllerCompare(
|
||||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||||
procedure cxGridViewNUM_COPIASCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
procedure cxGridViewNUM_CORREOSCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
|
||||
private
|
||||
//Filtros relativos a la vista
|
||||
@ -196,6 +202,48 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewAlbaranesProveedor.cxGridViewNUM_COPIASCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 2);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewAlbaranesProveedor.cxGridViewNUM_CORREOSCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 3);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewAlbaranesProveedor.cxGridViewStylesGetContentStyle(Sender:
|
||||
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
|
||||
TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||||
|
||||
@ -13,7 +13,8 @@ uses
|
||||
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid,
|
||||
cxImage, Grids, DBGrids, uBizFacturasProveedor, cxGridCustomPopupMenu,
|
||||
cxGridPopupMenu, cxCalendar, cxCurrencyEdit, uViewFiltroBase, TB2Item, TBX,
|
||||
TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces;
|
||||
TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces, uCustomView,
|
||||
uViewBase;
|
||||
|
||||
type
|
||||
IViewFacturasProveedor = interface(IViewGrid)
|
||||
@ -67,6 +68,12 @@ type
|
||||
procedure cxGridViewDataControllerCompare(
|
||||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||||
procedure cxGridViewNUM_COPIASCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
procedure cxGridViewNUM_CORREOSCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
|
||||
private
|
||||
//Filtros relativos a la vista
|
||||
@ -201,6 +208,48 @@ begin
|
||||
Compare := VarCompare(V1, V2);
|
||||
end;
|
||||
|
||||
procedure TfrViewFacturasProveedor.cxGridViewNUM_COPIASCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 2);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewFacturasProveedor.cxGridViewNUM_CORREOSCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 3);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewFacturasProveedor.cxGridViewStylesGetContentStyle(
|
||||
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
||||
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||||
|
||||
@ -12,7 +12,7 @@ uses
|
||||
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
|
||||
cxGrid, uBizPedidosProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList,
|
||||
TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces,
|
||||
uCustomView, uViewBase;
|
||||
uCustomView, uViewBase, cxTextEdit;
|
||||
|
||||
type
|
||||
IViewPedidosProveedor = interface(IViewGrid)
|
||||
@ -73,6 +73,12 @@ type
|
||||
procedure cxGridViewDataControllerCompare(
|
||||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||||
procedure cxGridViewNUM_COPIASCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
procedure cxGridViewNUM_CORREOSCustomDrawHeader(Sender: TcxGridTableView;
|
||||
ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo;
|
||||
var ADone: Boolean);
|
||||
|
||||
private
|
||||
//Filtros relativos a la vista
|
||||
@ -217,6 +223,48 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewPedidosProveedor.cxGridViewNUM_COPIASCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 3);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewPedidosProveedor.cxGridViewNUM_CORREOSCustomDrawHeader(
|
||||
Sender: TcxGridTableView; ACanvas: TcxCanvas;
|
||||
AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
|
||||
var
|
||||
R : TRect;
|
||||
begin
|
||||
inherited;
|
||||
with AViewInfo do
|
||||
begin
|
||||
LookAndFeelPainter.DrawHeader(ACanvas, Bounds, TextAreaBounds, Neighbors,
|
||||
Borders, ButtonState, AlignmentHorz, AlignmentVert, MultiLine,
|
||||
False, '', Params.Font, Params.TextColor, Params.Color);
|
||||
|
||||
R := AViewInfo.ContentBounds;
|
||||
ACanvas.FillRect(R);
|
||||
ACanvas.DrawImage(GridPNGImageList, R.Left + 2, R.Top, 4);
|
||||
end;
|
||||
|
||||
ADone := True;
|
||||
end;
|
||||
|
||||
procedure TfrViewPedidosProveedor.cxGridViewStylesGetContentStyle(Sender:
|
||||
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
|
||||
TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||||
|
||||
@ -5,17 +5,17 @@ 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;
|
||||
uDADataTable, uDAMemDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uROTypes,
|
||||
uDAInterfaces, uDADataStreamer, FactuGES_Intf, uDABin2DataStreamer;
|
||||
|
||||
|
||||
type
|
||||
TRptRemesasCliente = class(TDataModule)
|
||||
DADataCabecera: TDADataSource;
|
||||
DADataDetalles: TDADataSource;
|
||||
tbl_Cabecera: TDACDSDataTable;
|
||||
tbl_Detalles: TDACDSDataTable;
|
||||
DABINAdapter: TDABINAdapter;
|
||||
tbl_Cabecera: TDAMemDataTable;
|
||||
tbl_Detalles: TDAMemDataTable;
|
||||
frxRichObject1: TfrxRichObject;
|
||||
frxBarCodeObject1: TfrxBarCodeObject;
|
||||
frxOLEObject1: TfrxOLEObject;
|
||||
@ -28,13 +28,14 @@ type
|
||||
frxReport: TfrxReport;
|
||||
schReport: TDASchema;
|
||||
DataDictionary: TDADataDictionary;
|
||||
Bin2DataStreamer: TDABin2DataStreamer;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
procedure DataModuleDestroy(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
procedure GenerarRemesa(const ID : Integer); overload;
|
||||
procedure _GenerarRemesa(const ID : Integer); overload;
|
||||
public
|
||||
function GenerarRemesa(const ID : String): Binary; overload;
|
||||
function GenerarRemesa(const ListaID : TIntegerArray): Binary;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -42,7 +43,7 @@ implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uDataModuleServer;
|
||||
uDataModuleServer, uSistemaFunc;
|
||||
|
||||
const
|
||||
rptInforme = 'InfRemesaCliente.fr3';
|
||||
@ -64,31 +65,21 @@ begin
|
||||
frxDBCabecera.DataSource := DADataCabecera;
|
||||
frxDBCabecera.CloseDataSource := False;
|
||||
|
||||
frxDBCompensados.DataSource := DADataCompensados;
|
||||
frxDBCompensados.CloseDataSource := False;
|
||||
frxDBDetalles.DataSource := DADataDetalles;
|
||||
frxDBDetalles.CloseDataSource := False;
|
||||
end;
|
||||
|
||||
function TRptRemesasCliente.GenerarRemesa(const ID: String): Binary;
|
||||
function TRptRemesasCliente.GenerarRemesa(const ListaID : TIntegerArray): Binary;
|
||||
var
|
||||
ID_Remesas: TStringList;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result := Binary.Create;
|
||||
FConnection.BeginTransaction;
|
||||
|
||||
try
|
||||
ID_Remesas := TStringList.Create;
|
||||
ID_Remesas.CommaText := ID;
|
||||
|
||||
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||
for i := 0 to ID_Remesas.Count - 1 do
|
||||
GenerarRemesa(StrToInt(ID_Remesas.Strings[i]));
|
||||
|
||||
for i := 0 to ListaID.Count - 1 do
|
||||
_GenerarRemesa(ListaID.Items[i]);
|
||||
frxReport.PreviewPages.SaveToStream(Result);
|
||||
|
||||
finally
|
||||
FConnection.RollbackTransaction;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -98,38 +89,30 @@ begin
|
||||
tbl_Detalles.Active := False;
|
||||
end;
|
||||
|
||||
procedure TRptRemesasCliente.GenerarRemesa(const ID: Integer);
|
||||
procedure TRptRemesasCliente._GenerarRemesa(const ID: Integer);
|
||||
var
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
dsDetail: IDADataset;
|
||||
AInforme: Variant;
|
||||
|
||||
begin
|
||||
AStream := TMemoryStream.Create;
|
||||
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
try
|
||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]);
|
||||
dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_REMESA'], [ID], False);
|
||||
tbl_Cabecera.Active := False;
|
||||
tbl_Detalles.Active := False;
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE);
|
||||
tbl_Cabecera.ParamByName('ID').AsInteger := ID;
|
||||
tbl_Detalles.ParamByName('ID_REMESA').AsInteger := ID;
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);
|
||||
tbl_Cabecera.Active := True;
|
||||
tbl_Detalles.Active := True;
|
||||
|
||||
AInforme := DarRutaFichero(DarRutaInformes, rptInforme);
|
||||
AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString);
|
||||
if VarIsNull(AInforme) then
|
||||
raise Exception.Create (('Error Servidor: GenerarRemesa, no encuentra informe ' + rptInforme));
|
||||
raise Exception.Create (('Error Servidor: _GenerarRemesa, no encuentra informe ' + rptInforme));
|
||||
|
||||
frxReport.LoadFromFile(AInforme, True);
|
||||
frxReport.PrepareReport(False);
|
||||
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
dsDetail := Nil;
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -7,15 +7,15 @@ uses
|
||||
Dialogs, frxClass, frxDBSet, uDAScriptingProvider,
|
||||
uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient,
|
||||
frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes,
|
||||
uDAInterfaces, uDADataStreamer;
|
||||
uDAInterfaces, uDADataStreamer, FactuGES_Intf, uDABin2DataStreamer,
|
||||
uDAMemDataTable;
|
||||
|
||||
type
|
||||
TRptRemesasProveedor = class(TDataModule)
|
||||
DADataCabecera: TDADataSource;
|
||||
DADataDetalles: TDADataSource;
|
||||
tbl_Cabecera: TDACDSDataTable;
|
||||
tbl_Detalles: TDACDSDataTable;
|
||||
DABINAdapter: TDABINAdapter;
|
||||
tbl_Cabecera: TDAMemDataTable;
|
||||
tbl_Detalles: TDAMemDataTable;
|
||||
frxRichObject1: TfrxRichObject;
|
||||
frxBarCodeObject1: TfrxBarCodeObject;
|
||||
frxOLEObject1: TfrxOLEObject;
|
||||
@ -25,16 +25,17 @@ type
|
||||
frxChartObject1: TfrxChartObject;
|
||||
frxDBCabecera: TfrxDBDataset;
|
||||
frxDBDetalles: TfrxDBDataset;
|
||||
frxReport: TfrxReport;
|
||||
Bin2DataStreamer: TDABin2DataStreamer;
|
||||
schReport: TDASchema;
|
||||
DataDictionary: TDADataDictionary;
|
||||
frxReport: TfrxReport;
|
||||
procedure DataModuleCreate(Sender: TObject);
|
||||
procedure DataModuleDestroy(Sender: TObject);
|
||||
private
|
||||
FConnection: IDAConnection;
|
||||
procedure GenerarRemesa(const ID : Integer); overload;
|
||||
procedure _GenerarRemesa(const ID : Integer); overload;
|
||||
public
|
||||
function GenerarRemesa(const ID : String): Binary; overload;
|
||||
function GenerarRemesa(const ListaID : TIntegerArray): Binary; overload;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -42,7 +43,7 @@ implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
uDataModuleServer;
|
||||
uDataModuleServer, uSistemaFunc;
|
||||
|
||||
const
|
||||
rptInforme = 'InfRemesaProveedor.fr3';
|
||||
@ -64,31 +65,21 @@ begin
|
||||
frxDBCabecera.DataSource := DADataCabecera;
|
||||
frxDBCabecera.CloseDataSource := False;
|
||||
|
||||
frxDBCompensados.DataSource := DADataCompensados;
|
||||
frxDBCompensados.CloseDataSource := False;
|
||||
frxDBDetalles.DataSource := DADataDetalles;
|
||||
frxDBDetalles.CloseDataSource := False;
|
||||
end;
|
||||
|
||||
function TRptRemesasProveedor.GenerarRemesa(const ID: String): Binary;
|
||||
function TRptRemesasProveedor.GenerarRemesa(const ListaID : TIntegerArray): Binary;
|
||||
var
|
||||
ID_Remesas: TStringList;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result := Binary.Create;
|
||||
FConnection.BeginTransaction;
|
||||
|
||||
try
|
||||
ID_Remesas := TStringList.Create;
|
||||
ID_Remesas.CommaText := ID;
|
||||
|
||||
//Vamos generando todos y cada uno de los albaranes recibidos
|
||||
for i := 0 to ID_Remesas.Count - 1 do
|
||||
GenerarRemesa(StrToInt(ID_Remesas.Strings[i]));
|
||||
|
||||
for i := 0 to ListaID.Count - 1 do
|
||||
_GenerarRemesa(ListaID.Items[i]);
|
||||
frxReport.PreviewPages.SaveToStream(Result);
|
||||
|
||||
finally
|
||||
FConnection.RollbackTransaction;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -98,39 +89,32 @@ begin
|
||||
tbl_Detalles.Active := False;
|
||||
end;
|
||||
|
||||
procedure TRptRemesasProveedor.GenerarRemesa(const ID: Integer);
|
||||
procedure TRptRemesasProveedor._GenerarRemesa(const ID: Integer);
|
||||
var
|
||||
AStream: TMemoryStream;
|
||||
dsMaster: IDADataset;
|
||||
dsDetail: IDADataset;
|
||||
AInforme: Variant;
|
||||
|
||||
begin
|
||||
AStream := TMemoryStream.Create;
|
||||
|
||||
FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
try
|
||||
dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]);
|
||||
dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_REMESA'], [ID], False);
|
||||
tbl_Cabecera.Active := False;
|
||||
tbl_Detalles.Active := False;
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE);
|
||||
tbl_Cabecera.ParamByName('ID').AsInteger := ID;
|
||||
tbl_Detalles.ParamByName('ID_REMESA').AsInteger := ID;
|
||||
|
||||
AStream.Clear;
|
||||
DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1);
|
||||
DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);
|
||||
tbl_Cabecera.Active := True;
|
||||
tbl_Detalles.Active := True;
|
||||
|
||||
AInforme := DarRutaFichero(DarRutaInformes, rptInforme);
|
||||
AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString);
|
||||
if VarIsNull(AInforme) then
|
||||
raise Exception.Create (('Error Servidor: GenerarRemesa, no encuentra informe ' + rptInforme));
|
||||
raise Exception.Create (('Error Servidor: _GenerarRemesa, no encuentra informe ' + rptInforme));
|
||||
|
||||
frxReport.LoadFromFile(AInforme, True);
|
||||
frxReport.PrepareReport(False);
|
||||
|
||||
finally
|
||||
AStream.Free;
|
||||
dsMaster := Nil;
|
||||
dsDetail := Nil;
|
||||
FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO"
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user