Compare commits

...

102 Commits

Author SHA1 Message Date
005ad1b637 Se adapata a multiempresa sin migrar repaso total
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@335 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-07-16 10:33:00 +00:00
a94bd81b86 Se adapata a multiempresa sin migrar
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@334 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-07-15 16:51:21 +00:00
3faefc433d Se actualiza finalbuilder
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@333 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-07-14 09:18:04 +00:00
faae54253c Se actualiza finalbuilder
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@332 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-07-14 09:17:28 +00:00
025b5ad823 No recupera la fecha del pago de los recibos si la modificamos y no coge bien la fecha cuendo la metemos manualmente
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@331 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-06-22 17:58:46 +00:00
a1d83665c2 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@330 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2010-03-22 15:57:08 +00:00
db942ffa79 se prepara version 3.6.7
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@328 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-03-22 12:16:54 +00:00
fde328f775 Se adapta para que se puedan imprimir facturas con formato bcoaching
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@327 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2010-03-22 12:14:47 +00:00
773bb811d3 Se adaptan las facturas de cliente para que se pueda añadir un descuento general a parte del de la linea de detalle
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@325 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-10-06 16:26:25 +00:00
a5db1dab14 Se adaptan las facturas de cliente para que se pueda añadir un descuento general a parte del de la linea de detalle
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@324 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-10-06 15:35:16 +00:00
36497dc456 Se arregla el informe de facturas de cliente para que la ultima linea salga entera y no sea tapada por el pie del informe
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@323 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-09-16 15:02:19 +00:00
98685a8e1d Se arregla informe para que no se monte logo elica con el logo de luisleon
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@322 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-08-06 09:24:49 +00:00
ca4e178ab5 Subida para la versión 3.3.5 (Se pone logotipo elica en facturas y albaranes de cliente
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@320 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-08-05 16:21:32 +00:00
b1b8def6eb Informes de facturas y albaranes con el logo de Elika.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@319 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-08-05 11:33:22 +00:00
8c42ef1f80 Se cambia log del serviro para dejar constancia de el todos los dias
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@317 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-07-14 09:11:28 +00:00
2df919ad37 Se arregla la base para que en los editores de grid nunca pregunte si se desea guardar los cambios
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@316 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-07-09 11:07:03 +00:00
3d656d4e2b Se arreglan las remesas para que cuando añadimos recibos, la lista de recibos a seleccionar no aparezcan los que tenemos ya asignadoe en la remesa
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@315 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-07-08 11:39:18 +00:00
72c7795cb3 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@314 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2009-06-19 10:19:52 +00:00
347c202cb3 Arreglo en factura para que cuando añadimos una nueva y cerramos sin hacer nada no de error
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@313 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-03-03 18:52:06 +00:00
0c1b87a136 Arreglo de la seleccion de recibos de proveedor y cliente para que el filtro del año salga y se puedan seleccionar recibos de otros años
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@312 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-03-02 16:29:52 +00:00
f053b73d66 Lib. GUISDK -> Cambio de la ruta.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@311 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-02-27 10:38:50 +00:00
babfd1fe48 Se suben versiones para la subida a produccion
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@310 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-02-26 15:22:22 +00:00
c83756255b Poder filtrar información de los grid por años
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@309 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-02-26 10:44:16 +00:00
96c436f1d9 SE arregla la logica de asignar fechas de vencimiento a los recibos de la factura segun los dias de pago asignados al cliente (por ejemplo si se le asigna el dia 31 no debe fallar cuando el mes solo tenga 30 días , en tal caso hemos optado por no tener en cuenta los días de pago para establecer la fecha de vencimiento del recibo
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@308 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-01-12 18:58:14 +00:00
d018b53431 Se quita una asignación a capón(111) del valor del pordentaje de grupo calculado, el porcentaje de grupo del informe de margen de ventasse calcula a partir de los totales de grupo de los importes de venta e importe promedio por lo tanto no coincidirá nunca con la media de los valores de la columna
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@307 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2009-01-07 17:26:31 +00:00
1a50e8079c Informe ventas por articulo - El campo IMPORTE_NETO_VENTA se ha puesto como campo para media (AVG)
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@306 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-12-31 09:25:05 +00:00
0bd6255af8 Informe margen por artículo - En el grid se han quitado los sumatorios que estaban metidos a capón.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@305 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-12-31 09:12:59 +00:00
ab106540f3 Informes base -> en la generación de los sumarios se aplica el formato que tenga la columna de ese sumario (en vez de comprobar los tipos)
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@304 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-12-31 09:01:54 +00:00
d1cc146bae Se arregla la vista de situacion de los recibos para que los recibos compensados salga la situacion del recibo donde se compensa y sea visible en las facturas para su situación
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@303 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-11-27 18:49:31 +00:00
2c68928503 Subida a produccion de envio automatico de documentos por correo electronico, y cambio en albaranes de cliente para detectar los bloqueados, y que se puedan imprimir o no las observaciones e incidencias de los albaranes de cliente
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@302 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-31 19:32:21 +00:00
61996caa03 Se adaptan los albaranes para que si el cliente se bloquea se vean como bloqueados tambien sus albaranes
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@300 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-31 16:04:07 +00:00
c7e8b89e41 Se adapta el envio de correos automático a todos los módulos
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@299 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-31 12:59:36 +00:00
0844f2cb7d Se adaptan pedidos de proveedor, albaranes de proveedor a poder enviarlos por correo electronico.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@298 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-29 18:15:55 +00:00
5d1ba11799 Se adaptan pedidos de cliente, albaranes de cliente a poder enviarlos por correo electronico, se arreglan la logica al generar todos y cada uno de los informes de pedido, albaranes, facturas, etc, para que se haga un begintransaction y un rollbacktransaction porque sino llegaba un momento en el que generar informes no se podia porque daba un error de transaccion activa
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@297 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-27 19:00:23 +00:00
073d29872a Repaso a los anchos de columnas de los grids. Ahora se colocan mejor los anchos y se guardan los tamaños.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@296 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-17 15:23:22 +00:00
73fc0f45a2 Corregidos errores con los vencimientos de los clientes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@294 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-16 18:07:10 +00:00
5d716410f0 Ignorar ficheros *.cbk en el directorio de fuentes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@293 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-10-16 18:05:54 +00:00
c41fa8eb0f git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@292 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-09-30 17:43:12 +00:00
8c8efb17fb git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@291 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-09-30 17:42:18 +00:00
c25908891b Se adaptan las fichas de cliente y proveedor para que se puedan establecer 3 dias de pago en clientes y proveedores para la generacion automática de los recibos
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@290 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-30 16:03:14 +00:00
bcf82f8833 Arreglado un error: al generar una factura en PDF ésta salía sin el logotipo.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@289 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-23 18:26:13 +00:00
523de01d77 - Incremento de versión a 3.0.8.0
- Limpieza de DCU en directorio de fuentes.

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@287 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-22 16:23:27 +00:00
e918358544 Ticket #14 -> Poder enviar facturas por correo electrónico
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@286 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-22 16:09:44 +00:00
8e748ddc7f Subida de version
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@284 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-22 12:23:38 +00:00
929485d207 Se modifica la opción de expandir las filas del grupo siempre que se imprima, para que los informes salgan igual que el los ve. Se ñaaden ordenes de grupo en los informes de margen
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@283 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-22 10:15:39 +00:00
d1ff7c3690 Arreglo de lineas del albaran
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@282 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-19 10:48:41 +00:00
46bb97ed57 Se adaptan los albaranes de cliente para que se puedan relacionar con las oredenes de devolucion y asi ver en la oreden de que albaran procede y si esta facturado o no
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@280 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-18 17:39:18 +00:00
ec5e7e3b2d Arreglo en albaranes de cliente para que en la pantalla albarandecliente el botón eliminar este desactivado cuando no se pueda eliminar el albaran
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@279 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-17 15:21:33 +00:00
99410f0272 Se adaptan los informes para que se ordenen por los importes y cantidades de los sumarys de las agrupaciones
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@278 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-15 12:03:57 +00:00
3e0bcba9e4 Arreglo de informes de cliente para que salgan los dos formatos con logotipo y sin logotipo, se detecta en el servicio de pedidos de clienteque no esta bien y tira de interfaz e invoker de pedidos de proveedor
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@277 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-09-10 18:58:32 +00:00
b14718b5ad Facturas de cliente -> Permitir que los abonos tengan importe 0.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@276 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-08-05 14:10:27 +00:00
1713b2b4a9 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@274 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-07-29 11:57:02 +00:00
8edf3d7026 Arreglo de vistas de articulos pendeientes de albaranar y recibis para que en el ID unico generado se anulen los números complementarios, si se repiten articulos en un pedido es su problema
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@273 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-17 18:30:07 +00:00
e84aca044e git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@272 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-07-15 18:14:10 +00:00
9f7d7df6d1 Arreglo para que cuando se cambie de cliente o proveedor en los documentos las cantidades de los detalles no se modifiquen, y se recalule el importe total del nuevo documento. Se añade campo que informa si un documento se ha impreso y el numero de veces que se ha impreso. Ademas de otros fallos varios, como la recogida de pedidos de la tienda web
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@271 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-15 18:09:26 +00:00
fa50cd7e2a Limpieza de warnings.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@270 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-14 17:29:03 +00:00
f146ff560d Servidor: al adquirir conexiones de BD comprobar si hay conexión antes de utilizarlas en los servicios.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@269 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-14 17:27:20 +00:00
a501958189 Primera subida de control de impresión para todos los documentos
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@268 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-10 15:47:16 +00:00
27e40864a2 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@267 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-07-10 10:01:15 +00:00
9738b2cc39 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@266 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-07-10 08:23:45 +00:00
2c31aa24b7 No lanzar más de una instancia del servidor aunque sea en cuentas de usuario diferentes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@265 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-01 16:00:59 +00:00
c9d18a1e39 Se adapta para que en el caso de tener varias vistas se quiten las agrupaciones y todas y cada una de ellas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@264 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-07-01 11:14:29 +00:00
ab8e38d08b - Migración a Fastreport 4
- Cambio de versión a 3.0.3

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@262 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-27 15:35:15 +00:00
817c4fc88f Repaso
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@261 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-20 17:32:24 +00:00
a6c0447a65 Repaso
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@259 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-20 16:05:58 +00:00
d5b336406b Limpieza de ficheros
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@258 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 14:49:08 +00:00
a1a08c5eb2 Actualización por FTP
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@257 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 14:48:39 +00:00
3650929caa Actualización por FTP
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@256 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 14:47:23 +00:00
964bbd18b9 Midas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@255 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 14:43:47 +00:00
0023eac591 Añadido conector ODBC para MySQL v 5.1
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@254 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 14:42:09 +00:00
b8e251ab7e Arreglo de cálculo de porcentaje de márgenes en informe de margen por artículo.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@253 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-19 13:31:40 +00:00
762c3c5ddb - Al generar los ficheros de norma 19 y 32, coger en entidad y la oficina del código de cuenta asociada a la remesa.
- Incremento de versión: 3.0.2

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@252 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-17 16:52:11 +00:00
c956c231cb Poder generar un directorio con el programa y todas las librerías que utiliza.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@250 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-17 11:44:30 +00:00
563a7e002f Incremento de versión a 3.0.1
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@249 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-17 10:22:58 +00:00
1a24c7025a Migración a DevExpress x.36
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@248 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-16 18:26:13 +00:00
344ba18b08 Tienda web:
- poder indicar individualmente qué artículos están en la tienda o no
 - arreglado el problema con ñ y tildes al volcar información a MySQL.

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@247 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-16 16:43:21 +00:00
8539f98d10 Añadida función uStringsUtils.pas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@246 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-16 14:47:19 +00:00
97a2eda409 Arreglo de informes de remesas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@245 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-12 16:50:16 +00:00
0959e49c7f Artículos: poder elegir si incluir o no un artículo concreto en la tienda web.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@244 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-11 10:43:56 +00:00
a561c77e14 Borrar ficheros Thumbs.db
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@243 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-11 10:40:52 +00:00
d72ff121eb Ignorar ficheros Thumbs.db.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@242 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-11 10:40:13 +00:00
02bae8646b Dia de pago por defecto de los clientes 0
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@241 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-05 10:17:26 +00:00
d309e38ec1 Arraglo de informe de margen ventas-compra (se pone el proveedor del articulo para que se falsee el informe al filtrar
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@239 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-06-04 17:17:54 +00:00
d17d0d2e9b Arreglo de formas de pago que al añadir una forma de pago nueva desde facturas fallaba
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@237 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-30 10:02:28 +00:00
05bc30f293 Repaso de recepcion de articulos y envio de articulos desde inventario
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@236 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-29 13:58:49 +00:00
798dab2347 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@235 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-05-29 10:09:58 +00:00
dc0da91984 Se agrega funcionalidad para poder recibir articulos de pedidos diferentes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@234 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-28 17:19:59 +00:00
ff42769703 Se agrega funcionalidad para poder recibir articulos de pedidos diferentes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@233 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-28 17:19:31 +00:00
c88a39f2d6 Se agrega funcionalidad para poder recibir articulos de pedidos diferentes.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@232 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-28 17:19:09 +00:00
8fb8bf219f git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@231 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-05-28 17:17:58 +00:00
b83d751cc1 Arreglo en uDataTableUtils.pas para que el coydatatable, cuando la tabla origen no tenga nada seleccionado se aplique un filtro que nos deje la tabla vacia para su copia
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@230 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-28 17:17:40 +00:00
594d7d2347 Arreglo de EditorBase para que los detalles de la cabecera realicen tambien un cancelupdates forzado para que no se queden deltas, además de arraglo del el controller de detallesbase, para que beginupdate y endupdate sean publicos y siempre que se realicen cambios en cantidad o importes de los detalles se pongan para forzar al recalculo
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@229 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-05-26 14:11:46 +00:00
e5a936699e git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@227 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-04-24 18:56:43 +00:00
0e96cbcd47 Mejora en la automatizacion de generacion de facturas a partir de Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj(pregunta la fecha que desea el usuario poner a las facturas a generar), arreglo de informe de beneficios por ventas
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@226 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-04-23 18:18:53 +00:00
5577da31e9 Subida de lógica (albaranar articulos pendientes de pedidos de cliente), completo, faltaria la parte de proveedores
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@225 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-04-21 07:35:55 +00:00
afa38c6f6a git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@224 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-04-11 15:56:25 +00:00
b256adc093 Arreglo de vista de situaciones de pedidos de cliente para que no tarde tanto, adaptación de informe de margen para poder añadir el informe de margen por articulos vendidos
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@223 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-04-11 15:00:35 +00:00
e63365542f Arreglo de informes de margen, para que segun la agrupacion base por articulo o por cliente se guarde en el informe
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@222 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-03-29 13:18:44 +00:00
26d974b043 git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@221 c93665c3-c93d-084d-9b98-7d5f4a9c3376 2008-03-28 15:11:34 +00:00
505300b281 Subida de 1paso de recepcion de pedidos por articulos individuales
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@220 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-03-28 15:10:28 +00:00
e081b58fd2 Se añade Id_Pedido a los articulos del albaran para poder realizar albaranes con articulos pertenecientes a distintos pedidos.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@218 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-02-04 19:22:13 +00:00
98b066acc1 Arreglo para que el id_pedido relacionado de los albaranes este en el detalle del albaran en lugar de en la cabecera
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@215 c93665c3-c93d-084d-9b98-7d5f4a9c3376
2008-02-04 16:49:36 +00:00
678 changed files with 52835 additions and 31289 deletions

BIN
Build/Build.fbl6 Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
<variables><DELPHI><![CDATA[C:\Archivos de programa\Borland\Delphi10\bin\dcc32.exe]]></DELPHI></variables>

BIN
Build/Build.fbz6 Normal file

Binary file not shown.

BIN
Build/Installer.fbl6 Normal file

Binary file not shown.

BIN
Build/Installer.fbz6 Normal file

Binary file not shown.

BIN
Build/UploadFTP.fbl6 Normal file

Binary file not shown.

BIN
Build/UploadFTP.fbz6 Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

118
Installer/librerias.txt Normal file
View File

@ -0,0 +1,118 @@
adortl100.bpl
bdertl100.bpl
dbrtl100.bpl
dclIndyCore100.bpl
designide100.bpl
dsnap100.bpl
IndyCore100.bpl
IndyProtocols100.bpl
IndySystem100.bpl
rtl100.bpl
tee7100.bpl
teeUI7100.bpl
vcl100.bpl
vclactnband100.bpl
vcldb100.bpl
vcljpg100.bpl
vclshlctrls100.bpl
vclsmp100.bpl
vclx100.bpl
xmlrtl100.bpl
GUISDK_D10.bpl
ccpack10.bpl
cfpack_D10.bpl
cxDataD10.bpl
cxEditorsD10.bpl
cxExportD10.bpl
cxExtEditorsD10.bpl
cxGridD10.bpl
cxIntl6D10.bpl
cxIntlPrintSys3D10.bpl
cxLibraryD10.bpl
cxPageControlD10.bpl
cxTreeListD10.bpl
cxVerticalGridD10.bpl
DataAbstract_Core_D10.bpl
dclcxLibraryD10.bpl
dxBarD10.bpl
dxBarExtItemsD10.bpl
dxComnD10.bpl
dxGDIPlusD10.bpl
dxLayoutControlD10.bpl
dxPSCoreD10.bpl
dxPScxCommonD10.bpl
dxPScxGrid6LnkD10.bpl
dxPSLnksD10.bpl
dxPsPrVwAdvD10.bpl
dxThemeD10.bpl
frx10.bpl
frxe10.bpl
frxTee10.bpl
fs10.bpl
fsTee10.bpl
fqb100.bpl
tee100.bpl
teeui100.bpl
teedb100.bpl
dbexpress100.bpl
EasyListviewD10.bpl
MPCommonLibD10.bpl
midas.dll
Jcl100.bpl
JclVcl100.bpl
JSDialog100.bpl
JvAppFrmD10R.bpl
JvCmpD10R.bpl
JvCoreD10R.bpl
JvCtrlsD10R.bpl
JvCustomD10R.bpl
JvDlgsD10R.bpl
JvGlobusD10R.bpl
JvJansD10R.bpl
JvMMD10R.bpl
JvPageCompsD10R.bpl
JvStdCtrlsD10R.bpl
JvSystemD10R.bpl
pckMD5.bpl
pckUCDataConnector.bpl
pckUserControl_RT.bpl
PluginSDK_D10R.bpl
PngComponentsD10.bpl
PNG_D10.bpl
RemObjects_Core_D10.bpl
tb2k_d10.bpl
tbx_d10.bpl
dxSkinBlackD10.bpl
dxSkinBlueD10.bpl
dxSkinCaramelD10.bpl
dxSkinCoffeeD10.bpl
dxSkinGlassOceansD10.bpl
dxSkiniMaginaryD10.bpl
dxSkinLilianD10.bpl
dxSkinLiquidSkyD10.bpl
dxSkinLondonLiquidSkyD10.bpl
dxSkinMcSkinD10.bpl
dxSkinMoneyTwinsD10.bpl
dxSkinOffice2007BlackD10.bpl
dxSkinOffice2007BlueD10.bpl
dxSkinOffice2007GreenD10.bpl
dxSkinOffice2007PinkD10.bpl
dxSkinOffice2007SilverD10.bpl
dxSkinsCoreD10.bpl
dxSkinscxPCPainterD10.bpl
dxSkinscxScheduler3PainterD10.bpl
dxSkinsdxBarPainterD10.bpl
dxSkinsdxDLPainterD10.bpl
dxSkinsdxLCPainterD10.bpl
dxSkinsdxNavBar2PainterD10.bpl
dxSkinsdxRibbonPainterD10.bpl
dxSkinSilverD10.bpl
dxSkinStardustD10.bpl
dxSkinValentineD10.bpl
dxSkinXmas2008BlueD10.bpl

View File

@ -216,7 +216,7 @@
</Delphi.Personality> </Delphi.Personality>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]
EurekaLog Version=519 EurekaLog Version=6014
Activate=1 Activate=1
Activate Handle=1 Activate Handle=1
Save Log File=1 Save Log File=1
@ -530,5 +530,190 @@ Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully." mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1 Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work." mtSend_FailureMsg0="Sorry, sending the message didn't work."
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppUpTime=1
soExcModuleName=1
soExcModuleVersion=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSCharset=1
soCustomData=1
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoDoNotStoreProcNames=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
Count mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happened (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
Count mtLog_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
Count mtLog_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
Count mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
Count mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
Count mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_Path0="Path"
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line --> EurekaLog Last Line -->
</BorlandProject> </BorlandProject>

View File

@ -45,7 +45,7 @@ requires
cxExportD10, cxExportD10,
tbx_d10, tbx_d10,
tb2k_d10, tb2k_d10,
cxIntl5D10, cxIntl6D10,
vclactnband, vclactnband,
designide, designide,
xmlrtl, xmlrtl,
@ -66,7 +66,7 @@ requires
dxPScxCommonD10, dxPScxCommonD10,
dxPSLnksD10, dxPSLnksD10,
vclshlctrls, vclshlctrls,
dxPScxGridLnkD10, dxPScxGrid6LnkD10,
dclcxLibraryD10, dclcxLibraryD10,
dxPsPrVwAdvD10, dxPsPrVwAdvD10,
dxBarExtItemsD10, dxBarExtItemsD10,
@ -78,7 +78,8 @@ requires
jsDialog100, jsDialog100,
indy, indy,
JvDlgsD10R, JvDlgsD10R,
JvNetD10R; JvNetD10R,
dxGDIPlusD10;
contains contains
uDataTableUtils in 'Utiles\uDataTableUtils.pas', uDataTableUtils in 'Utiles\uDataTableUtils.pas',
@ -100,6 +101,10 @@ contains
MD5 in 'Utiles\MD5.pas', MD5 in 'Utiles\MD5.pas',
uPasswordUtils in 'Utiles\uPasswordUtils.pas', uPasswordUtils in 'Utiles\uPasswordUtils.pas',
uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas', uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas',
uInformeRegistryUtils in 'ClassRegistry\uInformeRegistryUtils.pas'; uInformeRegistryUtils in 'ClassRegistry\uInformeRegistryUtils.pas',
uStringsUtils in 'Utiles\uStringsUtils.pas',
uDataModuleImpresiones in '..\Modulos\Impresiones\Data\uDataModuleImpresiones.pas' {dmImpresiones: TDataModule},
uEMailUtils in 'Utiles\uEMailUtils.pas',
uDataModuleRegistroCorreos in '..\Modulos\Registro de correos\Data\uDataModuleRegistroCorreos.pas' {dmRegistroCorreos: TDataModule};
end. end.

View File

@ -23,6 +23,8 @@ type
procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant);
procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray);
procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer);
procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable);
procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable);
// procedure Copy(SMExport: TSMExportToClipboard); // procedure Copy(SMExport: TSMExportToClipboard);
// procedure Paste; // procedure Paste;
@ -43,8 +45,6 @@ type
procedure Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer); procedure Renumerar(DataTable: TDADataTable; LocalizaPosicion: Integer);
function DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer; function DesplazarNPosiciones(DataTable: TDADataTable; NumOrdenIni: Variant; NPosiciones: Variant): Integer;
procedure Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer); procedure Mover(DataTable: TDADataTable; Posicion: Integer; NumPosiciones: Integer);
procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable);
procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable);
//Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo //Si en los hijos existen campos a tener en cuenta se sobreescribira este metodo
procedure validarCampos(DataTable: TDADataTable); virtual; procedure validarCampos(DataTable: TDADataTable); virtual;
@ -71,6 +71,8 @@ type
procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); virtual; procedure Add(ADataTable: IDAStronglyTypedDataTable; TipoConcepto: Variant); virtual;
procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); virtual; procedure Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); virtual;
procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); virtual; procedure Move(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray; Posiciones: Integer); virtual;
procedure BeginUpdate(ADataTable: IDAStronglyTypedDataTable);
procedure EndUpdate(ADataTable: IDAStronglyTypedDataTable);
// procedure Copy(SMExport: TSMExportToClipboard); // procedure Copy(SMExport: TSMExportToClipboard);
// procedure Paste; // procedure Paste;
@ -348,12 +350,14 @@ end;
procedure TControllerDetallesBase.EndUpdate(ADataTable: IDAStronglyTypedDataTable); procedure TControllerDetallesBase.EndUpdate(ADataTable: IDAStronglyTypedDataTable);
begin begin
Dec(fUpdateCount); Dec(fUpdateCount);
CalcularTotales(True, ADataTable.DataTable);
ADataTable.DataTable.EnableControls;
if fUpdateCount = 0 then if fUpdateCount = 0 then
begin
CalcularTotales(True, ADataTable.DataTable);
AvisarObservadores(ADataTable); AvisarObservadores(ADataTable);
end;
ADataTable.DataTable.EnableControls;
HideHourglassCursor; HideHourglassCursor;
end; end;

