From 40a67a5c80a820a8a2f6fc8d0313dddc1ead26ac Mon Sep 17 00:00:00 2001 From: david Date: Tue, 11 Dec 2007 16:24:53 +0000 Subject: [PATCH] =?UTF-8?q?Presupuestos=20de=20cliente:=20=20-=20Informe?= =?UTF-8?q?=20de=20presupuesto=20(sin=20terminar).=20=20-=20Editor=20con?= =?UTF-8?q?=20RichEditor=20para=20portada=20y=20memoria=20del=20presupuest?= =?UTF-8?q?o.=20=20-=20Procedimientos=20almacenados=20en=20BD=20que=20orga?= =?UTF-8?q?nizan=20el=20presupuesto=20en=20cap=C3=ADtulos=20y=20conceptos?= =?UTF-8?q?=20de=20cap=C3=ADtulos.?= 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.Tecsitel_FactuGES2/trunk@159 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/FACTUGES.FDB | Bin 0 -> 2482176 bytes Database/scripts/factuges.sql | 260 ++- Source/Base/Base.dproj | 98 +- Source/Base/Base.res | Bin 384 -> 4748 bytes Source/GUIBase/GUIBase.dpk | 3 +- Source/GUIBase/GUIBase.dproj | 36 +- Source/GUIBase/GUIBase.res | Bin 384 -> 4748 bytes Source/GUIBase/uViewRichEditor.dfm | 1395 +++++++++++++++++ Source/GUIBase/uViewRichEditor.pas | 238 +++ Source/Informes/InfPresupuestoCliente.fr3 | 88 +- .../Contactos/Views/uEditorDireccion.dfm | 27 +- .../Contactos/Views/uEditorDireccion.pas | 3 +- .../Contactos/Views/uViewProveedor.dfm | 110 +- .../Reports/uRptFacturasCliente_Server.dfm | 193 +-- .../Reports/uRptFacturasCliente_Server.pas | 28 +- .../uPresupuestosClienteController.pas | 3 +- .../Data/uDataModulePresupuestosCliente.dfm | 2 +- .../uRptPresupuestosCliente_Server.dfm | 1172 ++++++++++---- .../uRptPresupuestosCliente_Server.pas | 109 +- .../Servidor/srvPresupuestosCliente_Impl.dfm | 1 - .../Views/PresupuestosCliente_view.dproj | 14 +- .../Views/PresupuestosCliente_view.res | Bin 384 -> 4748 bytes .../Views/uEditorPresupuestoCliente.dfm | 580 ++++++- .../Views/uEditorPresupuestoCliente.pas | 23 +- .../Views/uEditorPresupuestosCliente.pas | 9 - .../Views/uViewPresupuestoCliente.dfm | 6 +- .../Views/uViewPresupuestosCliente.dfm | 10 +- Source/Servicios/FactuGES.RODL | 1 - Source/Servidor/FactuGES_Server.RES | Bin 23216 -> 23212 bytes Source/Servidor/FactuGES_Server.dpr | 3 +- Source/Servidor/FactuGES_Server.dproj | 412 ++--- Source/Servidor/FactuGES_Server.rc | 2 +- 32 files changed, 3910 insertions(+), 916 deletions(-) create mode 100644 Database/FACTUGES.FDB create mode 100644 Source/GUIBase/uViewRichEditor.dfm create mode 100644 Source/GUIBase/uViewRichEditor.pas diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB new file mode 100644 index 0000000000000000000000000000000000000000..9f26c664352d6e1deb01be0bddf8961e7c0fe1de GIT binary patch literal 2482176 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

A<08dbAP<#XpZCZnsGKI@6|a2*HkQ!t(G@; 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%0DQ$ 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 Y%Ts0k-=$kdQcD_|eZF;R>rw{&15y#9f&c&j literal 0 HcmV?d00001 diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 3e263068..76893ad1 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -1,5 +1,5 @@ /******************************************************************************/ -/**** Generated by IBExpert 2007.05.03 12/11/2007 21:23:54 ****/ +/**** Generated by IBExpert 2007.05.03 11/12/2007 16:51:58 ****/ /******************************************************************************/ SET SQL DIALECT 3; @@ -11,7 +11,6 @@ PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1; - /******************************************************************************/ /**** User Defined Functions ****/ /******************************************************************************/ @@ -22,7 +21,7 @@ DECLARE EXTERNAL FUNCTION F_RTFTOTEXT ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; -DECLARE EXTERNAL FUNCTION MOD +DECLARE EXTERNAL FUNCTION "MOD" INTEGER, INTEGER RETURNS DOUBLE PRECISION BY VALUE @@ -116,7 +115,7 @@ CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0; CREATE GENERATOR GEN_CONTACTOS_DIR_ID; -SET GENERATOR GEN_CONTACTOS_DIR_ID TO 3; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 5; CREATE GENERATOR GEN_CONTACTOS_ID; SET GENERATOR GEN_CONTACTOS_ID TO 2001; @@ -201,6 +200,57 @@ SET GENERATOR GEN_USUARIOS_ID TO 0; +SET TERM ^ ; + + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + +CREATE PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +BEGIN + SUSPEND; +END^ + + +CREATE PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD INTEGER, + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO FLOAT, + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +BEGIN + SUSPEND; +END^ + + + +SET TERM ; ^ + + /******************************************************************************/ /**** Tables ****/ /******************************************************************************/ @@ -214,6 +264,7 @@ CREATE TABLE AGENTES_COMISIONES ( COMISION TIPO_PORCENTAJE DEFAULT 0 ); + CREATE TABLE ALBARANES_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -250,6 +301,7 @@ CREATE TABLE ALBARANES_CLIENTE ( REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE ALBARANES_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_ALBARAN TIPO_ID NOT NULL, @@ -267,6 +319,7 @@ CREATE TABLE ALBARANES_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE ALBARANES_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -301,6 +354,7 @@ CREATE TABLE ALBARANES_PROVEEDOR ( REF_FACTURA_PROV VARCHAR(255) ); + CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_ALBARAN TIPO_ID NOT NULL, @@ -318,6 +372,7 @@ CREATE TABLE ALBARANES_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE ALMACENES ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -336,6 +391,7 @@ CREATE TABLE ALMACENES ( USUARIO TIPO_USUARIO ); + CREATE TABLE ARTICULOS ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -357,11 +413,13 @@ CREATE TABLE ARTICULOS ( ELIMINADO TIPO_BOOLEANO ); + CREATE TABLE CATEGORIAS ( ID TIPO_ID NOT NULL, CATEGORIA VARCHAR(255) NOT NULL ); + CREATE TABLE CLIENTES_DATOS ( ID_CLIENTE TIPO_ID NOT NULL, ID_AGENTE TIPO_ID, @@ -379,6 +437,7 @@ CREATE TABLE CLIENTES_DATOS ( CODIGO_ASIGNADO VARCHAR(255) ); + CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( ID TIPO_ID NOT NULL, ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL, @@ -386,10 +445,12 @@ CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( DESCUENTO TIPO_PORCENTAJE DEFAULT 0 ); + CREATE TABLE CLIENTES_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE COMISIONES_LIQUIDADAS ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -403,12 +464,14 @@ CREATE TABLE COMISIONES_LIQUIDADAS ( USUARIO TIPO_USUARIO ); + CREATE TABLE CONFIGURACION ( CODIGO VARCHAR(50) NOT NULL, VALOR VARCHAR(255) NOT NULL, ID_EMPRESA TIPO_ID ); + CREATE TABLE CONTACTOS ( ID TIPO_ID NOT NULL, NIF_CIF VARCHAR(15), @@ -433,11 +496,13 @@ CREATE TABLE CONTACTOS ( PERSONA_CONTACTO VARCHAR(255) ); + CREATE TABLE CONTACTOS_CATEGORIAS ( ID_CONTACTO TIPO_ID NOT NULL, ID_CATEGORIA TIPO_ID NOT NULL ); + CREATE TABLE CONTACTOS_DATOS_BANCO ( ID TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL, @@ -450,6 +515,7 @@ CREATE TABLE CONTACTOS_DATOS_BANCO ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE CONTACTOS_DIRECCIONES ( ID TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL, @@ -469,6 +535,7 @@ CREATE TABLE CONTACTOS_DIRECCIONES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE EMPLEADOS_DATOS ( ID_EMPLEADO TIPO_ID NOT NULL, FECHA_NACIMIENTO DATE, @@ -480,10 +547,12 @@ CREATE TABLE EMPLEADOS_DATOS ( EXPERIENCIA TIPO_NOTAS ); + CREATE TABLE EMPLEADOS_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE EMPRESAS ( ID TIPO_ID NOT NULL, NIF_CIF VARCHAR(15), @@ -510,11 +579,13 @@ CREATE TABLE EMPRESAS ( IVA TIPO_PORCENTAJE ); + CREATE TABLE EMPRESAS_CONTACTOS ( ID_EMPRESA TIPO_ID NOT NULL, ID_CONTACTO TIPO_ID NOT NULL ); + CREATE TABLE EMPRESAS_DATOS_BANCO ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -527,21 +598,25 @@ CREATE TABLE EMPRESAS_DATOS_BANCO ( SUFIJO_N58 VARCHAR(3) ); + CREATE TABLE EMPRESAS_USUARIOS ( ID_EMPRESA TIPO_ID NOT NULL, ID_USUARIO TIPO_ID NOT NULL ); + CREATE TABLE F_PERFILES ( ID TIPO_ID NOT NULL, PERFIL TIPO_PERFIL NOT NULL ); + CREATE TABLE F_PERFILES_USUARIOS ( ID_PERFIL TIPO_ID NOT NULL, ID_USUARIO TIPO_ID NOT NULL ); + CREATE TABLE F_USUARIOS ( ID TIPO_ID NOT NULL, USUARIO TIPO_USUARIO NOT NULL, @@ -550,6 +625,7 @@ CREATE TABLE F_USUARIOS ( PASS VARCHAR(10) ); + CREATE TABLE FACTURAS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -582,6 +658,7 @@ CREATE TABLE FACTURAS_CLIENTE ( ID_COMISION_LIQUIDADA TIPO_ID ); + CREATE TABLE FACTURAS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID NOT NULL, @@ -599,6 +676,7 @@ CREATE TABLE FACTURAS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE FACTURAS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -631,6 +709,7 @@ CREATE TABLE FACTURAS_PROVEEDOR ( RECARGO_EQUIVALENCIA TIPO_BOOLEANO ); + CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID NOT NULL, @@ -648,10 +727,12 @@ CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE FAMILIAS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE FORMAS_PAGO ( ID TIPO_ID NOT NULL, REFERENCIA VARCHAR(255), @@ -663,6 +744,7 @@ CREATE TABLE FORMAS_PAGO ( CUENTA VARCHAR(15) ); + CREATE TABLE FORMAS_PAGO_PLAZOS ( ID TIPO_ID NOT NULL, ID_FORMA_PAGO TIPO_ID NOT NULL, @@ -670,6 +752,7 @@ CREATE TABLE FORMAS_PAGO_PLAZOS ( PORCENTAJE TIPO_PORCENTAJE ); + CREATE TABLE INFORMES ( ID SMALLINT NOT NULL, ID_EMPRESA TIPO_ID, @@ -683,6 +766,7 @@ CREATE TABLE INFORMES ( VISTA BLOB SUB_TYPE 2 SEGMENT SIZE 4096 ); + CREATE TABLE MOVIMIENTOS ( ID TIPO_ID NOT NULL, ID_ALMACEN TIPO_ID, @@ -693,6 +777,7 @@ CREATE TABLE MOVIMIENTOS ( CAUSA TIPO_CONCEPTO ); + CREATE TABLE PAGOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_RECIBO TIPO_ID, @@ -708,6 +793,7 @@ CREATE TABLE PAGOS_CLIENTE ( USUARIO TIPO_USUARIO ); + CREATE TABLE PAGOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_RECIBO TIPO_ID, @@ -723,6 +809,7 @@ CREATE TABLE PAGOS_PROVEEDOR ( USUARIO TIPO_USUARIO ); + CREATE TABLE PEDIDOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -755,6 +842,7 @@ CREATE TABLE PEDIDOS_CLIENTE ( REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_PEDIDO TIPO_ID NOT NULL, @@ -772,6 +860,7 @@ CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PEDIDOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -806,6 +895,7 @@ CREATE TABLE PEDIDOS_PROVEEDOR ( FECHA_ENVIO DATE ); + CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( ID TIPO_ID NOT NULL, ID_PEDIDO TIPO_ID NOT NULL, @@ -823,6 +913,7 @@ CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PERMISOS ( ID_USUARIO TIPO_ID, MODULO VARCHAR(50), @@ -830,6 +921,7 @@ CREATE TABLE PERMISOS ( CHECKSUM VARCHAR(250) ); + CREATE TABLE PERMISOSEX ( ID_USUARIO TIPO_ID, MODULO VARCHAR(50), @@ -838,6 +930,7 @@ CREATE TABLE PERMISOSEX ( CHECKSUM VARCHAR(250) ); + CREATE TABLE PRESUPUESTOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -867,6 +960,7 @@ CREATE TABLE PRESUPUESTOS_CLIENTE ( CLIENTE_FINAL VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( ID TIPO_ID NOT NULL, ID_PRESUPUESTO TIPO_ID NOT NULL, @@ -884,6 +978,7 @@ CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( FECHA_MODIFICACION TIMESTAMP ); + CREATE TABLE PROVEEDORES_DATOS ( ID_PROVEEDOR TIPO_ID NOT NULL, DESCUENTO TIPO_PORCENTAJE, @@ -898,10 +993,12 @@ CREATE TABLE PROVEEDORES_DATOS ( HOMOLOGADO SMALLINT ); + CREATE TABLE PROVEEDORES_GRUPOS ( DESCRIPCION VARCHAR(255) ); + CREATE TABLE RECIBOS_CLIENTE ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID, @@ -919,6 +1016,7 @@ CREATE TABLE RECIBOS_CLIENTE ( ID_RECIBO_COMPENSADO INTEGER ); + CREATE TABLE RECIBOS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_FACTURA TIPO_ID, @@ -937,6 +1035,7 @@ CREATE TABLE RECIBOS_PROVEEDOR ( ID_RECIBO_COMPENSADO INTEGER ); + CREATE TABLE REFERENCIAS ( CODIGO VARCHAR(50) NOT NULL, VALOR VARCHAR(255) NOT NULL, @@ -944,6 +1043,7 @@ CREATE TABLE REFERENCIAS ( DESCRIPCION VARCHAR(255) COLLATE ES_ES ); + CREATE TABLE REMESAS_CLIENTE ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -958,6 +1058,7 @@ CREATE TABLE REMESAS_CLIENTE ( TIPO VARCHAR(40) ); + CREATE TABLE REMESAS_PROVEEDOR ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID, @@ -972,6 +1073,7 @@ CREATE TABLE REMESAS_PROVEEDOR ( TIPO VARCHAR(40) ); + CREATE TABLE TIENDA_WEB ( ID TIPO_ID NOT NULL, ID_EMPRESA TIPO_ID NOT NULL, @@ -984,6 +1086,7 @@ CREATE TABLE TIENDA_WEB ( BDPASS VARCHAR(255) ); + CREATE TABLE TIPOS_IVA ( ID TIPO_ID NOT NULL, REFERENCIA VARCHAR(255), @@ -992,6 +1095,7 @@ CREATE TABLE TIPOS_IVA ( RE TIPO_PORCENTAJE ); + CREATE TABLE USUARIOS ( ID TIPO_ID NOT NULL, USERNAME VARCHAR(30), @@ -1007,6 +1111,7 @@ CREATE TABLE USUARIOS ( CHECKSUM VARCHAR(250) ); + CREATE TABLE USUARIOS_EVENTOS ( APLICACION VARCHAR(250), ID_USUARIO TIPO_ID, @@ -1019,6 +1124,7 @@ CREATE TABLE USUARIOS_EVENTOS ( TNAME VARCHAR(20) ); + CREATE TABLE USUARIOS_LOGON ( LOGONID CHAR(38) NOT NULL, ID_USUARIO TIPO_ID, @@ -1029,6 +1135,7 @@ CREATE TABLE USUARIOS_LOGON ( + /******************************************************************************/ /**** Views ****/ /******************************************************************************/ @@ -2344,6 +2451,9 @@ LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) ; + + + /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ @@ -2486,3 +2596,145 @@ CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO); CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA); CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO); CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO); + + +/******************************************************************************/ +/**** Stored Procedures ****/ +/******************************************************************************/ + + +SET TERM ^ ; + +ALTER PROCEDURE PRO_PRES_CAPITULOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + CONCEPTO VARCHAR(2000), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable num_capitulos integer; +declare variable existe numeric(11,2); +declare variable total_acumulado numeric(11,2); +begin + num_capitulos = 0; + existe = 0; + total_acumulado = 0.0; + + /* ¿Existe el presupuesto? */ + for select count(*) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + into :EXISTE + do + begin + if (existe = 0) then + suspend; + end + + /* Ver si hay conceptos al principio sin capitulos */ + for select id, id_presupuesto, posicion, tipo_detalle + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + rows 1 + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE + do + begin + if (TIPO_DETALLE = 'Concepto') then + EXISTE = 1; + end + + if (existe = 1) then + begin + /* Existen conceptos sin capitulo */ + for select tipo_detalle, importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where id_presupuesto = :AID + order by id_presupuesto, posicion + into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE + do + begin + if (tipo_detalle <> 'Concepto') then + begin + importe_total = total_acumulado; + tipo_detalle = 'Titulo'; + concepto = 'General'; + visible = 1; + ID = -1; + posicion = -1; + suspend; + break; + end + else begin + if (visible <> 0) then + total_acumulado = total_acumulado + importe_total; + end + end + end + + + for select id, id_presupuesto, posicion, tipo_detalle, concepto, + importe_total, coalesce(visible, 1) + from presupuestos_cliente_detalles + where tipo_detalle <> 'Concepto' and id_presupuesto = :AID + order by id_presupuesto, posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :CONCEPTO, + :IMPORTE_TOTAL, :VISIBLE + do + suspend; + +end +^ + +ALTER PROCEDURE PRO_PRES_CAPITULOS_CONCEPTOS ( + AID INTEGER) +RETURNS ( + ID INTEGER, + ID_PRESUPUESTO INTEGER, + POSICION INTEGER, + TIPO_DETALLE VARCHAR(10), + ID_CAPITULO INTEGER, + ID_ARTICULO INTEGER, + REFERENCIA VARCHAR(255), + CONCEPTO VARCHAR(2000), + CANTIDAD INTEGER, + IMPORTE_UNIDAD NUMERIC(11,2), + DESCUENTO FLOAT, + IMPORTE_PORTE NUMERIC(11,2), + IMPORTE_TOTAL NUMERIC(11,2), + VISIBLE SMALLINT) +AS +declare variable capitulo_actual integer; +begin +capitulo_actual = -1; +ID_CAPITULO = -1; +for select pre.id, pre.id_presupuesto, pre.posicion, pre.tipo_detalle, + pre.id_articulo, articulos.referencia, pre.concepto, pre.cantidad, + pre.importe_unidad, pre.descuento, pre.importe_porte, + pre.importe_total, coalesce(pre.visible, 1) + from presupuestos_cliente_detalles pre + left join articulos on (pre.id_articulo = articulos.id) + where pre.id_presupuesto = :AID + order by pre.id_presupuesto, pre.posicion + into :ID, :ID_PRESUPUESTO, :POSICION, :TIPO_DETALLE, :ID_ARTICULO, + :REFERENCIA, :CONCEPTO, :CANTIDAD, :IMPORTE_UNIDAD, :DESCUENTO, + :IMPORTE_PORTE, :IMPORTE_TOTAL, :VISIBLE +do + begin + if (:tipo_detalle <> 'Concepto') then + begin + capitulo_actual = :ID; + ID_CAPITULO = capitulo_actual; + end + else + suspend; + end +end +^ + + +SET TERM ; ^ \ No newline at end of file diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 065b913c..3dcc8be0 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -60,56 +60,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

