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