View File

@ -183,7 +183,7 @@
</Delphi.Personality> </Delphi.Personality>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]
EurekaLog Version=519 EurekaLog Version=6014
Activate=1 Activate=1
Activate Handle=1 Activate Handle=1
Save Log File=1 Save Log File=1

View File

@ -65,7 +65,7 @@ requires
dxPScxCommonD10, dxPScxCommonD10,
dxPSLnksD10, dxPSLnksD10,
vclshlctrls, vclshlctrls,
dxPScxGridLnkD10, dxPScxGrid6LnkD10,
dclcxLibraryD10, dclcxLibraryD10,
dxPsPrVwAdvD10, dxPsPrVwAdvD10,
dxBarExtItemsD10, dxBarExtItemsD10,
@ -82,7 +82,8 @@ requires
PNG_D10, PNG_D10,
PngComponentsD10, PngComponentsD10,
ControllerBase, ControllerBase,
cxIntlPrintSys3D10; cxIntlPrintSys3D10,
dxGDIPlusD10;
contains contains
uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor}, uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor},
@ -107,6 +108,8 @@ contains
uEditorBasico in 'uEditorBasico.pas' {fEditorBasico}, uEditorBasico in 'uEditorBasico.pas' {fEditorBasico},
uDialogBase in 'uDialogBase.pas' {fDialogBase}, uDialogBase in 'uDialogBase.pas' {fDialogBase},
uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame}, uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame},
uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}; uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame},
uDialogElegirEMail in 'uDialogElegirEMail.pas' {fDialogElegirEMail},
uDialogListaEnvioEMail in 'uDialogListaEnvioEMail.pas' {fDialogListaEnvioEMail};
end. end.

View File

@ -18,7 +18,7 @@ uses
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils; cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils;
type type

View File

@ -0,0 +1,115 @@
inherited fDialogElegirEMail: TfDialogElegirEMail
Caption = 'Elegir direcci'#243'n de correo electr'#243'nico'
ClientHeight = 258
ClientWidth = 533
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnDestroy = FormDestroy
ExplicitWidth = 539
ExplicitHeight = 283
PixelsPerInch = 96
TextHeight = 13
inherited pnlBotones: TFlowPanel
Top = 202
Width = 533
ExplicitTop = 202
ExplicitWidth = 533
inherited Button1: TButton
Left = 437
ExplicitLeft = 437
end
inherited Button2: TButton
Left = 347
ExplicitLeft = 347
end
end
inherited FlowPanel1: TFlowPanel
Width = 533
Height = 202
ExplicitWidth = 533
ExplicitHeight = 202
inherited lblInstruccion: TLabel
Width = 477
Caption = 'Indique la direcci'#243'n de correo electr'#243'nico del destinatario:'
Font.Style = [fsBold]
ExplicitWidth = 477
end
inherited Label2: TLabel
Width = 490
Height = 45
Caption =
'Para enviar el correo, puede usar la direcci'#243'n administrativa (s' +
'i el cliente la tiene en su ficha) o indicar otra direcci'#243'n dist' +
'inta con la segunda opci'#243'n.'
WordWrap = True
ExplicitWidth = 490
ExplicitHeight = 45
end
object Panel1: TPanel
Left = 31
Top = 115
Width = 482
Height = 80
Align = alClient
BevelOuter = bvNone
ParentColor = True
TabOrder = 0
object rbCombo: TRadioButton
Tag = 1
Left = 10
Top = 6
Width = 170
Height = 17
Caption = 'Usar la direcci'#243'n administrativa:'
TabOrder = 0
OnClick = rbComboClick
end
object cbEMail: TComboBox
Left = 211
Top = 6
Width = 262
Height = 21
Style = csDropDownList
ItemHeight = 13
TabOrder = 1
end
object rbEdit: TRadioButton
Tag = 2
Left = 10
Top = 41
Width = 202
Height = 17
Caption = 'Usar la siguiente direcci'#243'n de correo:'
TabOrder = 2
OnClick = rbEditClick
end
object edtEMail: TcxHyperLinkEdit
Left = 211
Top = 39
Properties.UsePrefix = upNever
Properties.ValidateOnEnter = True
Properties.Prefix = ''
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 = 3
Width = 262
end
end
end
inherited ActionList1: TActionList
Left = 8
Top = 8
inherited actAceptar: TAction
OnExecute = actAceptarExecute
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,173 @@
unit uDialogElegirEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, cxControls, cxContainer,
cxEdit, cxTextEdit, cxHyperLinkEdit;
type
TfDialogElegirEMail = class(TfDialogBase)
Panel1: TPanel;
rbCombo: TRadioButton;
cbEMail: TComboBox;
rbEdit: TRadioButton;
edtEMail: TcxHyperLinkEdit;
procedure rbComboClick(Sender: TObject);
procedure rbEditClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
private
FListaDirecciones: TStringList;
function GetEMailElegido: String;
procedure ActualizarOpciones;
public
property EMailElegido: String read GetEMailElegido;
property ListaDirecciones : TStringList read FListaDirecciones write FListaDirecciones;
end;
function ElegirEMail(const AListaEMails : TStringList; var AEMailElegido : String): Boolean;
implementation
{$R *.dfm}
uses
uStringsUtils, uDialogUtils, uEMailUtils;
function ElegirEMail(const AListaEMails : TStringList; var AEMailElegido : String): Boolean;
var
AEditor : TfDialogElegirEMail;
begin
AEditor := TfDialogElegirEMail.Create(NIL);
try
AEditor.ListaDirecciones := AListaEMails;
Result := (AEditor.ShowModal = mrOk);
if Result then
AEMailElegido := AEditor.EMailElegido;
finally
AEditor.Release;
end;
end;
{ TfDialogElegirEMail }
procedure TfDialogElegirEMail.actAceptarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk
end;
procedure TfDialogElegirEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrCancel;
end;
procedure TfDialogElegirEMail.ActualizarOpciones;
begin
if rbEdit.Checked then
begin
edtEMail.Enabled := True;
rbCombo.Checked := False;
cbEMail.Enabled := False;
end
else begin
if rbCombo.Enabled then
begin
cbEMail.Enabled := True;
edtEMail.Enabled := False;
rbEdit.Checked := False;
end
else
rbEdit.Checked := True;
end;
end;
procedure TfDialogElegirEMail.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
inherited;
if (ModalResult = mrOk) and rbEdit.Checked then
begin
if not EsCadenaVacia(edtEMail.Text) then
begin
if not EsDireccionEMailValida(edtEMail.Text) then
begin
ShowErrorMessage('La dirección de correo electrónica no es válida', 'Para poder continuar, compruebe que ha indicado una dirección de correo y que está bien escrita.');
edtEMail.SetFocus;
CanClose := False;
end;
end
else begin
ShowErrorMessage('Debe indicar una dirección de correo electrónico.', 'Para poder continuar debe elegir o indicar una dirección de correo electrónico.');
edtEMail.SetFocus;
CanClose := False;
end;
end;
end;
procedure TfDialogElegirEMail.FormCreate(Sender: TObject);
begin
inherited;
//FListaDirecciones := TStringList.Create; <- La lista se da mediante la propiedad.
end;
procedure TfDialogElegirEMail.FormDestroy(Sender: TObject);
begin
inherited;
//FreeAndNIL(FListaDirecciones) <- La lista se da mediante la propiedad.
end;
procedure TfDialogElegirEMail.FormShow(Sender: TObject);
begin
inherited;
cbEMail.Items.Clear;
cbEMail.Items := FListaDirecciones;
if cbEMail.Items.Count = 0 then
begin
cbEmail.Items.Add('Sin dirección administrativa');
cbEMail.ItemIndex := 0;
rbCombo.Enabled := False;
rbEdit.Checked;
end
else begin
cbEMail.ItemIndex := 0;
rbCombo.Checked := True;
end;
ActualizarOpciones;
end;
function TfDialogElegirEMail.GetEMailElegido: String;
begin
if rbCombo.Checked then
Result := cbEMail.Text
else
Result := edtEMail.Text;
end;
procedure TfDialogElegirEMail.rbComboClick(Sender: TObject);
begin
inherited;
rbEdit.Checked := False;
ActualizarOpciones;
end;
procedure TfDialogElegirEMail.rbEditClick(Sender: TObject);
begin
inherited;
rbEdit.Checked := True;
ActualizarOpciones;
end;
end.

View File

@ -0,0 +1,29 @@
inherited fDialogListaEnvioEMail: TfDialogListaEnvioEMail
Caption = 'fDialogListaEnvioEMail'
PixelsPerInch = 96
TextHeight = 13
inherited FlowPanel1: TFlowPanel
object ListView1: TListView
Left = 31
Top = 151
Width = 571
Height = 197
Align = alClient
Columns = <
item
Caption = 'Documento'
end
item
Caption = 'Destinatario'
end
item
Caption = 'Direcci'#243'n E-Mail'
end
item
Caption = 'Estado'
end>
TabOrder = 0
ViewStyle = vsReport
end
end
end

View File

@ -0,0 +1,22 @@
unit uDialogListaEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls;
type
TfDialogListaEnvioEMail = class(TfDialogBase)
ListView1: TListView;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

@ -1669,7 +1669,7 @@ object fEditorBase: TfEditorBase
object JvAppRegistryStorage: TJvAppRegistryStorage object JvAppRegistryStorage: TJvAppRegistryStorage
StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
Root = 'Software\%APPL_NAME%' Root = 'Software\FactuGES'
SubStorages = <> SubStorages = <>
Left = 424 Left = 424
Top = 120 Top = 120

View File

@ -116,6 +116,13 @@ begin
dsDataTable.DataTable.CancelUpdates; dsDataTable.DataTable.CancelUpdates;
//No funciona bien al CancelUpdates para las tablas detalle de esta forma le obligamos
dtDetails := dsDataTable.DataTable.GetDetailDataTables;
for i := 0 to dtDetails.Count - 1 do
begin
(TDADataTable(dtDetails.Items[i])).CancelUpdates;
end;
{ Comprobar si el bookmark no es válido cuando estamos cancelando la { Comprobar si el bookmark no es válido cuando estamos cancelando la
inserción de una fila nueva. inserción de una fila nueva.
CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!} CUIDADO!! Si no es válido salta una excepción. NO devuelve false!!!}

View File

@ -5,7 +5,7 @@ inherited fEditorDBItem: TfEditorDBItem
ClientHeight = 461 ClientHeight = 461
ClientWidth = 652 ClientWidth = 652
ExplicitWidth = 660 ExplicitWidth = 660
ExplicitHeight = 495 ExplicitHeight = 488
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader

View File

@ -4,6 +4,7 @@ inherited fEditorGridBase: TfEditorGridBase
Caption = 'fEditorGridBase' Caption = 'fEditorGridBase'
ClientHeight = 444 ClientHeight = 444
ClientWidth = 543 ClientWidth = 543
OnDestroy = CustomEditorDestroy
ExplicitWidth = 551 ExplicitWidth = 551
ExplicitHeight = 471 ExplicitHeight = 471
PixelsPerInch = 96 PixelsPerInch = 96
@ -84,6 +85,16 @@ inherited fEditorGridBase: TfEditorGridBase
ShowHint = True ShowHint = True
ShrinkMode = tbsmNone ShrinkMode = tbsmNone
TabOrder = 0 TabOrder = 0
object lblAno: TTBXLabelItem
Caption = 'A'#241'o:'
Visible = False
end
object cbxListaAnos: TTBXComboBoxItem
Visible = False
end
object sepAno: TTBXSeparatorItem
Visible = False
end
object TBXLabelItem1: TTBXLabelItem object TBXLabelItem1: TTBXLabelItem
Caption = 'Filtrar:' Caption = 'Filtrar:'
end end
@ -1515,8 +1526,6 @@ inherited fEditorGridBase: TfEditorGridBase
Bitmap = {} Bitmap = {}
end end
inherited JvFormStorage: TJvFormStorage inherited JvFormStorage: TJvFormStorage
OnSavePlacement = JvFormStorageSavePlacement
OnRestorePlacement = JvFormStorageRestorePlacement
Left = 400 Left = 400
Top = 160 Top = 160
end end

View File