fConfigurarConexion TForm 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/GUIBase/GUIBase.dpk b/Source/GUIBase/GUIBase.dpk index 82c968ff..fe98cd83 100644 --- a/Source/GUIBase/GUIBase.dpk +++ b/Source/GUIBase/GUIBase.dpk @@ -65,6 +65,7 @@ contains uEditorBasico in 'uEditorBasico.pas' {fEditorBasico}, uDialogBase in 'uDialogBase.pas' {fDialogBase}, uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame}, - uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}; + uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}, + uViewRichEditor in 'uViewRichEditor.pas' {frViewRichEditor: TCustomView}; end. diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index 70b14487..ceaab69b 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -57,22 +57,22 @@ MainSource - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
fDialogBase
@@ -155,6 +155,10 @@
frViewPreview
TFrame
+ +
frViewRichEditor
+ TCustomView +
frViewTotales
TFrame diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.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/GUIBase/uViewRichEditor.dfm b/Source/GUIBase/uViewRichEditor.dfm new file mode 100644 index 00000000..0310a08d --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.dfm @@ -0,0 +1,1395 @@ +inherited frViewRichEditor: TfrViewRichEditor + Width = 635 + Height = 401 + OnCreate = CustomViewCreate + OnShow = CustomViewShow + ExplicitWidth = 635 + ExplicitHeight = 401 + object TBXDock1: TTBXDock + Left = 0 + Top = 0 + Width = 635 + Height = 26 + BackgroundOnToolbars = False + UseParentBackground = True + object TBXToolbar1: TTBXToolbar + Left = 0 + Top = 0 + Caption = 'TBXToolbar1' + DragHandleStyle = dhNone + Images = SmallImages + TabOrder = 0 + object TBControlItem1: TTBControlItem + Control = fcbFontName + end + object TBControlItem2: TTBControlItem + Control = meFontSize + end + object TBControlItem3: TTBControlItem + Control = cxSpinButton + end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXColorItem1: TTBXColorItem + Caption = 'Color' + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object bBold: TTBXItem + AutoCheck = True + Caption = 'Negrita' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 0 + OnClick = bBoldClick + end + object bItalic: TTBXItem + AutoCheck = True + Caption = 'Cursiva' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 1 + OnClick = bItalicClick + end + object bUnderline: TTBXItem + AutoCheck = True + Caption = 'Subrayado' + DisplayMode = nbdmTextOnlyInMenus + ImageIndex = 2 + OnClick = bUnderlineClick + end + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem5: TTBXItem + Action = actEditCut + end + object TBXItem6: TTBXItem + Action = actEditCopy + end + object TBXItem7: TTBXItem + Action = actEditPaste + end + object TBXSeparatorItem4: TTBXSeparatorItem + end + object bAlignLeft: TTBXItem + AutoCheck = True + Caption = 'Alinear a la izquierda' + GroupIndex = 50 + ImageIndex = 8 + OnClick = bAlignLeftClick + end + object bAlignCenter: TTBXItem + Tag = 2 + AutoCheck = True + Caption = 'Centrar' + GroupIndex = 50 + ImageIndex = 9 + OnClick = bAlignCenterClick + end + object bAlignRight: TTBXItem + Tag = 1 + AutoCheck = True + Caption = 'Alinear a la derecha' + GroupIndex = 50 + ImageIndex = 10 + OnClick = bAlignRightClick + end + object TBXSeparatorItem5: TTBXSeparatorItem + end + object bBullets: TTBXItem + AutoCheck = True + Caption = 'Vi'#241'etas' + ImageIndex = 12 + OnClick = bBulletsClick + end + object fcbFontName: TcxFontNameComboBox + Left = 0 + Top = 0 + ParentFont = False + Properties.DropDownSizeable = True + Properties.FontPreview.ShowButtons = False + Properties.OnChange = cxFontNameComboBox1PropertiesChange + Properties.OnInitPopup = fcbFontNamePropertiesInitPopup + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Width = 215 + end + object meFontSize: TcxMaskEdit + Left = 215 + Top = 0 + Hint = 'cxMaskEdit' + ParentFont = False + Properties.MaskKind = emkRegExpr + Properties.EditMask = '\d\d' + Properties.MaxLength = 0 + Properties.OnChange = meFontSizePropertiesChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = '0' + Width = 24 + end + object cxSpinButton: TcxSpinButton + Left = 239 + Top = 0 + Hint = 'cxSpinButton' + Associate = meFontSize + AutoSize = False + ParentFont = False + Properties.MaxValue = 100.000000000000000000 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Height = 21 + Width = 20 + end + end + end + object RichEdit: TcxDBRichEdit + Left = 0 + Top = 26 + Align = alClient + Properties.HideSelection = False + Properties.ScrollBars = ssBoth + Properties.OnChange = RichEditPropertiesChange + Properties.OnSelectionChange = RichEditPropertiesSelectionChange + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 375 + Width = 635 + end + object ActionList: TActionList + Images = SmallImages + Left = 320 + Top = 80 + object actEditCut: TAction + Category = 'Edit' + Caption = 'Cu&t' + Hint = 'Delete selected item' + ImageIndex = 3 + ShortCut = 16472 + OnExecute = actEditCutExecute + end + object actEditCopy: TAction + Category = 'Edit' + Caption = '&Copy' + Hint = 'Copy selected item to clipboard' + ImageIndex = 4 + ShortCut = 16451 + OnExecute = actEditCopyExecute + end + object actEditPaste: TAction + Category = 'Edit' + Caption = '&Paste' + Hint = 'Paste contents of clipboard' + ImageIndex = 5 + ShortCut = 16470 + OnExecute = actEditPasteExecute + end + object actEditFont: TAction + Category = 'Edit' + Caption = '&Font...' + ImageIndex = 7 + end + object actBullets: TAction + AutoCheck = True + Caption = 'actBullets' + ImageIndex = 12 + OnExecute = actBulletsExecute + end + end + object pmColorSchemes: TPopupMenu + Left = 216 + Top = 96 + object miStandard: TMenuItem + Caption = 'Delphi Colors' + RadioItem = True + end + object miHTML: TMenuItem + Tag = 1 + Caption = '16 Standard Colors' + RadioItem = True + end + object miWeb: TMenuItem + Tag = 2 + Caption = 'Web Colors' + RadioItem = True + end + object miWebSorted: TMenuItem + Tag = 3 + Caption = 'Web Colors By Hue' + RadioItem = True + end + end + object ToolbarImages: TImageList + Left = 56 + Top = 136 + Bitmap = { + 494C01010F001100040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000004000000001002000000000000040 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000084000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000000000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000008400000084000000840000008400 + 0000840000008400000084000000840000000000000000000000000000000000 + 0000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF000000000000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000084000000840000000000000084000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00000000000000000000000000FFFF + FF00840000008400000084000000840000000000000000000000840000008400 + 0000840000008400000084000000000000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000840000008400 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF0000000000000000000000 + 00000000000000000000FFFFFF00840000000000000000848400848484000084 + 8400848484000084840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000000000000840000008400 + 0000840000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000840000000000000084000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00840000000000000084848400008484008484 + 8400008484008484840084000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000000000840000008400 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF000000000000000000FFFF + FF00840000008400000084000000840000000000000000848400848484000084 + 8400848484000084840084000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000000000000840000008400 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000008400000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF0084000000FFFFFF0084000000000000000000000084848400008484008484 + 8400008484008484840000848400848484000084840084848400008484008484 + 8400008484000000000000000000000000000000000000000000840000000000 + 0000000000000000000084000000840000000000000000000000000000000000 + 0000840000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0084000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00840000008400000000000000000000000000000000848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008400000084000000840000008400 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF000000 + 000000000000FFFFFF0000000000840000008400000084000000840000008400 + 0000840000000000000000000000000000000000000084848400848484000000 + 0000000000000000000000000000000000000000000000000000000000008484 + 8400008484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000848400848484000084 + 84000000000000FFFF00000000000000000000FFFF0000000000848484000084 + 8400848484000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000FFFF0000FFFF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00000000000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 000000000000000000000000000000FFFF0000FFFF0000FFFF00000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF000000 + 0000008484000084840000848400008484000084840000848400008484000084 + 8400008484000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000848484008484840084848400000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000008484000084 + 8400008484000084840000848400008484000084840000848400008484000084 + 8400008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000084 + 8400000000000000000000000000000000000000000000000000000000000000 + 0000008484000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000000000000000000000000000FFFFFF0000FFFF00FFFF + FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000008484000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00000000000000000000000000000000000000000000FFFF00FFFFFF0000FF + FF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF000000000000000000000000000000000000000000FFFFFF000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000084840000000000000000000000000000000000000000000000 + 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF000000000000000000000000000000000000000000FFFF + FF0000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000008484000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000400000000100010000000000000200000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFF0000FFFFFFFFFFFF0000 + FFFFFFFF8FFF0000C007C0078C030000FFFFFFFF8FFF0000F83FF807FFFF0000 + FFFFFFFFFFFF0000C007C0078FFF0000FFFFFFFF8C030000F01FF8078FFF0000 + FFFFFFFFFFFF0000C007C007FFFF0000FFFFFFFF8FFF0000F83FF8078C030000 + FFFFFFFF8FFF0000FFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFE00FFFFFFFFFFFFFFFFFC007F00F81FFF83FFFFFF8C7E3FFF39FC03F + F8C7F1FFF39FFFFFF8C7F8FFF39FC007F80FFC7FF39FFFFFF8C7FE3FF39FC03F + F8C7FF1FF39FFFFFF8C7FF8FF39FC007F00FFF03E10FFFFFFFFFFFFFFFFFC03F + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FFFFFFFC00 + FFFFF6CFFE008000FFFFF6B7FE000000FFFFF6B7FE000000FFF7F8B780000000 + C1F7FE8F80000001C3FBFE3F80000003C7FBFF7F80000003CBFBFE3F80010003 + DCF7FEBF80030003FF0FFC9F80070FC3FFFFFDDF807F0003FFFFFDDF80FF8007 + FFFFFDDF81FFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC001C007 + C007001F8031BFEBC007000F80310005C007000780317E31C007000380017E35 + C007000180010006C007000080017FEAC007001F8FF18014C007001F8FF1C00A + C007001F8FF1E001C0078FF18FF1E007C00FFFF98FF1F007C01FFF758FF5F003 + C03FFF8F8001F803FFFFFFFFFFFFFFFF00000000000000000000000000000000 + 000000000000} + end + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002C04944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C236C01A3E14CBC16890B + 7332A8C9F133C47AAB3004392BA058B4E7F805E27C70F5EE7B069D905570FEAF + D3290C9FBEFC62B870F32D43E5E4530CA7AFBE068B37A41B32A40569C07DB1FF + E425E28308D927DF4F24010D80B8F2F5FBEF0C2ABE10CB85F8D9192EAE08805A + F09FE1D0E9CBE459F0E55822349CFF31BC78FB9D4133680D585C418A87E1C06C + 4F88E540B9A3E7AE1267012875301BCF86F33F1E896778F3FE07C3D9EBAF195A + E75C60B878EB1DD8F00925E60CBAAA82F0483F71F13A610B40A905A498CD740E + CE88B6D4136368CF35629011E78646F05F307DE6CA4DEC16C0CA25100DF32EA7 + C53CB881AFF64533FCFAFD97E1EEE34F0C53565E6358BDFB01033B1B33C3B40A + 73A065A2703DE7AFDFC6B400586E800D0129FA074BE34036AFF502B805CF7747 + C28B8417EFBE3198C56C018BABCAF131ACEB7180EBB974F30E760BD00D07D102 + 768BE0163CD9110E36FCCF3F88252A7E6BE1721796FBC053D8D5DBF7302D88F1 + B3C2301CA458D80151C83EDA160637FCC3E79F0C26D1101FA8C8F232ACECB085 + 3810A8EFFABD07981644F95860187EEDDE0706DBA42D700B764E7303A79A8B37 + DF314C5B7583E1C0D9170C5C1C2C0C53CA4C19745404E0C5C7ED878F302D08F7 + 34C3E97274C0CCCCC8A008B4C85C478421C25D81414C901D49EF7F86FB4F1E63 + 5A10EC6682A2E81FD4A23F48BEFA87E40044E9F90F451FC8BC074F9F605A10E0 + 6C8C4503A6E17FA025262EC34100AB05BE8E86040D27E47218C069C1E6FDA719 + A805502C0055FA2BD76D5FF2EDFB4FAA5990181D80A8F4690900D0674DFECB86 + 8A7D0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002724944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C43BE05FF80EA910D8760281F88FF01D93B8E9C23DD02CBB80D0C272EBF + C4100F7353629856698562D19EE31748B700140C2D73CE33D44F3F03E6CB49F2 + 30AC6877645093E7C7F0C5FE939748B3001CC6C060496E38C8B078EB6DB05873 + 96314366A82686E12075874E5F26DE0298E12083340257313C7CFE052C7E708E + 37838602D4F5B03881AA3B7AEE2A7116201B7EFFD96706ADA0D560717E1E3686 + 9B1B4280118A6938089FB8789DB005A0D4024F2540CDA0A0C96C3D0296F3B496 + 61985B670316FFF3F72FD47090457FC1F4992B37B15B002B974034DC452043FE + FC65C86C3BCAB07CC75DB07C63862143A29F2AC39F7F88DC0B0F2A207DFEFA6D + 4C0B80E506583348D1BF7FA81A40416010B19EE1F18BAF60353BA6B831A829F0 + 61351C445FBA7907BB05B80C0745AC51E406B0E17CDCAC0C1756FAE3341CA4FE + EAED7B9816C4F85961351CC45EBEFD2E437EF709B0056E16520CD3AA2CB1180E + 618322FEFABD07981644F95860D570EBC10786989A830C0F9E4192675EA41643 + 76983AAA5AE4D40464DF7EF808D382704F330CC3931A0E316C39F41823F9AACA + F131ACEDB107973B7FB004D3FD278F312D0876334151F40F6AD11F24CDFF901D + F017A9C043D20732EFC1D327981604381B63D18069F81F688989CB7010C06A81 + AFA32141C309B91C06705AB079FF69A2EA0462008A05A04A7FE5BAED4BBE7DFF + 49350B12A30310953E2D01006441B6FE0F06917C0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123C882851B8E4603E9255435989131263EC07A29D88205EB + 8FFC4F08B421C900903E90DFFFFDFBCFF0F7DF3F86BF7FFF41D8401A04A272DA + 18B62E6C6624CB02EC868368087FD3BED30C0B976F63D8BFAA8B740B08190EA2 + B71E3C83DF0246C399382DF87B2E8D81D9681686F89BFD31600BFE012DD871E4 + 1C611FDC7CF081412370259CFF605B1483AC040F3CAC0F9C79C6E091BD9D61C7 + 140F06136D11B038CC177B8E5F202E88907DF2F76C2A50332412FF428387DF66 + 21C4E5488683F0FE939748B7E0D7E91414C3416C21FBC50C2FF744A1180E923F + 74FA32E9167C3F910437FC1FD42211C7250CCF7646202C85FAF0E8B9ABA45BF0 + E558223C1241F41FA041122ECB181E6F0F47311C844F5CBC4ED8827F4071E4D4 + F2F1483C8AE1205F48B9AF60B8BF25046A3848EE2F983E73E526760B60E51288 + 066962339D03B7E0ED815878D8C352929CD72A863B9B82E162305F9CBF7E1BD3 + 0260B901492D4045FFE091B888E1C7AFBF60F157FBA2510C7FF1EE1B8377EE1E + 8623F33C510C07D1976EDEC16E01B2E120B653DA5686D3575F832D38BED09741 + 569C0B6CF81FA09A5DC79F32ACDC799F616A853946F2BD7AFB1EA605317E5628 + 8683E8EDC71E33C4561F0086F97F0617732986B61C630611417686F337DE32D4 + 4C3DC7D09469C0A0A1C00FD503D1078A9BEBF71E605A10E56381E65508FBC8F9 + 170CDD0B2F335CBAFD8EE1EBF73F0C7CDCAC0C96FA620C79111A0C7212DCA8E1 + 0F75E0ED878F302D08F734C3301C3DF250E52149F60F1635F79F3CC6B420D8CD + 04AE089481480587E7B882F583CC7BF0F409A60501CEC6886488C527B0CAE40F + 52664377392C9963B5C0D7D190A0E17F51CA7DEC86E3B560F3FED324070D2E80 + 6201A8D25FB96EFB926FDF7F52CD82C4E80044A54F4B0000DAB495FE133533B1 + 0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003494944415478DA + B5956B48536118C7FF6B864285420991141445AB282C57A6DDD45C65AEB40B5D + 746681D89720838AEA8351D155238308A2DBCC5564999736539A99A9A56D4E9D + A9E944A74E9AB1FA6034D176CE3AE7DD9C5B676E06F9C2E1BD9CE7FDFFCEF33C + EF795E9ED56AC544361E0BC82EA84E647AD97F15E6F124C9F16B1E138034BFCA + 7A70C7DA7F1260F7B1BED3B415144D83A268DB98E9D99670E41214D917781E01 + 75DFEA10FD321AFA437AF8FBFA7B11677BDBBCE8AD0AD94F8B519E7BCD3320A9 + 3409B22F32646DC8C2D1E0A3E312677B4585DA3BA0DFDC8F881711309A8DF0E3 + FBC19062009FC707CDD83B8BDB1EFB9C7968665C52A5F10EB8AABE0A9F493E30 + FE3222539309E926299204075C624DB97CF9E858F9B1C13380B252103C12A066 + 6F0D4C8326320E0E0CC6A73D6ABB3037B1CE5E94D76A3D03F23AF220EF92E3A1 + E82199B3892EEB2D4351AC1C5141228FE22CFCBDAAC93340942F82B247C949FA + BA59EB21DF5ACAC4D9EEC5480E463CB2AF556B9AC706349A1A91A24C816A9FCA + 763A984DC396DF58289B8FBE5F7DA88CABC5A28025B0B01ED8C573141D3873AB + 0EED053B09A0A6B1D53DA0FB6737C485624804129C0839E9F285E7546791517F + 05C1D35720273217D327CF20EB159AAF484EAF24616AC98B23BDFA739B7B00EF + 26CF118E038264DC89B84B4452CB53F04497E378377BCA1C54C736A0B36F00C7 + 6FA8A16E3191F5A6DCEDE483EA5B755C0053376C2788B6DA7F1CA738D3AE3167 + 933B601EC6FE5315C8481362CB9137646FC35331B1D3B675B8078C577CC842E1 + F0850F488C998BB0658158BCBBD0565A1EC712FB665D271720D91E3E2E710BB3 + 764DDA043F5F3E52772C20EF97EE2922804F393124F1AD9D7A2E2041BCDAAB38 + BBF65CA9C7C92CB5DB0AFB51BA99D8EABA7BB880BD31ABC6141F196BBE7CC7E5 + 075ADC4B0F079F0F5277D8E32A94141340E53D11B1ED32F47201BB36099D0056 + FB19A789C0E0100545652FA4451DB87D3A1401D3263BFE5EA3C90C71DA3B02B8 + 9F1E8A794153A1EF337001F11B43468BD65F9E3C2868C7C5FB5A2212B57226AE + 1F133A6C43934B5CC2F4E87C1828CB0F2E605BE4F231733066F574F2D8F96E77 + EB010B7855AEFAA76BD3537301B097FEB397AF65E6C1A1FF063894183F7AE94F + 64FB03E70FC5FE7DFF61640000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000844944415478DA + 63FCFFFF3F032D0123DD2CE0E6E626D9A66FDFBE31E29307998D6241DBD4D518 + 8A3E7CFC0CC19FBE307C4462DF3CBC90740B68EA03464646A20C2505D0D70272 + 828810F8FAF52B23C1484606DFBEFF60F8FEFD279806B37FFC4411FB0E150301 + 5022C0B080A63E1899913C9A932906833F9209816196936905462D200800B3F4 + 07E01B49C5960000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000884944415478DA + 63FCFFFF3F032D0123DD2C6064644491E0E2E222D9E66FDFBEA11802321BAF05 + 6D53576318F2E1E36708FEF485E12312FBE6E185A45B40531F5003D0D7026E6E + 6EAA27A7AF5FBF32A258802D5291C1B7EF3F18BE7FFF09A6C1EC1F3F51C4BE43 + C5400014E91816D0D407433F92477332C93EA00618CDC9832C27D30A8C5A4010 + 000093B807E097AFA8400000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000814944415478DA + 63FCFFFF3F032D0123DD2C606464C4AB908B8B8B64977CFDFA9591240BDAA6AE + C610FFF0F133047FFAC2F011897DF3F042D22DA0A90FC80120B3E96701373737 + D593134A10812CC01689C8E0DBF71F0CDFBFFF04D360F68F9F2862DFA1622080 + 11C934F7C1D08FE401CF07A3397934270F829C4C2B306A01410000E973F5D1CA + C2F46B0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000000664944415478DA + 63FCFFFF3F032D0123DD2CE0E6E6A6BA4D5FBF7E6544B1A06DEA6ABC1ABE7DFF + C1F0FDFB4F300D66FFF88922F61D2A0602370F2FC4B480A63E606464A4B6F90C + 20B3E967C1682413F4C16824130CA2D148C606462379904532ADC0A805040100 + 50940DE0E82572D70000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002DA4944415478DA + B5956D4853511CC69F7DCA37245F0AD33058AB61616586A4D687088422CDE883 + F8826941319090C42F068E3012A4CF5110D2521183CA976622E22AB754E674EA + A6AECD39DF3229C9DADCB4BC7779EEF4BA75AF7507FA8771EEEEBDE7F9DDFF79 + 1ECE11B9DD6EEC64890840D1A8C95D1B6BB7555824CABB96995AC7009EBD56BB + 0BAE9CF14B80CC23BDD3B41B144D83A268CFF5DA482AA7E801948A0A910FC0F2 + D9817AD514DA75F3483E12819B17C5904487081427A3E77F73A7168AFA56A85E + 54F9022AEA46102A3988623D90B540C1B53280A67BA98C687070B0A0CE6CD3F3 + 50BEEFE3079CBDA3825A9AE279F3CB18D0D803F7C02D1670F7610D969C2E389D + CBCCE8B02F61F1A7038B3FEC585EF905539702E3B639B4A9FBF90197E51A04EE + 4A40C36F33235A38A9447575995F1D98C667D1D1ADE707100F4A9E0CA2B9D980 + C2840594DDBFCD7AC0ACF1BA89148FB11BEB4F7EAADE217EC056E58F3879FE41 + 3BBC7507351D3674EABF22491A0659BA04E2A8208E384D7901BDA1EBF734FD46 + 7E80FCB901E1D2436C8A9CCBFD78599ECC4C8A08DF2DC803DDB0153D83A3C253 + E4EAB9CE7CD9DEC8304129EAD55BD06730F10332CAD5080A38C9A628DFFA068F + 1E97627595427454A4A00E3EEA3E6160D4CC05ACED1B6C8A5A5A8CC83FF60D25 + 72190EEC09F459DF0D7357696F937D433064B2F003C8439AFE7B827FE2E47DA3 + D9CA05E465A4C03C6B87A27D029A91EF38210E45415A2C62490782C43DD72461 + A3561B179073E934CA1506EC8B8F6353E470EAF0B4F8382370581C23C883F6AE + 619827A7B880AC0B49482BD3705234D396C57C599C64BFA014B5BE1BC2C4CC34 + 177035ED14B22BB508094A6453946D6E42655511038897C60AEA40A91A846D76 + 860BC83C9F88F13907E43563502A47907D741EB2D21B888908F0D916180FA8CD + EDC2DBE08DE39717907E2E61CBF4D0DEF7FE23FE4F408B4A2B681984940F801C + FA0DAFDED63A5D2BDB0628CCCDDC3CF477B2FE0097C77CFE55ACDC7600000000 + 49454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 123 + Top = 136 + Bitmap = {} + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001984944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046 + C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F + CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8 + 7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7 + 9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254 + 66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F + 9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0 + 8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908 + 567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754 + 03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4 + 6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748 + CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945 + 4E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B + 37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C + 6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E + 61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B + 0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14 + CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F + 005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD + DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE + D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13 + 9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC + F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C + 81590C9B58CC0000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001854944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12 + CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A + B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10 + 67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9 + D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707 + E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356 + D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE + EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426 + 90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8 + 97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F + 1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B + D67559EB1C43180000000049454E44AE426082} + Name = 'PngImage28' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage27' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage29' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001CB4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7 + E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3 + 3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC + 759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E + 32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9 + 4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1 + 1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7 + 70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19 + 562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183 + 3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56 + 28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B + 99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410 + 72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B + F333A26300FC1C815930D4A9C10000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F94944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7 + CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0 + E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8 + 0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651 + 5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049 + 454E44AE426082} + Name = 'PngImage31' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001004944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D + 80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86 + FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED + BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01 + E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7 + 64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE + 9D230000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000FC4944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66 + 18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF + B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E + FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354 + DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875 + F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000 + 000049454E44AE426082} + Name = 'PngImage30' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE + 01D5FCF983D00CC2672FDFC134809B9B9B286FDC79F09CE1E2F57B845D80CD66 + 18FFDAED87E4BBE0F28D870CB7EE3FC1ED027C36FF01F3FF31DC7FFC8C7C171C + 3B7B8BE1F9ABD79806A0DBFCF3D71F14DB7FFF86B9E81FC39B776F510D88F1B3 + 62E0E7E325CA057B8E5E65F8F8E903AA01E15EE6A8B6E1B01926F7EDDB675403 + 82DC4C88D6FCEFDF7F861F3FBEA01AE0E764C470EAE22DA2BC0003700340B971 + E28CA524E7C6FC8CE8180004936059AAE3EEF00000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001704944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC48062C0BEFB0C0CF593F7331C79CFC5B0 + B7CE9CC14911B7E663676F3054B5CD4235C0B6683F4348B81543C105A0EA190B + 18FE9F4F67686C6CC47045565E31C3D9CB77300D604C3CC9C06061C0C0F0E206 + 83C186090CE7CFCF67E0E6E6C630E0CE83E70C17AFDFC33400E405E7A0990C06 + 0C27187AD7CD677050F8CFF0E70FC2D9200CE35FBBFD10D30064F0EF3F6ECD7F + 80F8D6FD27B80D20A4F937907DFFF133EC5E80C5C2FA0A730607A9EF189A7FFC + FC03663F7FF59A702CBCD813C530634A1F46207A072731BC79F716D580183F2B + 06D694D328B1B079473F83BA923486017B8E5E65F8F8E903AA01E15EE60C3B1F + B03204464062A174C97C062B81779030F80D0B0B44B87CFBF619D58020371394 + 8083B3B168FEF7EF3FC38F1F5F500DF07332623875F1164999096E0028374E9C + B194E4DC989F111D03003D3E8159D33DF1820000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 91 + Top = 136 + Bitmap = {} + end +end diff --git a/Source/GUIBase/uViewRichEditor.pas b/Source/GUIBase/uViewRichEditor.pas new file mode 100644 index 00000000..2f554bb7 --- /dev/null +++ b/Source/GUIBase/uViewRichEditor.pas @@ -0,0 +1,238 @@ +unit uViewRichEditor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, Menus, cxLookAndFeelPainters, cxGraphics, cxSpinEdit, + cxSpinButton, cxMaskEdit, cxFontNameComboBox, cxControls, cxContainer, cxEdit, + cxTextEdit, cxDropDownEdit, cxColorComboBox, StdCtrls, cxButtons, ComCtrls, + ToolWin, ImgList, ActnList, TBXExtItems, TB2ExtItems, TB2Item, TBX, TB2Dock, + TB2Toolbar, PngImageList, cxMemo, cxRichEdit, ExtCtrls, DB, uDAInterfaces, + uDADataTable, cxDBRichEdit; + +type + IViewRichEditor = interface(IViewBase) + ['{C29F4555-A57A-436D-BF23-2E2F013BC13D}'] + end; + + + TfrViewRichEditor = class(TfrViewBase, IViewRichEditor) + ActionList: TActionList; + actEditCut: TAction; + actEditCopy: TAction; + actEditPaste: TAction; + actEditFont: TAction; + actBullets: TAction; + pmColorSchemes: TPopupMenu; + miStandard: TMenuItem; + miHTML: TMenuItem; + miWeb: TMenuItem; + miWebSorted: TMenuItem; + ToolbarImages: TImageList; + TBXDock1: TTBXDock; + TBXToolbar1: TTBXToolbar; + bBold: TTBXItem; + bItalic: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + bUnderline: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem7: TTBXItem; + TBXSeparatorItem4: TTBXSeparatorItem; + bAlignLeft: TTBXItem; + bAlignCenter: TTBXItem; + bAlignRight: TTBXItem; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBControlItem1: TTBControlItem; + fcbFontName: TcxFontNameComboBox; + TBXColorItem1: TTBXColorItem; + RichEdit: TcxDBRichEdit; + TBControlItem2: TTBControlItem; + meFontSize: TcxMaskEdit; + TBControlItem3: TTBControlItem; + cxSpinButton: TcxSpinButton; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + bBullets: TTBXItem; + procedure actBulletsExecute(Sender: TObject); + procedure actEditCutExecute(Sender: TObject); + procedure actEditCopyExecute(Sender: TObject); + procedure actEditPasteExecute(Sender: TObject); + procedure RichEditPropertiesChange(Sender: TObject); + procedure CustomViewShow(Sender: TObject); + procedure RichEditPropertiesSelectionChange(Sender: TObject); + procedure cxFontNameComboBox1PropertiesChange(Sender: TObject); + procedure CustomViewCreate(Sender: TObject); + procedure fcbFontNamePropertiesInitPopup(Sender: TObject); + procedure meFontSizePropertiesChange(Sender: TObject); + procedure bBoldClick(Sender: TObject); + procedure bItalicClick(Sender: TObject); + procedure bUnderlineClick(Sender: TObject); + procedure bAlignLeftClick(Sender: TObject); + procedure bAlignCenterClick(Sender: TObject); + procedure bAlignRightClick(Sender: TObject); + procedure bBulletsClick(Sender: TObject); + private + FUpdating: Boolean; + FChanged: Boolean; + function CurrText: TTextAttributes; + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +procedure TfrViewRichEditor.actBulletsExecute(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(actBullets.Checked); +end; + +procedure TfrViewRichEditor.actEditCopyExecute(Sender: TObject); +begin + RichEdit.CopyToClipboard; +end; + +procedure TfrViewRichEditor.actEditCutExecute(Sender: TObject); +begin + RichEdit.CutToClipboard; +end; + +procedure TfrViewRichEditor.actEditPasteExecute(Sender: TObject); +begin + RichEdit.PasteFromClipboard; +end; + +procedure TfrViewRichEditor.bAlignCenterClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignLeftClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bAlignRightClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag); +end; + +procedure TfrViewRichEditor.bBoldClick(Sender: TObject); +begin + if FUpdating then Exit; + if bBold.Checked then + CurrText.Style := CurrText.Style + [fsBold] + else + CurrText.Style := CurrText.Style - [fsBold]; +end; + +procedure TfrViewRichEditor.bBulletsClick(Sender: TObject); +begin + if FUpdating or (RichEdit = nil) then Exit; + RichEdit.Paragraph.Numbering := TNumberingStyle(bBullets.Checked); +end; + +procedure TfrViewRichEditor.bItalicClick(Sender: TObject); +begin + if FUpdating then Exit; + if bItalic.Checked then + CurrText.Style := CurrText.Style + [fsItalic] + else + CurrText.Style := CurrText.Style - [fsItalic]; +end; + +procedure TfrViewRichEditor.bUnderlineClick(Sender: TObject); +begin + if FUpdating then Exit; + if bUnderline.Checked then + CurrText.Style := CurrText.Style + [fsUnderline] + else + CurrText.Style := CurrText.Style - [fsUnderline]; +end; + +function TfrViewRichEditor.CurrText: TTextAttributes; +begin +{ if RichEdit.SelLength > 0 then} + Result := RichEdit.SelAttributes +{ else + Result := RichEdit.DefAttributes;} +end; + +procedure TfrViewRichEditor.CustomViewCreate(Sender: TObject); +begin + inherited; + CurrText.Name := DefFontData.Name; + RichEditPropertiesSelectionChange(Self); +end; + +procedure TfrViewRichEditor.CustomViewShow(Sender: TObject); +begin + inherited; + FChanged := False; +end; + +procedure TfrViewRichEditor.cxFontNameComboBox1PropertiesChange( + Sender: TObject); +begin + if FUpdating then Exit; + CurrText.Name := TcxFontNameComboBox(Sender).Text; +end; + +procedure TfrViewRichEditor.fcbFontNamePropertiesInitPopup(Sender: TObject); +begin + inherited; + fcbFontName.Properties.FontPreview.FontStyle := CurrText.Style; +end; + +procedure TfrViewRichEditor.meFontSizePropertiesChange(Sender: TObject); +begin + if FUpdating then Exit; + if meFontSize.EditText <> '' then + CurrText.Size := StrToInt(meFontSize.EditText) + else + CurrText.Size := 0; +end; + +procedure TfrViewRichEditor.RichEditPropertiesChange(Sender: TObject); +begin + FChanged := True; +end; + +procedure TfrViewRichEditor.RichEditPropertiesSelectionChange(Sender: TObject); +begin + with RichEdit.Paragraph do + try + FUpdating := True; + bBold.Checked := fsBold in CurrText.Style; + bItalic.Checked := fsItalic in CurrText.Style; + bUnderline.Checked := fsUnderline in CurrText.Style; + bBullets.Checked := Boolean(Numbering); + meFontSize.Text := IntToStr(CurrText.Size); + fcbFontName.EditValue := CurrText.Name; + //cxColorComboBox.EditValue := CurrText.Color; + case Ord(Alignment) of + 0: begin + bAlignLeft.Checked := True; + end; + 1: begin + bAlignRight.Checked := True; + end; + 2: begin + bAlignCenter.Checked := True; + end; + end; + finally + FUpdating := False; + end; +end; + +end. diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 index 89d9318e..5fabf2e5 100644 --- a/Source/Informes/InfPresupuestoCliente.fr3 +++ b/Source/Informes/InfPresupuestoCliente.fr3 @@ -1,12 +1,84 @@ - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.dfm b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm index d9a08928..95a926b9 100644 --- a/Source/Modulos/Contactos/Views/uEditorDireccion.dfm +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.dfm @@ -4,7 +4,7 @@ object fEditorDireccion: TfEditorDireccion ActiveControl = eNombre BorderStyle = bsDialog Caption = 'Cambiar datos de la direcci'#243'n' - ClientHeight = 589 + ClientHeight = 499 ClientWidth = 426 Color = clBtnFace ParentFont = True @@ -12,14 +12,14 @@ object fEditorDireccion: TfEditorDireccion Position = poOwnerFormCenter DesignSize = ( 426 - 589) + 499) PixelsPerInch = 96 TextHeight = 13 object Bevel1: TBevel Left = 8 Top = 8 - Width = 322 - Height = 511 + Width = 329 + Height = 457 Anchors = [akLeft, akTop, akRight] Shape = bsFrame end @@ -120,20 +120,14 @@ object fEditorDireccion: TfEditorDireccion AutoSize = False Caption = 'Notas:' end - object Bevel2: TBevel - Left = 20 - Top = 457 - Width = 306 - Height = 9 - Shape = bsBottomLine - end object Label10: TLabel - Left = 21 - Top = 489 + Left = 20 + Top = 471 Width = 156 Height = 13 AutoSize = False Caption = 'Coste del env'#237'o a esta direcci'#243'n:' + Visible = False end object Label11: TLabel Left = 21 @@ -160,7 +154,6 @@ object fEditorDireccion: TfEditorDireccion Caption = '&Aceptar' ModalResult = 1 TabOrder = 0 - ExplicitLeft = 350 end object CancelBtn: TButton Left = 343 @@ -172,7 +165,6 @@ object fEditorDireccion: TfEditorDireccion Caption = '&Cancelar' ModalResult = 2 TabOrder = 1 - ExplicitLeft = 350 end object eDireccion: TDBEdit Left = 135 @@ -272,8 +264,8 @@ object fEditorDireccion: TfEditorDireccion TabOrder = 10 end object ePortes: TcxDBCurrencyEdit - Left = 183 - Top = 486 + Left = 194 + Top = 471 DataBinding.DataField = 'PORTE' DataBinding.DataSource = dsDireccion Properties.UseThousandSeparator = True @@ -286,6 +278,7 @@ object fEditorDireccion: TfEditorDireccion StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True TabOrder = 11 + Visible = False Width = 143 end object eMovil: TDBEdit diff --git a/Source/Modulos/Contactos/Views/uEditorDireccion.pas b/Source/Modulos/Contactos/Views/uEditorDireccion.pas index dd882276..c46beae0 100644 --- a/Source/Modulos/Contactos/Views/uEditorDireccion.pas +++ b/Source/Modulos/Contactos/Views/uEditorDireccion.pas @@ -6,7 +6,7 @@ uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton, cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit, uIEditorDireccionContacto, uDireccionesContactoController, uBizDireccionesContacto, - cxCurrencyEdit; + cxCurrencyEdit, uDAInterfaces; type TfEditorDireccion = class(TForm, IEditorEditorDireccion) @@ -33,7 +33,6 @@ type Label8: TLabel; Label9: TLabel; eNotas: TDBMemo; - Bevel2: TBevel; Label10: TLabel; ePortes: TcxDBCurrencyEdit; Label11: TLabel; diff --git a/Source/Modulos/Contactos/Views/uViewProveedor.dfm b/Source/Modulos/Contactos/Views/uViewProveedor.dfm index 6a3856e5..8617c312 100644 --- a/Source/Modulos/Contactos/Views/uViewProveedor.dfm +++ b/Source/Modulos/Contactos/Views/uViewProveedor.dfm @@ -19,7 +19,7 @@ inherited frViewProveedor: TfrViewProveedor ExplicitLeft = 613 end object Label1: TLabel [3] - Left = 366 + Left = 370 Top = 307 Width = 342 Height = 26 @@ -29,37 +29,37 @@ inherited frViewProveedor: TfrViewProveedor WordWrap = True end inherited eCalle: TcxDBTextEdit - Left = 124 + Left = 134 Top = 304 TabOrder = 9 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 304 ExplicitWidth = 264 Width = 264 end inherited eProvincia: TcxDBTextEdit - Left = 124 + Left = 134 Top = 358 TabOrder = 12 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 358 ExplicitWidth = 264 Width = 264 end inherited ePoblacion: TcxDBTextEdit - Left = 124 + Left = 134 Top = 331 TabOrder = 10 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 331 ExplicitWidth = 163 Width = 163 end inherited eCodigoPostal: TcxDBTextEdit - Left = 271 + Left = 275 Top = 331 TabOrder = 11 - ExplicitLeft = 271 + ExplicitLeft = 275 ExplicitTop = 331 end inherited eObservaciones: TcxDBMemo @@ -70,7 +70,7 @@ inherited frViewProveedor: TfrViewProveedor Height = 20 end object cxDBCheckBox1: TcxDBCheckBox [9] - Left = 366 + Left = 370 Top = 280 Caption = 'Incluir este proveedor en la tienda web' DataBinding.DataField = 'TIENDA_WEB' @@ -119,7 +119,7 @@ inherited frViewProveedor: TfrViewProveedor Width = 326 end object eCertificaciones: TcxDBTextEdit [11] - Left = 124 + Left = 134 Top = 220 DataBinding.DataField = 'CERTIFICACION' DataBinding.DataSource = dsContacto @@ -138,7 +138,7 @@ inherited frViewProveedor: TfrViewProveedor Width = 227 end object cbGrupoProveedor: TcxDBComboBox [12] - Left = 124 + Left = 134 Top = 136 DataBinding.DataField = 'GRUPO_PROVEEDOR' DataBinding.DataSource = dsContacto @@ -161,18 +161,8 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 5 Width = 227 end - inherited eTlfParticular: TcxDBTextEdit - Left = 461 - TabOrder = 14 - ExplicitLeft = 461 - end - inherited eTlfTrabajo: TcxDBTextEdit - Left = 461 - TabOrder = 13 - ExplicitLeft = 461 - end - object eDescripcionProveedor: TcxDBTextEdit [15] - Left = 124 + object eDescripcionProveedor: TcxDBTextEdit [13] + Left = 134 Top = 82 DataBinding.DataField = 'DESCRIPCION_PROVEEDOR' DataBinding.DataSource = dsContacto @@ -190,8 +180,8 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 3 Width = 221 end - object eCodigoAsignado: TcxDBTextEdit [16] - Left = 124 + object eCodigoAsignado: TcxDBTextEdit [14] + Left = 134 Top = 109 DataBinding.DataField = 'CODIGO_ASIGNADO' DataBinding.DataSource = dsContacto @@ -209,53 +199,83 @@ inherited frViewProveedor: TfrViewProveedor TabOrder = 4 Width = 221 end + inherited eTlfParticular: TcxDBTextEdit + Left = 465 + TabOrder = 14 + ExplicitLeft = 465 + ExplicitWidth = 91 + Width = 91 + end + inherited eTlfTrabajo: TcxDBTextEdit + Left = 465 + TabOrder = 13 + ExplicitLeft = 465 + ExplicitWidth = 127 + Width = 127 + end inherited eTlfMovil: TcxDBTextEdit - Left = 461 + Left = 465 TabOrder = 15 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 155 + Width = 155 end inherited eFax: TcxDBTextEdit - Left = 461 + Left = 465 TabOrder = 16 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 121 + Width = 121 end inherited eNombre: TcxDBTextEdit - Left = 124 - ExplicitLeft = 124 + Left = 134 + ExplicitLeft = 134 + ExplicitWidth = 221 + Width = 221 end inherited eNIFCIF: TcxDBTextEdit - Left = 197 - ExplicitLeft = 197 + Left = 207 + ExplicitLeft = 207 ExplicitWidth = 205 Width = 205 end inherited eMailTrabajo: TcxDBHyperLinkEdit - Left = 461 + Left = 465 Properties.Prefix = 'mailto:' TabOrder = 17 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited eMailParticular: TcxDBHyperLinkEdit - Left = 461 + Left = 465 Properties.Prefix = 'mailto:' TabOrder = 18 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited ePaginaWeb: TcxDBHyperLinkEdit - Left = 461 + Left = 465 TabOrder = 19 - ExplicitLeft = 461 + ExplicitLeft = 465 + ExplicitWidth = 133 + Width = 133 end inherited eReferencia: TcxDBTextEdit - Left = 124 - ExplicitLeft = 124 + Left = 134 + ExplicitLeft = 134 + ExplicitWidth = 38 + Width = 38 end inherited ePersonaContacto: TcxDBTextEdit - Left = 124 + Left = 134 Top = 277 TabOrder = 8 - ExplicitLeft = 124 + ExplicitLeft = 134 ExplicitTop = 277 + ExplicitWidth = 256 + Width = 256 end inherited dxLayoutControlContactoGroup_Root: TdxLayoutGroup inherited dxLayoutControlContactoGroup9: TdxLayoutGroup @@ -286,7 +306,7 @@ inherited frViewProveedor: TfrViewProveedor ControlOptions.ShowBorder = False end object dxLayoutControlContactoItem23: TdxLayoutItem - Caption = 'Certificaciones:' + Caption = 'Tipo de homologaci'#243'n:' Control = eCertificaciones ControlOptions.ShowBorder = False end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index bb8e7b64..4fc3c91d 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -1,8 +1,8 @@ object RptFacturasCliente: TRptFacturasCliente OldCreateOrder = True OnCreate = DataModuleCreate - Height = 405 - Width = 447 + Height = 577 + Width = 479 object DADataCabecera: TDADataSource Left = 264 Top = 72 @@ -39,34 +39,6 @@ object RptFacturasCliente: TRptFacturasCliente Left = 344 Top = 128 end - object DABINAdapter: TDABINAdapter - Left = 48 - Top = 80 - end - object frxRichObject1: TfrxRichObject - Left = 48 - Top = 296 - end - object frxBarCodeObject1: TfrxBarCodeObject - Left = 144 - Top = 296 - end - object frxOLEObject1: TfrxOLEObject - Left = 48 - Top = 344 - end - object frxCrossObject1: TfrxCrossObject - Left = 144 - Top = 344 - end - object frxCheckBoxObject1: TfrxCheckBoxObject - Left = 256 - Top = 296 - end - object frxGradientObject1: TfrxGradientObject - Left = 360 - Top = 296 - end object schReport: TDASchema ConnectionManager = dmServer.ConnectionManager Datasets = < @@ -823,7 +795,7 @@ object RptFacturasCliente: TRptFacturasCliente Top = 158 end object frxReport: TfrxReport - Version = '3.23.7' + Version = '4.3' DotMatrixReport = False EngineOptions.DoublePass = True IniFile = '\Software\Fast Reports' @@ -831,6 +803,7 @@ object RptFacturasCliente: TRptFacturasCliente PreviewOptions.OutlineWidth = 180 PreviewOptions.Zoom = 1.000000000000000000 PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 37871.995398692100000000 ReportOptions.LastChange = 39290.847101226850000000 ReportOptions.VersionBuild = '1' @@ -986,70 +959,6 @@ object RptFacturasCliente: TRptFacturasCliente OnStartReport = 'frxReportOnStartReport' Left = 169 Top = 16 - Datasets = < - item - DataSet = frxDBCabecera - DataSetName = 'frxDBCabecera' - end - item - DataSet = frxDBDetalles - DataSetName = 'frxDBDetalles' - end - item - DataSet = frxDBDataset1 - DataSetName = 'frxDBVencimientos' - end> - Variables = < - item - Name = ' Paginacion' - Value = Null - end - item - Name = 'Pagina' - Value = Null - end - item - Name = 'TotalPaginas' - Value = Null - end> - Style = < - item - Name = 'Concepto normal' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [] - end - item - Name = 'Concepto subtotal' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end - item - Name = 'Cabecera de columna' - Color = 15790320 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - Frame.Typ = [ftLeft, ftRight, ftTop, ftBottom] - end - item - Name = 'Concepto titulo' - Color = clNone - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - end> end object frxDBCabecera: TfrxDBDataset UserName = 'frxDBCabecera' @@ -1087,4 +996,98 @@ object RptFacturasCliente: TRptFacturasCliente Left = 344 Top = 184 end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 280 + Top = 496 + end + object frxOLEObject1: TfrxOLEObject + Left = 184 + Top = 432 + end + object frxCrossObject1: TfrxCrossObject + Left = 384 + Top = 496 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 280 + Top = 440 + end + object frxGradientObject1: TfrxGradientObject + Left = 384 + Top = 440 + end + object IBDatabase1: TIBDatabase + DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + Params.Strings = ( + 'user_name=sysdba' + 'password=masterkey' + 'lc_ctype=ISO8859_1') + LoginPrompt = False + DefaultTransaction = IBTransaction1 + Left = 48 + Top = 296 + end + object IBTransaction1: TIBTransaction + Left = 48 + Top = 352 + end + object DataSource1: TDataSource + DataSet = cabecera + Left = 216 + Top = 296 + end + object DataSource2: TDataSource + DataSet = detalles + Left = 216 + Top = 352 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT ' + ' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, ' + ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, ' + ' REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, ' + + ' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,' + + ' ' + ' FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, ' + ' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, ' + ' IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO' + ' FROM' + ' V_PRESUPUESTOS_CLIENTE' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + Left = 136 + Top = 296 + end + object detalles: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + + 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + + 'TALLES.ID_PRESUPUESTO,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.POSICION, PRESUPUESTOS_CLIE' + + 'NTE_DETALLES.TIPO_DETALLE,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIE' + + 'NTE_DETALLES.CANTIDAD,' + + ' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PRESUPUESTO' + + 'S_CLIENTE_DETALLES.IMPORTE_TOTAL,' + + ' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERE' + + 'NCIA_PROV as REFERENCIA_PROVEEDOR' + '' + 'FROM PRESUPUESTOS_CLIENTE_DETALLES' + + 'LEFT JOIN ARTICULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICUL' + + 'O = ARTICULOS.ID)' + 'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = 31' + 'ORDER BY POSICION') + Left = 136 + Top = 352 + end end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index d9d03c27..bd95b1a1 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -7,7 +7,7 @@ uses Dialogs, frxClass, frxDBSet, uDAScriptingProvider, uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, - uDAInterfaces, uDADataStreamer; + uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase; type TRptFacturasCliente = class(TDataModule) @@ -15,13 +15,6 @@ type DADataDetalles: TDADataSource; tbl_FacturaCliente: TDACDSDataTable; tbl_DetallesFacturaCliente: TDACDSDataTable; - DABINAdapter: TDABINAdapter; - frxRichObject1: TfrxRichObject; - frxBarCodeObject1: TfrxBarCodeObject; - frxOLEObject1: TfrxOLEObject; - frxCrossObject1: TfrxCrossObject; - frxCheckBoxObject1: TfrxCheckBoxObject; - frxGradientObject1: TfrxGradientObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; DADataVencimientos: TDADataSource; @@ -30,10 +23,21 @@ type schReport: TDASchema; DataDictionary: TDADataDictionary; frxReport: TfrxReport; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxGradientObject1: TfrxGradientObject; + IBDatabase1: TIBDatabase; + IBTransaction1: TIBTransaction; + DataSource1: TDataSource; + DataSource2: TDataSource; + cabecera: TIBQuery; + detalles: TIBQuery; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; - //Genera cada uno de los albaranes a imprimir + //Genera cada una de las facturas a imprimir procedure GenerarFactura(const ID: integer); overload; public function GenerarFactura(const AFacturaID : String): Binary; overload; @@ -78,7 +82,7 @@ begin ID_Facturas := TStringList.Create; ID_Facturas.CommaText := AFacturaID; - //Vamos generando todos y cada uno de los albaranes recibidos + //Vamos generando todos y cada una de las facturas recibidas for i := 0 to ID_Facturas.Count - 1 do GenerarFactura(StrToInt(ID_Facturas.Strings[i])); @@ -103,7 +107,7 @@ begin dsDetail := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Detalles, ['ID_FACTURA'], [ID], False); dsVencimientos := schReport.NewDataset(FConnection, ds_InformeFacturasCliente_Vencimientos, ['ID_FACTURA'], [ID], False); - AStream.Clear; +{ AStream.Clear; DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); DABINAdapter.ReadDataset(AStream, tbl_FacturaCliente, TRUE, '', TRUE, TRUE); @@ -113,7 +117,7 @@ begin AStream.Clear; DABINAdapter.WriteDataset(AStream, dsVencimientos, [woRows, woSchema], -1); - DABINAdapter.ReadDataset(AStream, tbl_Vencimientos, TRUE, '', TRUE, TRUE); + DABINAdapter.ReadDataset(AStream, tbl_Vencimientos, TRUE, '', TRUE, TRUE);} frxReport.LoadFromFile(DarRutaInformes + rptFacturaCliente, True); diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas index f2b94c44..1549b687 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas @@ -270,9 +270,8 @@ begin USUARIO := AppFactuGES.UsuarioActivo.UserName; FECHA_PRESUPUESTO := DateOf(Now); INCIDENCIAS_ACTIVAS := 0; -// INCIDENCIAS := Nil; + INCIDENCIAS := NIL; REFERENCIA := ''; -// SetFieldNull(DataTable, fld_PresupuestosClienteREF_TIENDA_WEB); end; Result.Post; finally diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index b73ee363..dd1eb816 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -63,7 +63,7 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente Name = 'SITUACION' DataType = datString Size = 255 - DisplayLabel = 'Situaci'#195#179'n' + DisplayLabel = 'Situaci'#243'n' DictionaryEntry = 'PresupuestosCliente_SITUACION' end item diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm index d3fde1b4..126529d8 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -2,38 +2,38 @@ object RptPresupuestosCliente: TRptPresupuestosCliente OldCreateOrder = True OnCreate = DataModuleCreate Height = 604 - Width = 447 - object DADataCabecera: TDADataSource + Width = 629 + object DADSCabecera: TDADataSource DataSet = tbl_Cabecera.Dataset DataTable = tbl_Cabecera Left = 264 Top = 72 end - object DADataDetalles: TDADataSource + object DADSDetalles: TDADataSource DataSet = tbl_Detalles.Dataset DataTable = tbl_Detalles - Left = 344 + Left = 440 Top = 72 end object frxBarCodeObject1: TfrxBarCodeObject - Left = 280 - Top = 496 + Left = 400 + Top = 424 end object frxOLEObject1: TfrxOLEObject - Left = 184 - Top = 432 + Left = 400 + Top = 488 end object frxCrossObject1: TfrxCrossObject - Left = 384 - Top = 496 + Left = 400 + Top = 360 end object frxCheckBoxObject1: TfrxCheckBoxObject - Left = 280 - Top = 440 + Left = 400 + Top = 232 end object frxGradientObject1: TfrxGradientObject - Left = 384 - Top = 440 + Left = 400 + Top = 296 end object schReport: TDASchema ConnectionManager = dmServer.ConnectionManager @@ -43,22 +43,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Params = < item Name = 'ID' - Value = '' + Value = '31' ParamType = daptInput end> Statements = < item Connection = 'IBX' - TargetTable = 'V_PRESUPUESTOS_CLIENTE' SQL = - 'SELECT '#10' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, '#10 + - ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, '#10' REF' + - 'ERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, '#10' OBSERVACI' + - 'ONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, '#10' FECHA_M' + - 'ODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, '#10' DESCUENT' + - 'O, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, '#10' IMPORTE_IVA, IMP' + - 'ORTE_TOTAL, ID_FORMA_PAGO'#10' FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' WH' + - 'ERE V_PRESUPUESTOS_CLIENTE.ID = :ID'#10 + 'SELECT'#10' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_' + + 'EMPRESA,'#10' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,'#10' V_PRE' + + 'SUPUESTOS_CLIENTE.REFERENCIA,'#10' V_PRESUPUESTOS_CLIENTE.PORTADA' + + ','#10' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBS' + + 'ERVACIONES,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUES' + + 'TOS_CLIENTE.IMPORTE_PORTE,'#10' V_PRESUPUESTOS_CLIENTE.DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO,'#10' V_PRESUPUESTOS_CL' + + 'IENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENTE.IVA,'#10' V_PRESUPUE' + + 'STOS_CLIENTE.ID_CLIENTE,'#10' V_PRESUPUESTOS_CLIENTE.REFERENCIA_C' + + 'LIENTE,'#10' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,'#10' V_CLIENTES' + + '.NIF_CIF, V_CLIENTES.NOMBRE,'#10' V_PRESUPUESTOS_CLIENTE.IMPORTE_' + + 'IVA, V_PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL,'#10' V_CLIENTES.PERSON' + + 'A_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.POBLACION,'#10' V_CLIENT' + + 'ES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL'#10'FROM'#10' V_PRESUPUESTOS_C' + + 'LIENTE INNER JOIN V_CLIENTES ON'#10' (V_PRESUPUESTOS_CLIENTE.' + + 'ID_CLIENTE = V_CLIENTES.ID)'#10' WHERE V_PRESUPUESTOS_CLIENTE.ID = ' + + ':ID'#10 StatementType = stSQL ColumnMappings = < item @@ -73,38 +81,10 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'FECHA_PRESUPUESTO' TableField = 'FECHA_PRESUPUESTO' end - item - DatasetField = 'FECHA_DECISION' - TableField = 'FECHA_DECISION' - end item DatasetField = 'REFERENCIA' TableField = 'REFERENCIA' end - item - DatasetField = 'SITUACION' - TableField = 'SITUACION' - end - item - DatasetField = 'ID_CLIENTE' - TableField = 'ID_CLIENTE' - end - item - DatasetField = 'NIF_CIF' - TableField = 'NIF_CIF' - end - item - DatasetField = 'NOMBRE' - TableField = 'NOMBRE' - end - item - DatasetField = 'REFERENCIA_CLIENTE' - TableField = 'REFERENCIA_CLIENTE' - end - item - DatasetField = 'CLIENTE_FINAL' - TableField = 'CLIENTE_FINAL' - end item DatasetField = 'PORTADA' TableField = 'PORTADA' @@ -117,26 +97,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'OBSERVACIONES' TableField = 'OBSERVACIONES' end - item - DatasetField = 'INCIDENCIAS' - TableField = 'INCIDENCIAS' - end - item - DatasetField = 'INCIDENCIAS_ACTIVAS' - TableField = 'INCIDENCIAS_ACTIVAS' - end - item - DatasetField = 'FECHA_ALTA' - TableField = 'FECHA_ALTA' - end - item - DatasetField = 'FECHA_MODIFICACION' - TableField = 'FECHA_MODIFICACION' - end - item - DatasetField = 'USUARIO' - TableField = 'USUARIO' - end item DatasetField = 'IMPORTE_NETO' TableField = 'IMPORTE_NETO' @@ -161,6 +121,26 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DatasetField = 'IVA' TableField = 'IVA' end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'CLIENTE_FINAL' + TableField = 'CLIENTE_FINAL' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end item DatasetField = 'IMPORTE_IVA' TableField = 'IMPORTE_IVA' @@ -170,8 +150,24 @@ object RptPresupuestosCliente: TRptPresupuestosCliente TableField = 'IMPORTE_TOTAL' end item - DatasetField = 'ID_FORMA_PAGO' - TableField = 'ID_FORMA_PAGO' + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' end> end> Name = 'Informe_Cabecera' @@ -190,44 +186,11 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'FECHA_PRESUPUESTO' DataType = datDateTime end - item - Name = 'FECHA_DECISION' - DataType = datDateTime - end item Name = 'REFERENCIA' DataType = datString Size = 255 end - item - Name = 'SITUACION' - DataType = datString - Size = 255 - end - item - Name = 'ID_CLIENTE' - DataType = datInteger - end - item - Name = 'NIF_CIF' - DataType = datString - Size = 15 - end - item - Name = 'NOMBRE' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_CLIENTE' - DataType = datString - Size = 255 - end - item - Name = 'CLIENTE_FINAL' - DataType = datString - Size = 255 - end item Name = 'PORTADA' DataType = datMemo @@ -240,28 +203,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'OBSERVACIONES' DataType = datMemo end - item - Name = 'INCIDENCIAS' - DataType = datMemo - end - item - Name = 'INCIDENCIAS_ACTIVAS' - DataType = datSmallInt - Required = True - end - item - Name = 'FECHA_ALTA' - DataType = datDateTime - end - item - Name = 'FECHA_MODIFICACION' - DataType = datDateTime - end - item - Name = 'USUARIO' - DataType = datString - Size = 30 - end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -286,6 +227,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IVA' DataType = datFloat end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end item Name = 'IMPORTE_IVA' DataType = datCurrency @@ -295,14 +260,173 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datCurrency end item - Name = 'ID_FORMA_PAGO' - DataType = datInteger + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 end> + ReadOnly = True end item Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + SQL = + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(:ID_PRESUPUESTO)'#10'WHER' + + 'E {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + SQLOrigin = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + SQLOrigin = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' + end + item + DatasetField = 'ID_CAPITULO' + SQLOrigin = 'ID_CAPITULO' + end + item + DatasetField = 'ID_ARTICULO' + SQLOrigin = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'CONCEPTO' + SQLOrigin = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + SQLOrigin = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + SQLOrigin = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + SQLOrigin = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + SQLOrigin = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos_Detalles' + Fields = < item Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'CANTIDAD' + DataType = datInteger + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' Value = '' ParamType = daptInput end> @@ -311,68 +435,42 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Connection = 'IBX' TargetTable = 'PRESUPUESTOS_CLIENTE_DETALLES' SQL = - 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + - 'TALLES.ID_PRESUPUESTO,'#10' PRESUPUESTOS_CLIENTE_DETALLES.POSI' + - 'CION, PRESUPUESTOS_CLIENTE_DETALLES.TIPO_DETALLE,'#10' PRESUPU' + - 'ESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIENTE_DETALLES.C' + - 'ANTIDAD,'#10' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PR' + - 'ESUPUESTOS_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFE' + - 'RENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERENCIA_PROV as REFERENC' + - 'IA_PROVEEDOR'#10#10'FROM PRESUPUESTOS_CLIENTE_DETALLES'#10'LEFT JOIN ARTIC' + - 'ULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.I' + - 'D)'#10'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = :ID'#10'ORDE' + - 'R BY POSICION'#10 + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,'#10' ' + + ' importe_total, visible'#10'from presupuestos_cliente_detalles'#10'wh' + + 'ere (tipo_detalle = '#39'Titulo'#39') and (id_presupuesto = :ID_PRESUPUE' + + 'STO)'#10'and {where}'#10'order by posicion'#10 StatementType = stSQL ColumnMappings = < item DatasetField = 'ID' - TableField = 'ID' + SQLOrigin = 'ID' end item DatasetField = 'ID_PRESUPUESTO' - TableField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' end item DatasetField = 'POSICION' - TableField = 'POSICION' + SQLOrigin = 'POSICION' end item DatasetField = 'TIPO_DETALLE' - TableField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' end item DatasetField = 'CONCEPTO' - TableField = 'CONCEPTO' - end - item - DatasetField = 'CANTIDAD' - TableField = 'CANTIDAD' - end - item - DatasetField = 'IMPORTE_UNIDAD' - TableField = 'IMPORTE_UNIDAD' + SQLOrigin = 'CONCEPTO' end item DatasetField = 'IMPORTE_TOTAL' - TableField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' end item - DatasetField = 'REFERENCIA' - TableField = '' - SQLOrigin = 'REFERENCIA' - end - item - DatasetField = 'FAMILIA' - TableField = '' - SQLOrigin = 'FAMILIA' - end - item - DatasetField = 'REFERENCIA_PROVEEDOR' - TableField = '' - SQLOrigin = 'REFERENCIA_PROVEEDOR' + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' end> end> - Name = 'Informe_Detalles' + Name = 'Informe_Resumen' Fields = < item Name = 'ID' @@ -398,32 +496,92 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Size = 2000 end item - Name = 'CANTIDAD' + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + ReadOnly = True + end + item + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + Statements = < + item + ConnectionType = 'Interbase' + Default = True + SQL = 'SELECT * FROM PRO_PRES_CAPITULOS(:ID_PRESUPUESTO)'#10'WHERE {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + SQLOrigin = 'ID' + end + item + DatasetField = 'ID_PRESUPUESTO' + SQLOrigin = 'ID_PRESUPUESTO' + end + item + DatasetField = 'POSICION' + SQLOrigin = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + SQLOrigin = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + SQLOrigin = 'CONCEPTO' + end + item + DatasetField = 'IMPORTE_TOTAL' + SQLOrigin = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + SQLOrigin = 'VISIBLE' + end> + end> + Name = 'Informe_Capitulos' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' DataType = datInteger end item - Name = 'IMPORTE_UNIDAD' - DataType = datCurrency + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 end item Name = 'IMPORTE_TOTAL' DataType = datCurrency end item - Name = 'REFERENCIA' - DataType = datString - Size = 255 - end - item - Name = 'FAMILIA' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_PROVEEDOR' - DataType = datString - Size = 255 + Name = 'VISIBLE' + DataType = datSmallInt end> + ReadOnly = True end> JoinDataTables = <> UnionDataTables = <> @@ -449,7 +607,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 39404.953391377300000000 + ReportOptions.LastChange = 39427.585072685190000000 ScriptLanguage = 'PascalScript' ScriptText.Strings = ( '' @@ -510,17 +668,38 @@ object RptPresupuestosCliente: TRptPresupuestosCliente '' 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' 'begin' - ' if not Engine.FinalPass then' + '{ if not Engine.FinalPass then' ' Set('#39'TotalPaginas'#39', ( + 1));' '' ' if Engine.FinalPass then' - ' Set('#39'Pagina'#39', ( + 1));' + ' Set('#39'Pagina'#39', ( + 1));} ' 'end;' '' 'procedure frxReportOnStartReport(Sender: TfrxComponent);' 'begin' ' Set('#39'Pagina'#39', 0);' ' Set('#39'TotalPaginas'#39', 0);' + + ' Set('#39'Capitulo'#39', 0); ' + + ' ' + 'end;' + '' + 'procedure Rich3OnBeforePrint(Sender: TfrxComponent);' + 'begin' + + ' if Engine.FinalPass then ' + + ' ' + + ' Set('#39'Capitulo'#39', ( + 1)); ' + + ' ' + 'end;' + '' + 'procedure Page2OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (Length() = 0) then' + + ' Page2.Visible := False; ' + + ' ' 'end;' '' 'begin' @@ -534,22 +713,18 @@ object RptPresupuestosCliente: TRptPresupuestosCliente end object frxDBCabecera: TfrxDBDataset UserName = 'frxDBCabecera' - CloseDataSource = False - DataSource = DADataCabecera + CloseDataSource = True + DataSource = DADSCabecera Left = 264 Top = 16 end object frxDBDetalles: TfrxDBDataset UserName = 'frxDBDetalles' - CloseDataSource = False - DataSource = DADataDetalles - Left = 344 + CloseDataSource = True + DataSource = DADSDetalles + Left = 440 Top = 16 end - object Bin2DataStreamer: TDABin2DataStreamer - Left = 48 - Top = 80 - end object tbl_Cabecera: TDAMemDataTable RemoteUpdatesOptions = [] Fields = < @@ -567,44 +742,11 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'FECHA_PRESUPUESTO' DataType = datDateTime end - item - Name = 'FECHA_DECISION' - DataType = datDateTime - end item Name = 'REFERENCIA' DataType = datString Size = 255 end - item - Name = 'SITUACION' - DataType = datString - Size = 255 - end - item - Name = 'ID_CLIENTE' - DataType = datInteger - end - item - Name = 'NIF_CIF' - DataType = datString - Size = 15 - end - item - Name = 'NOMBRE' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_CLIENTE' - DataType = datString - Size = 255 - end - item - Name = 'CLIENTE_FINAL' - DataType = datString - Size = 255 - end item Name = 'PORTADA' DataType = datMemo @@ -617,28 +759,6 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'OBSERVACIONES' DataType = datMemo end - item - Name = 'INCIDENCIAS' - DataType = datMemo - end - item - Name = 'INCIDENCIAS_ACTIVAS' - DataType = datSmallInt - Required = True - end - item - Name = 'FECHA_ALTA' - DataType = datDateTime - end - item - Name = 'FECHA_MODIFICACION' - DataType = datDateTime - end - item - Name = 'USUARIO' - DataType = datString - Size = 30 - end item Name = 'IMPORTE_NETO' DataType = datCurrency @@ -663,6 +783,30 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IVA' DataType = datFloat end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'CLIENTE_FINAL' + DataType = datString + Size = 255 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end item Name = 'IMPORTE_IVA' DataType = datCurrency @@ -672,21 +816,41 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datCurrency end item - Name = 'ID_FORMA_PAGO' - DataType = datInteger + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 end> Params = < item Name = 'ID' - Value = '' + Value = '31' ParamType = daptInput end> - MasterMappingMode = mmDataRequest LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False LocalSchema = schReport - LocalDataStreamer = Bin2DataStreamer + LocalDataStreamer = DABin2DataStreamer1 DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Informe_Cabecera' @@ -715,6 +879,19 @@ object RptPresupuestosCliente: TRptPresupuestosCliente DataType = datString Size = 10 end + item + Name = 'ID_CAPITULO' + DataType = datInteger + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end item Name = 'CONCEPTO' DataType = datString @@ -728,50 +905,48 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'IMPORTE_UNIDAD' DataType = datCurrency end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + end item Name = 'IMPORTE_TOTAL' DataType = datCurrency end item - Name = 'REFERENCIA' - DataType = datString - Size = 255 - end - item - Name = 'FAMILIA' - DataType = datString - Size = 255 - end - item - Name = 'REFERENCIA_PROVEEDOR' - DataType = datString - Size = 255 + Name = 'VISIBLE' + DataType = datSmallInt end> Params = < item - Name = 'ID' + Name = 'ID_PRESUPUESTO' Value = '' ParamType = daptInput end> + MasterMappingMode = mmWhere MasterParamsMappings.Strings = ( - 'ID=ID') + 'ID_PRESUPUESTO=ID_PRESUPUESTO') LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False LocalSchema = schReport - LocalDataStreamer = Bin2DataStreamer - MasterSource = DADataCabecera + LocalDataStreamer = DABin2DataStreamer1 + MasterSource = DADSCapitulos MasterFields = 'ID' - DetailFields = 'ID_PRESUPUESTO' + DetailFields = 'ID_CAPITULO' DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] - LogicalName = 'Informe_Detalles' + LogicalName = 'Informe_Capitulos_Detalles' IndexDefs = <> - Left = 344 + Left = 440 Top = 128 end object IBDatabase1: TIBDatabase - DatabaseName = 'C:\Codigo Tecsitel\Output\Debug\Database\FACTUGES.FDB' + DatabaseName = 'C:\Codigo Tecsitel\Database\FACTUGES.FDB' Params.Strings = ( 'user_name=sysdba' 'password=masterkey' @@ -791,57 +966,418 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Top = 296 end object DataSource2: TDataSource - DataSet = detalles + DataSet = capitulos Left = 216 Top = 352 end - object cabecera: TIBQuery + object capitulos: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 SQL.Strings = ( - 'SELECT ' - ' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, ' - ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, ' - ' REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, ' - - ' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA,' + - ' ' - ' FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, ' - ' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, ' - ' IMPORTE_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO' - ' FROM' - ' V_PRESUPUESTOS_CLIENTE' - ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + 'SELECT * FROM PRO_PRES_CAPITULOS(31)') Left = 136 - Top = 296 + Top = 352 + end + object DataSource3: TDataSource + DataSet = detalles + Left = 216 + Top = 416 end object detalles: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 SQL.Strings = ( - - 'SELECT PRESUPUESTOS_CLIENTE_DETALLES.ID, PRESUPUESTOS_CLIENTE_DE' + - 'TALLES.ID_PRESUPUESTO,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.POSICION, PRESUPUESTOS_CLIE' + - 'NTE_DETALLES.TIPO_DETALLE,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.CONCEPTO, PRESUPUESTOS_CLIE' + - 'NTE_DETALLES.CANTIDAD,' - - ' PRESUPUESTOS_CLIENTE_DETALLES.IMPORTE_UNIDAD, PRESUPUESTO' + - 'S_CLIENTE_DETALLES.IMPORTE_TOTAL,' - - ' ARTICULOS.REFERENCIA, ARTICULOS.FAMILIA, ARTICULOS.REFERE' + - 'NCIA_PROV as REFERENCIA_PROVEEDOR' - '' - 'FROM PRESUPUESTOS_CLIENTE_DETALLES' - - 'LEFT JOIN ARTICULOS ON (PRESUPUESTOS_CLIENTE_DETALLES.ID_ARTICUL' + - 'O = ARTICULOS.ID)' - 'WHERE PRESUPUESTOS_CLIENTE_DETALLES.ID_PRESUPUESTO = 31' - 'ORDER BY POSICION') + 'SELECT * FROM PRO_PRES_CAPITULOS_CONCEPTOS(31)') Left = 136 - Top = 352 + Top = 416 + end + object DataSource4: TDataSource + DataSet = resumen + Left = 216 + Top = 488 + end + object resumen: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'select id, id_presupuesto, posicion, tipo_detalle, concepto,' + ' importe_total, visible' + 'from presupuestos_cliente_detalles' + 'where tipo_detalle = '#39'Titulo'#39' and id_presupuesto = 31' + 'order by posicion' + '') + Left = 136 + Top = 488 + object resumenID: TIntegerField + FieldName = 'ID' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID"' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + end + object resumenID_PRESUPUESTO: TIntegerField + FieldName = 'ID_PRESUPUESTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."ID_PRESUPUESTO"' + Required = True + end + object resumenPOSICION: TIntegerField + FieldName = 'POSICION' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."POSICION"' + end + object resumenTIPO_DETALLE: TIBStringField + FieldName = 'TIPO_DETALLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."TIPO_DETALLE"' + Size = 10 + end + object resumenCONCEPTO: TIBStringField + FieldName = 'CONCEPTO' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."CONCEPTO"' + Size = 2000 + end + object resumenIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object resumenVISIBLE: TSmallintField + FieldName = 'VISIBLE' + Origin = '"PRESUPUESTOS_CLIENTE_DETALLES"."VISIBLE"' + end + end + object frxDBCapitulos: TfrxDBDataset + UserName = 'frxDBCapitulos' + CloseDataSource = True + DataSource = DADSCapitulos + Left = 352 + Top = 16 + end + object frxDBResumen: TfrxDBDataset + UserName = 'frxDBResumen' + CloseDataSource = True + DataSource = DADSResumen + Left = 520 + Top = 16 + end + object DABin2DataStreamer1: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object cabecera: TIBQuery + Database = IBDatabase1 + Transaction = IBTransaction1 + SQL.Strings = ( + 'SELECT' + + ' V_PRESUPUESTOS_CLIENTE.ID, V_PRESUPUESTOS_CLIENTE.ID_EMPRESA' + + ',' + ' V_PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA,' + ' V_PRESUPUESTOS_CLIENTE.PORTADA,' + + ' V_PRESUPUESTOS_CLIENTE.MEMORIA, V_PRESUPUESTOS_CLIENTE.OBSER' + + 'VACIONES,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_NETO, V_PRESUPUESTOS_CLIENTE.' + + 'IMPORTE_PORTE,' + + ' V_PRESUPUESTOS_CLIENTE.DESCUENTO, V_PRESUPUESTOS_CLIENTE.IMP' + + 'ORTE_DESCUENTO,' + + ' V_PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, V_PRESUPUESTOS_CLIENT' + + 'E.IVA,' + ' V_PRESUPUESTOS_CLIENTE.ID_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE,' + ' V_PRESUPUESTOS_CLIENTE.CLIENTE_FINAL,' + ' V_CLIENTES.NIF_CIF, V_CLIENTES.NOMBRE,' + + ' V_PRESUPUESTOS_CLIENTE.IMPORTE_IVA, V_PRESUPUESTOS_CLIENTE.I' + + 'MPORTE_TOTAL,' + + ' V_CLIENTES.PERSONA_CONTACTO, V_CLIENTES.CALLE, V_CLIENTES.PO' + + 'BLACION,' + ' V_CLIENTES.PROVINCIA, V_CLIENTES.CODIGO_POSTAL' + 'FROM' + ' V_PRESUPUESTOS_CLIENTE INNER JOIN V_CLIENTES ON' + ' (V_PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID)' + ' WHERE V_PRESUPUESTOS_CLIENTE.ID = 31') + Left = 136 + Top = 296 + object cabeceraID: TIntegerField + FieldName = 'ID' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID"' + end + object cabeceraID_EMPRESA: TIntegerField + FieldName = 'ID_EMPRESA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_EMPRESA"' + end + object cabeceraFECHA_PRESUPUESTO: TDateField + FieldName = 'FECHA_PRESUPUESTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."FECHA_PRESUPUESTO"' + end + object cabeceraREFERENCIA: TIBStringField + FieldName = 'REFERENCIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA"' + Size = 255 + end + object cabeceraPORTADA: TMemoField + FieldName = 'PORTADA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."PORTADA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraMEMORIA: TMemoField + FieldName = 'MEMORIA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."MEMORIA"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraOBSERVACIONES: TMemoField + FieldName = 'OBSERVACIONES' + Origin = '"V_PRESUPUESTOS_CLIENTE"."OBSERVACIONES"' + ProviderFlags = [pfInUpdate] + BlobType = ftMemo + Size = 8 + end + object cabeceraIMPORTE_NETO: TIBBCDField + FieldName = 'IMPORTE_NETO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_NETO"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_PORTE: TIBBCDField + FieldName = 'IMPORTE_PORTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_PORTE"' + Precision = 18 + Size = 2 + end + object cabeceraDESCUENTO: TFloatField + FieldName = 'DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."DESCUENTO"' + end + object cabeceraIMPORTE_DESCUENTO: TIBBCDField + FieldName = 'IMPORTE_DESCUENTO' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_DESCUENTO"' + Precision = 18 + Size = 2 + end + object cabeceraBASE_IMPONIBLE: TIBBCDField + FieldName = 'BASE_IMPONIBLE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."BASE_IMPONIBLE"' + Precision = 18 + Size = 2 + end + object cabeceraIVA: TFloatField + FieldName = 'IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IVA"' + end + object cabeceraID_CLIENTE: TIntegerField + FieldName = 'ID_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."ID_CLIENTE"' + end + object cabeceraREFERENCIA_CLIENTE: TIBStringField + FieldName = 'REFERENCIA_CLIENTE' + Origin = '"V_PRESUPUESTOS_CLIENTE"."REFERENCIA_CLIENTE"' + Size = 255 + end + object cabeceraCLIENTE_FINAL: TIBStringField + FieldName = 'CLIENTE_FINAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."CLIENTE_FINAL"' + Size = 255 + end + object cabeceraNIF_CIF: TIBStringField + FieldName = 'NIF_CIF' + Origin = '"V_CLIENTES"."NIF_CIF"' + Size = 15 + end + object cabeceraNOMBRE: TIBStringField + FieldName = 'NOMBRE' + Origin = '"V_CLIENTES"."NOMBRE"' + Size = 255 + end + object cabeceraIMPORTE_IVA: TIBBCDField + FieldName = 'IMPORTE_IVA' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_IVA"' + Precision = 18 + Size = 2 + end + object cabeceraIMPORTE_TOTAL: TIBBCDField + FieldName = 'IMPORTE_TOTAL' + Origin = '"V_PRESUPUESTOS_CLIENTE"."IMPORTE_TOTAL"' + Precision = 18 + Size = 2 + end + object cabeceraPERSONA_CONTACTO: TIBStringField + FieldName = 'PERSONA_CONTACTO' + Origin = '"V_CLIENTES"."PERSONA_CONTACTO"' + Size = 255 + end + object cabeceraCALLE: TIBStringField + FieldName = 'CALLE' + Origin = '"V_CLIENTES"."CALLE"' + Size = 255 + end + object cabeceraPOBLACION: TIBStringField + FieldName = 'POBLACION' + Origin = '"V_CLIENTES"."POBLACION"' + Size = 255 + end + object cabeceraPROVINCIA: TIBStringField + FieldName = 'PROVINCIA' + Origin = '"V_CLIENTES"."PROVINCIA"' + Size = 255 + end + object cabeceraCODIGO_POSTAL: TIBStringField + FieldName = 'CODIGO_POSTAL' + Origin = '"V_CLIENTES"."CODIGO_POSTAL"' + Size = 10 + end + end + object DADSCapitulos: TDADataSource + DataSet = tbl_Capitulos.Dataset + DataTable = tbl_Capitulos + Left = 352 + Top = 72 + end + object tbl_Capitulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Capitulos' + IndexDefs = <> + Left = 352 + Top = 128 + end + object DADSResumen: TDADataSource + DataSet = tbl_Resumen.Dataset + DataTable = tbl_Resumen + Left = 520 + Top = 72 + end + object tbl_Resumen: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_PRESUPUESTO' + DataType = datInteger + end + item + Name = 'POSICION' + DataType = datInteger + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'VISIBLE' + DataType = datSmallInt + end> + Params = < + item + Name = 'ID_PRESUPUESTO' + Value = '' + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_PRESUPUESTO=ID') + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = DABin2DataStreamer1 + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Informe_Resumen' + IndexDefs = <> + Left = 520 + Top = 128 + end + object DAMemDataTable1: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 264 + Top = 192 + end + object DAMemDataTable2: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = <> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + ReadOnly = True + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + IndexDefs = <> + Left = 352 + Top = 192 end end diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas index a94f64b6..5df9f951 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas @@ -12,8 +12,8 @@ uses type TRptPresupuestosCliente = class(TDataModule) - DADataCabecera: TDADataSource; - DADataDetalles: TDADataSource; + DADSCabecera: TDADataSource; + DADSDetalles: TDADataSource; frxBarCodeObject1: TfrxBarCodeObject; frxOLEObject1: TfrxOLEObject; frxCrossObject1: TfrxCrossObject; @@ -21,18 +21,62 @@ type frxGradientObject1: TfrxGradientObject; frxDBCabecera: TfrxDBDataset; frxDBDetalles: TfrxDBDataset; - Bin2DataStreamer: TDABin2DataStreamer; tbl_Cabecera: TDAMemDataTable; tbl_Detalles: TDAMemDataTable; frxReport: TfrxReport; - schReport: TDASchema; - DataDictionary: TDADataDictionary; IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; DataSource1: TDataSource; DataSource2: TDataSource; - cabecera: TIBQuery; + capitulos: TIBQuery; + DataSource3: TDataSource; detalles: TIBQuery; + DataSource4: TDataSource; + resumen: TIBQuery; + resumenID: TIntegerField; + resumenID_PRESUPUESTO: TIntegerField; + resumenPOSICION: TIntegerField; + resumenTIPO_DETALLE: TIBStringField; + resumenCONCEPTO: TIBStringField; + resumenIMPORTE_TOTAL: TIBBCDField; + resumenVISIBLE: TSmallintField; + frxDBCapitulos: TfrxDBDataset; + frxDBResumen: TfrxDBDataset; + DABin2DataStreamer1: TDABin2DataStreamer; + cabecera: TIBQuery; + cabeceraID: TIntegerField; + cabeceraID_EMPRESA: TIntegerField; + cabeceraFECHA_PRESUPUESTO: TDateField; + cabeceraREFERENCIA: TIBStringField; + cabeceraPORTADA: TMemoField; + cabeceraMEMORIA: TMemoField; + cabeceraOBSERVACIONES: TMemoField; + cabeceraIMPORTE_NETO: TIBBCDField; + cabeceraIMPORTE_PORTE: TIBBCDField; + cabeceraDESCUENTO: TFloatField; + cabeceraIMPORTE_DESCUENTO: TIBBCDField; + cabeceraBASE_IMPONIBLE: TIBBCDField; + cabeceraIVA: TFloatField; + cabeceraID_CLIENTE: TIntegerField; + cabeceraREFERENCIA_CLIENTE: TIBStringField; + cabeceraCLIENTE_FINAL: TIBStringField; + cabeceraNIF_CIF: TIBStringField; + cabeceraNOMBRE: TIBStringField; + cabeceraIMPORTE_IVA: TIBBCDField; + cabeceraIMPORTE_TOTAL: TIBBCDField; + cabeceraPERSONA_CONTACTO: TIBStringField; + cabeceraCALLE: TIBStringField; + cabeceraPOBLACION: TIBStringField; + cabeceraPROVINCIA: TIBStringField; + cabeceraCODIGO_POSTAL: TIBStringField; + DADSCapitulos: TDADataSource; + tbl_Capitulos: TDAMemDataTable; + DADSResumen: TDADataSource; + tbl_Resumen: TDAMemDataTable; + DAMemDataTable1: TDAMemDataTable; + DAMemDataTable2: TDAMemDataTable; + schReport: TDASchema; + DataDictionary: TDADataDictionary; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; @@ -53,7 +97,7 @@ const { Dataset names for schReport } ds_InformeCabecera = 'Informe_Cabecera'; - ds_InformeDetalles = 'Informe_Detalles'; + ds_InformeCapitulos = 'Informe_Capitulos'; { TRptPresupuestosProveedor } @@ -93,35 +137,62 @@ end; procedure TRptPresupuestosCliente.GenerarPresupuesto(const AID: Integer); var AStream: TMemoryStream; - dsMaster: IDADataset; - dsDetail: IDADataset; + dsCabecera: IDADataset; + dsCapitulos: IDADataset; + I: Integer; begin - //AStream := TMemoryStream.Create; + AStream := TMemoryStream.Create; try - {dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); - dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID'], [AID], False); +{ dsCabecera := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); + dsCapitulos := schReport.NewDataset(FConnection, ds_InformeCapitulos, ['ID_PRESUPUESTO'], [AID], False); AStream.Clear; - Bin2DataStreamer.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); - Bin2DataStreamer.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); - + DABin2DataStreamer1.WriteDataset(AStream, dsCabecera, [woRows, woSchema]); + DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable1, True, ds_InformeCabecera, True, True); AStream.Clear; + DABin2DataStreamer1.WriteDataset(AStream, dsCapitulos, [woRows, woSchema]); + DABin2DataStreamer1.ReadDataset(AStream, DAMemDataTable2, True, ds_InformeCapitulos, True, True); + + + DADSCabecera.DataTable := DAMemDataTable1; + frxDBCabecera.DataSource := DADSCabecera; + + DADSCapitulos.DataTable := DAMemDataTable2; + frxDBCapitulos.DataSource := DADSCapitulos;} + +{ DAMemDataTable1.Active := True; + + for I := 0 to DAMemDataTable1.RecordCount - 1 do + ShowMessage(DAMemDataTable1.Fields[2].AsString);} + +{ AStream.Clear; Bin2DataStreamer.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); Bin2DataStreamer.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE);} + frxDBCabecera.DataSource := DADSCabecera; + frxDBCapitulos.DataSource := DADSCapitulos; + frxDBDetalles.DataSource := DADSDetalles; + frxDBResumen.DataSource := DADSResumen; + tbl_Cabecera.ParamByName('ID').AsInteger := AID; - tbl_Detalles.ParamByName('ID').AsInteger := AID; + tbl_Capitulos.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Detalles.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Resumen.ParamByName('ID_PRESUPUESTO').AsInteger := AID; + tbl_Cabecera.Active := True; + tbl_Capitulos.Active := True; tbl_Detalles.Active := True; + tbl_Resumen.Active := True; frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); frxReport.PrepareReport(False); + //frxReport.ShowPreparedReport; finally - //AStream.Free; - dsMaster := Nil; - dsDetail := Nil; + AStream.Free; + dsCabecera := Nil; + dsCapitulos := Nil; end; end; diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 2133b44e..4e84330e 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -1,7 +1,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente OldCreateOrder = True OnCreate = DARemoteServiceCreate - RequiresSession = True SessionManager = dmServer.SessionManager ConnectionName = 'IBX' ServiceSchema = schPresupuestosCliente diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj index 3070f7db..ea7653a1 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj @@ -43,6 +43,8 @@ FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + Intraweb 8.0 Design Package for Borland Development Studio 2006 PresupuestosCliente_view.dpk @@ -51,11 +53,11 @@ MainSource - - - - - + + + + +
fEditorElegirArticulosPresupuestoCliente
TfEditorElegirArticulosPedidoCliente @@ -577,4 +579,4 @@ mtException_AntiFreeze0="The application seems to be frozen." Count mtInvalidEmailMsg=1 mtInvalidEmailMsg0="Invalid email." TextsCollection=English -EurekaLog Last Line --> \ No newline at end of file +EurekaLog Last Line --> diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.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/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm index 7c2396af..8a8b2d81 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -2,19 +2,20 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Left = 332 Top = 147 Caption = 'Nuevo pedido de cliente' - ClientHeight = 631 - ClientWidth = 674 + ClientHeight = 615 + ClientWidth = 749 OnClose = CustomEditorClose - ExplicitWidth = 682 - ExplicitHeight = 658 + ExplicitTop = -85 + ExplicitWidth = 757 + ExplicitHeight = 642 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 674 + Width = 749 Caption = 'Nuevo pedido de cliente' ExplicitWidth = 674 inherited Image1: TImage - Left = 647 + Left = 722 Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 @@ -126,7 +127,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited TBXDock: TTBXDock - Width = 674 + Width = 749 ExplicitWidth = 674 inherited tbxMain: TTBXToolbar ExplicitWidth = 488 @@ -141,30 +142,32 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited tbxMenu: TTBXToolbar - ExplicitWidth = 674 + ExplicitWidth = 749 end end inherited pgPaginas: TPageControl - Width = 674 - Height = 465 + Width = 749 + Height = 420 TabOrder = 1 OnChanging = pgPaginasChanging ExplicitWidth = 674 - ExplicitHeight = 465 + ExplicitHeight = 402 inherited pagGeneral: TTabSheet ExplicitLeft = 4 ExplicitTop = 24 - ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitWidth = 741 + ExplicitHeight = 421 end object pagContenido: TTabSheet Caption = 'Contenido' ImageIndex = 1 + ExplicitWidth = 666 + ExplicitHeight = 374 inline frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente Left = 0 Top = 0 - Width = 666 - Height = 437 + Width = 741 + Height = 392 Align = alClient BiDiMode = bdLeftToRight Font.Charset = DEFAULT_CHARSET @@ -177,10 +180,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitHeight = 374 inherited ToolBar1: TToolBar - Width = 666 - ExplicitWidth = 666 + Width = 741 + ExplicitWidth = 741 inherited FontSize: TEdit Width = 57 ExplicitWidth = 57 @@ -223,14 +226,14 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited cxGrid: TcxGrid - Width = 666 - Height = 365 + Width = 741 + Height = 320 ExplicitWidth = 666 - ExplicitHeight = 365 + ExplicitHeight = 302 end inherited TBXDock1: TTBXDock - Width = 666 - ExplicitWidth = 624 + Width = 741 + ExplicitWidth = 741 inherited TBXToolbar1: TTBXToolbar ExplicitWidth = 548 end @@ -240,11 +243,13 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente object pagInicidencias: TTabSheet Caption = 'Incidencias' ImageIndex = 2 + ExplicitWidth = 666 + ExplicitHeight = 374 inline frViewIncidenciasCli: TfrViewIncidencias Left = 0 Top = 0 - Width = 666 - Height = 437 + Width = 741 + Height = 392 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -255,24 +260,24 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 0 ReadOnly = False ExplicitWidth = 666 - ExplicitHeight = 437 + ExplicitHeight = 374 inherited pnlSup: TPanel - Width = 666 - ExplicitWidth = 624 + Width = 741 + ExplicitWidth = 741 inherited eIncidenciaActiva: TcxDBCheckBox ExplicitHeight = 21 end end inherited GroupBox1: TGroupBox - Width = 666 - Height = 409 - ExplicitWidth = 666 - ExplicitHeight = 409 + Width = 741 + Height = 364 + ExplicitWidth = 741 + ExplicitHeight = 393 inherited eIncidencias: TcxDBMemo - ExplicitWidth = 643 - ExplicitHeight = 376 - Height = 376 - Width = 643 + ExplicitWidth = 718 + ExplicitHeight = 360 + Height = 331 + Width = 718 end end end @@ -280,55 +285,456 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente object pagPortada: TTabSheet Caption = 'Portada' ImageIndex = 3 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 - object edtPortada: TcxDBRichEdit + ExplicitWidth = 666 + ExplicitHeight = 374 + object Panel1: TPanel Left = 0 Top = 0 - Align = alClient - DataBinding.DataField = 'PORTADA' - DataBinding.DataSource = dsDataTable + Width = 145 + Height = 392 + Align = alLeft TabOrder = 0 - Height = 437 - Width = 666 + ExplicitHeight = 421 + object Image2: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D6167651C0900004749463839617300AA00C400008E8E8E + CFD3CF8C8C8CFF0000BDD6C697A997ABB9AB8997897888786874688689865763 + 574950493944393539355F5F5F8A8C8A898B89878B87868A86888B88B7CCB7DA + EADADEEFE7FBFEFB0000000000000000000000000000000000000000002C0000 + 00007300AA000005FFE0238C64699E68AAAE6CEBBEE90360746DDF78AEEF7CEF + FF401D60162C1A8FC8646EA86C3A9F4E26744AADE2A4D6AC5689DD1A2FB48BC5 + 1B25928104CB187309D002E973B12BBFA9DDB4CADA8227D8EB3C74806F703501 + 6B62346A35177E834B668F6169783C6018049717979282646A9C95407B996B8F + 9E5E171518A649019B8EA7917516993B7C04B9048739B59C83A856AD3A1615C6 + C7C8C6C38CB675C154B515B13701C9D6C9C36A71CEB35B63CBAAD7E2C7BF62AB + 80CF55CBC5E3EDC39BC0DD80ECC9BB8770E2CBB2928AC8DBC4048E4DE38721DD + 168160E088C221465F27796702EAA121D11841230685496394ECD7C51E19AB6C + AC51D198C78F3B42FF4E6974C31A4A202AA1BCB241CFD8C230B572CDFC18F3C9 + B06AC84E9644C61322A0A137C2E5BBD8D34A3D1BE178D5C85914653251BB3055 + B859F523364663C20D44D9B44A49536B803A245896CA591C125FDE683BA5E6CD + B8726BD085A274A40DBC790B1A05E40F07BBC034F6FE68C3B5DF3186167BC03A + 9945B1E47F3A902D0BB8F6CDAECE532CFB149823F20E31F0CE887E12D4F0D6C0 + AB2F77260D1934BAC1753148D5A1D4A18593BFF7D5C19C4329E5E2718E57C6BD + 328844E57626DE96947A0750E850853F6AC6A39A6D7EB1D154974C99FBC34789 + 182551357EFAC55ADF15D1C4BE25BC9134F4498E05CFDCCB34969CA481565664 + F597CA54BF99220DFF5A79D9D74400BB65720E620E22569F8116BE546186566C + C821151E7E084588229651A288249E98448AC5BDE2E26F2EB621231EBC3416CF + 45066060C00539F2A8A38E3CAA42C88F055EE446056DC028648C48B202E13D5D + A968618A09B66198298CEDC1871850BAF8061BC1A98661125A426881014F9A89 + 871A88F0718F9569C6999F896754E9E22B5CDEB1C96FF0BCC2279B6C38790897 + DC1034E7872C32F224186C26740F8CC1F1B1C8185E9EF7889E6CE099259F8BCA + C8A86E7CF047DD266090CA28A98AA4875AA0AB5A2AC94EEA95CA6918F06C02AB + AB83C0896AA56EBAC198AC36CA9128549B18C0272B3252DA68A7A03035A69485 + 5E945E526069A29EFFB38040F8AB998E429A66318CA509AAB637D631289BDCEA + 36E821BD6AABEDA6E9BA57E2A1F242DBE0B3F692316CBE20E1CBAF16FBFE2B84 + BF02571170C173118CF0880A2F4CA7C3B8425CAFC4D1523CB1C5FA368CF11C1A + 6F0C53C71EFB7030C4233B5CF2C20635C4E6CA2CB7ECF2CB30C72CF3CC31D397 + 4EB021B3D2AF2539FB00DD335A4A0A69927B32A69B1871F0122ABB1F76164C7A + AB2893861FECAAA1C7677A540306928446DDB4724F5FB2553102FAB1891EC5A4 + 8D41D64D0A7DE4DA1FB66743D8F2E93CF4224A2BE286D2BE7EB3088772EB6554 + E03D139BD2E009B5A3F8E28C37EEF8E2B41E7E1ABD18132ED8E4855B0236E299 + 633EB0E79D33B439FFE83A534E6BA9C85A8E92E5741B220D3EBA4843602F4BDB + 1A2AE0A3F3F6CB6F2519E0FB613ABCB9EEB416B2CE7916A68F2AB9EEA11797BB + F3D44EF5051B9C6019A85CC693FE5982C6866989A48BC2F8E4ECAB3F2FFA5FF4 + AC6D80693C24780FBB6D50823320D9337F6D58A6FA8CAAACFB5FFF52FDD06B5E + 52CC37C0E26C21795A00E0F9A6720863F10F3B59A144A8D6E72624ED4D52A0BA + 839BD8648F1AED4D5BDBABDA1B2865B8CFD98F229B2840019261ACF6A96147C6 + 3AC4D8140207D4ECC849C56A081CD0B4153F7DC600014952350695883BCC4E81 + 05ACD6F6D0059D49C187524CE3459226D510D4A16A68994A88BA6C072818212B + 72260CA0001941C0FF128E118C90205D1206C0C636BAF18D708CA31CE748473A + A2F10AC76BC200F2B547EA2D4F8C4A1880A90649C8421AF290884C24A9FA8844 + 3306F2022A24640114A9C84952F2928C2C23199F20480454E00007300002CE84 + 8050FA6E01A034400110A0C20310E000AC2C80010E508054AE7047974C6426FF + B8403D5E2096A15C00016A09CC06B49296A13C40058889CC55264095B0CCA52E + EF983035224190D2A46410B349C95D86B1978F648FA9F8D40870719390E43CA7 + 37D378C247568095BE83E62DE37900DEC952952AFCA431F019CA02B0E302B454 + A5EF4CE9CF6E52736E797C642D17504B5082B2A10F5DDF2C59998002240096A0 + 4CC0026659CB65EEFFA8000DA8A80A1180CA02644291EBC4A3358F20C89509C8 + 02FE64591A9451CE5A1CA09C2FFD8D25B5C1A67AFAC2A07EFC66127DD988429E + D454472DAA528D3A4E7226B5A8494D6A4AABD9CE353602013B2A060C55F8BBF5 + AD301304C02A24D1764F597A9447AA34C92CB35A01510ED3586D95E5220F2AB8 + 951A4190B57CE6442D5A4B675A80A1B48424031000D05AFE7585B2BC68011670 + 818A5614920B18A549159B00563294A1279D2A42ED5A04410604882F8429017C + 578000A0094D6055651B4C220D202ED3B4A38DAD848669B5AF8E16A640C4E505 + 345BD7AA5EB368874C6721854B2A7212979BBC4D4C42AD6A0157A266A6A44200 + 67B6A7329F9E366DFFA3AC8525CF39D7A0B21390565DE84091A9530420A0A2A0 + 0C08614BE90056821298C90C2C77BBDBC84D3A4190CB34E999D617CA46047499 + 6D6DAE2AD62AD17D7E92B45C9BEF6EE9AA5CCE06019B97D41428141CDCE326F7 + 72BE65298FD296861D6DA59E60F524402B3BD2551E200122150368D5CA80775A + F4C4154880031AEA580B50D49F176E9D2F69B95863A890C4A504E86055B14A7F + 0E53BAAB9C2591CDEB5E022480000DA84003D24B52596E94C9FE64C02473BCDC + DF2200B6AAA8A749E130C9D14E52BB6D15686BEFA9CFDCFAB8111C9D24478D15 + C9D17AD5025C7630105A4AE13E6392C11806EF6F555862589256A48FC5EA682B + 7AE459D212C07E36A1559E337CD7304FD201B965684819806220A2D8A2327631 + 8A09CB0048469ABE9A04F48379244BB946A3AD000DEB0A893CC99BD6D2581515 + 6D82FD7C61087459C3A70E76212F2C81C1C48707754CB6B297CDECBAE9C0D7ED + 3BA3F478D90B6983C620DECB1CF184CA1B9A79FBDBE00E77CD7E70328495BB60 + E71658BAFFB56E7EB53B5FEFB617004400837ADBFBDE2788C00414C0EF7EFBFB + DF0AA000BE47F0801000003B} + end + end + inline frViewRichEditor1: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 596 + Height = 392 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 521 + ExplicitHeight = 374 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 596 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 517 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'PORTADA' + DataBinding.DataSource = dsDataTable + ExplicitWidth = 596 + ExplicitHeight = 395 + Height = 366 + Width = 596 + end end end object pagMemoria: TTabSheet Caption = 'Memoria' ImageIndex = 4 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 - object cxDBMemo1: TcxDBMemo + ExplicitWidth = 666 + ExplicitHeight = 374 + object Panel2: TPanel Left = 0 Top = 0 - Align = alClient - DataBinding.DataField = 'MEMORIA' - DataBinding.DataSource = dsDataTable + Width = 145 + Height = 392 + Align = alLeft TabOrder = 0 - Height = 437 - Width = 666 + ExplicitHeight = 374 + object Image3: TImage + Left = 16 + Top = 16 + Width = 115 + Height = 170 + AutoSize = True + Picture.Data = { + 0B544A76474946496D616765821E00004749463839617300AA00F70000DEE6DE + E0E8E09C9C9CCDD5CDDAE2DAB1B1B1E4ECE4CDCDCDECF1ECE2EAE2D2DDC79FBB + 9FD2D3D2EAF2EAC4CBC4F2F5F2DCE4DCF7FCF7E5EEE5606160ADADADD4D9D4C4 + D5C4D0D8D0939593D8E0D8A4AAA4CCD2CCD1D5D1E6EFE6D6DED6E2EDE2C2D0B3 + E9EEE9C1C1C1BDBDBDE4EAE4D0D0D0CAD1CAD8E1CEB2C5A1DCE2DC979B97D3DA + D3E8F0E8B5B5B5ABC4ABD6E2D6F8FAF8CACACAFBFEFBC6C6C6D4DCD4F0FAF0EC + F4ECA5BB90BCC3BC868986C8C8C8EAF0EAA6A6A6D4D6D4B0C39EC4C4C4ACB2AC + E1E6E18A8E8AB8B8B8DBE0DBDFE4DFE9F4E9D1D3D1F5F8F5D0DED0888A88D8DE + D8E0EAE0DBE4D3DFE0DFA0A5A0EBF6EBE3E7E3DEE7DAF4F7F4DCE0DCCCDBCCC5 + D3B8F6F9F6B5CBB5A3A3A3E0E5E0E6ECE6E1E9E1797D79D7E3D7A8AEA8EEF3EE + E5E7E5D7DCD7B9CAA9E1E2E1D2D7D2CBD8BFC9D6BCB7C9A78E8E8EF2FFF2F1FF + F18C8C8CEEF7EEFCFCFCFDFDFDFBFBFBFAFAFAFEFFFEF9F9F9F5F5F5F8F8F8EF + F7EFF6F6F6F3F3F3F7F7F7EFEFEFEEF8EEF1F1F1E5E5E5FDFEFDE3E3E3EEEEEE + F2F2F2EBEBEBF4F4F4E9E9E9F0F0F0E2E2E2DBDBDBE7E7E7E4E4E4EDEDEDEAEA + EAE6E6E6DDDDDDECECECE1E1E1E8E8E8F0F8F0DEDEDEE0E0E0D4D4D4F0FCF0F1 + FDF1DADADAF0FDF0DFDFDFF2FBF2F4FAF4ECEBECDCDCDCEFFBEFF2F9F2D7D7D7 + F1F9F1D8D8D8FCFEFCFAFDFAF6FBF6F5FBF5D9D9D9F1FEF1D6D7D6F8FCF8EDF8 + EDF9FDF9F2FEF2F3FAF3F7FBF7EEFAEEFBFDFBEAF3EAEBF4EBF3F9F3F1F8F1EC + F7ECEBF5EBE9F2E9F9FCF9E8F2E8E6F0E6E7F1E7EDF9EDD5D5D5EFFAEFFCFDFC + D6D6D6F5FAF5EEF9EEEAF5EAE7F0E7F0F9F0E8F3E8EDF6EDECF8ECFAFCFAECF6 + ECEFFCEFF8FDF8EAF4EADBE3DBF4FBF4FBFCFBDFE7DFEDF7EDF1FCF1F2FAF2EF + F9EFDDDEDDE4E5E4CEDAC2E9EAE9F6FAF6E7F2E7F2FDF2FDFFFDD8D9D8E3E4E3 + 8D928DB1B3B1F4F5F4F5F4F5C8CFC8F2F3F2F0F4F0BFD2BFB1B8B1F0F1F0E2E3 + E2F7FAF8EAECEAE8E9E8E6E7E6EDEEED838683D1D9D1E8EEE8D5DDD5BBCFBBEE + FBEEBFCFB2AAAAAADFE3DFF3FBF3F3F6F3FEFEFEEFF8EFFF0000FFFFFF2C0000 + 00007300AA000008FF0027B01948B0A0C18308132A5CC8B0A1C3870927A4F947 + B1A2C58B18336ADCC8B1A3C78F2035A69918B2A4C9932853661CA9915F2E2453 + A6F0B378274F9D3973EAD0B1C90F8E9B372A4BBA7192AAA8D1A348932A5DFA6D + D045961891EC98F7601F821DE72A3A8244E80E224384202DE2A7884FA099413D + D229630413264B6EE1BE8D2BB76E5CB773F3D6B5E42903368B502DEE9B87C400 + 3A2C1642EC4040710E9E42780229AA2399CFA0418EF2A4F5D803D51A356B3E83 + E65B0953255895520FAB64A95725359E2A7942C52CF6306B9652F3C5E4698D3C + 381503578C0623890B0B168EBF414231CF1D3A6F0205CA4387CE1D3C7CDC6CF6 + 282F3468D16B8C10FF10F3C10000004B123C83E00C420654093248B8C5C54006 + 6901022C799680C0870E6B30734870245D8480175854C18F1B6EA0F5CF1C79FC + 54C78470C411471E11F2A3E186FF70B89D3C6A8016A277B648B00B14BA24B0CA + 07C57041CC325C1C838901BAEC328C2C461C634932B2F062C48F46F0A2062603 + 52245C45485CB140005BA0530F0C15E581131E71D491071F70BC31481C6E4486 + C71D730C42591D786CF74F779F7927E29ADEA9B9C631B874B08B2C0068210131 + 1DE82201149518E04907A01149A046FB2C8000005500E32085D439F7251C135E + 78474D6E8449251D66A2F9DD889C6EEA2617120010807A19A46000171D182001 + 33104800412F6B08FF6A64811581F10F302E6CB1C30B149D03CC3F79C4810783 + 77D471C720C50E02C74E6E5C3887991681C8669A9FCDC61A2AA8CCE6C96C9674 + 63092AB2A566CD2FA8FC62095FDDA0326491FF1CF9CF14FBFCE385056F78110D + 3008FC0A07753F15AB93855B4E1A071C60425B91A66E8688CA2EBCEC22C12F25 + CA72CB07BAF0520C2FC9AC620431B7C8224B321D48204B071D58122BBBEEE672 + 0E0C7EBC10801FC0EC632BB003BF01661C81D0E1061D37DDA1A1C117210C9EC2 + 9530630F6ABCC5068B27C9C0C2CC30B9A5E6492BDB9ABBADC9B2B64B6B455320 + 8084324982C11845C242B7D31CC77699AC834053242D78D4760AF7A66AF4E20C + 2EDC3823712F124CFF03C52DB7F4B2EEA019C1C0CEA9F05AB4614F6FBCA16196 + 3E35CE8FE39303FDF68871B38939DD9E2CF32214BC2CE3092EB0AC720B31B00C + 3E2B471E5614C8757AE0314720783C163B1D7AF0C1C7B1AF5BDEE6D0D3D20DF7 + 34B6FCBDCA30B610F3B72DC72CF3CBC9849744B9E48D579F65F58E3B6EB9DC99 + 03FF7B88B354BC8B2D9EE0C98B2C293A638BEA5A5BE40B25F0C72FFFFCF4D76F + 3F25DAA575396BAD284C748896E89F35FA1722354CA312ADB0C4305AC1C06178 + 822F0C649F701647C10A5AF08218DC4C19BC83895DAC82179ED8450270A18B8A + C9A21706E8C02F02601E26F0E73CD2480100B8C0055E188005A24A4002D6E009 + 946D2D0E9C08A210FF8748C4221AB188803013254664895F5462159858852D96 + B68A5E30E389ABF004C66E0105092C8317B6E8D82DF406B86570D116AB504319 + F2D73ED71D21050420400AE0384739C2D18E78AC631DF348C71464007F9BB9C3 + 063AA089421AF290884CA42217698C0AAC0330B4E280E63CE5BDEE716F5335F8 + C676DC2089233080019E04652847F9C95082B294A814652A7B408EA7D0AA023C + EC00FA48808B5540A103683400C348D0014F042F61D3AA40DB86B911E154400D + C9D0A134A44100092400541D1055312490424BFE5234C224A63621699163628B + 2FD370E20353B307A835D133C2BBA49AB2B9CD6D1AF333B961A03C19882D0656 + A25CDB8A4D25C805FF4CB8B1B39DC43426686C71A20F10037D1238460778D18B + 1EA11002D200C031B8F08C345E3344FF0468DB04BA86D454A217C980022C6C31 + 8C55AC42367C59853358B08555C08217D350273635AACD77AA0116A8C1296B24 + 80CB63F054630630002F704149E1512BA33485D63BD710D25D1443A8B0508F34 + B8A10500E8491A44606668B6CAD5AE8606A949DD0E47CFE5096A50E35BD4A841 + 6C3C610DD93C30ADDEDBDC3AC3BAD1577EC616BCE0852E8861005804A917BB38 + 463A8B3AC9AFD21568C6B4841A52A3314FC84236BC99C52C06FBBD49AA41164E + 38ACC18433070E6CE0B3A00DAD68474B5AD25E836D9A4D8BBB52CBDA93ACB6B5 + B0FDC86B634B5B91FF6CADB6B85DC96D73CBDBD561C41FC00DAE70874BDCE21A + F7B8C84DAE72977B5C8CACD61F14E1D0E23A5411D462E467D48DAE83AC7B11EE + 5E37BB8A0B0A745D9991F1766212238084284A3082479C62048E98011C18C087 + 12F0036D7198541D06F1BA42CC010E5F82D0630AC1B3C9C0212737A9501DB234 + 999C70E90D7A98D44E60978742C0C111C822D322ACE386053F2B24E3E5E66F29 + C208465060129DF0050F1621890224A2058A388021860088AFF061128798C425 + 1E010A5F64621093C84420503C0944640214C1304421FAD08844FC41107D48C4 + 230A7189433C22118458C49019D1883FFC21C79710C5250AC188415CB9CB97E8 + 83200CD108449424FFC4D1B3C8783148E73E14E0CE78CEB39EF7CCE73EFBF9CE + 83A03376410267DF5EA4D02019F445805211467BC4BB1B51F47610FD5C8AF041 + 0F83E00324F080E9400C623252CA0320F4C0083D4CA7108AC0031D1441084014 + 820F74280464F800884CF357117A18F520E8100742142277778803AEF150162C + 717A1080B0892376470738B8BA1081885D1D4E42E9DD8E97108FE803930FC188 + 3F8005118270041C08D107423819128280042020C108AE983B1382D0C3220C71 + 09733F82109930C424B44D883F00421284D0C324BAF2874CF4E11108E7C39517 + D1874538C2DF8A484420FA60883F2022DB8C80B446AA5DDEF066841F71E08866 + CCB45DED7A1CBC51FF020EB59D6BEDDEA696E32376F961617E6899CF9CE51DB7 + 7958692E678AA83A0E93D350F53434B00635EE1F0D0A3A3F7CB6F40A4AEEBE4A + AF125022B46090E7E16714A49CCFDE7075A04CCF7152D77845783E768A0C4214 + 92B844230E710A4628E2108D78049B3BE1884C48C2BDA7F0F1214051023D1CDC + 11A09004BDF3DD0847D43D116ADFFB244E510724EBE1125F3944261AF1864474 + 821292100524324188BE23A204A2F8B22FE82D8A465C22C8A020C447C84E91F1 + BEA1427328BA4F642F7B38544810033BF01CDC607B45708952161A56202A64A1 + E2DF77F7737843EEAD64FBFF6A7A60C93F30EC0766A1FFFE7760ABC779CC754E + 53D6FFC3F50C2258FFB3DF50870569C80D816010EFF9016B30F1830EFF65D082 + DEE00629D19FF7AF577FE3F870FF37C43EF971001D3EC17BE1871375807F0DA2 + 7F70C00F81B06007887F1BA77D35F70F7AC00092D009A2000A8D60777FD0085A + 76088740098F200987E0159D500892A0083D667A99700755760A97D00980D009 + 24780A69C76486B0088D500887700986D00797700A8BF0070C508189100CA000 + 0A7D100C9770090C700AA030828EE0838840837AE00B9DD008A7B081A0500811 + 485E31777FBC677BF4477F3A337C0C528669D82003786079907EFAA77E0AD838 + 3F9186FDB77EE1B7867958870BA27E0B388072E86813286283D868D9F30F82C8 + 7D69E17DE3450790FF806B89D0707DE008E556268AB88812D873FF8007D8D607 + 935071FAF6088BB0086C748928C188A60850A8988ADBB48AAC484CAEF88A6D13 + 8BDAA57183365D64738BADC33A92A68A995876FFD00999100382700AA2100399 + 700931E00825F00F8DC00025A08307000925D008345865815002A0C0004E3603 + 80700062168383700878500207C000811003A2F0083B66088790088C4057ABF8 + 078990059D000A0720008870083CF00714900833400114D008253003A0500023 + A0033FF0033340073A500222C00088100307C003A030030C9907220007053004 + F0350323100318A903EB1503F2F88BAD47118DC325BC1707F4C725F157218068 + 7B75C886CDF27AF4FF4793F2F7870F46800B887F89E88B603881BD9868DFA512 + 6C2376D0B28AC83607BC06213A91134B8707792008D6012115126139A10711F2 + 188E21257560217AE094569207CA1296B16725846019D3E60871107B0213086F + 591DF0F7967300080473070DF87E6199251CB18A7A7008E7657A7DC000A5D709 + 70000A7A708159980999C007832909806008A7B098BEC08E87F007A080088B40 + 8377678C93F007A2B0085C368293608D8F900788B0856AD7099080085E060A3D + 28097CD00799D0839DA0768F197782D0087AF09728F97DD545398B1669A8855D + 82189416A1252AD96821D721DCA57CCDB911CA598886A689E7373949B7219473 + 7EAFD713D029740BFFD8138FF31382365D4F677E146474DD295D20B738DB898B + 9A48889AF870DE168989509B178708885008AED608B699088640077F50647FC0 + 08864089997925DC069B35466E78C008E4F607ECD60777200825C608892016B9 + D30707AA6D88C06E4A666EEDC60F84400892108970F0087EB7A11AFA077C805A + 4C59088ED06A7AF06A8C100880B0A374403B8B906E84E00875E0083BCA078A20 + 088010167C40259726083973695C190890000998366A61826A80106F99460780 + A0088510A43B9A6B833089F29669A6060867010877F06BD211088BA0082A078C + F429A7D7A594695194268116787A94F31967C07807E3494157C70FE5B7387D79 + 9E42C7741EB22185FF4AA8BB878B19549E174468C1395E9E6808FF9607535A70 + 93C0071D4807882009A27A0888609B1407081AFA088C300993706586908CD8D6 + 0893000975206F9DE06D93E0088B300917A86D8FA0088AF0070E07A058260951 + 866A8F9009BC2A7817C7A5A479071EC194D371077C1007C84260BC0619CB026D + D0066BAA762974300879801D5639087AA007E14A3B3D83083D5A3BC66216C782 + 3B68036B9B560780E018BBF6967CD0ADB4731D36E1181F069C43D9A7D465A7B2 + D811AB08217980AE80007407AB12AB6808A2D00930780A99508A0FFB66959AB1 + 40438BAF2807201BB2220BB21A3BB0746A8A72E007A3200311500A9BF0B2B460 + 0A2F6B0A11C00A06FF2B9C269B928A28071A2203AA1001D5600776D006445BB4 + 46DB0676B009369B7D398BB33697B2AC1001AE100942DB067BB007FD90B55ABB + B5FDB0076DD00FAAA094AB480850E6888290088B00097D800790F00F82106E7D + A0339080136B59668810A18970B683F083A00A084BBA8974A0A18AF0087C3021 + 88A0086576A46180004B601F4175B55C1BB95CDB0691A00A7280B01BFB0F3F98 + 052418032AD099592008148007943003EC25026F30903140018640010C300407 + 80073170081860BA2320020570008230046F70BB7870007FD0023360083A5000 + C12000DA30025FF00419A0010E80012B8003923BBD5BDB06A1300A98DBB4E335 + 087860083A0A0889FF300885F0077AF008D8816B5CEA0693F0B690F0704E8607 + 493A087F106D5C8A086E2A087050086FDA158010AE8280088E602ACC741F2B60 + 002B90001D40BD0ADC0F7610011AE7B1A9C50F7EF00AA130B45FBBC018BCB576 + F0090F9CB973C007D079604107601A8207DA632142179E33D19E41A77542777E + D1F000AE40B41EF3B5BC800CC5D00612800CFD50B45A4BB4597BC13ADCC335DC + 0F0D300E92039D04DB461368088B5965A040098E60798A8063A0700A7B370763 + 26091BB87689000A89E0068690827FF00894700A88200A856008ABAA08929009 + A2700D62E00003E00117200F17300010600226F00C34300019300003B001B270 + 0126B0022B000007FF3C001770C7805C0E2B90C70460006A7B0882F007C68A29 + 3A3BA73AEB7F398160CDC2256FF9AFE5F75F6E8933D4875FB95725C817CA0038 + 075360030D800BB220591E230B36800B0D6003B3800BB3E0310D800C00E0CBB5 + 2C31C5200DBF2C590D70CBB260073000290C62218E06C18A76B32121C1A5D0C3 + 19BCCD0ACCC102CBC9387B0737FA6A347A078EE094397A168E701D8570198A00 + 08E7EB5FB33329B486AE7C90071746950F4002D2204B09404D12C005FF6C0023 + 032AB3F00C06300B0630C9CF104D3AFC543A6400C5201F290401BC200DE7D0C1 + DA4B11A4160CDE067753BC6688109A7C406E8B8070BDE98EDC36096C9BA598CC + AA3FAA08812009EFFF10058A0CC8CC440F1B9001047001CF201F1910D4D26002 + 06F0D317B00282BC0201200FEE71D419400319B002F23000E50000414006D90B + CE88C611A5C85D58A711721001D5ABB53BFCC341ACC0C870C13D8C0B921B09A4 + 10AD994B9E2D8C88953313DB65D76CC368DCE507628DB592FBB56A2DB97630B9 + DAACB583ADCD76F00A779D735A4D1185C09991486E889B0789A00782A03B8200 + AC7D20D3642B0879E0A54E3C088BE09F6E90D982E00E3B202AB8800B09302AE7 + 0101140500100000D250435C304300A02A1ED001CFE02A10150019D00114250D + 1EF00C0130C90FA00E5FEA6BC7B67D7EAAB36E6A085056C6AD7A6334AA6E88C0 + 081727DD7F40088CFF10B889E081962D167320A089900FF6F10CCF0000F4400F + EC4D001900011E4000F4B002F07D0BF2ED1E0170DB450DDFCF104344A02B5A50 + 015AA00554E004D8400769EB64F6EB088AE0DCD779B21FA1947A4A116E900B91 + F0C3B7C0C3DCECC3A1E00A11400A32E0071B02B27020B225DBD816BE38B18788 + 4E0114EF973DE8F920D49A256FF90F72A00CB510D8197CB5401C0AA5C00AC040 + E2B398B953080A97100C6E4C0943D807A1C7078210780C000A5F160C793BC668 + 979B93200AA2A00832B0E3DC1CC4941B09A6400A247EB9B098B990C23307682C + FEA77BB283211862802E8936A48C213CB3093CBEC05E6B07A630E4D60CB1994B + 4CFC100187BDCD48FFFB09618BE61A05C1662207B110097B2EB97D4E0B361BE8 + 9BE1E8DBE107339CC15F1B0A11E0072F37E840C30FA570E8D40BC4A540E4A3BE + D188983FDCA911DD69E1D7F50A5D9BD6918BEB485B0BB9B08B18C1465D8D7D16 + AE9C95831129EB0FAC1EE13ABB845BC1078E00AA8370A20ED76A7880A17CB008 + E60A6EFD9BB661110501200DF1DD0FEA510CB24D03060001101002F0F0078AC0 + 15E7EAD9D37D0A89F079161708D3C86AB67900B9FA648FD00886503BCF4EA4FC + F9A38EC00FA4F00AA5600AAEE00F9F200C367BB995F60FC9E608A8C60864266F + AFB9667D90A493A09A492AA57ECB0886F707EBED011E60EE0100001210511E90 + 0044E004593A098BFFC099E966BFAFFA07C100098F200AEEB808944008EDAEA1 + B22A9A87F0AA7217088850957C600888800DEB1005A1C0C045EB0F406C0A3311 + F11FE192137EEA635DBDA1400A982E3DD5E507ACB009190EC45BEB0F411C09D8 + 1BF1ED19A81504F7EED921A490D693DEC36ECDB3189474404767B6B721D00174 + 7DDFB36060035F3B0B92ABF6599BD84CAC89AC9608851003675C8D9770073170 + 0AE7B58D93000AB9D9097480078320088F9D02ED6D001E304310B0025C400FCF + 400451B0086B1A052140054510045A000EF1E6768CF0038D00BEBE20021B187A + A28008BEC0E5A439038E89C505070E1C400338E00004500E783C00BC90F63FFC + 0A8D0F8C5C3A6AC1FFE0A14516B794B0D9E0DBDD795B62171A6B7A4008B70D01 + 2C900029D4DACE4402DA406BED800001D000CF1454195004EA00108AF82C9AC4 + 480FA147A7FE2842B4E811A43E841205D2F3E78F4347DA9C2420106045066919 + 00702190A0DFC97EFE50F653F52F4D9A7F3165FEF337F31FBF373671DAD4C92F + 263F552B85B6F9344A0E3F52B5DAEC19DAA6962A9F3CA54A95E3479552A15951 + FADBB3A74D283F2E61F2AC39D5EC593FB4DA68FD1A4BCEBF58A1D66AEDB79655 + D4B353FD98B233376BD73681DBD8F167C74E24A862A596CDDB38A61C6576B432 + 55F596DF36C9744F120DEB5867AEBA6C07F7AB456B53A966FE22348B15F5E562 + CF8EF9BD9A6CA754FFD45891986A3E6927D7DBD8379545F27BD26B9B489B7291 + F2C3CF393F7FCE812B261B3C2F3F5A9957B6D9D4F95F50DE28F798C2EBD9CFA7 + E2750F9B6A0DDBE6EBEAD6CD8EAAB51BA59D4F32666ED2CEBB0DADF2F23A6A9B + E2BC8AA41419F899CE26C664828F41F9CCA26DA848DC9AC995F0C4033036A084 + F2EA935C028C6FA607676A304299E428A5BFBA220890BF0CFBB16343CF46210E + A5C13631AAB113A98310459D4CB1AFAE4FBC9389AF186714D12CF036B34398E6 + 9E3BABC71265EA11453F3014CF8E08168CC994184FDA6449AA84F1EB493F72D9 + 64135364F0D2449EAA8CE9CA086DDCAE3BA93609B39F311D9363945098F20ACA + 08EA0AACA837E78CFF73AC1F81948914EDF640542A2D335452B615FBF1AA3B52 + 42DB6C9344695AD43D47632AF4BE6DC8443243498D348B9F5A24FB6F147EC014 + AAC2A9A86414CE52FF91E354944831AB993D43D1AF313F02DDA316A3F8D15328 + 3B5A22D5C15DADECD5D74D769394CC7F3A0D3312611B6305A5CA6E7A76A56813 + D5755A20E5F864256542ED76CF7E72698C9F526474A5337E5C61718F2ED9F591 + D752DDDD8CC6A9720BB38D72D1AA662D69CDD5AA1475471DD151834F8A20AF2C + 87E4ADCFB3F88186B451647296C57EA05972DD8B81F42694932229F92C1551A6 + 0B2C8EF569E315BCF0D50AE79607B6B6D7973555B9B1096394594068704DB149 + A18011584E9AFCB1FFFA6AACB3D67A6BAEBBF6FA6BB0C3E6DAE26B7992434B65 + 6483394961E4F5D51461021C05BDAC4CF18CEAB2E5D0339499AF73C563BA5AA5 + B91456BCF419DA221DC3FB5A39A0B9B4313972B199AE70A792E315A979EA74C8 + 3D7C733BA6C57B9503CCBB3C8B45D330793E8B15577FA27B3B57B8A5B66CAA4A + 59DABC8763FCAAF5999CA36A5C0FFB21E5F3D00B56E5763F0B059CAE80E53B2F + 3D3E6517DA51DF7FE267947D834B167AADF0E3B7FA9B681E97F37A652F3EB626 + 4E00E10614501803847BD0F0211B1F3C9BCD8EE53DB4A374054E18E3867BDC00 + 0456F0011AC660053304A92F2BD983B1E4753ECF48E1046700810F4E70023364 + C30A2750C0186243FF9FC90D2576FFE81F08E8D7040564C3841354004FFC00A3 + EDD0A26F64A3DD4CE4F039AAAC2A3C7B00178AFEF43A1CD18277D3AB219064A0 + 1BDDE12942FC88051051678AE6D0B088D4D3216F3AD7BC0891E24638E28E8820 + 3845C8B10289AC4A1C8A90E28AC088A71FC2481089AA054633662A75D2A3991F + 68B314E37C25027E00CE17E1C831276A06399533E32B42B140279982143EF1E3 + 1FCD220731722F2B6DC81EF546510AA5CC25309188C0281AE9C8A9E00B7FAC8A + 161D1D23834D44C2505EB14328D8F046505AA72A68D45D2D4224BAEB91E215D5 + E84B609400CB5806470EC008E46490533AC6F1C30FA460052954F1CA60968A1F + A0B18F3162668C48FF182314C668032F3E110B9399524037E4C727A73284028C + E00092D0410C78400149FCC317824004F584B14013A84005E9D08000C2F1040C + 7CE10B40C001070A2000431460080260280F664081188C40051132A7540E5100 + 0A9420064A98810E04808F42B4600605B884A3FC90AF3638400542D0800A9E90 + 03210801084F8887061C00D0446060083C10C42918AA84110C211C1405A675E2 + C0074838020F8A28441D0CD1073AE8210F845884345F21196C66139BA108C500 + 8A0080010CC004E2B80603245102DA55349A52F119F4243081814EE0095D8847 + 17C491862CC0A16C6A5D2B4FF851A8F434A0010648802C0C908172B0A00CE6A8 + E75E8BDA57EBF0A367195BB4225194C1C76BF115B23691C364F1181EE4EC519C + 67D1EC667BD70CB948723B078AA2A34A6B5A93C5C214C4C91F8EECB089458E56 + 8AB0A55E2EB09221E4B047B7249A001B8C7B5CE42657B9CB656E739DFBDCE52A + 2107D3A56E75AD3B5D2540B7B9130808003B} + end + end + inline frViewRichEditor2: TfrViewRichEditor + Left = 145 + Top = 0 + Width = 596 + Height = 392 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitLeft = 145 + ExplicitWidth = 521 + ExplicitHeight = 374 + inherited TBXDock1: TTBXDock + Width = 596 + ExplicitWidth = 521 + inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 517 + inherited TBXColorItem1: TTBXColorItem + Visible = False + end + end + end + inherited RichEdit: TcxDBRichEdit + DataBinding.DataField = 'MEMORIA' + DataBinding.DataSource = dsDataTable + ExplicitWidth = 521 + ExplicitHeight = 348 + Height = 366 + Width = 596 + end end end end inherited StatusBar: TJvStatusBar - Top = 612 - Width = 674 + Top = 596 + Width = 749 Panels = < item Width = 200 end> - ExplicitTop = 612 + ExplicitTop = 549 ExplicitWidth = 674 end inline frViewTotales1: TfrViewTotales [4] Left = 0 - Top = 541 - Width = 674 - Height = 71 + Top = 496 + Width = 749 + Height = 100 Align = alBottom Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -338,11 +744,11 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 4 ReadOnly = False - ExplicitTop = 541 - ExplicitWidth = 674 - ExplicitHeight = 71 + ExplicitTop = 496 + ExplicitWidth = 749 + ExplicitHeight = 100 inherited dxLayoutControl1: TdxLayoutControl - Width = 674 + Width = 749 Height = 171 LookAndFeel = dxLayoutOfficeLookAndFeel1 ExplicitWidth = 674 @@ -356,20 +762,20 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitWidth = 73 end inherited Bevel3: TBevel - Left = 333 + Left = 368 Top = 11 Width = 8 Height = 54 - ExplicitLeft = 333 + ExplicitLeft = 368 ExplicitTop = 11 ExplicitWidth = 8 ExplicitHeight = 54 end inherited Bevel4: TBevel - Left = 450 + Left = 485 Top = 92 Width = 21 - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 92 ExplicitWidth = 21 end @@ -383,19 +789,19 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Width = 93 end inherited ImporteIVA: TcxDBCurrencyEdit - Left = 521 + Left = 556 Top = 38 Style.IsFontAssigned = True - ExplicitLeft = 521 + ExplicitLeft = 556 ExplicitTop = 38 ExplicitWidth = 137 Width = 137 end inherited ImporteTotal: TcxDBCurrencyEdit - Left = 451 + Left = 486 Top = 112 Style.IsFontAssigned = True - ExplicitLeft = 451 + ExplicitLeft = 486 ExplicitTop = 112 ExplicitWidth = 137 Width = 137 @@ -408,37 +814,37 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitTop = 112 end inherited edtIVA: TcxDBSpinEdit - Left = 450 + Left = 485 Top = 38 Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 38 end inherited ImporteBase: TcxDBCurrencyEdit - Left = 450 + Left = 485 Top = 11 Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 11 ExplicitWidth = 92 Width = 92 end inherited edtRE: TcxDBSpinEdit - Left = 450 + Left = 485 Top = 65 DataBinding.DataField = '' DataBinding.DataSource = nil Style.IsFontAssigned = True - ExplicitLeft = 450 + ExplicitLeft = 485 ExplicitTop = 65 end inherited ImporteRE: TcxDBCurrencyEdit - Left = 521 + Left = 556 Top = 65 DataBinding.DataField = '' DataBinding.DataSource = nil Style.IsFontAssigned = True - ExplicitLeft = 521 + ExplicitLeft = 556 ExplicitTop = 65 ExplicitWidth = 56 Width = 56 @@ -473,9 +879,9 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Width = 81 end inherited bTiposIVA: TButton - Left = 185 + Left = 220 Top = 38 - ExplicitLeft = 185 + ExplicitLeft = 220 ExplicitTop = 38 end inherited cbRecargoEquivalencia: TcxDBCheckBox @@ -501,9 +907,6 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited dxLayoutControl1Item10: TdxLayoutItem Visible = False end - inherited dxLayoutControl1Group7: TdxLayoutGroup - Visible = False - end end inherited dxLayoutControl1Group5: TdxLayoutGroup inherited dxLayoutControl1Group3: TdxLayoutGroup @@ -528,8 +931,11 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inherited EditorActionList: TActionList [5] end inherited SmallImages: TPngImageList [6] + Top = 72 end inherited LargeImages: TPngImageList [7] + Left = 435 + Top = 72 end inherited JvFormStorage: TJvFormStorage [8] end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas index eafb6154..1767272d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas @@ -16,7 +16,7 @@ uses dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, uIEditorPresupuestoCliente, uBizPresupuestosCliente, uViewPresupuestoCliente, uViewDetallesDTO, uViewDetallesArticulos, uViewDetallesPresupuestoCliente, - uDAInterfaces, cxRichEdit, cxDBRichEdit; + uDAInterfaces, cxRichEdit, cxDBRichEdit, JvGIF, uViewRichEditor; type TfEditorPresupuestoCliente = class(TfEditorDBItem, IEditorPresupuestoCliente) @@ -29,8 +29,12 @@ type frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente; pagPortada: TTabSheet; pagMemoria: TTabSheet; - cxDBMemo1: TcxDBMemo; - edtPortada: TcxDBRichEdit; + Panel1: TPanel; + Image2: TImage; + Panel2: TPanel; + Image3: TImage; + frViewRichEditor1: TfrViewRichEditor; + frViewRichEditor2: TfrViewRichEditor; procedure FormShow(Sender: TObject); procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); @@ -201,12 +205,9 @@ end; procedure TfEditorPresupuestoCliente.ImprimirInterno; begin -AppFactuGES.ShowCapado; -{ inherited; if not Modified then FController.Print(FPresupuesto); -} end; procedure TfEditorPresupuestoCliente.OnClienteChanged(Sender: TObject); @@ -220,13 +221,14 @@ begin AClientesController := TClientesController.Create; try - if not AClientesController.TieneDatosBancarios(FPresupuesto.Cliente) then - MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + { // Esto podría ser configurable en el programa + if not AClientesController.TieneDatosBancarios(FPresupuesto.Cliente) then + MessageBox(0, 'Este cliente no tiene datos bancarios en su ficha', 'Atención', MB_ICONWARNING or MB_OK);} case FPresupuesto.Cliente.Direcciones.RecordCount of 0 : begin FController.QuitarDireccionEnvio(FPresupuesto); - MessageBox(0, '¡Atención! Este cliente no tiene ' + #10#13 + 'ninguna dirección de envío en su ficha', 'Atención', MB_ICONWARNING or MB_OK); + MessageBox(0, '¡Atención! Este cliente no tiene ' + #10#13 + 'ninguna dirección en su ficha', 'Atención', MB_ICONWARNING or MB_OK); FPresupuesto.Edit; FPresupuesto.IMPORTE_PORTE := 0; end; @@ -290,12 +292,9 @@ end; procedure TfEditorPresupuestoCliente.PrevisualizarInterno; begin -AppFactuGES.ShowCapado; -{ inherited; if not Modified then FController.Preview(FPresupuesto); -} end; procedure TfEditorPresupuestoCliente.RecalcularPortePorUnidad; diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas index 824097fa..7abe7244 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -192,8 +192,6 @@ procedure TfEditorPresupuestosCliente.DuplicarInterno; var APresupuesto : IBizPresupuestoCliente; begin -AppFactuGES.ShowCapado; -{ inherited; APresupuesto := FController.Duplicar(Presupuestos); try @@ -201,7 +199,6 @@ AppFactuGES.ShowCapado; finally actRefrescar.Execute; end; -} end; procedure TfEditorPresupuestosCliente.EliminarInterno; @@ -283,8 +280,6 @@ var APresupuestos: IBizPresupuestoCliente; AllItems: Boolean; begin -AppFactuGES.ShowCapado; -{ APresupuestos := Nil; AllItems := False; @@ -318,7 +313,6 @@ AppFactuGES.ShowCapado; end; end; end; -} end; procedure TfEditorPresupuestosCliente.ModificarInterno; @@ -348,8 +342,6 @@ var APresupuestos: IBizPresupuestoCliente; AllItems: Boolean; begin -AppFactuGES.ShowCapado; -{ APresupuestos := Nil; AllItems := False; @@ -384,7 +376,6 @@ AppFactuGES.ShowCapado; end; end; APresupuestos := Nil; -} end; procedure TfEditorPresupuestosCliente.SetController(const Value: IPresupuestosClienteController); diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm index 1c0902c9..e9cf6034 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm @@ -14,8 +14,6 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente ParentBackground = True TabOrder = 0 AutoContentSizes = [acsWidth, acsHeight] - ExplicitWidth = 740 - ExplicitHeight = 465 DesignSize = ( 766 513) @@ -52,9 +50,13 @@ inherited frViewPresupuestoCliente: TfrViewPresupuestoCliente Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True TabOrder = 9 Height = 253 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm index 6feab4fd..4dab1a1d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm @@ -71,6 +71,11 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente BestFitMaxWidth = 25 Width = 68 end + object cxGridViewSITUACION: TcxGridDBColumn + Caption = 'Situaci'#243'n' + DataBinding.FieldName = 'SITUACION' + Width = 69 + end object cxGridViewFECHA_PRESUPUESTO: TcxGridDBColumn Caption = 'Fecha presupuesto' DataBinding.FieldName = 'FECHA_PRESUPUESTO' @@ -79,10 +84,6 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente SortOrder = soDescending Width = 45 end - object cxGridViewSITUACION: TcxGridDBColumn - DataBinding.FieldName = 'SITUACION' - Width = 69 - end object cxGridViewFECHA_DECISION: TcxGridDBColumn Caption = 'Fecha decisi'#243'n' DataBinding.FieldName = 'FECHA_DECISION' @@ -101,7 +102,6 @@ inherited frViewPresupuestosCliente: TfrViewPresupuestosCliente object cxGridViewCLIENTE_FINAL: TcxGridDBColumn Caption = 'Cliente final' DataBinding.FieldName = 'CLIENTE_FINAL' - Visible = False end object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn Caption = 'Importe total' diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 8e57f238..48e36e7f 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -313,7 +313,6 @@ - diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index e31af9c36de72a12648c1a1697f0c452b83b9749..855655ef8bf03be5f6d7a8dee66c985d758dfc34 100644 GIT binary patch delta 81 zcmdn6m2u5h#tnBO7&lD58zB!Q|3*YJ@=cD6RAziNxi+$zIgdeo^6yAl(K3cihE#?k jhCCoy%%H=dz+k{&KG`rzm(!5Jg29Txgu!TXdXy&s$1oV# delta 85 zcmZ3pm2m?Q-HBk_GWl+VJdpew5zQzxIWkh2@!jOw$ZF;y2F=O8BV{FX88R7OG88c+ kGvqVmFr+dRGw3iVFc>hHPS%am07fJlDgXcg diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index eb57d714..dff89894 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -95,7 +95,8 @@ uses schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas', schHistoricoMovimientosClient_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas', - schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas'; + schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas', + uRptFacturasCliente_Server in '..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas' {RptFacturasCliente: TDataModule}; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 4cf5427f..9e182051 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,206 +1,214 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - - - Delphi.Personality - - - FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58 - RemObjects Pascal Script - RemObjects SDK 3.0 Integration - FactuGES_Server.dpr - - - - - MainSource - - - - -
srvEmpresas
- TDARemoteService -
- - - - - - - - -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - - - - - - - -
srvContactos
- TDARemoteService -
- - - - -
srvFacturasCliente
- TDataAbstractService -
- - - - -
srvFacturasProveedor
- TDataAbstractService -
- - - - - - - - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
-
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - -
srvRecibosCliente
- TDataAbstractService -
- - - -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvRemesasCliente
- TDataAbstractService -
- - - -
srvRemesasProveedor
- TDataAbstractService -
- - - - - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + + + Delphi.Personality + + +FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58 + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + FactuGES_Server.dpr + + + + + MainSource + + + + +
srvEmpresas
+ TDARemoteService +
+ + + + + + + + +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + + + + + + + +
srvContactos
+ TDARemoteService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
srvFacturasProveedor
+ TDataAbstractService +
+ + + + + + + + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + +
srvRecibosCliente
+ TDataAbstractService +
+ + + +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + + + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + +