From a501958189a8d3ae4e78c290893e333f4ba0094f Mon Sep 17 00:00:00 2001 From: david Date: Thu, 10 Jul 2008 15:47:16 +0000 Subject: [PATCH] =?UTF-8?q?Primera=20subida=20de=20control=20de=20impresi?= =?UTF-8?q?=C3=B3n=20para=20todos=20los=20documentos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@268 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- Database/FACTUGES.FDB | Bin 25030656 -> 25030656 bytes Source/Base/Base.bdsproj | 3 +- Source/Base/Base.dpk | 6 +- Source/Base/Base.res | Bin 384 -> 4748 bytes Source/Base/GUIBase/uEditorPreview.dfm | 16 +- Source/Base/GUIBase/uEditorPreview.pas | 54 +++- Source/Base/uDataModuleBase.pas | 5 +- .../FacturasCliente_controller.bdsproj | 2 +- .../uFacturasClienteReportController.pas | 9 +- .../Data/uDataModuleFacturasCliente.dfm | 13 +- .../Model/schFacturasClienteClient_Intf.pas | 60 ++++- .../Model/schFacturasClienteServer_Intf.pas | 64 ++++- .../Model/uBizFacturasClienteServer.pas | 1 - .../Reports/uRptFacturasCliente_Server.dfm | 67 +---- .../Reports/uRptFacturasCliente_Server.pas | 9 +- .../Servidor/srvFacturasCliente_Impl.dfm | 243 ++++++++++-------- .../Views/uViewFacturasCliente.dfm | 6 + .../Views/uViewFacturasCliente.pas | 1 + .../Data/uDataModuleImpresiones.dfm | 77 ++++++ .../Data/uDataModuleImpresiones.pas | 48 ++++ .../Model/schImpresionesClient_Intf.pas | 136 ++++++++++ .../Model/schImpresionesServer_Intf.pas | 145 +++++++++++ .../Servidor/srvImpresiones_Impl.dfm | 184 +++++++++++++ .../Servidor/srvImpresiones_Impl.pas | 108 ++++++++ Source/Servicios/FactuGES.RODL | 13 +- Source/Servicios/FactuGES_Intf.pas | 35 +-- Source/Servicios/FactuGES_Invk.pas | 34 +-- Source/Servicios/RODLFILE.res | Bin 28311 -> 28078 bytes Source/Servidor/FactuGES_Server.bdsproj | 11 +- Source/Servidor/FactuGES_Server.dpr | 8 +- Source/Servidor/FactuGES_Server.drc | 202 +++++++-------- Source/Servidor/FactuGES_Server.rc | 2 +- Source/Servidor/FactuGES_Server.res | Bin 23344 -> 23336 bytes 33 files changed, 1168 insertions(+), 394 deletions(-) create mode 100644 Source/Modulos/Impresiones/Data/uDataModuleImpresiones.dfm create mode 100644 Source/Modulos/Impresiones/Data/uDataModuleImpresiones.pas create mode 100644 Source/Modulos/Impresiones/Model/schImpresionesClient_Intf.pas create mode 100644 Source/Modulos/Impresiones/Model/schImpresionesServer_Intf.pas create mode 100644 Source/Modulos/Impresiones/Servidor/srvImpresiones_Impl.dfm create mode 100644 Source/Modulos/Impresiones/Servidor/srvImpresiones_Impl.pas diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 144a1e97c1ae73404586edcec7e76278ca4293e3..0b8e3c42a82ebaae53cc3de0c383c707a4c131cb 100644 GIT binary patch delta 26331 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 1.0.0.0 - + + ExpressCommonLibrary by Developer Express Inc. ExpressEditors Library 5 by Developer Express Inc. ExpressDataController by Developer Express Inc. diff --git a/Source/Base/Base.dpk b/Source/Base/Base.dpk index 6b282975..3eeb9f3d 100644 --- a/Source/Base/Base.dpk +++ b/Source/Base/Base.dpk @@ -78,7 +78,8 @@ requires jsDialog100, indy, JvDlgsD10R, - JvNetD10R; + JvNetD10R, + dxGDIPlusD10; contains uDataTableUtils in 'Utiles\uDataTableUtils.pas', @@ -101,6 +102,7 @@ contains uPasswordUtils in 'Utiles\uPasswordUtils.pas', uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas', uInformeRegistryUtils in 'ClassRegistry\uInformeRegistryUtils.pas', - uStringsUtils in 'Utiles\uStringsUtils.pas'; + uStringsUtils in 'Utiles\uStringsUtils.pas', + uDataModuleImpresiones in '..\Modulos\Impresiones\Data\uDataModuleImpresiones.pas' {dmImpresiones: TDataModule}; end. diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f312bcccec5485024f6fe8d80e1cdf25746..1641339fcc482e7e3492d1b45813a86619622c33 100644 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP delta 11 ScmeBCZD5|Duvteife`=|>;pCc diff --git a/Source/Base/GUIBase/uEditorPreview.dfm b/Source/Base/GUIBase/uEditorPreview.dfm index 8f9ea13c..adfde5bb 100644 --- a/Source/Base/GUIBase/uEditorPreview.dfm +++ b/Source/Base/GUIBase/uEditorPreview.dfm @@ -5,17 +5,15 @@ inherited fEditorPreview: TfEditorPreview WindowState = wsMaximized OnDestroy = FormDestroy OnResize = FormResize - ExplicitWidth = 658 - ExplicitHeight = 492 + ExplicitWidth = 803 + ExplicitHeight = 485 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader Top = 75 Visible = False ExplicitTop = 75 - ExplicitWidth = 650 inherited Image1: TImage - Left = 623 ExplicitLeft = 623 end end @@ -27,7 +25,7 @@ inherited fEditorPreview: TfEditorPreview DefaultDock = TBXDock Visible = False ExplicitTop = 49 - ExplicitWidth = 242 + ExplicitWidth = 248 end inherited tbxMenu: TTBXToolbar DockPos = -24 @@ -175,8 +173,6 @@ inherited fEditorPreview: TfEditorPreview item Width = 50 end> - ExplicitTop = 439 - ExplicitWidth = 650 end inherited EditorActionList: TActionList Top = 104 @@ -847,13 +843,14 @@ inherited fEditorPreview: TfEditorPreview Bitmap = {} end object frxReport1: TfrxReport - Version = '3.23.7' + Version = '4.3' DotMatrixReport = False EngineOptions.DoublePass = True IniFile = '\Software\Fast Reports' PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 38658.858023541660000000 ReportOptions.LastChange = 38658.858023541660000000 ScriptLanguage = 'PascalScript' @@ -864,9 +861,6 @@ inherited fEditorPreview: TfEditorPreview StoreInDFM = False Left = 16 Top = 200 - Datasets = <> - Variables = <> - Style = <> end object frxBarCodeObject1: TfrxBarCodeObject Left = 16 diff --git a/Source/Base/GUIBase/uEditorPreview.pas b/Source/Base/GUIBase/uEditorPreview.pas index ad98a9b9..41aaff56 100644 --- a/Source/Base/GUIBase/uEditorPreview.pas +++ b/Source/Base/GUIBase/uEditorPreview.pas @@ -20,7 +20,14 @@ type procedure LoadFromStream(AStream : TStream); function ExportToFile : String; procedure Print; - procedure Preview; + procedure Preview; + + function GetTablaImpresion: String; + function GetIdTablaImpresion: String; + procedure SetTablaImpresion (Value: String); + procedure SetIdTablaImpresion (Value: String); + property TablaImpresion: String read GetTablaImpresion write SetTablaImpresion; + property IdTablaImpresion: String read GetIdTablaImpresion write SetIdTablaImpresion; end; TfEditorPreview = class(TfEditorBase, IEditorPreview) @@ -102,13 +109,25 @@ type FPreview : TfrViewPreview; procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); procedure UpdateZoom; + procedure OnPrint(Sender: Tobject); + protected + FTablaImpresion: String; + FIdTablaImpresion: String; + function GetTablaImpresion: String; + function GetIdTablaImpresion: String; + procedure SetTablaImpresion (Value: String); + procedure SetIdTablaImpresion (Value: String); + function GetReport: TfrxReport; virtual; public + property TablaImpresion: String read GetTablaImpresion write SetTablaImpresion; + property IdTablaImpresion: String read GetIdTablaImpresion write SetIdTablaImpresion; + constructor Create(AOwner: TComponent); override; property Report: TfrxReport read GetReport; procedure Print; - procedure Preview; + procedure Preview; procedure LoadFromStream(AStream : TStream); function ExportToFile : String; end; @@ -118,18 +137,28 @@ implementation uses frxRes, frxUtils, frxPrinter, - uCustomEditor, uSistemaFunc; + uCustomEditor, uSistemaFunc, uDataModuleImpresiones; {$R *.dfm} { TfEditorBase1 } +function TfEditorPreview.GetIdTablaImpresion: String; +begin + Result := FIdTablaImpresion; +end; + function TfEditorPreview.GetReport: TfrxReport; begin Result := frxReport1; end; +function TfEditorPreview.GetTablaImpresion: String; +begin + Result := FTablaImpresion; +end; + procedure TfEditorPreview.FormShow(Sender: TObject); begin inherited; @@ -284,6 +313,11 @@ begin [PageNo, Sender.PageCount]); end; +procedure TfEditorPreview.OnPrint(Sender: Tobject); +begin + dmImpresiones.AnadirMarcaImpresion(TablaImpresion, IdTablaImpresion); +end; + constructor TfEditorPreview.Create(AOwner: TComponent); begin inherited; @@ -304,6 +338,8 @@ begin FPreview := TfrViewPreview.Create(Self); Report.Preview := FPreview.Preview; FPreview.Preview.OnPageChanged := OnPageChanged; + FTablaImpresion := '-1'; + FIdTablaImpresion := '-1'; end; procedure TfEditorPreview.Preview; @@ -313,6 +349,8 @@ end; procedure TfEditorPreview.Print; begin + FPreview.Preview.Report.OnPrintReport := onprint; + if not frxPrinters.HasPhysicalPrinters then frxErrorMsg(frxResources.Get('clNoPrinters')) else @@ -320,6 +358,16 @@ begin Enabled := True; end; +procedure TfEditorPreview.SetIdTablaImpresion(Value: String); +begin + FIdTablaImpresion := Value; +end; + +procedure TfEditorPreview.SetTablaImpresion(Value: String); +begin + FTablaImpresion := Value; +end; + function TfEditorPreview.ExportToFile: String; var AFile : String; diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas index 2bd8051f..8b9b3971 100644 --- a/Source/Base/uDataModuleBase.pas +++ b/Source/Base/uDataModuleBase.pas @@ -38,7 +38,8 @@ implementation uses uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows, - JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion; + JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion, + uDataModuleImpresiones; { *********************************** TdmBase ************************************ @@ -47,6 +48,7 @@ procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); begin dmConexion := TdmConexion.Create(NIL); dmConfiguracion := TdmConfiguracion.Create(NIL); + dmImpresiones := TDataModuleImpresiones.Create(NIL); TBXSwitcher.OnThemeChange := OnTBXThemeChange; TBXSetTheme('Office2003'); @@ -114,6 +116,7 @@ procedure TdmBase.DataModuleDestroy(Sender: TObject); begin FreeANDNIL(dmConfiguracion); FreeAndNil(dmConexion); + FreeAndNil(dmImpresiones); end; initialization diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj index 34284927..f5ed253a 100644 --- a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj @@ -172,7 +172,7 @@ -