@ -57,12 +57,13 @@ type
actFiltrar: TAction; actFiltrar: TAction;
TBXItem37: TTBXItem; TBXItem37: TTBXItem;
TBXTMain2: TTBXToolbar; TBXTMain2: TTBXToolbar;
lblAno: TTBXLabelItem;
cbxListaAnos: TTBXComboBoxItem;
sepAno: TTBXSeparatorItem;
procedure tbxEditFiltroChange(Sender: TObject; const Text: String); procedure tbxEditFiltroChange(Sender: TObject; const Text: String);
procedure FormShow(Sender: TObject); override; procedure FormShow(Sender: TObject); override;
procedure actQuitarFiltroExecute(Sender: TObject); procedure actQuitarFiltroExecute(Sender: TObject);
procedure actDuplicarUpdate(Sender: TObject); procedure actDuplicarUpdate(Sender: TObject);
procedure JvFormStorageSavePlacement(Sender: TObject);
procedure JvFormStorageRestorePlacement(Sender: TObject);
procedure actModificarUpdate(Sender: TObject); procedure actModificarUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject); procedure actEliminarUpdate(Sender: TObject);
procedure actNuevoUpdate(Sender: TObject); procedure actNuevoUpdate(Sender: TObject);
@ -70,10 +71,17 @@ type
procedure actRefrescarUpdate(Sender: TObject); procedure actRefrescarUpdate(Sender: TObject);
procedure actFiltrarExecute(Sender: TObject); procedure actFiltrarExecute(Sender: TObject);
procedure actFiltrarUpdate(Sender: TObject); procedure actFiltrarUpdate(Sender: TObject);
procedure CustomEditorDestroy(Sender: TObject);
protected protected
FListaAnos: TStringList;
FViewGrid : IViewGridBase; FViewGrid : IViewGridBase;
FWhereDataTable: WideString;
function GetListaAnos: TStringList;
procedure SetListaAnos(const Value: TStringList);
procedure SetViewGrid(const Value : IViewGridBase); virtual; procedure SetViewGrid(const Value : IViewGridBase); virtual;
function GetViewGrid: IViewGridBase; function GetViewGrid: IViewGridBase;
function GetWhereDataTable: String;
procedure SetWhereDataTable(const Value: String);
procedure SetMultiSelect (AValue : Boolean); procedure SetMultiSelect (AValue : Boolean);
function GetMultiSelect : Boolean; function GetMultiSelect : Boolean;
@ -81,8 +89,12 @@ type
procedure ConfPaginaInterno; override; procedure ConfPaginaInterno; override;
procedure ImprimirInterno; override; procedure ImprimirInterno; override;
procedure RefrescarInterno; override; procedure RefrescarInterno; override;
function GetModified: Boolean; override;
public public
property ListaAnos: TStringList read GetListaAnos write SetListaAnos;
property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid;
property WhereDataTable: String read GetWhereDataTable write SetWhereDataTable;
property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect;
constructor Create(AOwner : TComponent); override; constructor Create(AOwner : TComponent); override;
@ -102,9 +114,22 @@ uses
destructor TfEditorGridBase.Destroy; destructor TfEditorGridBase.Destroy;
begin begin
FViewGrid := NIL; FViewGrid := NIL;
FWhereDataTable := '';
if Assigned(FListaAnos) then
FlistaAnos.Free;
inherited; inherited;
end; end;
function TfEditorGridBase.GetListaAnos: TStringList;
begin
Result := FListaAnos;
end;
function TfEditorGridBase.GetModified: Boolean;
begin
Result := False;
end;
function TfEditorGridBase.GetMultiSelect: Boolean; function TfEditorGridBase.GetMultiSelect: Boolean;
begin begin
Result := False; Result := False;
@ -117,12 +142,53 @@ begin
Result := FViewGrid; Result := FViewGrid;
end; end;
function TfEditorGridBase.GetWhereDataTable: String;
begin
Result := FWhereDataTable;
end;
procedure TfEditorGridBase.ImprimirInterno; procedure TfEditorGridBase.ImprimirInterno;
begin begin
inherited; inherited;
ViewGrid.Print; ViewGrid.Print;
end; end;
procedure TfEditorGridBase.SetListaAnos(const Value: TStringList);
var
i: Integer;
AStringAnterior: String;
begin
AStringAnterior := '';
if Assigned(FListaAnos) then
begin
AStringAnterior := FListaAnos.ValueFromIndex[cbxListaAnos.ItemIndex];
FListaAnos.Free;
end;
//Se asigna el nuevo TStringList
FListaAnos := Value;
if Assigned(FListaAnos) then
begin
cbxListaAnos.Strings.BeginUpdate;
cbxListaAnos.Strings.Clear;
for i := 0 to FListaAnos.Count - 1 do
cbxListaAnos.Strings.Append(FListaAnos.Names[i]);
//Se posiciona en el elemento que habia anteriormente
if Length(AStringAnterior) > 0 then
begin
if FListaAnos.IndexOfName(AStringAnterior) <> -1 then
cbxListaAnos.ItemIndex := FListaAnos.IndexOfName(AStringAnterior)
else
cbxListaAnos.ItemIndex := 0;
end;
cbxListaAnos.Strings.EndUpdate;
end;
end;
procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean); procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean);
begin begin
if Assigned(ViewGrid) then if Assigned(ViewGrid) then
@ -139,6 +205,11 @@ begin
end; end;
end; end;
procedure TfEditorGridBase.SetWhereDataTable(const Value: String);
begin
FWhereDataTable := Value;
end;
procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String); procedure TfEditorGridBase.tbxEditFiltroChange(Sender: TObject; const Text: String);
begin begin
if Assigned(ViewGrid) then if Assigned(ViewGrid) then
@ -153,10 +224,14 @@ end;
procedure TfEditorGridBase.FormShow(Sender: TObject); procedure TfEditorGridBase.FormShow(Sender: TObject);
begin begin
inherited; inherited;
if Assigned(ViewGrid) then if Assigned(ViewGrid) then
begin
ViewGrid.RestoreFromIniFile;
ViewGrid.ShowEmbedded(Self); ViewGrid.ShowEmbedded(Self);
end;
cbxListaAnos.ItemIndex := 0;
end; end;
procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject); procedure TfEditorGridBase.actEliminarUpdate(Sender: TObject);
@ -246,6 +321,14 @@ constructor TfEditorGridBase.Create(AOwner: TComponent);
begin begin
inherited; inherited;
actModificar.ShortCut := ShortCut(VK_RETURN, []); actModificar.ShortCut := ShortCut(VK_RETURN, []);
FWhereDataTable := '';
end;
procedure TfEditorGridBase.CustomEditorDestroy(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToIniFile;
end; end;
procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject); procedure TfEditorGridBase.actAnchoAutoExecute(Sender: TObject);
@ -271,13 +354,6 @@ begin
(Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1);
end; end;
procedure TfEditorGridBase.JvFormStorageSavePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.StoreToRegistry(JvAppRegistryStorage.Root);
end;
procedure TfEditorGridBase.PrevisualizarInterno; procedure TfEditorGridBase.PrevisualizarInterno;
begin begin
inherited; inherited;
@ -304,13 +380,6 @@ begin
end; end;
end; end;
procedure TfEditorGridBase.JvFormStorageRestorePlacement(Sender: TObject);
begin
inherited;
if Assigned(ViewGrid) then
ViewGrid.RestoreFromRegistry(JvAppRegistryStorage.Root);
end;
initialization initialization
RegisterClass(TfEditorGridBase); RegisterClass(TfEditorGridBase);

View File

@ -5,17 +5,15 @@ inherited fEditorPreview: TfEditorPreview
WindowState = wsMaximized WindowState = wsMaximized
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnResize = FormResize OnResize = FormResize
ExplicitWidth = 658 ExplicitWidth = 803
ExplicitHeight = 492 ExplicitHeight = 485
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader
Top = 75 Top = 75
Visible = False Visible = False
ExplicitTop = 75 ExplicitTop = 75
ExplicitWidth = 650
inherited Image1: TImage inherited Image1: TImage
Left = 623
ExplicitLeft = 623 ExplicitLeft = 623
end end
end end
@ -27,7 +25,7 @@ inherited fEditorPreview: TfEditorPreview
DefaultDock = TBXDock DefaultDock = TBXDock
Visible = False Visible = False
ExplicitTop = 49 ExplicitTop = 49
ExplicitWidth = 242 ExplicitWidth = 248
end end
inherited tbxMenu: TTBXToolbar inherited tbxMenu: TTBXToolbar
DockPos = -24 DockPos = -24
@ -175,8 +173,6 @@ inherited fEditorPreview: TfEditorPreview
item item
Width = 50 Width = 50
end> end>
ExplicitTop = 439
ExplicitWidth = 650
end end
inherited EditorActionList: TActionList inherited EditorActionList: TActionList
Top = 104 Top = 104
@ -847,13 +843,14 @@ inherited fEditorPreview: TfEditorPreview
Bitmap = {} Bitmap = {}
end end
object frxReport1: TfrxReport object frxReport1: TfrxReport
Version = '3.23.7' Version = '4.3'
DotMatrixReport = False DotMatrixReport = False
EngineOptions.DoublePass = True EngineOptions.DoublePass = True
IniFile = '\Software\Fast Reports' IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator]
PreviewOptions.Zoom = 1.000000000000000000 PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Default' PrintOptions.Printer = 'Default'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 38658.858023541660000000 ReportOptions.CreateDate = 38658.858023541660000000
ReportOptions.LastChange = 38658.858023541660000000 ReportOptions.LastChange = 38658.858023541660000000
ScriptLanguage = 'PascalScript' ScriptLanguage = 'PascalScript'
@ -864,9 +861,6 @@ inherited fEditorPreview: TfEditorPreview
StoreInDFM = False StoreInDFM = False
Left = 16 Left = 16
Top = 200 Top = 200
Datasets = <>
Variables = <>
Style = <>
end end
object frxBarCodeObject1: TfrxBarCodeObject object frxBarCodeObject1: TfrxBarCodeObject
Left = 16 Left = 16

View File

@ -19,8 +19,15 @@ type
property Report: TfrxReport read GetReport; property Report: TfrxReport read GetReport;
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
function ExportToFile : String; function ExportToFile : String;
procedure Print; function Print: Boolean;
procedure Preview; procedure Preview;
function GetTablaImpresion: String;
function GetIdTablaImpresion: String;
procedure SetTablaImpresion (Value: String);
procedure SetIdTablaImpresion (Value: String);
property TablaImpresion: String read GetTablaImpresion write SetTablaImpresion;
property IdTablaImpresion: String read GetIdTablaImpresion write SetIdTablaImpresion;
end; end;
TfEditorPreview = class(TfEditorBase, IEditorPreview) TfEditorPreview = class(TfEditorBase, IEditorPreview)
@ -99,15 +106,28 @@ type
procedure actPrimeraPaginaUpdate(Sender: TObject); procedure actPrimeraPaginaUpdate(Sender: TObject);
procedure actPaginaAnteriorUpdate(Sender: TObject); procedure actPaginaAnteriorUpdate(Sender: TObject);
private private
FVariable: Boolean;
FPreview : TfrViewPreview; FPreview : TfrViewPreview;
procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer); procedure OnPageChanged(Sender: TfrxPreview; PageNo: Integer);
procedure UpdateZoom; procedure UpdateZoom;
procedure OnPrint(Sender: Tobject);
protected protected
FTablaImpresion: String;
FIdTablaImpresion: String;
function GetTablaImpresion: String;
function GetIdTablaImpresion: String;
procedure SetTablaImpresion (Value: String);
procedure SetIdTablaImpresion (Value: String);
function GetReport: TfrxReport; virtual; function GetReport: TfrxReport; virtual;
public public
property TablaImpresion: String read GetTablaImpresion write SetTablaImpresion;
property IdTablaImpresion: String read GetIdTablaImpresion write SetIdTablaImpresion;
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
property Report: TfrxReport read GetReport; property Report: TfrxReport read GetReport;
procedure Print; function Print: Boolean;
procedure Preview; procedure Preview;
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
function ExportToFile : String; function ExportToFile : String;
@ -117,19 +137,29 @@ type
implementation implementation
uses uses
frxRes, frxUtils, frxPrinter, frxFormUtils, frxRes, frxUtils, frxPrinter,
uCustomEditor, uSistemaFunc; uCustomEditor, uSistemaFunc, uDataModuleImpresiones;
{$R *.dfm} {$R *.dfm}
{ TfEditorBase1 } { TfEditorBase1 }
function TfEditorPreview.GetIdTablaImpresion: String;
begin
Result := FIdTablaImpresion;
end;
function TfEditorPreview.GetReport: TfrxReport; function TfEditorPreview.GetReport: TfrxReport;
begin begin
Result := frxReport1; Result := frxReport1;
end; end;
function TfEditorPreview.GetTablaImpresion: String;
begin
Result := FTablaImpresion;
end;
procedure TfEditorPreview.FormShow(Sender: TObject); procedure TfEditorPreview.FormShow(Sender: TObject);
begin begin
inherited; inherited;
@ -284,6 +314,13 @@ begin
[PageNo, Sender.PageCount]); [PageNo, Sender.PageCount]);
end; end;
procedure TfEditorPreview.OnPrint(Sender: Tobject);
begin
FVariable := True;
if (FTablaImpresion <> '-1') and (FIdTablaImpresion <> '-1') then
dmImpresiones.AnadirMarcaImpresion(TablaImpresion, IdTablaImpresion);
end;
constructor TfEditorPreview.Create(AOwner: TComponent); constructor TfEditorPreview.Create(AOwner: TComponent);
begin begin
inherited; inherited;
@ -304,6 +341,8 @@ begin
FPreview := TfrViewPreview.Create(Self); FPreview := TfrViewPreview.Create(Self);
Report.Preview := FPreview.Preview; Report.Preview := FPreview.Preview;
FPreview.Preview.OnPageChanged := OnPageChanged; FPreview.Preview.OnPageChanged := OnPageChanged;
FTablaImpresion := '-1';
FIdTablaImpresion := '-1';
end; end;
procedure TfEditorPreview.Preview; procedure TfEditorPreview.Preview;
@ -311,13 +350,28 @@ begin
Self.ShowModal; Self.ShowModal;
end; end;
procedure TfEditorPreview.Print; function TfEditorPreview.Print: Boolean;
begin begin
FVariable := False;
FPreview.Preview.Report.OnPrintReport := OnPrint;
if not frxPrinters.HasPhysicalPrinters then if not frxPrinters.HasPhysicalPrinters then
frxErrorMsg(frxResources.Get('clNoPrinters')) frxErrorMsg(frxResources.Get('clNoPrinters'))
else else
FPreview.Preview.Print; FPreview.Preview.Print;
Enabled := True; Enabled := True;
Result := FVariable;
end;
procedure TfEditorPreview.SetIdTablaImpresion(Value: String);
begin
FIdTablaImpresion := Value;
end;
procedure TfEditorPreview.SetTablaImpresion(Value: String);
begin
FTablaImpresion := Value;
end; end;
function TfEditorPreview.ExportToFile: String; function TfEditorPreview.ExportToFile: String;

View File

@ -1,10 +1,9 @@
object frViewFiltroBase: TfrViewFiltroBase inherited frViewFiltroBase: TfrViewFiltroBase
Left = 0
Top = 0
Width = 565 Width = 565
Height = 102 Height = 102
TabOrder = 0
Visible = False Visible = False
ExplicitWidth = 565
ExplicitHeight = 102
object TBXDockablePanel1: TTBXDockablePanel object TBXDockablePanel1: TTBXDockablePanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -20,8 +19,6 @@ object frViewFiltroBase: TfrViewFiltroBase
ShowCaptionWhenDocked = False ShowCaptionWhenDocked = False
SupportedDocks = [dkStandardDock, dkMultiDock] SupportedDocks = [dkStandardDock, dkMultiDock]
TabOrder = 0 TabOrder = 0
ExplicitWidth = 128
ExplicitHeight = 98
object dxLayoutControl1: TdxLayoutControl object dxLayoutControl1: TdxLayoutControl
Left = 0 Left = 0
Top = 0 Top = 0
@ -30,8 +27,8 @@ object frViewFiltroBase: TfrViewFiltroBase
Align = alTop Align = alTop
ParentBackground = True ParentBackground = True
TabOrder = 0 TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth, acsHeight] AutoContentSizes = [acsWidth, acsHeight]
ExplicitWidth = 128
object txtFiltroTodo: TcxTextEdit object txtFiltroTodo: TcxTextEdit
Left = 87 Left = 87
Top = 10 Top = 10
@ -129,7 +126,6 @@ object frViewFiltroBase: TfrViewFiltroBase
Margins.Left = 10 Margins.Left = 10
Align = alTop Align = alTop
TabOrder = 1 TabOrder = 1
ExplicitWidth = 128
object tbxBotones: TTBXToolbar object tbxBotones: TTBXToolbar
Left = 10 Left = 10
Top = 0 Top = 0
@ -147,7 +143,6 @@ object frViewFiltroBase: TfrViewFiltroBase
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 0 TabOrder = 0
ExplicitWidth = 118
object TBXItem2: TTBXItem object TBXItem2: TTBXItem
Action = actQuitarFiltro Action = actQuitarFiltro
DisplayMode = nbdmImageAndText DisplayMode = nbdmImageAndText

View File

@ -7,10 +7,10 @@ uses
Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl, Dialogs, cxMaskEdit, cxDropDownEdit, cxCalendar, dxLayoutControl,
cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls, cxContainer, cxEdit, cxTextEdit, dxLayoutLookAndFeels, cxControls,
StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems, StdCtrls, Buttons, cxRadioGroup, TBXDkPanels, TB2ExtItems, TBXExtItems,
TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList; TBX, TB2Item, TB2Dock, TB2Toolbar, ActnList, ImgList, PngImageList, uViewBase;
type type
IViewFiltroBase = interface IViewFiltroBase = interface (IViewBase)
['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}'] ['{0D0EA630-BF93-4BA1-93C2-FD5A5B0CBEED}']
function GetFiltrosChange: TNotifyEvent; function GetFiltrosChange: TNotifyEvent;
procedure SetFiltrosChange(const Value: TNotifyEvent); procedure SetFiltrosChange(const Value: TNotifyEvent);
@ -25,7 +25,7 @@ type
property Texto: String read GetTexto write SetTexto; property Texto: String read GetTexto write SetTexto;
end; end;
TfrViewFiltroBase = class(TFrame, IViewFiltroBase) TfrViewFiltroBase = class(TfrViewBase , IViewFiltroBase)
dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl; dxLayoutControl1: TdxLayoutControl;
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
@ -59,6 +59,7 @@ type
protected protected
procedure LimpiarCampos; virtual; procedure LimpiarCampos; virtual;
function ValidarCampos: Boolean; virtual; function ValidarCampos: Boolean; virtual;
function GetModified: Boolean; override;
public public
property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange; property OnFiltrosChange: TNotifyEvent read GetFiltrosChange write SetFiltrosChange;
@ -78,6 +79,11 @@ begin
Result := FOnFiltrosChange; Result := FOnFiltrosChange;
end; end;
function TfrViewFiltroBase.GetModified: Boolean;
begin
Result := False;
end;
procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent); procedure TfrViewFiltroBase.SetFiltrosChange(const Value: TNotifyEvent);
begin begin
FOnFiltrosChange := Value; FOnFiltrosChange := Value;

View File

@ -47,7 +47,6 @@ inherited frViewGrid: TfrViewGrid
OptionsView.GridLines = glHorizontal OptionsView.GridLines = glHorizontal
OptionsView.GroupByBox = False OptionsView.GroupByBox = False
OptionsView.HeaderEndEllipsis = True OptionsView.HeaderEndEllipsis = True
OptionsView.NewItemRowInfoText = 'Click here to add a new row'
Styles.Inactive = cxStyleSelection Styles.Inactive = cxStyleSelection
Styles.Selection = cxStyleSelection Styles.Selection = cxStyleSelection
Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle
@ -62,8 +61,15 @@ inherited frViewGrid: TfrViewGrid
Width = 554 Width = 554
Height = 102 Height = 102
Align = alTop Align = alTop
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 1 TabOrder = 1
Visible = False Visible = False
ReadOnly = False
ExplicitWidth = 554 ExplicitWidth = 554
inherited TBXDockablePanel1: TTBXDockablePanel inherited TBXDockablePanel1: TTBXDockablePanel
ExplicitWidth = 554 ExplicitWidth = 554
@ -108,6 +114,7 @@ inherited frViewGrid: TfrViewGrid
SupportedDocks = [dkStandardDock, dkMultiDock] SupportedDocks = [dkStandardDock, dkMultiDock]
TabOrder = 2 TabOrder = 2
Visible = False Visible = False
ExplicitWidth = 128
object TBXAlignmentPanel1: TTBXAlignmentPanel object TBXAlignmentPanel1: TTBXAlignmentPanel
Left = 0 Left = 0
Top = 0 Top = 0
@ -155,7 +162,7 @@ inherited frViewGrid: TfrViewGrid
PrinterPage.ScaleMode = smFit PrinterPage.ScaleMode = smFit
PrinterPage._dxMeasurementUnits_ = 0 PrinterPage._dxMeasurementUnits_ = 0
PrinterPage._dxLastMU_ = 2 PrinterPage._dxLastMU_ = 2
ReportDocument.CreationDate = 39449.781622719910000000 ReportDocument.CreationDate = 40259.515870208340000000
StyleManager = dxPrintStyleManager1 StyleManager = dxPrintStyleManager1
OptionsCards.Shadow.Depth = 0 OptionsCards.Shadow.Depth = 0
OptionsExpanding.ExpandGroupRows = True OptionsExpanding.ExpandGroupRows = True
@ -187,6 +194,7 @@ inherited frViewGrid: TfrViewGrid
object cxStyleRepository1: TcxStyleRepository object cxStyleRepository1: TcxStyleRepository
Left = 296 Left = 296
Top = 128 Top = 128
PixelsPerInch = 96
object cxStyleEven: TcxStyle object cxStyleEven: TcxStyle
end end
object cxStyleOdd: TcxStyle object cxStyleOdd: TcxStyle
@ -241,6 +249,7 @@ inherited frViewGrid: TfrViewGrid
object cxStyleRepositoryInforme: TcxStyleRepository object cxStyleRepositoryInforme: TcxStyleRepository
Left = 368 Left = 368
Top = 160 Top = 160
PixelsPerInch = 96
object cxStyleContentInforme: TcxStyle object cxStyleContentInforme: TcxStyle
AssignedValues = [svColor, svFont, svTextColor] AssignedValues = [svColor, svFont, svTextColor]
Color = clWhite Color = clWhite

View File

