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:
roberto 2010-08-19 19:06:10 +00:00
parent f35e44d301
commit a17074b5e2
6 changed files with 203 additions and 91 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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.