diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas index c7f67a6..3893e29 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas @@ -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) diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas index 97b2d5a..52611c6 100644 --- a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas @@ -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); diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas index f69ada5..2fb401d 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas @@ -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); diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas index 335d49d..ea57af5 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas @@ -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); diff --git a/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas index 80facb9..3ea5bb7 100644 --- a/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas +++ b/Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas @@ -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; diff --git a/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas index 7f2ef55..f68cf4e 100644 --- a/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas +++ b/Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas @@ -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.