@ -1,6 +1,6 @@
{*******************************************************} {*******************************************************}
{ } { }
{ Administración de puntos de venta } { Administración de puntos de venta }
{ } { }
{ Copyright (C) 2006 Rodax Software S.L. } { Copyright (C) 2006 Rodax Software S.L. }
{ } { }
@ -18,10 +18,10 @@ uses
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu,
cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList, cxGridPopupMenu, uViewFiltroBase, ComCtrls, cxPC, ImgList, PngImageList,
TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg; TB2Item, TBX, TB2Dock, TB2Toolbar, TBXDkPanels, dxPgsDlg, uCustomView;
type type
IViewGrid = interface(IViewGridBase) IViewGrid = interface(IViewGridBase)
@ -139,12 +139,14 @@ end;
procedure TfrViewGrid.actQuitarAgrupacionesExecute(Sender: TObject); procedure TfrViewGrid.actQuitarAgrupacionesExecute(Sender: TObject);
var var
Columna: TcxGridDBColumn; Columna: TcxGridDBColumn;
i: Integer; i,j: Integer;
begin begin
inherited; inherited;
for i := 0 to cxGridView.ColumnCount - 1 do for j := 0 to cxGrid.ViewCount - 1 do
begin begin
Columna := (cxGridView as TcxGridDBTableView).Columns[i]; for i := 0 to (cxGrid.Views[j] as tcxGridDBTableView).ColumnCount - 1 do
begin
Columna := (cxGrid.Views[j] as TcxGridDBTableView).Columns[i];
if not (Columna.GroupIndex < 0) then if not (Columna.GroupIndex < 0) then
begin begin
Columna.GroupIndex := -1; Columna.GroupIndex := -1;
@ -152,6 +154,7 @@ begin
end; end;
end; end;
end; end;
end;
procedure TfrViewGrid.actQuitarAgrupacionesUpdate(Sender: TObject); procedure TfrViewGrid.actQuitarAgrupacionesUpdate(Sender: TObject);
begin begin

View File

@ -96,6 +96,7 @@ inherited frViewGrid2Niveles: TfrViewGrid2Niveles
object cxStyleRepository1: TcxStyleRepository object cxStyleRepository1: TcxStyleRepository
Left = 296 Left = 296
Top = 128 Top = 128
PixelsPerInch = 96
object cxStyleEven: TcxStyle object cxStyleEven: TcxStyle
end end
object cxStyleOdd: TcxStyle object cxStyleOdd: TcxStyle

View File

@ -18,7 +18,7 @@ uses
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu,
cxGridPopupMenu; cxGridPopupMenu;

View File

@ -18,7 +18,7 @@ uses
cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids,
DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn,
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, dxPrnDlg,
cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uViewFiltroBase; cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uViewFiltroBase;
type type
@ -37,6 +37,9 @@ type
procedure SaveGridStatus; procedure SaveGridStatus;
procedure RestoreGridStatus; procedure RestoreGridStatus;
procedure DesactivarGrid;
procedure ActivarGrid;
procedure GotoFirst; procedure GotoFirst;
procedure GotoLast; procedure GotoLast;
@ -49,6 +52,9 @@ type
procedure StoreToRegistry (const Path : String); procedure StoreToRegistry (const Path : String);
procedure RestoreFromRegistry (const Path : String); procedure RestoreFromRegistry (const Path : String);
procedure RestoreFromIniFile;
procedure StoreToIniFile;
procedure SetDblClick(const Value: TNotifyEvent); procedure SetDblClick(const Value: TNotifyEvent);
function GetDblClick: TNotifyEvent; function GetDblClick: TNotifyEvent;
property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick;
@ -93,6 +99,7 @@ type
FFilter: string; FFilter: string;
FOnFilterChanged : TNotifyEvent; FOnFilterChanged : TNotifyEvent;
FGridStatus : TcxGridStatus; FGridStatus : TcxGridStatus;
procedure BestFitAllColumns;
protected protected
FOnDblClick: TNotifyEvent; FOnDblClick: TNotifyEvent;
FPopupMenu: TPopupMenu; FPopupMenu: TPopupMenu;
@ -136,6 +143,8 @@ type
procedure SaveGridStatus; procedure SaveGridStatus;
procedure RestoreGridStatus; procedure RestoreGridStatus;
procedure DesactivarGrid;
procedure ActivarGrid;
procedure GotoFirst; procedure GotoFirst;
procedure GotoLast; procedure GotoLast;
@ -143,6 +152,9 @@ type
procedure StoreToRegistry (const Path : String); virtual; procedure StoreToRegistry (const Path : String); virtual;
procedure RestoreFromRegistry (const Path : String); virtual; procedure RestoreFromRegistry (const Path : String); virtual;
procedure RestoreFromIniFile;
procedure StoreToIniFile;
function Locate(const AItemIndex: Integer; const AValue: String; function Locate(const AItemIndex: Integer; const AValue: String;
const APartialCompare: Boolean = False) : Boolean; const APartialCompare: Boolean = False) : Boolean;
@ -166,7 +178,8 @@ procedure Register;
implementation implementation
uses uses
CCReg, uDataModuleBase, uDBSelectionListUtils; CCReg, uDataModuleBase, uDBSelectionListUtils, cxGridDBDataDefinitions,
uSistemaFunc, SHFolder;
{$R *.dfm} {$R *.dfm}
@ -177,11 +190,51 @@ end;
{ TfrViewGrid } { TfrViewGrid }
procedure TfrViewGridBase.ActivarGrid;
begin
if Assigned(_FocusedView) then
_FocusedView.EndUpdate;
end;
procedure TfrViewGridBase.BestFitAllColumns;
var
i : Integer ;
begin
ShowHourglassCursor;
_FocusedView.BeginUpdate;
try
for i := 0 to _FocusedView.VisibleColumnCount-1 do
begin
_FocusedView.VisibleColumns[i].ApplyBestFit;
ShowMessage(Format('Width=%d, Min=%d, Max=%d', [_FocusedView.VisibleColumns[i].Width, _FocusedView.VisibleColumns[i].MinWidth, _FocusedView.VisibleColumns[i].BestFitMaxWidth]));
if (_FocusedView.VisibleColumns[i].Width < _FocusedView.VisibleColumns[i].MinWidth) then
_FocusedView.VisibleColumns[i].Width := _FocusedView.VisibleColumns[i].MinWidth
else
if (_FocusedView.VisibleColumns[i].BestFitMaxWidth > 0) and
(_FocusedView.VisibleColumns[i].Width > _FocusedView.VisibleColumns[i].BestFitMaxWidth) then
_FocusedView.VisibleColumns[i].Width := _FocusedView.VisibleColumns[i].BestFitMaxWidth;
end;
finally
_FocusedView.EndUpdate;
HideHourglassCursor;
end;
end;
procedure TfrViewGridBase.AjustarAncho; procedure TfrViewGridBase.AjustarAncho;
begin begin
if Assigned(_FocusedView) then if Assigned(_FocusedView) then
_FocusedView.ApplyBestFit; begin
ShowHourglassCursor;
try
_FocusedView.ApplyBestFit(nil, True, False);
//BestFitAllColumns;
finally
HideHourglassCursor;
end; end;
end;
end;
procedure TfrViewGridBase.AnadirOtrosFiltros; procedure TfrViewGridBase.AnadirOtrosFiltros;
begin begin
@ -300,6 +353,24 @@ begin
Filter := ViewFiltros.Texto; Filter := ViewFiltros.Texto;
end; end;
procedure TfrViewGridBase.RestoreFromIniFile;
var
AIniFile : String;
begin
if Assigned(_FocusedView) then
begin
AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data
AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + 'FactuGES' + PathDelim;
if not DirectoryExists(AIniFile) then
if not ForceDirectories(AIniFile) then
raise EInOutError.Create(Format('No se ha podido crear el directorio %s', [AIniFile]));
_FocusedView.RestoreFromIniFile(AIniFile + 'grid.xml', True, False, []);
end;
end;
procedure TfrViewGridBase.RestoreFromRegistry(const Path : String); procedure TfrViewGridBase.RestoreFromRegistry(const Path : String);
begin begin
if Assigned(_FocusedView) then if Assigned(_FocusedView) then
@ -387,6 +458,24 @@ begin
end; end;
end; end;
procedure TfrViewGridBase.StoreToIniFile;
var
AIniFile : String;
begin
if Assigned(_FocusedView) then
begin
AIniFile := GetSpecialFolderPath(CSIDL_COMMON_APPDATA); //[All Users]\Application Data
AIniFile := AIniFile + PathDelim + 'Rodax Software' + PathDelim + 'FactuGES' + PathDelim;
if not DirectoryExists(AIniFile) then
if not ForceDirectories(AIniFile) then
raise EInOutError.Create(Format('No se ha podido crear el directorio %s', [AIniFile]));
_FocusedView.StoreToIniFile(AIniFile + 'grid.xml', False, []);
end;
end;
procedure TfrViewGridBase.StoreToRegistry(const Path : String); procedure TfrViewGridBase.StoreToRegistry(const Path : String);
begin begin
if Assigned(_FocusedView) then if Assigned(_FocusedView) then
@ -431,6 +520,12 @@ begin
// //
end; end;
procedure TfrViewGridBase.DesactivarGrid;
begin
if Assigned(_FocusedView) then
_FocusedView.BeginUpdate;
end;
destructor TfrViewGridBase.Destroy; destructor TfrViewGridBase.Destroy;
begin begin
FOnFilterChanged := Nil; FOnFilterChanged := Nil;

View File

@ -1076,7 +1076,7 @@ object fLoginForm: TfLoginForm
StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
StorageOptions.BooleanAsString = False StorageOptions.BooleanAsString = False
Root = 'Software\%APPL_NAME%' Root = 'Software\FactuGES'
SubStorages = <> SubStorages = <>
Left = 14 Left = 14
Top = 168 Top = 168

View File

@ -302,6 +302,11 @@ begin
if ASource.Active then if ASource.Active then
ASource.Close; ASource.Close;
//Si no hay elemento seleccionados filtramos para que ATarget se quede vacia
if (AObj.SelectedRecords.Count = 0) then
ASource.Filter := ASource.Filter + '(ID = ' + IntToStr(ID_NULO) + ')'
//En caso contrario filtramos por los elementos seleccionados
else
for i := 0 to AObj.SelectedRecords.Count - 1 do for i := 0 to AObj.SelectedRecords.Count - 1 do
begin begin
if (i > 0) then if (i > 0) then

View File

@ -0,0 +1,457 @@
unit uEMailUtils;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
{ Introducing a new Type of Event to get the Errorcode }
TMapiErrEvent = procedure(Sender: TObject; ErrCode: Integer) of object;
TMapiControl = class(TComponent)
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
private
{ Private-Deklarationen }
FSubject: string;
FMailtext: string;
FFromName: string;
FFromAdress: string;
FTOAdr: TStrings;
FCCAdr: TStrings;
FBCCAdr: TStrings;
FAttachedFileName: TStrings;
FDisplayFileName: TStrings;
FShowDialog: Boolean;
FUseAppHandle: Boolean;
{ Error Events: }
{ FOnUserAbort: TNotifyEvent;
FOnMapiError: TMapiErrEvent;
FOnSuccess: TNotifyEvent;}
{ +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]}
procedure SetToAddr(newValue: TStrings);
procedure SetCCAddr(newValue: TStrings);
procedure SetBCCAddr(newValue: TStrings);
procedure SetAttachedFileName(newValue: TStrings);
{ +< Changes }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
ApplicationHandle: THandle;
function Sendmail: Boolean;
procedure Reset;
published
{ Published-Deklarationen }
property Subject: string read FSubject write FSubject;
property Body: string read FMailText write FMailText;
property FromName: string read FFromName write FFromName;
property FromAdress: string read FFromAdress write FFromAdress;
property Recipients: TStrings read FTOAdr write SetTOAddr;
property CopyTo: TStrings read FCCAdr write SetCCAddr;
property BlindCopyTo: TStrings read FBCCAdr write SetBCCAddr;
property AttachedFiles: TStrings read FAttachedFileName write SetAttachedFileName;
property DisplayFileName: TStrings read FDisplayFileName;
property ShowDialog: Boolean read FShowDialog write FShowDialog;
property UseAppHandle: Boolean read FUseAppHandle write FUseAppHandle;
{ Events: }
{property OnUserAbort: TNotifyEvent read FOnUserAbort write FOnUserAbort;
property OnMapiError: TMapiErrEvent read FOnMapiError write FOnMapiError;
property OnSuccess: TNotifyEvent read FOnSuccess write FOnSuccess;}
end;
function EsDireccionEMailValida(const Value: string): boolean;
function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente,
ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean;
implementation
uses
MAPI;
function EsDireccionEMailValida(const Value: string): boolean;
function CheckAllowed(const s: string): boolean;
var
i: integer;
begin
Result:= false;
for i:= 1 to Length(s) do
begin
// illegal char in s -> no valid address
if not (s[i] in ['a'..'z','A'..'Z','0'..'9','_','-','.']) then
Exit;
end;
Result:= true;
end;
var
i: integer;
namePart, serverPart: string;
begin // of IsValidEmail
Result:= false;
i:= Pos('@', Value);
if (i = 0) or (pos('..', Value) > 0) then
Exit;
namePart:= Copy(Value, 1, i - 1);
serverPart:= Copy(Value, i + 1, Length(Value));
if (Length(namePart) = 0) // @ or name missing
or ((Length(serverPart) < 4)) // name or server missing or
then Exit; // too short
i:= Pos('.', serverPart);
// must have dot and at least 3 places from end
if (i < 2) or (i > (Length(serverPart) - 2)) then
Exit;
Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
end;
function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente,
ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean;
var
AMAPIControl : TMapiControl;
begin
AMAPIControl := TMapiControl.Create(NIL);
try
with AMAPIControl do
begin
Subject := AAsunto;
Body := ACuerpo;
FromName := ANombreRemitente;
FromAdress := AEMailRemitente;
Recipients.Add(AEMailDestinatario);
AttachedFiles.Add(AFicheroAdjunto);
ShowDialog := not AEnviarDirectamente;
end;
Result := AMAPIControl.Sendmail;
finally
FreeANDNIL(AMAPIControl);
end;
end;
{ TMapiControl }
constructor TMapiControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{FOnUserAbort := nil;
FOnMapiError := nil;
FOnSuccess := nil;}
FSubject := '';
FMailtext := '';
FFromName := '';
FFromAdress := '';
FTOAdr := TStringList.Create;
FCCAdr := TStringList.Create;
FBCCAdr := TStringList.Create;
FAttachedFileName := TStringList.Create;
FDisplayFileName := TStringList.Create;
FShowDialog := False;
ApplicationHandle := Application.Handle;
end;
{ +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]}
procedure TMapiControl.SetToAddr(newValue: TStrings);
begin
FToAdr.Assign(newValue);
end;
procedure TMapiControl.SetCCAddr(newValue: TStrings);
begin
FCCAdr.Assign(newValue);
end;
procedure TMapiControl.SetBCCAddr(newValue: TStrings);
begin
FBCCAdr.Assign(newValue);
end;
procedure TMapiControl.SetAttachedFileName(newValue: TStrings);
begin
FAttachedFileName.Assign(newValue);
end;
{ +< Changes }
destructor TMapiControl.Destroy;
begin
FTOAdr.Free;
FCCAdr.Free;
FBCCAdr.Free;
FAttachedFileName.Free;
FDisplayFileName.Free;
inherited destroy;
end;
{ Reset the fields for re-use}
procedure TMapiControl.Reset;
begin
FSubject := '';
FMailtext := '';
FFromName := '';
FFromAdress := '';
FTOAdr.Clear;
FCCAdr.Clear;
FBCCAdr.Clear;
FAttachedFileName.Clear;
FDisplayFileName.Clear;
end;
{ Send the Mail via the API, this procedure composes and sends
the Email }
function TMapiControl.Sendmail: Boolean;
var
MapiMessage: TMapiMessage;
MError: Cardinal;
Sender: TMapiRecipDesc;
PRecip, Recipients: PMapiRecipDesc;
PFiles, Attachments: PMapiFileDesc;
i: Integer;
AppHandle: THandle;
begin
{ First we store the Application Handle, if not
the Component might fail to send the Email or
your calling Program gets locked up. }
AppHandle := Application.Handle;
{ Initialize the Attachment Pointer, to keep Delphi quiet }
PFiles := nil;
{ We need all recipients to alloc the memory }
MapiMessage.nRecipCount := FTOAdr.Count + FCCAdr.Count + FBCCAdr.Count;
GetMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc));
try
with MapiMessage do
begin
ulReserved := 0;
{ Setting the Subject: }
lpszSubject := PChar(Self.FSubject);
{ ... the Body: }
lpszNoteText := PChar(FMailText);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
{ and the sender: (MAPI_ORIG) }
Sender.ulReserved := 0;
Sender.ulRecipClass := MAPI_ORIG;
Sender.lpszName := PChar(FromName);
Sender.lpszAddress := PChar(FromAdress);
Sender.ulEIDSize := 0;
Sender.lpEntryID := nil;
lpOriginator := @Sender;
PRecip := Recipients;
{ We have multiple recipients: (MAPI_TO)
and setting up each: }
if nRecipCount > 0 then
begin
for i := 1 to FTOAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_TO;
{ lpszName should carry the Name like in the
contacts or the adress book, I will take the
email adress to keep it short: }
PRecip^.lpszName := PChar(FTOAdr.Strings[i - 1]);
{ If you use this component with Outlook97 or 2000
and not some of Express versions you will have to set
'SMTP:' in front of each (email-) adress. Otherwise
Outlook/Mapi will try to handle the Email on itself.
Sounds strange, just erease the 'SMTP:', compile, compose
a mail and take a look at the resulting email adresses
(right click).
}
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FTOAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
{ Same with the carbon copy recipients: (CC, MAPI_CC) }
for i := 1 to FCCAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_CC;
PRecip^.lpszName := PChar(FCCAdr.Strings[i - 1]);
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FCCAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
{ ... and the blind copy recipients: (BCC, MAPI_BCC) }
for i := 1 to FBCCAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_BCC;
PRecip^.lpszName := PChar(FBCCAdr.Strings[i - 1]);
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FBCCAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
end;
lpRecips := Recipients;
{ Now we process the attachments: }
nFileCount := FAttachedFileName.Count;
if nFileCount > 0 then
begin
GetMem(Attachments, nFileCount * sizeof(TMapiFileDesc));
PFiles := Attachments;
{ Fist setting up the display names (without path): }
FDisplayFileName.Clear;
for i := 1 to FAttachedFileName.Count do
FDisplayFileName.Add(ExtractFileName(FAttachedFileName[i - 1]));
if nFileCount > 0 then
begin
{ Now we pass the attached file (their paths) to the
structure: }
for i := 1 to FAttachedFileName.Count do
begin
{ Setting the complete Path }
Attachments^.lpszPathName := PChar(FAttachedFileName.Strings[i - 1]);
{ ... and the displayname: }
Attachments^.lpszFileName := PChar(FDisplayFileName.Strings[i - 1]);
Attachments^.ulReserved := 0;
Attachments^.flFlags := 0;
{ Position has to be -1, please see the WinApi Help
for details. }
Attachments^.nPosition := Cardinal(-1);
Attachments^.lpFileType := nil;
Inc(Attachments);
end;
end;
lpFiles := PFiles;
end
else
begin
nFileCount := 0;
lpFiles := nil;
end;
end;
{ Send the Mail, silent or verbose:
Verbose means in Express a Mail is composed and shown as setup.
In non-Express versions we show the Login-Dialog for a new
session and after we have choosen the profile to use, the
composed email is shown before sending
Silent does currently not work for non-Express version. We have
no Session, no Login Dialog so the system refuses to compose a
new email. In Express Versions the email is sent in the
background.
Please Note: It seems that your success on the delivery depends
on a combination of MAPI-Flags (MAPI_DIALOG, MAPI_LOGON_UI, ...)
and your used OS and Office Version. I am currently using
Win2K SP1 and Office 2K SP2 with no problems at all.
If you experience problems on another versions, please try
a different combination of flags for each purpose (Dialog or not).
I would be glad to setup a table with working flags on
each OS/Office combination, just drop me a line.
Possible combinations are also (with Dialog):
1. MAPI_DIALOG or MAPI_LOGON_UI MAPI_NEW_SESSION or MAPI_USE_DEFAULT
2. MAPI_SIMPLE_DEFAULT
See MAPI.PAS or MAPI.H (SDK) for more...
}
if FShowDialog then
MError := MapiSendMail(0, AppHandle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0)
else
MError := MapiSendMail(0, AppHandle, MapiMessage, 0, 0);
{ Now we have to process the error messages. There are some
defined in the MAPI unit please take a look at the unit to get
familiar with it.
I decided to handle USER_ABORT and SUCCESS as special and leave
the rest to fire the "new" error event defined at the top (as
generic error)
Not treated as special (constants from mapi.pas):
MAPI_E_FAILURE = 2;
MAPI_E_LOGON_FAILURE = 3;
MAPI_E_LOGIN_FAILURE = MAPI_E_LOGON_FAILURE;
MAPI_E_DISK_FULL = 4;
MAPI_E_INSUFFICIENT_MEMORY = 5;
MAPI_E_ACCESS_DENIED = 6;
MAPI_E_TOO_MANY_SESSIONS = 8;
MAPI_E_TOO_MANY_FILES = 9;
MAPI_E_TOO_MANY_RECIPIENTS = 10;
MAPI_E_ATTACHMENT_NOT_FOUND = 11;
MAPI_E_ATTACHMENT_OPEN_FAILURE = 12;
MAPI_E_ATTACHMENT_WRITE_FAILURE = 13;
MAPI_E_UNKNOWN_RECIPIENT = 14;
MAPI_E_BAD_RECIPTYPE = 15;
MAPI_E_NO_MESSAGES = 16;
MAPI_E_INVALID_MESSAGE = 17;
MAPI_E_TEXT_TOO_LARGE = 18;
MAPI_E_INVALID_SESSION = 19;
MAPI_E_TYPE_NOT_SUPPORTED = 20;
MAPI_E_AMBIGUOUS_RECIPIENT = 21;
MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT;
MAPI_E_MESSAGE_IN_USE = 22;
MAPI_E_NETWORK_FAILURE = 23;
MAPI_E_INVALID_EDITFIELDS = 24;
MAPI_E_INVALID_RECIPS = 25;
MAPI_E_NOT_SUPPORTED = 26;
}
{ case MError of
MAPI_E_USER_ABORT:
begin
if Assigned(FOnUserAbort) then
FOnUserAbort(Self);
end;
SUCCESS_SUCCESS:
begin
if Assigned(FOnSuccess) then
FOnSuccess(Self);
end
else
begin
if Assigned(FOnMapiError) then
FOnMapiError(Self, MError);
end;
end;}
Result := (MError = 0);
finally
{ Finally we do the cleanups, the message should be on its way }
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip := Recipients;
for i := 1 to MapiMessage.nRecipCount do
begin
StrDispose(PRecip^.lpszAddress);
Inc(PRecip)
end;
{ +< Changes }
FreeMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc));
{ +> Changes due to Ken Halliwell [mailto:kjhalliwell@aol.com] }
if Assigned(PFiles) then
FreeMem(PFiles, MapiMessage.nFileCount * sizeof(TMapiFileDesc));
{ +< Changes }
end;
end;
end.

View File

@ -3,7 +3,7 @@ unit uIntegerListUtils;
interface interface
uses uses
Classes; Classes, FactuGES_Intf;
type type
TIntegerList = class(TList) TIntegerList = class(TList)
@ -14,10 +14,15 @@ type
procedure Add(Value: integer); reintroduce; procedure Add(Value: integer); reintroduce;
function Find(Value: integer; var Index: Integer): Boolean; function Find(Value: integer; var Index: Integer): Boolean;
property Integers[index: integer]: integer read GetInteger write SetInteger; default; property Integers[index: integer]: integer read GetInteger write SetInteger; default;
function ToIntegerArray : TIntegerArray;
function ToString : String;
end; end;
implementation implementation
uses
SysUtils;
function TIntegerList.GetInteger(Index: integer): integer; function TIntegerList.GetInteger(Index: integer): integer;
begin begin
result := Integer(Items[index]); result := Integer(Items[index]);
@ -28,6 +33,30 @@ begin
Items[index] := Pointer(Value); Items[index] := Pointer(Value);
end; end;
function TIntegerList.ToIntegerArray: TIntegerArray;
var
i : Integer;
begin
Result := TIntegerArray.Create;
for i := 0 to Count - 1 do
Result.Add(Integers[i]);
end;
function TIntegerList.ToString: String;
var
i : Integer;
AList : TStringList;
begin
AList := TStringList.Create;
try
for i := 0 to Count - 1 do
AList.Add(IntToStr(Integers[i]));
Result := AList.CommaText;
finally
FreeANDNIL(AList);
end;
end;
procedure TIntegerList.Add(Value: integer); procedure TIntegerList.Add(Value: integer);
var var
Index: integer; Index: integer;
@ -59,3 +88,4 @@ begin
end; end;
end. end.

View File

@ -20,33 +20,70 @@
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
=============================================================================== ===============================================================================
} }
unit uSistemaFunc; unit uSistemaFunc;
interface interface
uses SysUtils, Classes;
{ Funciones del sistema } { Funciones del sistema }
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean; function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean;
procedure EscribirEnFichero (NombreFichero, Texto : string);
function DarRutaTemporal : String; function DarRutaTemporal : String;
function DarDirectorioTemporal : String;
function DarFicheroTemporal : String; function DarFicheroTemporal : String;
function DarFicheroJPGTemporal : String; function DarFicheroJPGTemporal : String;
function DarFicheroBMPTemporal : String; function DarFicheroBMPTemporal : String;
function DarFicheroTIFFTemporal : String; function DarFicheroTIFFTemporal : String;
function DarFicheroExportar (var Fichero : String) : Boolean; function DarFicheroHTMLTemporal : String;
function DarFicheroExcelTemporal : String;
function DarFicheroPDFTemporal : String; overload;
function DarFicheroPDFTemporal(const AFileName : String) : String; overload;
function DarVersionFichero (Executable : String) : String; function DarVersionFichero (Executable : String) : String;
function DarFechaFichero (Executable : String) : String; function DarFechaFichero (Executable : String) : String;
procedure CopiarFichero(const Origen, Destino: string); procedure CopiarFichero(const Origen, Destino: string);
procedure DoDelTree( TheDir : String);
procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); procedure Deltree(DirToKill : String; KillChoosenDir : Boolean);
function GetSpecialFolderPath(folder : integer) : string;
function PreguntarRuta(const ATitulo: String; const AComentario: String; var ARuta: String): Boolean;
function PreguntarFicheroWordExportar (var Fichero : String) : Boolean;
function PreguntarFicheroExcelExportar (var Fichero : String) : Boolean;
function EscapeIllegalChars(AFileName: string): string;
function FindFile(const filespec: TFileName; attributes: integer = faReadOnly Or faHidden Or faSysFile Or faArchive): TStringList;
function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant;
implementation implementation
uses uses
SysUtils, Windows, Dialogs, Windows, Variants, Dialogs, JclFileUtils,
Messages, Graphics, Controls, Forms,
StdCtrls, SHFolder, cxShellBrowserDialog,
cxLookAndFeels, uStringsUtils;
function GetSpecialFolderPath(folder : integer) : string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0..MAX_PATH] of char;
begin
if SUCCEEDED(SHGetFolderPath(0, folder, 0, SHGFP_TYPE_CURRENT, @path[0])) then
Result := path
else
Result := '';
end;
procedure EscribirEnFichero (NombreFichero, Texto : string);
var
FicheroAux : TextFile;
begin
SysUtils.DeleteFile(NombreFichero);
AssignFile(FicheroAux, NombreFichero);
Rewrite(FicheroAux);
WriteLn(FicheroAux, Texto);
CloseFile(FicheroAux);
end;
Messages, Classes, Graphics, Controls, Forms,
StdCtrls;
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean; function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean;
var var
@ -112,6 +149,30 @@ begin
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif'; Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'tif';
end; end;
function DarFicheroPDFTemporal : String;
var
Cadena : String;
begin
Cadena := DarFicheroTemporal;
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'pdf';
end;
function DarFicheroPDFTemporal(const AFileName : String) : String;
var
Cadena : String;
RutaTmp : string;
begin
if not EsCadenaVacia(AFileName) then
begin
RutaTmp := DarRutaTemporal;
Cadena := ExtractFileName(AFileName);
Cadena := StringReplace(Cadena, ExtractFileExt(Cadena), '', []);
Result := RutaTmp + Cadena + '.pdf';
end
else
Result := DarFicheroPDFTemporal;
end;
function DarFicheroBMPTemporal : String; function DarFicheroBMPTemporal : String;
var var
Cadena : String; Cadena : String;
@ -120,6 +181,22 @@ begin
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp'; Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp';
end; end;
function DarFicheroExcelTemporal : String;
var
Cadena : String;
begin
Cadena := DarFicheroTemporal;
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'xls';
end;
function DarFicheroHTMLTemporal : String;
var
Cadena : String;
begin
Cadena := DarFicheroTemporal;
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'html';
end;
function DarFicheroJPGTemporal : String; function DarFicheroJPGTemporal : String;
var var
Cadena : String; Cadena : String;
@ -128,7 +205,7 @@ begin
Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg'; Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'jpg';
end; end;
function DarFicheroExportar (var Fichero : String) : Boolean; function PreguntarFicheroWordExportar (var Fichero : String) : Boolean;
var var
DialogoSalvar : TSaveDialog; DialogoSalvar : TSaveDialog;
begin begin
@ -149,28 +226,37 @@ begin
end; end;
end; end;
function PreguntarFicheroExcelExportar (var Fichero : String) : Boolean;
var
DialogoSalvar : TSaveDialog;
begin
DialogoSalvar := TSaveDialog.Create(NIL);
try
with DialogoSalvar do
begin
DefaultExt := 'xls';
Filter := 'Documento de Excel (*.xls)|*.xls';
FilterIndex := 0;
Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing];
end;
Result := DialogoSalvar.Execute;
if Result then
Fichero := DialogoSalvar.FileName;
finally
DialogoSalvar.Free;
end;
end;
function DarVersionFichero (Executable : String) : String; function DarVersionFichero (Executable : String) : String;
var var
Size, Size2: DWord; Obj : TJclFileVersionInfo;
Pt, Pt2: Pointer;
begin begin
Size := GetFileVersionInfoSize(PChar (Executable), Size2); Obj := TJclFileVersionInfo.Create(Application.ExeName);
if Size > 0 then
begin
GetMem (Pt, Size);
try try
GetFileVersionInfo (PChar (Executable), 0, Size, Pt); Result := Obj.FileVersion;
VerQueryValue (Pt, '\', Pt2, Size2);
with TVSFixedFileInfo (Pt2^) do
begin
Result:= IntToStr (HiWord (dwFileVersionMS)) + '.' +
IntToStr (LoWord (dwFileVersionMS)) + '.' +
IntToStr (HiWord (dwFileVersionLS)) + '.' +
IntToStr (LoWord (dwFileVersionLS));
end;
finally finally
FreeMem (Pt); FreeAndNil(Obj);
end;
end; end;
end; end;
@ -251,5 +337,127 @@ begin
end; end;
function PreguntarRuta(const ATitulo: String; const AComentario: String; var ARuta: String): Boolean;
var
cxShellBrowserDialog1: TcxShellBrowserDialog;
begin
cxShellBrowserDialog1 := TcxShellBrowserDialog.Create(NIL);
try
with cxShellBrowserDialog1 do
begin
Name := 'cxShellBrowserDialog1';
FolderLabelCaption := AComentario;
LookAndFeel.NativeStyle := True;
LookAndFeel.Kind := lfStandard;
Title := ATitulo;
Result := cxShellBrowserDialog1.Execute;
ARuta := cxShellBrowserDialog1.Path;
end;
finally
FreeANDNIL(cxShellBrowserDialog1);
end;
end;
function EscapeIllegalChars(AFileName: string): string;
var
x: integer;
const
IllegalCharSet: set of char =
['|','<','>','\','^','+','=','?','/','[',']','"',';',',','*'];
begin
for x := 1 to Length(AFileName) do
if AFileName[x] in IllegalCharSet then
AFileName[x] := '_';
Result := AFileName;
end;
function FindFile(const filespec: TFileName; attributes: integer): TStringList;
var
spec: string;
list: TStringList;
procedure RFindFile(const folder: TFileName);
var
SearchRec: TSearchRec;
begin
// Locate all matching files in the current
// folder and add their names to the list
if FindFirst(folder + spec, attributes, SearchRec) = 0 then begin
try
repeat
if (SearchRec.Attr and faDirectory = 0) or
(SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
list.Add(folder + SearchRec.Name);
until FindNext(SearchRec) <> 0;
except
SysUtils.FindClose(SearchRec);
raise;
end;
SysUtils.FindClose(SearchRec);
end;
// Now search the subfolders
if FindFirst(folder + '*', attributes
Or faDirectory, SearchRec) = 0 then
begin
try
repeat
if ((SearchRec.Attr and faDirectory) <> 0) and
(SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
RFindFile(folder + SearchRec.Name + '\');
until FindNext(SearchRec) <> 0;
except
SysUtils.FindClose(SearchRec);
raise;
end;
SysUtils.FindClose(SearchRec);
end;
end; // procedure RFindFile inside of FindFile
begin // function FindFile
list := TStringList.Create;
try
spec := ExtractFileName(filespec);
RFindFile(ExtractFilePath(filespec));
Result := list;
except
list.Free;
raise;
end;
end;
function DarDirectorioTemporal : String;
var
Cadena: String;
begin
Cadena := ExtractFileName(DarFicheroTemporal);
Cadena := StringReplace(Cadena, ExtractFileExt(Cadena), '', []);
Result := DarRutaTemporal + Cadena + '\';
end;
function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant;
var
ARutaCompleta: String;
begin
Result := Null;
ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + ADirectorio2 + '\' + AFichero;
if FileExists(ARutaCompleta) then
Result := ARutaCompleta
else
begin
ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + AFichero;
if FileExists(ARutaCompleta) then
Result := ARutaCompleta
else
begin
ARutaCompleta := ARutaIni + '\' + AFichero;
if FileExists(ARutaCompleta) then
Result := ARutaCompleta
end
end
end;
end. end.

View File

@ -0,0 +1,71 @@
unit uStringsUtils;
interface
uses
Classes;
const
DISPLAY_EUROS2 = '#,0.00 €';
procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings);
function StringsToString(Source:TStrings; Delimiter:char):string;
function EsCadenaVacia(const S: AnsiString): Boolean; overload;
function EsCadenaVacia(const S: Variant): Boolean; overload;
function EsNumerico(Cadena: String) : Boolean;
function EscaparCadena (Cadena: String): String;
implementation
uses
Variants, SysUtils, JclStrings;
{ Convierte una cadena con items separados con un delimitador en un TString }
procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings);
var i: integer;
begin
for i:=1 to length(Source) do
if Source[ i ] = Delimiter then Source[ i ]:=#10;
Target.Text:=Source;
end;
{ Convierte un TString en una cadena de items separados con un delimitador }
function StringsToString(Source:TStrings; Delimiter:char):string;
var i: integer;
begin
Result:='';
for i:=0 to Source.Count-1 do
Result:=Result + Delimiter + Source[ i ];
if Result<>'' then Delete(Result, 1, 1)
end;
function EsCadenaVacia(const S: AnsiString): Boolean;
begin
Result := (Length(Trim(S)) = 0)
end;
function EsCadenaVacia(const S: Variant): Boolean; overload;
begin
Result := True;
if VarIsNull(S) then
Exit;
Result := EsCadenaVacia(VarToStr(S));
end;
function EsNumerico(Cadena: String) : Boolean;
var
Codigo: Integer;
Valor: Double;
begin
Val(Cadena, Valor, Codigo);
Result := (Codigo = 0)
end;
function EscaparCadena (Cadena: String): String;
begin
Result := StringReplace(Cadena, '''', '\\''', []);
Result := StrStringToEscaped(Result);
end;
end.

View File

@ -193,42 +193,111 @@ object dmBase: TdmBase
object cxIntl: TcxIntl object cxIntl: TcxIntl
Connected = True Connected = True
cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s' cxLibrary.CantCreateRegistryKey = 'No se puede crear la llave de registro : \%s'
PageControl2.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d' cxLibrary.ConverterCantCreateStyleRepository = 'No se puede crear un almac'#233'n de estilos'
PageControl2.NoBaseImages = 'BaseImages no est'#225' asignado' PageControl.ImageListIndexError = 'El '#237'ndice (%d) deber'#225' estar entre 0 y %d'
PageControl2.NoRegisteredStyles = 'No hay estilos registrados' PageControl.NoBaseImages = 'BaseImages no est'#225' asignado'
PageControl2.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d' PageControl.NoRegisteredStyles = 'No hay estilos registrados'
PageControl2.PainterClassError = 'La clase PCPainter es nula' PageControl.PageIndexError = '%d es un valor inv'#225'lido para PageIndex, debe estar entre 0 y %d'
PageControl2.StandardStyleError = '%s es un estilo est'#225'ndar no soportado' PageControl.PainterClassError = 'La clase PCPainter es nula'
PageControl2.StyleNameError = '%s es un nombre de estilo no registrado' PageControl.StandardStyleError = '%s es un estilo est'#225'ndar no soportado'
PageControl2.TabCountEqualsZero = 'Tabs.Count = 0' PageControl.StyleNameError = '%s es un nombre de estilo no registrado'
PageControl2.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites' PageControl.TabCountEqualsZero = 'Tabs.Count = 0'
PageControl2.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d' PageControl.TabIndexError = 'El '#237'ndice de la pesta'#241'a (%d) est'#225' fuera de l'#237'mites'
PageControl2.VisibleTabListEmpty = 'No hay pesta'#241'as visibles' PageControl.TabVisibleIndexOutsOfBounds = 'Propiedad TabVisibleIndex (%d) deber'#225' estar entre 0 y %d'
QuantumGrid5.GridRecursiveLevels = 'No se pueden crear niveles recursivos' PageControl.VisibleTabListEmpty = 'No hay pesta'#241'as visibles'
QuantumGrid5.GridDeletingConfirmationCaption = 'Confirmar' PageControl.PCAllowRotateError = '%s es un estilo que no soporta pesta'#241'as rotatorias'
QuantumGrid5.GridDeletingFocusedConfirmationText = #191'Borrar registro?' QuantumGrid.GridRecursiveLevels = 'No se pueden crear niveles recursivos'
QuantumGrid5.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?' QuantumGrid.GridDeletingConfirmationCaption = 'Confirmar'
QuantumGrid5.GridNoDataInfoText = '<No hay datos a mostrar>' QuantumGrid.GridDeletingFocusedConfirmationText = #191'Borrar registro?'
QuantumGrid5.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea' QuantumGrid.GridDeletingSelectedConfirmationText = #191'Borrar todos los registros seleccionados?'
QuantumGrid5.GridFilterIsEmpty = '<Filtro Vac'#237'o>' QuantumGrid.GridNoDataInfoText = '<No hay datos a mostrar>'
QuantumGrid5.GridCustomizationFormCaption = 'Personalizaci'#243'n' QuantumGrid.GridNewItemRowInfoText = 'Haga click aqu'#237' para agregar una nueva l'#237'nea'
QuantumGrid5.GridCustomizationFormColumnsPageCaption = 'Columnas' QuantumGrid.GridFilterIsEmpty = '<Filtro Vac'#237'o>'
QuantumGrid5.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna' QuantumGrid.GridCustomizationFormCaption = 'Personalizaci'#243'n'
QuantumGrid5.GridFilterCustomizeButtonCaption = 'Personalizar...' QuantumGrid.GridCustomizationFormColumnsPageCaption = 'Columnas'
QuantumGrid5.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles' QuantumGrid.GridGroupByBoxCaption = 'Arrastre una columna aqu'#237' para agrupar por dicha columna'
QuantumGrid5.GridCustomizationFormBandsPageCaption = 'Bandas' QuantumGrid.GridFilterCustomizeButtonCaption = 'Personalizar...'
QuantumGrid5.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles' QuantumGrid.GridColumnsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las columas visibles'
QuantumGrid5.GridCustomizationFormRowsPageCaption = 'Rows' QuantumGrid.GridCustomizationFormBandsPageCaption = 'Bandas'
QuantumGrid5.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!' QuantumGrid.GridBandsQuickCustomizationHint = 'Haga click aqu'#237' para seleccionar las bandas visibles'
QuantumGrid5.GridConverterNotExistGrid = 'cxGrid no existe' QuantumGrid.GridCustomizationFormRowsPageCaption = 'Rows'
QuantumGrid5.GridConverterNotExistComponent = 'El componente no existe' QuantumGrid.GridConverterIntermediaryMissing = 'Omiti'#243' un componente intermediario!'
QuantumGrid5.ImportErrorCaption = 'Error al importar' QuantumGrid.GridConverterNotExistGrid = 'cxGrid no existe'
QuantumGrid5.NotExistGridView = 'No existe la vista del grid' QuantumGrid.GridConverterNotExistComponent = 'El componente no existe'
QuantumGrid5.NotExistGridLevel = 'No existe un nivel de grid activo' QuantumGrid.ImportErrorCaption = 'Error al importar'
QuantumGrid5.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n' QuantumGrid.NotExistGridView = 'No existe la vista del grid'
QuantumGrid5.EditRepositoryExtLookupComboBoxItem = QuantumGrid.NotExistGridLevel = 'No existe un nivel de grid activo'
QuantumGrid.CantCreateExportOutputFile = 'No se puede crear el archivo de exportaci'#243'n'
QuantumGrid.EditRepositoryExtLookupComboBoxItem =
'ExtLookupComboBox|Representa un ultra avanzado control de busque' + 'ExtLookupComboBox|Representa un ultra avanzado control de busque' +
'da (lookup) usando el QuantumGrid como su control de despliegue' 'da (lookup) usando el QuantumGrid como su control de despliegue'
QuantumGrid.GridFilterRowInfoText = 'Haga clic aqu'#237' para definir un filtro'
QuantumGrid.GridFilterApplyButtonCaption = 'Aplicar Filtro'
QuantumGrid.GridYesterday = 'Ayer'
QuantumGrid.GridToday = 'Hoy'
QuantumGrid.GridTomorrow = 'Ma'#241'ana'
QuantumGrid.GridLast30Days = #218'ltimos 30 d'#237'as'
QuantumGrid.GridLast14Days = #218'ltimos 14 d'#237'as'
QuantumGrid.GridLast7Days = #218'ltimos 7 d'#237'as'
QuantumGrid.GridNext7Days = 'Pr'#243'ximos 7 d'#237'as'
QuantumGrid.GridNext14Days = 'Pr'#243'ximos 14 d'#237'as'
QuantumGrid.GridNext30Days = 'Pr'#243'ximos 30 d'#237'as'
QuantumGrid.GridLastTwoWeeks = #218'lt. dos semanas'
QuantumGrid.GridLastWeek = 'Semana pasada'
QuantumGrid.GridThisWeek = #201'sta semana'
QuantumGrid.GridNextWeek = 'Pr'#243'xima semana'
QuantumGrid.GridNextTwoWeeks = 'Pr'#243'x. dos semanas'
QuantumGrid.GridLastMonth = #218'ltimo mes'
QuantumGrid.GridThisMonth = #201'ste mes'
QuantumGrid.GridNextMonth = 'Pr'#243'ximo mes'
QuantumGrid.GridLastYear = 'A'#241'o pasado'
QuantumGrid.GridThisYear = #201'ste a'#241'o'
QuantumGrid.GridNextYear = 'Pr'#243'ximo a'#241'o'
QuantumGrid.GridPast = 'Pasado'
QuantumGrid.GridFuture = 'Futuro'
QuantumGrid.GridMonthFormat = 'mmmm yyyy'
QuantumGrid.GridYearFormat = 'yyyy'
QuantumGrid.GridChartCategoriesDisplayText = 'Datos'
QuantumGrid.GridChartValueHintFormat = '%s para %s es %s'
QuantumGrid.GridChartPercentValueTickMarkLabelFormat = '0%'
QuantumGrid.GridChartToolBoxDataLevels = 'Niveles de Datos:'
QuantumGrid.GridChartToolBoxDataLevelSelectValue = 'seleccione valor'
QuantumGrid.GridChartToolBoxCustomizeButtonCaption = 'Personalizar Gr'#225'fico'
QuantumGrid.GridChartNoneDiagramDisplayText = 'Sin Diagrama'
QuantumGrid.GridChartColumnDiagramDisplayText = 'Diagrama de Columnas'
QuantumGrid.GridChartBarDiagramDisplayText = 'Diagrama de Barras'
QuantumGrid.GridChartLineDiagramDisplayText = 'Diagrama de L'#237'neas'
QuantumGrid.GridChartAreaDiagramDisplayText = 'Diagrama de '#193'rea'
QuantumGrid.GridChartPieDiagramDisplayText = 'Diagrama de Tarta'
QuantumGrid.GridChartCustomizationFormSeriesPageCaption = 'Series'
QuantumGrid.GridChartCustomizationFormSortBySeries = 'Ordenar Por:'
QuantumGrid.GridChartCustomizationFormNoSortedSeries = '<serie nula>'
QuantumGrid.GridChartCustomizationFormDataGroupsPageCaption = 'Grupos de Datos'
QuantumGrid.GridChartCustomizationFormOptionsPageCaption = 'Opciones'
QuantumGrid.GridChartLegend = 'Leyenda'
QuantumGrid.GridChartLegendKeyBorder = 'Marco de Clave'
QuantumGrid.GridChartPosition = 'Posici'#243'n'
QuantumGrid.GridChartPositionDefault = 'Defecto'
QuantumGrid.GridChartPositionNone = 'Ninguno'
QuantumGrid.GridChartPositionLeft = 'Izquierda'
QuantumGrid.GridChartPositionTop = 'Superior'
QuantumGrid.GridChartPositionRight = 'Derecha'
QuantumGrid.GridChartPositionBottom = 'Inferior'
QuantumGrid.GridChartAlignment = 'Alineaci'#243'n'
QuantumGrid.GridChartAlignmentDefault = 'Defecto'
QuantumGrid.GridChartAlignmentStart = 'Inicio'
QuantumGrid.GridChartAlignmentCenter = 'Centro'
QuantumGrid.GridChartAlignmentEnd = 'Final'
QuantumGrid.GridChartOrientation = 'Orientaci'#243'n'
QuantumGrid.GridChartOrientationDefault = 'Defecto'
QuantumGrid.GridChartOrientationHorizontal = 'Horizontal'
QuantumGrid.GridChartOrientationVertical = 'Vertical'
QuantumGrid.GridChartBorder = 'Marco'
QuantumGrid.GridChartTitle = 'T'#237'tulo'
QuantumGrid.GridChartToolBox = 'Caja de Herramientas'
QuantumGrid.GridChartDiagramSelector = 'Selector de Diagramas'
QuantumGrid.GridChartOther = 'Otro'
QuantumGrid.GridChartValueHints = 'Valores de Ayuda'
Navigator.NavigatorHint_First = 'Primer registro' Navigator.NavigatorHint_First = 'Primer registro'
Navigator.NavigatorHint_Prior = 'Registro anterior' Navigator.NavigatorHint_Prior = 'Registro anterior'
Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior' Navigator.NavigatorHint_PriorPage = 'P'#225'gina anterior'
@ -237,6 +306,7 @@ object dmBase: TdmBase
Navigator.NavigatorHint_Last = #218'ltimo registro' Navigator.NavigatorHint_Last = #218'ltimo registro'
Navigator.NavigatorHint_Insert = 'Insertar registro' Navigator.NavigatorHint_Insert = 'Insertar registro'
Navigator.NavigatorHint_Delete = 'Borrar registro' Navigator.NavigatorHint_Delete = 'Borrar registro'
Navigator.NavigatorHint_Append = 'Append record'
Navigator.NavigatorHint_Edit = 'Editar registro' Navigator.NavigatorHint_Edit = 'Editar registro'
Navigator.NavigatorHint_Post = 'Grabar edici'#243'n' Navigator.NavigatorHint_Post = 'Grabar edici'#243'n'
Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n' Navigator.NavigatorHint_Cancel = 'Cancelar edici'#243'n'
@ -245,127 +315,167 @@ object dmBase: TdmBase
Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca' Navigator.NavigatorHint_GotoBookmark = 'Volver a Marca'
Navigator.NavigatorHint_Filter = 'Filtrar datos' Navigator.NavigatorHint_Filter = 'Filtrar datos'
Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?' Navigator.Navigator_DeleteRecordQuestion = #191'Desea borrar este el registro?'
Editors5.EditDateConvertError = 'El valor no se puede convertir a fecha' Editors.EditButtonCancel = 'Cancelar'
Editors5.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido' Editors.EditButtonOK = 'Aceptar'
Editors5.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico' Editors.EditDateConvertError = 'El valor no se puede convertir a fecha'
Editors5.EditPopupCircularReferencingError = 'Referencia circular no permitida' Editors.EditInvalidRepositoryItem = 'Elemento de repositorio no v'#225'lido'
Editors5.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n' Editors.EditNumericValueConvertError = 'No se puede convertir a valor num'#233'rico'
Editors5.EditTimeConvertError = 'No se puede convertir a valor de tiempo' Editors.EditPopupCircularReferencingError = 'Referencia circular no permitida'
Editors5.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios' Editors.EditPostError = 'Ocurri'#243' un error durante el grabado del valor de edici'#243'n'
Editors5.EditValueOutOfBounds = 'Valor fuera de l'#237'mites' Editors.EditTimeConvertError = 'No se puede convertir a valor de tiempo'
Editors5.EditCheckBoxChecked = 'True' Editors.EditValidateErrorText = 'Valor inv'#225'lido. Use la tecla de escape para cancelar cambios'
Editors5.EditCheckBoxUnchecked = 'False' Editors.EditValueOutOfBounds = 'Valor fuera de l'#237'mites'
Editors5.TextTrue = 'True' Editors.EditCheckBoxChecked = 'True'
Editors5.TextFalse = 'False' Editors.EditCheckBoxUnchecked = 'False'
Editors5.BlobButtonOK = '&Aceptar' Editors.TextTrue = 'True'
Editors5.BlobButtonCancel = '&Cancelar' Editors.TextFalse = 'False'
Editors5.BlobButtonClose = '&Cerrar' Editors.BlobButtonOK = '&Aceptar'
Editors5.BlobMemo = '(MEMO)' Editors.BlobButtonCancel = '&Cancelar'
Editors5.BlobMemoEmpty = '(memo)' Editors.BlobButtonClose = '&Cerrar'
Editors5.BlobPicture = '(IM'#193'GEN)' Editors.BlobMemo = '(MEMO)'
Editors5.BlobPictureEmpty = '(im'#225'gen)' Editors.BlobMemoEmpty = '(memo)'
Editors5.MenuItemCaptionCut = 'Cor&tar' Editors.BlobPicture = '(IM'#193'GEN)'
Editors5.MenuItemCaptionCopy = '&Copiar' Editors.BlobPictureEmpty = '(im'#225'gen)'
Editors5.MenuItemCaptionPaste = '&Pegar' Editors.MenuItemCaptionCut = 'Cor&tar'
Editors5.MenuItemCaptionDelete = '&Borrar' Editors.MenuItemCaptionCopy = '&Copiar'
Editors5.MenuItemCaptionLoad = '&Leer...' Editors.MenuItemCaptionPaste = '&Pegar'
Editors5.MenuItemCaptionSave = 'Guardar &Como...' Editors.MenuItemCaptionDelete = '&Borrar'
Editors5.DatePopupClear = 'Limpiar' Editors.MenuItemCaptionLoad = '&Leer...'
Editors5.DatePopupNow = 'Ahora' Editors.MenuItemCaptionSave = 'Guardar &Como...'
Editors5.DatePopupOK = 'Aceptar' Editors.DatePopupClear = 'Limpiar'
Editors5.DatePopupToday = 'Hoy' Editors.DatePopupNow = 'Ahora'
Editors5.DateError = 'Fecha inv'#225'lida' Editors.DatePopupOK = 'Aceptar'
Editors5.DateToday = 'hoy' Editors.DatePopupToday = 'Hoy'
Editors5.DateYesterday = 'ayer' Editors.DateError = 'Fecha inv'#225'lida'
Editors5.DateTomorrow = 'ma'#241'ana' Editors.DateToday = 'hoy'
Editors5.DateSunday = 'Domingo' Editors.DateYesterday = 'ayer'
Editors5.DateMonday = 'Lunes' Editors.DateTomorrow = 'ma'#241'ana'
Editors5.DateTuesday = 'Martes' Editors.DateSunday = 'Domingo'
Editors5.DateWednesday = 'Mi'#233'rcoles' Editors.DateMonday = 'Lunes'
Editors5.DateThursday = 'Jueves' Editors.DateTuesday = 'Martes'
Editors5.DateFriday = 'Viernes' Editors.DateWednesday = 'Mi'#233'rcoles'
Editors5.DateSaturday = 'S'#225'bado' Editors.DateThursday = 'Jueves'
Editors5.DateFirst = 'Primero' Editors.DateFriday = 'Viernes'
Editors5.DateSecond = 'segundo' Editors.DateSaturday = 'S'#225'bado'
Editors5.DateThird = 'tercero' Editors.DateFirst = 'Primero'
Editors5.DateFourth = 'Cuarto' Editors.DateSecond = 'segundo'
Editors5.DateFifth = 'Quinto' Editors.DateThird = 'tercero'
Editors5.DateSixth = 'sexto' Editors.DateFourth = 'Cuarto'
Editors5.DateSeventh = 's'#233'ptimo' Editors.DateFifth = 'Quinto'
Editors5.DateBOM = 'bom' Editors.DateSixth = 'sexto'
Editors5.DateEOM = 'eom' Editors.DateSeventh = 's'#233'ptimo'
Editors5.DateNow = 'ahora' Editors.DateBOM = 'bom'
Editors5.CalcError = 'Error' Editors.DateEOM = 'eom'
Editors5.HyperLinkPrefix = 'http://' Editors.DateNow = 'ahora'
Editors5.HyperLinkDoubleSlash = '//' Editors.CalcError = 'Error'
Editors5.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB' Editors.HyperLinkPrefix = 'http://'
Editors5.EditRepositoryButtonItem = Editors.HyperLinkDoubleSlash = '//'
Editors.EditRepositoryBlobItem = 'BlobEdit|Representa el editor de BLOB'
Editors.EditRepositoryButtonItem =
'ButtonEdit|Representa un control de edici'#243'n con controles incrus' + 'ButtonEdit|Representa un control de edici'#243'n con controles incrus' +
'tados' 'tados'
Editors5.EditRepositoryCalcItem = Editors.EditRepositoryCalcItem =
'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' + 'CalcEdit|Representa un control de edici'#243'n con una ventana de cal' +
'culadora desplegable' 'culadora desplegable'
Editors5.EditRepositoryCheckBoxItem = Editors.EditRepositoryCheckBoxItem =
'CheckBox|Representa un control de caja de marca que permite sele' + 'CheckBox|Representa un control de caja de marca que permite sele' +
'ccionar una opci'#243'n' 'ccionar una opci'#243'n'
Editors5.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo' Editors.EditRepositoryComboBoxItem = 'ComboBox|Representa el editor de la caja combo'
Editors5.EditRepositoryCurrencyItem = Editors.EditRepositoryCurrencyItem =
'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' + 'CurrencyEdit|Representa un editor que habilita la edici'#243'n de val' +
'ores monetarios' 'ores monetarios'
Editors5.EditRepositoryDateItem = Editors.EditRepositoryDateItem =
'DateEdit|Representa un control de edici'#243'n con un calendario desp' + 'DateEdit|Representa un control de edici'#243'n con un calendario desp' +
'legable' 'legable'
Editors5.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos' Editors.EditRepositoryHyperLinkItem = 'HyperLink|Representa un editor de texto de hiperv'#237'nculos'
Editors5.EditRepositoryImageComboBoxItem = Editors.EditRepositoryImageComboBoxItem =
'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' + 'ImageComboBox|Representa un editor que muestra una lista de im'#225'g' +
'enes y texto en la ventana desplegable' 'enes y texto en la ventana desplegable'
Editors5.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes' Editors.EditRepositoryImageItem = 'Image|Representa un editor de im'#225'genes'
Editors5.EditRepositoryLookupComboBoxItem = 'LookupComboBox|Representa una caja de b'#250'squeda' Editors.EditRepositoryLookupComboBoxItem = 'LookupComboBox|Representa una caja de b'#250'squeda'
Editors5.EditRepositoryMaskItem = 'MaskEdit|Representa un control de edici'#243'n gen'#233'rico con m'#225'scara' Editors.EditRepositoryMaskItem = 'MaskEdit|Representa un control de edici'#243'n gen'#233'rico con m'#225'scara'
Editors5.EditRepositoryMemoItem = Editors.EditRepositoryMemoItem =
'Memo|Representa un control de edici'#243'n que permite editar datos m' + 'Memo|Representa un control de edici'#243'n que permite editar datos m' +
'emo' 'emo'
Editors5.EditRepositoryMRUItem = Editors.EditRepositoryMRUItem =
'MRUEdit|Representa un editor de texto mostrando la lista de los ' + 'MRUEdit|Representa un editor de texto mostrando la lista de los ' +
'elementos m'#225's recientemente usados (MRU) en una ventana desplega' + 'elementos m'#225's recientemente usados (MRU) en una ventana desplega' +
'ble' 'ble'
Editors5.EditRepositoryPopupItem = Editors.EditRepositoryPopupItem =
'PopupEdit|Representa un control de edici'#243'n con una lista despleg' + 'PopupEdit|Representa un control de edici'#243'n con una lista despleg' +
'able' 'able'
Editors5.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)' Editors.EditRepositorySpinItem = 'SpinEdit|Representa un editor de incrementos/decrementos (spin)'
Editors5.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons' Editors.EditRepositoryRadioGroupItem = 'RadioGroup|Represents a group of radio buttons'
Editors5.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla' Editors.EditRepositoryTextItem = 'TextEdit|Representa un editor de texto de l'#237'nea sencilla'
Editors5.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo' Editors.EditRepositoryTimeItem = 'TimeEdit|Representa un editor mostrando valores de tiempo'
Editors5.RegExprLine = 'L'#237'nea' Editors.EditRepositoryColorComboBoxItem = 'ColorComboBox |Represents a editor with color functionality'
Editors5.RegExprChar = 'Char' Editors.EditRepositoryFontNameComboBoxItem = 'FontNameComboBox |Represents a editor with font functionality'
Editors5.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente' Editors.EditRepositoryLabelItem = 'Label|Represents a Label'
Editors5.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o' Editors.EditRepositoryProgressBarItem = 'ProgressBar|Represents a ProgressBar'
Editors5.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237 Editors.EditRepositoryTrackBarItem = 'TrackBar|Represents a TrackBar'
Editors5.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237 Editors.EditRepositorySpinButtonItem = 'SpinButton|Represents a SpinButton'
Editors5.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a' Editors.EditRepositoryCheckComboBox = 'CheckComboBox|Represents a CheckComboBox'
Editors5.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o' Editors.EditRepositoryShellComboBoxItem =
Editors5.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39 'ShellComboBox|Represents a combo box with a dropdown shell tree ' +
Editors5.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39 'view'
Editors5.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado' Editors.EditRepositoryCheckGroupItem = 'CheckGroup|Represents a group of check boxes'
Editors5.RegExprIllegalIntegerValue = 'Valor entero no permitido' Editors.EditRepositoryRichEditItem = 'RichEdit|RichEdit control'
Editors5.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande' Editors.EditCheckGroupCaptionStateDelimiter = ': '
Editors5.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a' Editors.EditCheckGroupFilterColumnSeparator = '; '
Editors5.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin' Editors.EditCheckGroupChecked = 'Checked'
Editors5.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal' Editors.EditCheckGroupGrayed = 'Grayed'
Editors5.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39 Editors.EditCheckGroupUnchecked = 'Unchecked'
Editors5.RegExprMissing = 'Falta '#39'%s'#39 Editors.CheckComboBoxStatesItemsPropertyDlgCaption = 'cxCheckComboBox - CheckStates editor'
Editors5.RegExprUnnecessary = 'Innecesario '#39'%s'#39 Editors.CheckGroupStatesItemsPropertyDlgCaption = 'cxCheckGroup - CheckStates editor'
Editors5.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39 Editors.CheckComboBoxEmptySelectionText = 'None selected'
Editors5.RegExprNotCompiled = 'Expresi'#243'n regular no compila' Editors.ColorComboBoxDefaultDescription = 'Color not selected'
Editors5.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto' Editors.EditRichEditLibraryError = 'Cannot load a RichEdit library'
Editors5.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here' Editors.EditRichEditLineInsertionError = 'RichEdit line insertion error'
Editors5.MaskEditRegExprError = 'Errores en expresiones regulares:' Editors.EditRichEditLoadFail = 'Failed to Load Stream'
Editors5.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido' Editors.EditRichEditSaveFail = 'Failed to Save Stream'
Editors5.MaskEditNoMask = 'Ninguno' Editors.EditRichEditUndoCaption = '&Undo'
Editors5.MaskEditIllegalFileFormat = 'Formato de archivo ilegal' Editors.EditRichEditRedoCaption = '&Redo'
Editors5.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o' Editors.EditRichEditCutCaption = 'Cu&t'
Editors5.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras' Editors.EditRichEditCopyCaption = '&Copy'
Editors5.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido' Editors.EditRichEditPasteCaption = '&Paste'
Editors.EditRichEditDeleteCaption = '&Delete'
Editors.EditRichEditSelectAllCaption = 'Select &All'
Editors.RegExprLine = 'L'#237'nea'
Editors.RegExprChar = 'Char'
Editors.RegExprNotAssignedSourceStream = 'No se ha asignado el stream fuente'
Editors.RegExprEmptySourceStream = 'El stream or'#237'gen est'#225' vac'#237'o'
Editors.RegExprCantUsePlusQuantifier = 'El cuantificador '#39'+'#39' no puede aplicarse aqu'#237
Editors.RegExprCantUseStarQuantifier = 'El cuantificador '#39'*'#39' no puede aplicarse aqu'#237
Editors.RegExprCantCreateEmptyAlt = 'La alternativa no debe estar vac'#237'a'
Editors.RegExprCantCreateEmptyBlock = 'El bloque no debe estar vac'#237'o'
Editors.RegExprIllegalSymbol = 'S'#237'mbolo no permitido '#39'%s'#39
Editors.RegExprIllegalQuantifier = 'Cuantificador no permitido '#39'%s'#39
Editors.RegExprNotSupportQuantifier = 'El par'#225'metro cuantificador no es soportado'
Editors.RegExprIllegalIntegerValue = 'Valor entero no permitido'
Editors.RegExprTooBigReferenceNumber = 'N'#250'mero de referencia demasiado grande'
Editors.RegExprCantCreateEmptyEnum = 'No puedo crear enumeraci'#243'n vac'#237'a'
Editors.RegExprSubrangeOrder = 'El caracter de inicio del subrango debe ser menor al de fin'
Editors.RegExprHexNumberExpected0 = 'Se esperaba n'#250'mero Hexadecimal'
Editors.RegExprHexNumberExpected = 'N'#250'mero Hexadecimal esperado pero encontr'#243' '#39'%s'#39
Editors.RegExprMissing = 'Falta '#39'%s'#39
Editors.RegExprUnnecessary = 'Innecesario '#39'%s'#39
Editors.RegExprIncorrectSpace = 'Espacio incorrecto despu'#233's de '#39'\'#39
Editors.RegExprNotCompiled = 'Expresi'#243'n regular no compila'
Editors.RegExprIncorrectParameterQuantifier = 'Cuantificador de par'#225'metros incorrecto'
Editors.RegExprCantUseParameterQuantifier = 'The parameter quantifier cannot be applied here'
Editors.UDAssociated = ' is already associated with '
Editors.HotZoneStyleMediaPlayer9 = 'MediaPlayer9'
Editors.HotZoneStyleMediaPlayer8 = 'MediaPlayer8'
Editors.HotZoneStyleXPTaskBar = 'XPTaskBar'
Editors.HotZoneStyleSimple = 'Simple'
Editors.LoadingFonts = 'Loading ...'
Editors.MaskEditRegExprError = 'Errores en expresiones regulares:'
Editors.MaskEditInvalidEditValue = 'El valor de edici'#243'n es inv'#225'lido'
Editors.MaskEditNoMask = 'Ninguno'
Editors.MaskEditIllegalFileFormat = 'Formato de archivo ilegal'
Editors.MaskEditEmptyMaskCollectionFile = 'El archivo de colecci'#243'n de m'#225'scaras est'#225' vac'#237'o'
Editors.MaskEditMaskCollectionFiles = 'Archivos de colecci'#243'n de m'#225'scaras'
Editors.SpinEditInvalidNumericValue = 'Valor num'#233'rico no v'#225'lido'
Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos' Datacontroller.DataReadError = 'Error de lectura en or'#237'gen de datos'
Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)' Datacontroller.DataWriteError = 'Error de escritura en or'#237'gen de datos (stream)'
Datacontroller.DataItemExistError = 'El elemento ya existe' Datacontroller.DataItemExistError = 'El elemento ya existe'
@ -402,6 +512,16 @@ object dmBase: TdmBase
Filter.FilterOperatorNextWeek = 'es semana siguiente' Filter.FilterOperatorNextWeek = 'es semana siguiente'
Filter.FilterOperatorNextMonth = 'es mes siguiente' Filter.FilterOperatorNextMonth = 'es mes siguiente'
Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo' Filter.FilterOperatorNextYear = 'es a'#241'o pr'#243'ximo'
Filter.FilterOperatorLast7Days = #218'ltimos 7 d'#237'as'
Filter.FilterOperatorLast14Days = #218'ltimos 14 d'#237'as'
Filter.FilterOperatorLastTwoWeeks = #218'ltimas 2 semanas'
Filter.FilterOperatorLast30Days = #218'ltimos 30 d'#237'as'
Filter.FilterOperatorPast = 'Pasado'
Filter.FilterOperatorNext7Days = 'Pr'#243'ximos 7 d'#237'as'
Filter.FilterOperatorNext14Days = 'Pr'#243'ximos 14 d'#237'as'
Filter.FilterOperatorNextTwoWeeks = 'Pr'#243'ximas 2 semanas'
Filter.FilterOperatorNext30Days = 'Pr'#243'ximos 30 d'#237'as'
Filter.FilterOperatorFuture = 'Futuro'
Filter.FilterAndCaption = 'y' Filter.FilterAndCaption = 'y'
Filter.FilterOrCaption = 'o' Filter.FilterOrCaption = 'o'
Filter.FilterNotCaption = 'no' Filter.FilterNotCaption = 'no'
@ -417,17 +537,17 @@ object dmBase: TdmBase
Filter.FilterBoxAllCaption = '(Todos)' Filter.FilterBoxAllCaption = '(Todos)'
Filter.FilterBoxCustomCaption = '(Personalizado...)' Filter.FilterBoxCustomCaption = '(Personalizado...)'
Filter.FilterBoxBlanksCaption = '(Vac'#237'os)' Filter.FilterBoxBlanksCaption = '(Vac'#237'os)'
Filter.FilterBoxNonBlanksCaption = '(No vac'#237'os)' Filter.FilterBoxNonBlanksCaption = '(NoVac'#237'os)'
Filter.FilterBoolOperatorAnd = 'AND' Filter.FilterBoolOperatorAnd = 'Y'
Filter.FilterBoolOperatorOr = 'OR' Filter.FilterBoolOperatorOr = 'O'
Filter.FilterBoolOperatorNotAnd = 'NOT AND' Filter.FilterBoolOperatorNotAnd = 'NO Y'
Filter.FilterBoolOperatorNotOr = 'NOT OR' Filter.FilterBoolOperatorNotOr = 'NO O'
Filter.FilterRootButtonCaption = 'Filtro' Filter.FilterRootButtonCaption = 'Filtro'
Filter.FilterAddCondition = 'Agregar &Condici'#243'n' Filter.FilterAddCondition = 'Agregar &Condici'#243'n'
Filter.FilterAddGroup = 'Agregar &Grupo' Filter.FilterAddGroup = 'Agregar &Grupo'
Filter.FilterRemoveRow = '&Remover Fila' Filter.FilterRemoveRow = '&Remover Fila'
Filter.FilterClearAll = 'Limpiar &Todo' Filter.FilterClearAll = 'Limpiar &Todo'
Filter.FilterFooterAddCondition = 'Agregar una nueva condici'#243'n' Filter.FilterFooterAddCondition = 'presione el bot'#243'n para agregar una nueva condici'#243'n'
Filter.FilterGroupCaption = 'aplica a las siguientes condiciones' Filter.FilterGroupCaption = 'aplica a las siguientes condiciones'
Filter.FilterRootGroupCaption = '<ra'#237'z>' Filter.FilterRootGroupCaption = '<ra'#237'z>'
Filter.FilterControlNullString = '<vac'#237'o>' Filter.FilterControlNullString = '<vac'#237'o>'
@ -454,7 +574,7 @@ object dmBase: TdmBase
GridPopupMenu.GridNone = 'Ninguno' GridPopupMenu.GridNone = 'Ninguno'
GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente' GridPopupMenu.GridSortColumnAsc = 'Ordenar Ascendente'
GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente' GridPopupMenu.GridSortColumnDesc = 'Ordenar Descendente'
GridPopupMenu.GridClearSorting = 'Clear Sorting' GridPopupMenu.GridClearSorting = 'Eliminar Ordenaci'#243'n'
GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo' GridPopupMenu.GridGroupByThisField = 'Agrupar por este campo'
GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo' GridPopupMenu.GridRemoveThisGroupItem = 'Remover del grupo'
GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"' GridPopupMenu.GridGroupByBox = 'Panel "Agrupar por"'
@ -474,6 +594,9 @@ object dmBase: TdmBase
GridPopupMenu.GridCountMenuItem = 'Contar' GridPopupMenu.GridCountMenuItem = 'Contar'
GridPopupMenu.GridAvgMenuItem = 'Promedio' GridPopupMenu.GridAvgMenuItem = 'Promedio'
GridPopupMenu.GridNoneMenuItem = 'Ninguno' GridPopupMenu.GridNoneMenuItem = 'Ninguno'
GridPopupMenu.GridSortByGroupValues = 'Sort by Group Value'
GridPopupMenu.GridSortBySummaryCaption = 'Sort by Group Summary:'
GridPopupMenu.GridSortBySummary = '%s for %s'
GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1' GridExport.UnsupportedExport = 'Tipo de exportaci'#243'n no soportado: %1'
GridExport.StyleManagerKill = GridExport.StyleManagerKill =
'El administrador de estilo esta siendo utilizado y no puede ser ' + 'El administrador de estilo esta siendo utilizado y no puede ser ' +
@ -496,15 +619,15 @@ object dmBase: TdmBase
GridExport.BoolTrue = 'True' GridExport.BoolTrue = 'True'
GridExport.BoolFalse = 'False' GridExport.BoolFalse = 'False'
Translate.cxLibrary = True Translate.cxLibrary = True
Translate.PageControl2 = False Translate.PageControl = False
Translate.QuantumGrid5 = True Translate.QuantumGrid = False
Translate.Editors5 = True Translate.Editors = False
Translate.Datacontroller = True Translate.Datacontroller = True
Translate.Filter = True Translate.Filter = True
Translate.GridPopupMenu = True Translate.GridPopupMenu = True
Translate.GridExport = True Translate.GridExport = True
Translate.Navigator = True Translate.Navigator = True
Version = '5.0' Version = '6.29'
Left = 104 Left = 104
Top = 16 Top = 16
end end
@ -1617,7 +1740,7 @@ object dmBase: TdmBase
KiloBytes = 'KB' KiloBytes = 'KB'
MegaBytes = 'MB' MegaBytes = 'MB'
GigaBytes = 'GB' GigaBytes = 'GB'
Left = 224 Left = 184
Top = 16 Top = 16
end end
end end

View File

@ -38,7 +38,8 @@ implementation
uses uses
uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows, uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows,
JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion; JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion,
uDataModuleImpresiones;
{ {
*********************************** TdmBase ************************************ *********************************** TdmBase ************************************
@ -47,6 +48,7 @@ procedure TdmBase.DAClientDataModuleCreate(Sender: TObject);
begin begin
dmConexion := TdmConexion.Create(NIL); dmConexion := TdmConexion.Create(NIL);
dmConfiguracion := TdmConfiguracion.Create(NIL); dmConfiguracion := TdmConfiguracion.Create(NIL);
dmImpresiones := TDataModuleImpresiones.Create(NIL);
TBXSwitcher.OnThemeChange := OnTBXThemeChange; TBXSwitcher.OnThemeChange := OnTBXThemeChange;
TBXSetTheme('Office2003'); TBXSetTheme('Office2003');
@ -114,6 +116,7 @@ procedure TdmBase.DataModuleDestroy(Sender: TObject);
begin begin
FreeANDNIL(dmConfiguracion); FreeANDNIL(dmConfiguracion);
FreeAndNil(dmConexion); FreeAndNil(dmConexion);
FreeAndNil(dmImpresiones);
end; end;
initialization initialization

View File

@ -126,7 +126,7 @@
<Directories Name="SearchPath">..\Lib;..\Modulos\Lib</Directories> <Directories Name="SearchPath">..\Lib;..\Modulos\Lib</Directories>
<Directories Name="Packages">PluginSDK_D10R;GUISDK_D10;DataAbstract_D10;Base;GUIBase;Usuarios;Contactos_plugin;Empresas_plugin;Empresas_controller;Empresas_model;rtl</Directories> <Directories Name="Packages">PluginSDK_D10R;GUISDK_D10;DataAbstract_D10;Base;GUIBase;Usuarios;Contactos_plugin;Empresas_plugin;Empresas_controller;Empresas_model;rtl</Directories>
<Directories Name="Conditionals">_VER6;</Directories> <Directories Name="Conditionals">_VER6;</Directories>
<Directories Name="DebugSourceDirs">E:\Codigo (Luis Leon)\Source\Modulos\Pedidos de cliente\Controller\;E:\Componentes\jvcl\run</Directories> <Directories Name="DebugSourceDirs">C:\Codigo Luis Leon\Source\Modulos\Articulos\Model\</Directories>
<Directories Name="UsePackages">True</Directories> <Directories Name="UsePackages">True</Directories>
</Directories> </Directories>
<Parameters> <Parameters>
@ -147,9 +147,9 @@
<VersionInfo> <VersionInfo>
<VersionInfo Name="IncludeVerInfo">True</VersionInfo> <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
<VersionInfo Name="AutoIncBuild">False</VersionInfo> <VersionInfo Name="AutoIncBuild">False</VersionInfo>
<VersionInfo Name="MajorVer">2</VersionInfo> <VersionInfo Name="MajorVer">3</VersionInfo>
<VersionInfo Name="MinorVer">4</VersionInfo> <VersionInfo Name="MinorVer">3</VersionInfo>
<VersionInfo Name="Release">0</VersionInfo> <VersionInfo Name="Release">7</VersionInfo>
<VersionInfo Name="Build">0</VersionInfo> <VersionInfo Name="Build">0</VersionInfo>
<VersionInfo Name="Debug">False</VersionInfo> <VersionInfo Name="Debug">False</VersionInfo>
<VersionInfo Name="PreRelease">False</VersionInfo> <VersionInfo Name="PreRelease">False</VersionInfo>
@ -162,13 +162,13 @@
<VersionInfoKeys> <VersionInfoKeys>
<VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys> <VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys>
<VersionInfoKeys Name="FileDescription"></VersionInfoKeys> <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.4.0.0</VersionInfoKeys> <VersionInfoKeys Name="FileVersion">3.3.7.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys> <VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys> <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.3.9.0</VersionInfoKeys> <VersionInfoKeys Name="ProductVersion">3.3.7.0</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys> <VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys> <Excluded_Packages> </VersionInfoKeys> <Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Bpl\EasyListviewD10.bpl">Muststang Peak EasyListview Runtime Package</Excluded_Packages> <Excluded_Packages Name="C:\Documents and Settings\Usuario\Mis documentos\Borland Studio Projects\Bpl\EasyListviewD10.bpl">Muststang Peak EasyListview Runtime Package</Excluded_Packages>
@ -177,7 +177,7 @@
</Delphi.Personality> </Delphi.Personality>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]
EurekaLog Version=519 EurekaLog Version=6014
Activate=0 Activate=0
Activate Handle=1 Activate Handle=1
Save Log File=1 Save Log File=1
@ -491,5 +491,190 @@ Count mtSend_SuccessMsg=1
mtSend_SuccessMsg0="The message was sent successfully." mtSend_SuccessMsg0="The message was sent successfully."
Count mtSend_FailureMsg=1 Count mtSend_FailureMsg=1
mtSend_FailureMsg0="Sorry, sending the message didn't work." mtSend_FailureMsg0="Sorry, sending the message didn't work."
ProxyURL=
ProxyUser=
ProxyPassword=
ProxyPort=8080
TrakerUser=
TrakerPassword=
TrakerAssignTo=
TrakerProject=
TrakerCategory=
TrakerTrialID=
ZipPassword=
PreBuildEvent=
PostSuccessfulBuildEvent=
PostFailureBuildEvent=
ExceptionDialogType=2
loSaveModulesAndProcessesSections=1
loSaveAssemblerAndCPUSections=1
soAppUpTime=1
soExcModuleName=1
soExcModuleVersion=1
soExcID=1
soExcCount=1
soExcStatus=1
soExcNote=1
soUserID=1
soUserName=1
soUserEmail=1
soUserPrivileges=1
soUserCompany=1
soCmpDisplayDPI=1
soCmpVideoCard=1
soCmpPrinter=1
soOSCharset=1
soCustomData=1
sndAddComputerNameInFileName=0
edoSendErrorReportChecked=1
edoShowSendErrorReportOption=1
edoShowAttachScreenshotOption=1
edoShowCustomButton=0
csoDoNotStoreProcNames=0
boHandleSafeCallExceptions=1
boCallRTLExceptionEvent=0
boCatchHandledExceptions=0
loCatchLeaks=0
loGroupsSonLeaks=1
loHideBorlandLeaks=1
loFreeAllLeaks=1
loCatchLeaksExceptions=1
cfoReduceFileSize=1
cfoCheckFileCorruption=0
Count mtErrorMsgCaption=1
mtErrorMsgCaption0="Error."
Count mtDialog_ProcessesCaption=1
mtDialog_ProcessesCaption0="Processes"
Count mtDialog_ProcessesHeader=1
mtDialog_ProcessesHeader0="Processes Information"
Count mtDialog_AsmCaption=1
mtDialog_AsmCaption0="Assembler"
Count mtDialog_AsmHeader=1
mtDialog_AsmHeader0="Assembler Information"
Count mtDialog_CustomButtonCaption=1
mtDialog_CustomButtonCaption0="%26Help"
Count mtMSDialog_ErrorMsgCaption=1
mtMSDialog_ErrorMsgCaption0="The application has encountered a problem. We are sorry for the inconvenience."
Count mtMSDialog_RestartCaption=1
mtMSDialog_RestartCaption0="Restart application."
Count mtMSDialog_TerminateCaption=1
mtMSDialog_TerminateCaption0="Terminate application."
Count mtMSDialog_PleaseCaption=1
mtMSDialog_PleaseCaption0="Please tell us about this problem."
Count mtMSDialog_DescriptionCaption=1
mtMSDialog_DescriptionCaption0="We have created an error report that you can send to us. We will treat this report as confidential and anonymous."
Count mtMSDialog_SeeDetailsCaption=1
mtMSDialog_SeeDetailsCaption0="To see what data the error report contains,"
Count mtMSDialog_SeeClickCaption=1
mtMSDialog_SeeClickCaption0="click here."
Count mtMSDialog_HowToReproduceCaption=1
mtMSDialog_HowToReproduceCaption0="What were you doing when the problem happened (optional)?"
Count mtMSDialog_EmailCaption=1
mtMSDialog_EmailCaption0="Email address (optional):"
Count mtMSDialog_SendButtonCaption=1
mtMSDialog_SendButtonCaption0="%26Send Error Report"
Count mtMSDialog_NoSendButtonCaption=1
mtMSDialog_NoSendButtonCaption0="%26Don't Send"
Count mtLog_AppUpTime=1
mtLog_AppUpTime0="Up Time"
Count mtLog_ExcModuleName=1
mtLog_ExcModuleName0="Module Name"
Count mtLog_ExcModuleVersion=1
mtLog_ExcModuleVersion0="Module Version"
Count mtLog_ExcID=1
mtLog_ExcID0="ID"
Count mtLog_ExcCount=1
mtLog_ExcCount0="Count"
Count mtLog_ExcStatus=1
mtLog_ExcStatus0="Status"
Count mtLog_ExcNote=1
mtLog_ExcNote0="Note"
Count mtLog_UserHeader=1
mtLog_UserHeader0="User"
Count mtLog_UserID=1
mtLog_UserID0="ID"
Count mtLog_UserName=1
mtLog_UserName0="Name"
Count mtLog_UserEmail=1
mtLog_UserEmail0="Email"
Count mtLog_UserCompany=1
mtLog_UserCompany0="Company"
Count mtLog_UserPrivileges=1
mtLog_UserPrivileges0="Privileges"
Count mtLog_CmpDisplayDPI=1
mtLog_CmpDisplayDPI0="Display DPI"
Count mtLog_CmpVideoCard=1
mtLog_CmpVideoCard0="Video Card"
Count mtLog_CmpPrinter=1
mtLog_CmpPrinter0="Printer"
Count mtLog_OSCharset=1
mtLog_OSCharset0="Charset"
Count mtCallStack_LeakCaption=1
mtCallStack_LeakCaption0="Memory Leak"
Count mtCallStack_LeakData=1
mtCallStack_LeakData0="Data"
Count mtCallStack_LeakType=1
mtCallStack_LeakType0="Type"
Count mtCallStack_LeakSize=1
mtCallStack_LeakSize0="Total size"
Count mtCallStack_LeakCount=1
mtCallStack_LeakCount0="Count"
Count mtSendDialog_Login=1
mtSendDialog_Login0="Login..."
Count mtSendDialog_Sent=1
mtSendDialog_Sent0="Message sent."
Count mtSendDialog_SelectProject=1
mtSendDialog_SelectProject0="Select project..."
Count mtSendDialog_Searching=1
mtSendDialog_Searching0="Searching..."
Count mtSendDialog_Modifying=1
mtSendDialog_Modifying0="Modifying..."
Count mtSendDialog_Disconnecting=1
mtSendDialog_Disconnecting0="Disconnecting..."
Count mtSendDialog_Disconnected=1
mtSendDialog_Disconnected0="Disconnected."
Count mtProcesses_ID=1
mtProcesses_ID0="ID"
Count mtProcesses_Name=1
mtProcesses_Name0="Name"
Count mtProcesses_Description=1
mtProcesses_Description0="Description"
Count mtProcesses_Version=1
mtProcesses_Version0="Version"
Count mtProcesses_Memory=1
mtProcesses_Memory0="Memory"
Count mtProcesses_Priority=1
mtProcesses_Priority0="Priority"
Count mtProcesses_Threads=1
mtProcesses_Threads0="Threads"
Count mtProcesses_Path=1
mtProcesses_Path0="Path"
Count mtSend_BugClosedMsg=2
mtSend_BugClosedMsg0="These BUG is just closed."
mtSend_BugClosedMsg1="Contact the program support to obtain an update."
Count mtSend_UnknownErrorMsg=1
mtSend_UnknownErrorMsg0="Unknown error."
Count mtSend_InvalidLoginMsg=1
mtSend_InvalidLoginMsg0="Invalid login request."
Count mtSend_InvalidSearchMsg=1
mtSend_InvalidSearchMsg0="Invalid search request."
Count mtSend_InvalidSelectionMsg=1
mtSend_InvalidSelectionMsg0="Invalid selection request."
Count mtSend_InvalidInsertMsg=1
mtSend_InvalidInsertMsg0="Invalid insert request."
Count mtSend_InvalidModifyMsg=1
mtSend_InvalidModifyMsg0="Invalid modify request."
Count mtFileCrackedMsg=2
mtFileCrackedMsg0="This file is cracked."
mtFileCrackedMsg1="The application will be closed."
Count mtException_LeakMultiFree=1
mtException_LeakMultiFree0="Multi Free memory leak."
Count mtException_LeakMemoryOverrun=1
mtException_LeakMemoryOverrun0="Memory Overrun leak."
Count mtException_AntiFreeze=1
mtException_AntiFreeze0="The application seems to be frozen."
Count mtInvalidEmailMsg=1
mtInvalidEmailMsg0="Invalid email."
TextsCollection=English
EurekaLog Last Line --> EurekaLog Last Line -->
</BorlandProject> </BorlandProject>

View File

@ -13,8 +13,6 @@ uses
uMainMenuController in 'uMainMenuController.pas', uMainMenuController in 'uMainMenuController.pas',
uClienteUtils in 'Utiles\uClienteUtils.pas'; uClienteUtils in 'Utiles\uClienteUtils.pas';
{$R *.res} {$R *.res}
var var

View File

@ -1,7 +1,7 @@
MAINICON ICON "c:\Codigo Luis Leon\Source\Iconos\Factuges.ico" MAINICON ICON "c:\Codigo Luis Leon\Source\Iconos\Factuges.ico"
1 VERSIONINFO 1 VERSIONINFO
FILEVERSION 2,4,0,0 FILEVERSION 3,3,7,0
PRODUCTVERSION 2,4,0,0 PRODUCTVERSION 3,3,7,0
FILEFLAGSMASK 0x3FL FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L FILEFLAGS 0x00L
FILEOS 0x40004L FILEOS 0x40004L
@ -13,9 +13,9 @@ BEGIN
BLOCK "0C0A04E4" BLOCK "0C0A04E4"
BEGIN BEGIN
VALUE "CompanyName", "Rodax Software S.L.\0" VALUE "CompanyName", "Rodax Software S.L.\0"
VALUE "FileVersion", "2.4.0.0\0" VALUE "FileVersion", "3.3.7.0\0"
VALUE "InternalName", "FactuGES\0" VALUE "InternalName", "FactuGES\0"
VALUE "ProductVersion", "2.3.9.0\0" VALUE "ProductVersion", "3.3.7.0\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

Binary file not shown.

View File

@ -2,7 +2,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
Left = 358 Left = 358
Top = 250 Top = 250
Caption = 'Pantalla principal' Caption = 'Pantalla principal'
ClientHeight = 662 ClientHeight = 681
ClientWidth = 559 ClientWidth = 559
Color = clWindow Color = clWindow
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
@ -23,7 +23,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
Left = 0 Left = 0
Top = 0 Top = 0
Width = 559 Width = 559
Height = 640 Height = 659
Margins.Left = 5 Margins.Left = 5
Margins.Top = 5 Margins.Top = 5
Margins.Right = 5 Margins.Right = 5
@ -31,11 +31,12 @@ object fPantallaPrincipal: TfPantallaPrincipal
ParentColor = True ParentColor = True
Align = alClient Align = alClient
TabOrder = 0 TabOrder = 0
ExplicitHeight = 640
object JvSyncSplitter1: TJvSyncSplitter object JvSyncSplitter1: TJvSyncSplitter
Left = 215 Left = 215
Top = 5 Top = 5
Width = 5 Width = 5
Height = 630 Height = 649
ResizeStyle = rsPattern ResizeStyle = rsPattern
ExplicitLeft = 210 ExplicitLeft = 210
ExplicitHeight = 570 ExplicitHeight = 570
@ -44,7 +45,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
Left = 5 Left = 5
Top = 5 Top = 5
Width = 210 Width = 210
Height = 630 Height = 649
ActivePage = pagInicio ActivePage = pagInicio
Align = alLeft Align = alLeft
AutoHeaders = True AutoHeaders = True
@ -85,11 +86,12 @@ object fPantallaPrincipal: TfPantallaPrincipal
NavPanelHotTrackFont.Style = [] NavPanelHotTrackFont.Style = []
SmallImages = ModulesSmallImageList SmallImages = ModulesSmallImageList
OnChange = JvNavigationPaneChange OnChange = JvNavigationPaneChange
ExplicitHeight = 630
object pagInicio: TJvNavPanelPage object pagInicio: TJvNavPanelPage
Left = 0 Left = 0
Top = 0 Top = 0
Width = 208 Width = 208
Height = 557 Height = 576
Background.Stretch = False Background.Stretch = False
Background.Proportional = False Background.Proportional = False
Background.Center = False Background.Center = False
@ -97,15 +99,17 @@ object fPantallaPrincipal: TfPantallaPrincipal
Background.Transparent = False Background.Transparent = False
Caption = 'Inicio' Caption = 'Inicio'
ImageIndex = 0 ImageIndex = 0
ExplicitHeight = 557
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Top = 471 Top = 490
Width = 208 Width = 208
Height = 86 Height = 86
Align = alBottom Align = alBottom
Color = clWindow Color = clWindow
ParentBackground = False ParentBackground = False
TabOrder = 1 TabOrder = 1
ExplicitTop = 471
object Label1: TLabel object Label1: TLabel
Left = 38 Left = 38
Top = 29 Top = 29
@ -153,19 +157,21 @@ object fPantallaPrincipal: TfPantallaPrincipal
Left = 220 Left = 220
Top = 5 Top = 5
Width = 334 Width = 334
Height = 630 Height = 649
BoundColor = clActiveCaption BoundColor = clActiveCaption
BoundLines = [blLeft, blTop, blRight, blBottom] BoundLines = [blLeft, blTop, blRight, blBottom]
Caption = 'pnlBorde' Caption = 'pnlBorde'
Align = alClient Align = alClient
ExplicitHeight = 630
object pnlMain: TTBXAlignmentPanel object pnlMain: TTBXAlignmentPanel
Left = 1 Left = 1
Top = 1 Top = 1
Width = 332 Width = 332
Height = 628 Height = 647
Align = alClient Align = alClient
Color = clWindow Color = clWindow
TabOrder = 0 TabOrder = 0
ExplicitHeight = 628
object lblBienvenido: TLabel object lblBienvenido: TLabel
Left = 8 Left = 8
Top = 8 Top = 8
@ -202,7 +208,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
end end
object TBXStatusBar1: TTBXStatusBar object TBXStatusBar1: TTBXStatusBar
Left = 0 Left = 0
Top = 640 Top = 659
Width = 559 Width = 559
Images = StatusPanelImageList Images = StatusPanelImageList
Panels = < Panels = <
@ -224,6 +230,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
Tag = 0 Tag = 0
end> end>
UseSystemFont = False UseSystemFont = False
ExplicitTop = 640
end end
object XPManifest1: TXPManifest object XPManifest1: TXPManifest
Left = 248 Left = 248
@ -494,7 +501,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
object JvAppRegistryStorage: TJvAppRegistryStorage object JvAppRegistryStorage: TJvAppRegistryStorage
StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y'
StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N'
Root = 'Software\%APPL_NAME%' Root = 'Software\FactuGES'
SubStorages = <> SubStorages = <>
Left = 504 Left = 504
Top = 128 Top = 128

View File

@ -8,9 +8,7 @@
<Option Name="GUID">{897CD5E4-3D47-418F-BD7A-AD0C0C4FDE6A}</Option> <Option Name="GUID">{897CD5E4-3D47-418F-BD7A-AD0C0C4FDE6A}</Option>
</Option> </Option>
</PersonalityInfo> </PersonalityInfo>
<Default.Personality> <Default.Personality> <Projects>
<Projects>
<Projects Name="DataAbstract_D10.bpl">DataAbstract_D10\DataAbstract_D10.bdsproj</Projects> <Projects Name="DataAbstract_D10.bpl">DataAbstract_D10\DataAbstract_D10.bdsproj</Projects>
<Projects Name="Base.bpl">Base\Base.bdsproj</Projects> <Projects Name="Base.bpl">Base\Base.bdsproj</Projects>
<Projects Name="ControllerBase.bpl">Base\ControllerBase\ControllerBase.bdsproj</Projects> <Projects Name="ControllerBase.bpl">Base\ControllerBase\ControllerBase.bdsproj</Projects>
@ -21,11 +19,6 @@
<Projects Name="Usuarios.bpl">Base\Usuarios\Usuarios.bdsproj</Projects> <Projects Name="Usuarios.bpl">Base\Usuarios\Usuarios.bdsproj</Projects>
<Projects Name="Empresas_view.bpl">Modulos\Empresas\Views\Empresas_view.bdsproj</Projects> <Projects Name="Empresas_view.bpl">Modulos\Empresas\Views\Empresas_view.bdsproj</Projects>
<Projects Name="Empresas_plugin.bpl">Modulos\Empresas\Plugin\Empresas_plugin.bdsproj</Projects> <Projects Name="Empresas_plugin.bpl">Modulos\Empresas\Plugin\Empresas_plugin.bdsproj</Projects>
<Projects Name="TiposIVA_model.bpl">Modulos\Tipos de IVA\Model\TiposIVA_model.bdsproj</Projects>
<Projects Name="TiposIVA_data.bpl">Modulos\Tipos de IVA\Data\TiposIVA_data.bdsproj</Projects>
<Projects Name="TiposIVA_controller.bpl">Modulos\Tipos de IVA\Controller\TiposIVA_controller.bdsproj</Projects>
<Projects Name="TiposIVA_view.bpl">Modulos\Tipos de IVA\Views\TiposIVA_view.bdsproj</Projects>
<Projects Name="TiposIVA_plugin.bpl">Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.bdsproj</Projects>
<Projects Name="Contactos_model.bpl">Modulos\Contactos\Model\Contactos_model.bdsproj</Projects> <Projects Name="Contactos_model.bpl">Modulos\Contactos\Model\Contactos_model.bdsproj</Projects>
<Projects Name="Contactos_data.bpl">Modulos\Contactos\Data\Contactos_data.bdsproj</Projects> <Projects Name="Contactos_data.bpl">Modulos\Contactos\Data\Contactos_data.bdsproj</Projects>
<Projects Name="Contactos_controller.bpl">Modulos\Contactos\Controller\Contactos_controller.bdsproj</Projects> <Projects Name="Contactos_controller.bpl">Modulos\Contactos\Controller\Contactos_controller.bdsproj</Projects>
@ -49,8 +42,6 @@
<Projects Name="RemesasCliente_model.bpl">Modulos\Remesas de cliente\Model\RemesasCliente_model.bdsproj</Projects> <Projects Name="RemesasCliente_model.bpl">Modulos\Remesas de cliente\Model\RemesasCliente_model.bdsproj</Projects>
<Projects Name="RemesasCliente_data.bpl">Modulos\Remesas de cliente\Data\RemesasCliente_data.bdsproj</Projects> <Projects Name="RemesasCliente_data.bpl">Modulos\Remesas de cliente\Data\RemesasCliente_data.bdsproj</Projects>
<Projects Name="RemesasCliente_controller.bpl">Modulos\Remesas de cliente\Controller\RemesasCliente_controller.bdsproj</Projects> <Projects Name="RemesasCliente_controller.bpl">Modulos\Remesas de cliente\Controller\RemesasCliente_controller.bdsproj</Projects>
<Projects Name="BancaElectronica_controller.bpl">Modulos\Banca electronica\Controller\BancaElectronica_controller.bdsproj</Projects>
<Projects Name="BancaElectronica_view.bpl">Modulos\Banca electronica\Views\BancaElectronica_view.bdsproj</Projects>
<Projects Name="RemesasCliente_view.bpl">Modulos\Remesas de cliente\Views\RemesasCliente_view.bdsproj</Projects> <Projects Name="RemesasCliente_view.bpl">Modulos\Remesas de cliente\Views\RemesasCliente_view.bdsproj</Projects>
<Projects Name="RemesasCliente_plugin.bpl">Modulos\Remesas de cliente\Plugin\RemesasCliente_plugin.bdsproj</Projects> <Projects Name="RemesasCliente_plugin.bpl">Modulos\Remesas de cliente\Plugin\RemesasCliente_plugin.bdsproj</Projects>
<Projects Name="PedidosCliente_model.bpl">Modulos\Pedidos de cliente\Model\PedidosCliente_model.bdsproj</Projects> <Projects Name="PedidosCliente_model.bpl">Modulos\Pedidos de cliente\Model\PedidosCliente_model.bdsproj</Projects>
@ -92,8 +83,7 @@
<Projects Name="Comisiones_controller.bpl">Modulos\Comisiones\Controller\Comisiones_controller.bdsproj</Projects> <Projects Name="Comisiones_controller.bpl">Modulos\Comisiones\Controller\Comisiones_controller.bdsproj</Projects>
<Projects Name="Comisiones_view.bpl">Modulos\Comisiones\Views\Comisiones_view.bdsproj</Projects> <Projects Name="Comisiones_view.bpl">Modulos\Comisiones\Views\Comisiones_view.bdsproj</Projects>
<Projects Name="Comisiones_plugin.bpl">Modulos\Comisiones\Plugin\Comisiones_plugin.bdsproj</Projects> <Projects Name="Comisiones_plugin.bpl">Modulos\Comisiones\Plugin\Comisiones_plugin.bdsproj</Projects>
<Projects Name="AlbCli_FacCli_relation.bpl">Modulos\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj</Projects> <Projects Name="Targets">DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Empresas_model.bpl Empresas_data.bpl Empresas_controller.bpl Usuarios.bpl Empresas_view.bpl Empresas_plugin.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Contactos_view.bpl Contactos_plugin.bpl Almacenes_model.bpl Almacenes_data.bpl Almacenes_controller.bpl Almacenes_view.bpl Almacenes_plugin.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl Articulos_plugin.bpl RecibosCliente_model.bpl RecibosCliente_data.bpl RecibosCliente_controller.bpl RecibosCliente_view.bpl RecibosCliente_plugin.bpl RemesasCliente_model.bpl RemesasCliente_data.bpl RemesasCliente_controller.bpl RemesasCliente_view.bpl RemesasCliente_plugin.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl AlbaranesCliente_model.bpl AlbaranesCliente_data.bpl AlbaranesCliente_controller.bpl FacturasCliente_model.bpl FacturasCliente_data.bpl FacturasCliente_controller.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl Inventario_model.bpl Inventario_data.bpl Inventario_controller.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl PedCli_PedProv_relation.bpl PedCli_AlbCli_relation.bpl PedidosCliente_view.bpl PedidosCliente_plugin.bpl AlbaranesCliente_view.bpl AlbaranesCliente_plugin.bpl FacturasCliente_view.bpl FacturasCliente_plugin.bpl Inventario_view.bpl Inventario_plugin.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl FactuGES.exe FactuGES_Server.exe Comisiones_model.bpl Comisiones_data.bpl Comisiones_controller.bpl Comisiones_view.bpl Comisiones_plugin.bpl</Projects>
<Projects Name="Targets">DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Empresas_model.bpl Empresas_data.bpl Empresas_controller.bpl Usuarios.bpl Empresas_view.bpl Empresas_plugin.bpl TiposIVA_model.bpl TiposIVA_data.bpl TiposIVA_controller.bpl TiposIVA_view.bpl TiposIVA_plugin.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Contactos_view.bpl Contactos_plugin.bpl Almacenes_model.bpl Almacenes_data.bpl Almacenes_controller.bpl Almacenes_view.bpl Almacenes_plugin.bpl Articulos_model.bpl Articulos_data.bpl Articulos_controller.bpl Articulos_view.bpl Articulos_plugin.bpl RecibosCliente_model.bpl RecibosCliente_data.bpl RecibosCliente_controller.bpl RecibosCliente_view.bpl RecibosCliente_plugin.bpl RemesasCliente_model.bpl RemesasCliente_data.bpl RemesasCliente_controller.bpl BancaElectronica_controller.bpl BancaElectronica_view.bpl RemesasCliente_view.bpl RemesasCliente_plugin.bpl PedidosCliente_model.bpl PedidosCliente_data.bpl PedidosCliente_controller.bpl AlbaranesCliente_model.bpl AlbaranesCliente_data.bpl AlbaranesCliente_controller.bpl FacturasCliente_model.bpl FacturasCliente_data.bpl FacturasCliente_controller.bpl PedidosProveedor_model.bpl PedidosProveedor_data.bpl PedidosProveedor_controller.bpl Inventario_model.bpl Inventario_data.bpl Inventario_controller.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl PedCli_PedProv_relation.bpl PedCli_AlbCli_relation.bpl PedidosCliente_view.bpl PedidosCliente_plugin.bpl AlbaranesCliente_view.bpl AlbaranesCliente_plugin.bpl FacturasCliente_view.bpl FacturasCliente_plugin.bpl Inventario_view.bpl Inventario_plugin.bpl PedidosProveedor_view.bpl PedidosProveedor_plugin.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl FactuGES.exe FactuGES_Server.exe Comisiones_model.bpl Comisiones_data.bpl Comisiones_controller.bpl Comisiones_view.bpl Comisiones_plugin.bpl AlbCli_FacCli_relation.bpl</Projects>
</Projects> </Projects>
<Dependencies/> <Dependencies/>
</Default.Personality> </Default.Personality>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More